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..3fbed0b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,38 @@
+**/bin/
+**/target/
+**.java._trace
+**.log.properties
+**git.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 b78d5af..0284826 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -24,7 +24,6 @@
                 <jenkins.build.dependency>org.eclipse.osbp.fork.mihalis.opal.imageSelector.osgi</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.infogrid</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.osgi.hybrid.api</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>
@@ -37,12 +36,14 @@
                 <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.cube</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.datainterchange</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.datamart</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.datamart.common</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.functionlibrary</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.gridsource</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.i18n</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.message</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.oxtype</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.xtext.table.common</jenkins.build.dependency>
         </jenkins.build.dependencies>
 </jenkins>
diff --git a/org.eclipse.osbp.xtext.table.feature/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.xtext.table.feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.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.table.feature/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.xtext.table.feature/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.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.table.feature/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.xtext.table.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..19e3115
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.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.table.feature/feature.xml b/org.eclipse.osbp.xtext.table.feature/feature.xml
index f53e199..a92456c 100644
--- a/org.eclipse.osbp.xtext.table.feature/feature.xml
+++ b/org.eclipse.osbp.xtext.table.feature/feature.xml
@@ -14,7 +14,8 @@
         id="org.eclipse.osbp.xtext.table.feature"
         label="%featureName"
         version="0.9.0.qualifier"
-        provider-name="%providerName">
+        provider-name="%providerName"
+		plugin="org.eclipse.osbp.xtext.table">
         
     <description>
         %description
@@ -43,6 +44,13 @@
         unpack="false"/>
         
     <plugin
+        id="org.eclipse.osbp.xtext.table.ide"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
         id="org.eclipse.osbp.xtext.table.ui"
         download-size="0"
         install-size="0"
diff --git a/org.eclipse.osbp.xtext.table.ide/.classpath b/org.eclipse.osbp.xtext.table.ide/.classpath
new file mode 100644
index 0000000..502f456
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src/"/>
+	<classpathentry kind="src" path="src-gen/"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.xtext.table.ide/.project b/org.eclipse.osbp.xtext.table.ide/.project
new file mode 100644
index 0000000..7286ba9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.table.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.table.ide/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.xtext.table.ide/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.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.table.ide/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.xtext.table.ide/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.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.table.ide/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.xtext.table.ide/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.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.table.ide/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.xtext.table.ide/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..19e3115
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/.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.table.ide/LICENSE.txt b/org.eclipse.osbp.xtext.table.ide/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.table.ide/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.table.ide/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..add0665
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.table.ide
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-SymbolicName: org.eclipse.osbp.xtext.table.ide;singleton:=true
+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.table;bundle-version="[0.9.0,0.10.0)"
+Export-Package: org.eclipse.osbp.xtext.table.ide,
+ org.eclipse.osbp.xtext.table.ide.contentassist.antlr,
+ org.eclipse.osbp.xtext.table.ide.contentassist.antlr.internal
+Bundle-ClassPath: src/,src-gen/,.
+
diff --git a/org.eclipse.osbp.xtext.table.ide/about.html b/org.eclipse.osbp.xtext.table.ide/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 1, 2016</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.table.ide/about.ini b/org.eclipse.osbp.xtext.table.ide/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.xtext.table.ide/about.mappings b/org.eclipse.osbp.xtext.table.ide/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.xtext.table.ide/about.properties b/org.eclipse.osbp.xtext.table.ide/about.properties
new file mode 100644
index 0000000..1060156
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/about.properties
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# 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
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.xtext.table.tests
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.xtext.table.ide/build.properties b/org.eclipse.osbp.xtext.table.ide/build.properties
new file mode 100644
index 0000000..1480806
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/build.properties
@@ -0,0 +1,21 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = about.properties,\
+				.,\
+               about.mappings,\
+               about.ini,\
+               about.html,\
+               META-INF/,\
+               .,\
+               .classpath,\
+               .project,\
+               .settings/,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html,\
+               src/,\
+               src-gen/
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html			   
diff --git a/org.eclipse.osbp.xtext.table.ide/epl-v10.html b/org.eclipse.osbp.xtext.table.ide/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.table.ide/license.html b/org.eclipse.osbp.xtext.table.ide/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/license.html
@@ -0,0 +1,164 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY "CONTENT").  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the 
+Eclipse Public License Version 1.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also
+ available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse Foundation 
+source code
+   repository ("Repository") in software modules ("Modules") and made 
+available as downloadable archives ("Downloads").</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to 
+facilitate delivering, extending, and upgrading the Content.  Typical 
+modules may include plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features").</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or 
+Fragments and associated material.  Each Feature may be packaged as a 
+sub-directory in a directory named "features".  Within a Feature, files 
+named "feature.xml" may contain a list of the names and version numbers 
+of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features ("Included 
+Features"). Within a Feature, files named "feature.xml" may contain a 
+list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be 
+contained in files named "about.html" ("Abouts"). The terms and 
+conditions governing Features and
+Included Features should be contained in files named "license.html" 
+("Feature Licenses").  Abouts and Feature Licenses may be located in any
+ directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named "src" of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is 
+installed using the Provisioning Technology (as defined below), you must
+ agree to a license ("Feature Update License") during the
+installation process.  If the Feature contains Included Features, the 
+Feature Update License should either provide you with the terms and 
+conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be 
+found in the "license" property of files named "feature.properties" 
+found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the 
+terms and conditions (or references to such terms and conditions) that 
+govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER 
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.
+  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND 
+CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, 
+or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions 
+govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, 
+examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager ("Provisioning Technology") for the purpose of 
+allowing users to install software, documentation, information and/or
+   other materials (collectively "Installable Software"). This 
+capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about 
+packaging Installable Software is available at <a href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   ("Specification").</p>
+
+<p>You may use Provisioning Technology to allow other parties to install
+ Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to
+ be presented to, and accepted by, the users of the Provisioning 
+Technology
+   in accordance with the Specification. By using Provisioning 
+Technology in such a manner and making it available in accordance with 
+the
+   Specification, you further acknowledge your agreement to, and the 
+acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur ("Provisioning Process") in 
+which a user may execute the Provisioning Technology
+       on a machine ("Target Machine") with the intent of installing, 
+extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology 
+may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user 
+the terms and conditions that govern the use of the Installable
+       Software ("Installable Software Agreement") and such Installable 
+Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable 
+Software Agreement must inform the user of the terms and conditions that
+ govern
+       the Installable Software and must solicit acceptance by the end 
+user in the manner prescribed in such Installable Software Agreement. 
+Upon such
+       indication of agreement by the user, the provisioning Technology 
+will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are
+ currently may have restrictions on the import, possession, and use, 
+and/or re-export to
+   another country, of encryption software. BEFORE using any encryption 
+software, please check the country's laws, regulations and policies 
+concerning the import,
+   possession, or use, and re-export of encryption software, to see if 
+this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.table.ide/pom.xml b/org.eclipse.osbp.xtext.table.ide/pom.xml
new file mode 100644
index 0000000..96fc98d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/pom.xml
@@ -0,0 +1,23 @@
+<?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>
+    <artifactId>org.eclipse.osbp.xtext.table.ide</artifactId>
+    <packaging>eclipse-plugin</packaging>
+    <parent>
+        <groupId>org.eclipse.osbp.xtext.table</groupId>
+        <artifactId>org.eclipse.osbp.xtext.table.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+</project>
diff --git a/org.eclipse.osbp.xtext.table.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup b/org.eclipse.osbp.xtext.table.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
new file mode 100644
index 0000000..44f8875
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
@@ -0,0 +1 @@
+org.eclipse.osbp.xtext.table.ide.TableDSLIdeSetup
diff --git a/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/AbstractTableDSLIdeModule.java b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/AbstractTableDSLIdeModule.java
new file mode 100644
index 0000000..236a6dd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/AbstractTableDSLIdeModule.java
@@ -0,0 +1,47 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.osbp.xtext.table.ide;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+import org.eclipse.osbp.xtext.table.ide.contentassist.antlr.TableDSLParser;
+import org.eclipse.osbp.xtext.table.ide.contentassist.antlr.internal.InternalTableDSLLexer;
+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 TableDSLIdeModule}.
+ */
+@SuppressWarnings("all")
+public abstract class AbstractTableDSLIdeModule 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(InternalTableDSLLexer.class);
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends IContentAssistParser> bindIContentAssistParser() {
+		return TableDSLParser.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.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/PartialTableDSLContentAssistParser.java b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/PartialTableDSLContentAssistParser.java
new file mode 100644
index 0000000..2d0c4de
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/PartialTableDSLContentAssistParser.java
@@ -0,0 +1,34 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.osbp.xtext.table.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 PartialTableDSLContentAssistParser extends TableDSLParser 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.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/TableDSLParser.java b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/TableDSLParser.java
new file mode 100644
index 0000000..3ed5878
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/TableDSLParser.java
@@ -0,0 +1,693 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.osbp.xtext.table.ide.contentassist.antlr;
+
+import com.google.inject.Inject;
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.osbp.xtext.table.ide.contentassist.antlr.internal.InternalTableDSLParser;
+import org.eclipse.osbp.xtext.table.services.TableDSLGrammarAccess;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.AbstractContentAssistParser;
+
+public class TableDSLParser extends AbstractContentAssistParser {
+
+	@Inject
+	private TableDSLGrammarAccess grammarAccess;
+
+	private Map<AbstractElement, String> nameMappings;
+
+	@Override
+	protected InternalTableDSLParser createParser() {
+		InternalTableDSLParser result = new InternalTableDSLParser(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.getTableOptionAccess().getAlternatives(), "rule__TableOption__Alternatives");
+					put(grammarAccess.getTableSelectionAccess().getAlternatives_2(), "rule__TableSelection__Alternatives_2");
+					put(grammarAccess.getTableValueElementAccess().getAlternatives(), "rule__TableValueElement__Alternatives");
+					put(grammarAccess.getTableIntervalAccess().getAlternatives(), "rule__TableInterval__Alternatives");
+					put(grammarAccess.getTableLookupAccess().getAlternatives(), "rule__TableLookup__Alternatives");
+					put(grammarAccess.getTableRangeElementAccess().getAlternatives(), "rule__TableRangeElement__Alternatives");
+					put(grammarAccess.getPropertyStyleAccess().getAlternatives(), "rule__PropertyStyle__Alternatives");
+					put(grammarAccess.getStyleConfigAccess().getAlternatives(), "rule__StyleConfig__Alternatives");
+					put(grammarAccess.getLIntAccess().getAlternatives_0(), "rule__LInt__Alternatives_0");
+					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.getStyleCompareAccess().getAlternatives(), "rule__StyleCompare__Alternatives");
+					put(grammarAccess.getTrendIconEnumAccess().getAlternatives(), "rule__TrendIconEnum__Alternatives");
+					put(grammarAccess.getRowHeaderModeAccess().getAlternatives(), "rule__RowHeaderMode__Alternatives");
+					put(grammarAccess.getAxisEnumAccess().getAlternatives(), "rule__AxisEnum__Alternatives");
+					put(grammarAccess.getTableModelAccess().getGroup(), "rule__TableModel__Group__0");
+					put(grammarAccess.getTablePackageAccess().getGroup(), "rule__TablePackage__Group__0");
+					put(grammarAccess.getTablePackageAccess().getGroup_3(), "rule__TablePackage__Group_3__0");
+					put(grammarAccess.getTableAccess().getGroup(), "rule__Table__Group__0");
+					put(grammarAccess.getTableAccess().getGroup_3(), "rule__Table__Group_3__0");
+					put(grammarAccess.getTableSelectionAccess().getGroup(), "rule__TableSelection__Group__0");
+					put(grammarAccess.getTableSelectionAccess().getGroup_3_1(), "rule__TableSelection__Group_3_1__0");
+					put(grammarAccess.getTableSelectionAccess().getGroup_3_2(), "rule__TableSelection__Group_3_2__0");
+					put(grammarAccess.getTableSelectionAccess().getGroup_3_5(), "rule__TableSelection__Group_3_5__0");
+					put(grammarAccess.getTableSelectionAccess().getGroup_4(), "rule__TableSelection__Group_4__0");
+					put(grammarAccess.getTableTableAccess().getGroup(), "rule__TableTable__Group__0");
+					put(grammarAccess.getTableTableAccess().getGroup_2_2(), "rule__TableTable__Group_2_2__0");
+					put(grammarAccess.getTableTableAccess().getGroup_2_3(), "rule__TableTable__Group_2_3__0");
+					put(grammarAccess.getTableTableAccess().getGroup_2_6(), "rule__TableTable__Group_2_6__0");
+					put(grammarAccess.getTableTableAccess().getGroup_3(), "rule__TableTable__Group_3__0");
+					put(grammarAccess.getTableBeanAccess().getGroup(), "rule__TableBean__Group__0");
+					put(grammarAccess.getTableBeanAccess().getGroup_2_2(), "rule__TableBean__Group_2_2__0");
+					put(grammarAccess.getTableBeanAccess().getGroup_2_3(), "rule__TableBean__Group_2_3__0");
+					put(grammarAccess.getTableBeanAccess().getGroup_2_6(), "rule__TableBean__Group_2_6__0");
+					put(grammarAccess.getTableBeanAccess().getGroup_3(), "rule__TableBean__Group_3__0");
+					put(grammarAccess.getTablePreorderAccess().getGroup(), "rule__TablePreorder__Group__0");
+					put(grammarAccess.getTableValueAccess().getGroup(), "rule__TableValue__Group__0");
+					put(grammarAccess.getTableValueAccess().getGroup_3_1(), "rule__TableValue__Group_3_1__0");
+					put(grammarAccess.getTableValueAccess().getGroup_3_3(), "rule__TableValue__Group_3_3__0");
+					put(grammarAccess.getTableValueAccess().getGroup_4_0(), "rule__TableValue__Group_4_0__0");
+					put(grammarAccess.getTableValueAccess().getGroup_4_1(), "rule__TableValue__Group_4_1__0");
+					put(grammarAccess.getTableFormatterAccess().getGroup(), "rule__TableFormatter__Group__0");
+					put(grammarAccess.getTableImageAccess().getGroup(), "rule__TableImage__Group__0");
+					put(grammarAccess.getTableImageAccess().getGroup_3_2(), "rule__TableImage__Group_3_2__0");
+					put(grammarAccess.getTableTooltipPatternAccess().getGroup(), "rule__TableTooltipPattern__Group__0");
+					put(grammarAccess.getTableTaskAccess().getGroup(), "rule__TableTask__Group__0");
+					put(grammarAccess.getTableAllColumnsAccess().getGroup(), "rule__TableAllColumns__Group__0");
+					put(grammarAccess.getTableOrdinalAccess().getGroup(), "rule__TableOrdinal__Group__0");
+					put(grammarAccess.getTableColumnAccess().getGroup(), "rule__TableColumn__Group__0");
+					put(grammarAccess.getTableMeasureAccess().getGroup(), "rule__TableMeasure__Group__0");
+					put(grammarAccess.getTableDerivedAccess().getGroup(), "rule__TableDerived__Group__0");
+					put(grammarAccess.getTableHierarchyAccess().getGroup(), "rule__TableHierarchy__Group__0");
+					put(grammarAccess.getTableAttributeAccess().getGroup(), "rule__TableAttribute__Group__0");
+					put(grammarAccess.getTableAggregationAccess().getGroup(), "rule__TableAggregation__Group__0");
+					put(grammarAccess.getTableNumberIntervalAccess().getGroup(), "rule__TableNumberInterval__Group__0");
+					put(grammarAccess.getTableIntIntervalAccess().getGroup(), "rule__TableIntInterval__Group__0");
+					put(grammarAccess.getTableDateDayIntervalAccess().getGroup(), "rule__TableDateDayInterval__Group__0");
+					put(grammarAccess.getTableIntLookupAccess().getGroup(), "rule__TableIntLookup__Group__0");
+					put(grammarAccess.getTableNumberLookupAccess().getGroup(), "rule__TableNumberLookup__Group__0");
+					put(grammarAccess.getTableStringLookupAccess().getGroup(), "rule__TableStringLookup__Group__0");
+					put(grammarAccess.getTableDateDayLookupAccess().getGroup(), "rule__TableDateDayLookup__Group__0");
+					put(grammarAccess.getTableDatamartAccess().getGroup(), "rule__TableDatamart__Group__0");
+					put(grammarAccess.getTableDatamartAccess().getGroup_2(), "rule__TableDatamart__Group_2__0");
+					put(grammarAccess.getTableAxisAccess().getGroup(), "rule__TableAxis__Group__0");
+					put(grammarAccess.getTableAxisAccess().getGroup_2_0(), "rule__TableAxis__Group_2_0__0");
+					put(grammarAccess.getTableAxisAccess().getGroup_3(), "rule__TableAxis__Group_3__0");
+					put(grammarAccess.getTableAxisAccess().getGroup_4(), "rule__TableAxis__Group_4__0");
+					put(grammarAccess.getTableTextColorAccess().getGroup(), "rule__TableTextColor__Group__0");
+					put(grammarAccess.getTableCellColorAccess().getGroup(), "rule__TableCellColor__Group__0");
+					put(grammarAccess.getTableIconAccess().getGroup(), "rule__TableIcon__Group__0");
+					put(grammarAccess.getTableTrendAccess().getGroup(), "rule__TableTrend__Group__0");
+					put(grammarAccess.getTableTooltipAccess().getGroup(), "rule__TableTooltip__Group__0");
+					put(grammarAccess.getTableGridAccess().getGroup(), "rule__TableGrid__Group__0");
+					put(grammarAccess.getTableGridAccess().getGroup_2_1(), "rule__TableGrid__Group_2_1__0");
+					put(grammarAccess.getTableGridAccess().getGroup_3_0(), "rule__TableGrid__Group_3_0__0");
+					put(grammarAccess.getTableGridAccess().getGroup_3_3(), "rule__TableGrid__Group_3_3__0");
+					put(grammarAccess.getTableGridAccess().getGroup_4(), "rule__TableGrid__Group_4__0");
+					put(grammarAccess.getPropertyAccess().getGroup(), "rule__Property__Group__0");
+					put(grammarAccess.getTableDtoDatasourceAccess().getGroup(), "rule__TableDtoDatasource__Group__0");
+					put(grammarAccess.getTableDtoDatasourceAccess().getGroup_2(), "rule__TableDtoDatasource__Group_2__0");
+					put(grammarAccess.getNestedFieldAccess().getGroup(), "rule__NestedField__Group__0");
+					put(grammarAccess.getNestedPathAccess().getGroup(), "rule__NestedPath__Group__0");
+					put(grammarAccess.getPropertyButtonStyleAccess().getGroup(), "rule__PropertyButtonStyle__Group__0");
+					put(grammarAccess.getPropertyHtmlStyleAccess().getGroup(), "rule__PropertyHtmlStyle__Group__0");
+					put(grammarAccess.getPropertyBooleanStyleAccess().getGroup(), "rule__PropertyBooleanStyle__Group__0");
+					put(grammarAccess.getPropertyDateStyleAccess().getGroup(), "rule__PropertyDateStyle__Group__0");
+					put(grammarAccess.getPropertyNumberStyleAccess().getGroup(), "rule__PropertyNumberStyle__Group__0");
+					put(grammarAccess.getPropertyProgressbarStyleAccess().getGroup(), "rule__PropertyProgressbarStyle__Group__0");
+					put(grammarAccess.getGridPropIndicatorStyleAccess().getGroup(), "rule__GridPropIndicatorStyle__Group__0");
+					put(grammarAccess.getPropertyQuantityStyleAccess().getGroup(), "rule__PropertyQuantityStyle__Group__0");
+					put(grammarAccess.getPropertyQuantityStyleAccess().getGroup_6(), "rule__PropertyQuantityStyle__Group_6__0");
+					put(grammarAccess.getPropertyPriceStyleAccess().getGroup(), "rule__PropertyPriceStyle__Group__0");
+					put(grammarAccess.getPropertyPriceStyleAccess().getGroup_6(), "rule__PropertyPriceStyle__Group_6__0");
+					put(grammarAccess.getPropertyTextStyleAccess().getGroup(), "rule__PropertyTextStyle__Group__0");
+					put(grammarAccess.getPropertyImageStyleAccess().getGroup(), "rule__PropertyImageStyle__Group__0");
+					put(grammarAccess.getPropertyImageStyleAccess().getGroup_2(), "rule__PropertyImageStyle__Group_2__0");
+					put(grammarAccess.getNumericToResourceStyleConfigAccess().getGroup(), "rule__NumericToResourceStyleConfig__Group__0");
+					put(grammarAccess.getStringToResourceStyleConfigAccess().getGroup(), "rule__StringToResourceStyleConfig__Group__0");
+					put(grammarAccess.getLIntAccess().getGroup(), "rule__LInt__Group__0");
+					put(grammarAccess.getLDoubleAccess().getGroup(), "rule__LDouble__Group__0");
+					put(grammarAccess.getLDoubleAccess().getGroup_1(), "rule__LDouble__Group_1__0");
+					put(grammarAccess.getSignedNumberAccess().getGroup(), "rule__SignedNumber__Group__0");
+					put(grammarAccess.getSignedIntAccess().getGroup(), "rule__SignedInt__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.getTableModelAccess().getImportSectionAssignment_0(), "rule__TableModel__ImportSectionAssignment_0");
+					put(grammarAccess.getTableModelAccess().getPackagesAssignment_1(), "rule__TableModel__PackagesAssignment_1");
+					put(grammarAccess.getTablePackageAccess().getNameAssignment_2(), "rule__TablePackage__NameAssignment_2");
+					put(grammarAccess.getTablePackageAccess().getTablesAssignment_3_1(), "rule__TablePackage__TablesAssignment_3_1");
+					put(grammarAccess.getTableAccess().getNameAssignment_2(), "rule__Table__NameAssignment_2");
+					put(grammarAccess.getTableAccess().getDescriptionAssignment_3_0(), "rule__Table__DescriptionAssignment_3_0");
+					put(grammarAccess.getTableAccess().getDescriptionValueAssignment_3_1(), "rule__Table__DescriptionValueAssignment_3_1");
+					put(grammarAccess.getTableAccess().getTabletypeAssignment_5(), "rule__Table__TabletypeAssignment_5");
+					put(grammarAccess.getTableSelectionAccess().getMultiSelectionAssignment_2_0(), "rule__TableSelection__MultiSelectionAssignment_2_0");
+					put(grammarAccess.getTableSelectionAccess().getSelectalwaysAssignment_3_0(), "rule__TableSelection__SelectalwaysAssignment_3_0");
+					put(grammarAccess.getTableSelectionAccess().getHeaderModeAssignment_3_1_1(), "rule__TableSelection__HeaderModeAssignment_3_1_1");
+					put(grammarAccess.getTableSelectionAccess().getPollingAssignment_3_2_0(), "rule__TableSelection__PollingAssignment_3_2_0");
+					put(grammarAccess.getTableSelectionAccess().getPollingTimeAssignment_3_2_1(), "rule__TableSelection__PollingTimeAssignment_3_2_1");
+					put(grammarAccess.getTableSelectionAccess().getFilteringAssignment_3_3(), "rule__TableSelection__FilteringAssignment_3_3");
+					put(grammarAccess.getTableSelectionAccess().getEmbeddedAssignment_3_4(), "rule__TableSelection__EmbeddedAssignment_3_4");
+					put(grammarAccess.getTableSelectionAccess().getToolbarAssignment_3_5_1(), "rule__TableSelection__ToolbarAssignment_3_5_1");
+					put(grammarAccess.getTableSelectionAccess().getSourceAssignment_4_1(), "rule__TableSelection__SourceAssignment_4_1");
+					put(grammarAccess.getTableTableAccess().getSelectalwaysAssignment_2_0(), "rule__TableTable__SelectalwaysAssignment_2_0");
+					put(grammarAccess.getTableTableAccess().getSelectByIdAssignment_2_1(), "rule__TableTable__SelectByIdAssignment_2_1");
+					put(grammarAccess.getTableTableAccess().getHeaderModeAssignment_2_2_1(), "rule__TableTable__HeaderModeAssignment_2_2_1");
+					put(grammarAccess.getTableTableAccess().getPollingAssignment_2_3_0(), "rule__TableTable__PollingAssignment_2_3_0");
+					put(grammarAccess.getTableTableAccess().getPollingTimeAssignment_2_3_1(), "rule__TableTable__PollingTimeAssignment_2_3_1");
+					put(grammarAccess.getTableTableAccess().getFilteringAssignment_2_4(), "rule__TableTable__FilteringAssignment_2_4");
+					put(grammarAccess.getTableTableAccess().getEmbeddedAssignment_2_5(), "rule__TableTable__EmbeddedAssignment_2_5");
+					put(grammarAccess.getTableTableAccess().getToolbarAssignment_2_6_1(), "rule__TableTable__ToolbarAssignment_2_6_1");
+					put(grammarAccess.getTableTableAccess().getSourceAssignment_3_1(), "rule__TableTable__SourceAssignment_3_1");
+					put(grammarAccess.getTableBeanAccess().getSelectalwaysAssignment_2_0(), "rule__TableBean__SelectalwaysAssignment_2_0");
+					put(grammarAccess.getTableBeanAccess().getSelectByIdAssignment_2_1(), "rule__TableBean__SelectByIdAssignment_2_1");
+					put(grammarAccess.getTableBeanAccess().getHeaderModeAssignment_2_2_1(), "rule__TableBean__HeaderModeAssignment_2_2_1");
+					put(grammarAccess.getTableBeanAccess().getPollingAssignment_2_3_0(), "rule__TableBean__PollingAssignment_2_3_0");
+					put(grammarAccess.getTableBeanAccess().getPollingTimeAssignment_2_3_1(), "rule__TableBean__PollingTimeAssignment_2_3_1");
+					put(grammarAccess.getTableBeanAccess().getFilteringAssignment_2_4(), "rule__TableBean__FilteringAssignment_2_4");
+					put(grammarAccess.getTableBeanAccess().getEmbeddedAssignment_2_5(), "rule__TableBean__EmbeddedAssignment_2_5");
+					put(grammarAccess.getTableBeanAccess().getToolbarAssignment_2_6_1(), "rule__TableBean__ToolbarAssignment_2_6_1");
+					put(grammarAccess.getTableBeanAccess().getSourceAssignment_3_1(), "rule__TableBean__SourceAssignment_3_1");
+					put(grammarAccess.getTablePreorderAccess().getColumnAssignment_2(), "rule__TablePreorder__ColumnAssignment_2");
+					put(grammarAccess.getTablePreorderAccess().getAscendingAssignment_3(), "rule__TablePreorder__AscendingAssignment_3");
+					put(grammarAccess.getTableValueAccess().getColumnAssignment_2(), "rule__TableValue__ColumnAssignment_2");
+					put(grammarAccess.getTableValueAccess().getCollapsedAssignment_3_0(), "rule__TableValue__CollapsedAssignment_3_0");
+					put(grammarAccess.getTableValueAccess().getIconNameAssignment_3_1_1(), "rule__TableValue__IconNameAssignment_3_1_1");
+					put(grammarAccess.getTableValueAccess().getFormatterAssignment_3_2(), "rule__TableValue__FormatterAssignment_3_2");
+					put(grammarAccess.getTableValueAccess().getHasImageAssignment_3_3_0(), "rule__TableValue__HasImageAssignment_3_3_0");
+					put(grammarAccess.getTableValueAccess().getImageAssignment_3_3_1(), "rule__TableValue__ImageAssignment_3_3_1");
+					put(grammarAccess.getTableValueAccess().getTooltipPatternAssignment_3_4(), "rule__TableValue__TooltipPatternAssignment_3_4");
+					put(grammarAccess.getTableValueAccess().getHideLabelIntervalAssignment_4_0_1(), "rule__TableValue__HideLabelIntervalAssignment_4_0_1");
+					put(grammarAccess.getTableValueAccess().getIntervalsAssignment_4_0_3(), "rule__TableValue__IntervalsAssignment_4_0_3");
+					put(grammarAccess.getTableValueAccess().getHideLabelLookupAssignment_4_1_1(), "rule__TableValue__HideLabelLookupAssignment_4_1_1");
+					put(grammarAccess.getTableValueAccess().getLookupsAssignment_4_1_3(), "rule__TableValue__LookupsAssignment_4_1_3");
+					put(grammarAccess.getTableFormatterAccess().getFormatAssignment_2(), "rule__TableFormatter__FormatAssignment_2");
+					put(grammarAccess.getTableImageAccess().getImagePathPatternAssignment_2(), "rule__TableImage__ImagePathPatternAssignment_2");
+					put(grammarAccess.getTableImageAccess().getHasParameterAssignment_3_0(), "rule__TableImage__HasParameterAssignment_3_0");
+					put(grammarAccess.getTableImageAccess().getHideImageLabelAssignment_3_1(), "rule__TableImage__HideImageLabelAssignment_3_1");
+					put(grammarAccess.getTableImageAccess().getResizeAssignment_3_2_0(), "rule__TableImage__ResizeAssignment_3_2_0");
+					put(grammarAccess.getTableImageAccess().getResizeStringAssignment_3_2_1(), "rule__TableImage__ResizeStringAssignment_3_2_1");
+					put(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternAssignment_2(), "rule__TableTooltipPattern__TooltipPatternAssignment_2");
+					put(grammarAccess.getTableOrdinalAccess().getValueRefAssignment_1(), "rule__TableOrdinal__ValueRefAssignment_1");
+					put(grammarAccess.getTableColumnAccess().getValueRefAssignment_1(), "rule__TableColumn__ValueRefAssignment_1");
+					put(grammarAccess.getTableMeasureAccess().getValueRefAssignment_1(), "rule__TableMeasure__ValueRefAssignment_1");
+					put(grammarAccess.getTableDerivedAccess().getValueRefAssignment_1(), "rule__TableDerived__ValueRefAssignment_1");
+					put(grammarAccess.getTableHierarchyAccess().getValueRefAssignment_1(), "rule__TableHierarchy__ValueRefAssignment_1");
+					put(grammarAccess.getTableAttributeAccess().getValueRefAssignment_2(), "rule__TableAttribute__ValueRefAssignment_2");
+					put(grammarAccess.getTableAggregationAccess().getValueRefAssignment_1(), "rule__TableAggregation__ValueRefAssignment_1");
+					put(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueAssignment_2(), "rule__TableNumberInterval__NumberIntervalValueAssignment_2");
+					put(grammarAccess.getTableNumberIntervalAccess().getNumberRangeAssignment_3(), "rule__TableNumberInterval__NumberRangeAssignment_3");
+					put(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueAssignment_2(), "rule__TableIntInterval__IntIntervalValueAssignment_2");
+					put(grammarAccess.getTableIntIntervalAccess().getIntRangeAssignment_3(), "rule__TableIntInterval__IntRangeAssignment_3");
+					put(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueAssignment_2(), "rule__TableDateDayInterval__DateIntervalValueAssignment_2");
+					put(grammarAccess.getTableDateDayIntervalAccess().getDateRangeAssignment_3(), "rule__TableDateDayInterval__DateRangeAssignment_3");
+					put(grammarAccess.getTableIntLookupAccess().getLookupValueAssignment_2(), "rule__TableIntLookup__LookupValueAssignment_2");
+					put(grammarAccess.getTableIntLookupAccess().getDiscreteAssignment_3(), "rule__TableIntLookup__DiscreteAssignment_3");
+					put(grammarAccess.getTableNumberLookupAccess().getLookupValueAssignment_2(), "rule__TableNumberLookup__LookupValueAssignment_2");
+					put(grammarAccess.getTableNumberLookupAccess().getDiscreteAssignment_3(), "rule__TableNumberLookup__DiscreteAssignment_3");
+					put(grammarAccess.getTableStringLookupAccess().getLookupValueAssignment_2(), "rule__TableStringLookup__LookupValueAssignment_2");
+					put(grammarAccess.getTableStringLookupAccess().getDiscreteAssignment_3(), "rule__TableStringLookup__DiscreteAssignment_3");
+					put(grammarAccess.getTableDateDayLookupAccess().getLookupValueAssignment_2(), "rule__TableDateDayLookup__LookupValueAssignment_2");
+					put(grammarAccess.getTableDateDayLookupAccess().getDiscreteAssignment_3(), "rule__TableDateDayLookup__DiscreteAssignment_3");
+					put(grammarAccess.getTableDatamartAccess().getDatamartRefAssignment_1(), "rule__TableDatamart__DatamartRefAssignment_1");
+					put(grammarAccess.getTableDatamartAccess().getElementsAssignment_2_1(), "rule__TableDatamart__ElementsAssignment_2_1");
+					put(grammarAccess.getTableEventAccess().getSourceAssignment(), "rule__TableEvent__SourceAssignment");
+					put(grammarAccess.getTableAxisAccess().getAxisAssignment_1(), "rule__TableAxis__AxisAssignment_1");
+					put(grammarAccess.getTableAxisAccess().getHasRowHeightAssignment_2_0_0(), "rule__TableAxis__HasRowHeightAssignment_2_0_0");
+					put(grammarAccess.getTableAxisAccess().getRowHeightAssignment_2_0_1(), "rule__TableAxis__RowHeightAssignment_2_0_1");
+					put(grammarAccess.getTableAxisAccess().getPreOrderAssignment_2_1(), "rule__TableAxis__PreOrderAssignment_2_1");
+					put(grammarAccess.getTableAxisAccess().getHasDetailsAssignment_3_0(), "rule__TableAxis__HasDetailsAssignment_3_0");
+					put(grammarAccess.getTableAxisAccess().getValuesAssignment_3_2(), "rule__TableAxis__ValuesAssignment_3_2");
+					put(grammarAccess.getTableAxisAccess().getHasEventsAssignment_4_0(), "rule__TableAxis__HasEventsAssignment_4_0");
+					put(grammarAccess.getTableAxisAccess().getEventsAssignment_4_2(), "rule__TableAxis__EventsAssignment_4_2");
+					put(grammarAccess.getTableTextColorAccess().getRgbAssignment_1(), "rule__TableTextColor__RgbAssignment_1");
+					put(grammarAccess.getTableCellColorAccess().getRgbAssignment_1(), "rule__TableCellColor__RgbAssignment_1");
+					put(grammarAccess.getTableIconAccess().getIconAssignment_1(), "rule__TableIcon__IconAssignment_1");
+					put(grammarAccess.getTableTrendAccess().getIconAssignment_1(), "rule__TableTrend__IconAssignment_1");
+					put(grammarAccess.getTableTooltipAccess().getTooltipAssignment_1(), "rule__TableTooltip__TooltipAssignment_1");
+					put(grammarAccess.getTableGridAccess().getSelectalwaysAssignment_2_0(), "rule__TableGrid__SelectalwaysAssignment_2_0");
+					put(grammarAccess.getTableGridAccess().getHeaderModeAssignment_2_1_1(), "rule__TableGrid__HeaderModeAssignment_2_1_1");
+					put(grammarAccess.getTableGridAccess().getPollingAssignment_3_0_0(), "rule__TableGrid__PollingAssignment_3_0_0");
+					put(grammarAccess.getTableGridAccess().getPollingTimeAssignment_3_0_1(), "rule__TableGrid__PollingTimeAssignment_3_0_1");
+					put(grammarAccess.getTableGridAccess().getFilteringAssignment_3_1(), "rule__TableGrid__FilteringAssignment_3_1");
+					put(grammarAccess.getTableGridAccess().getEmbeddedAssignment_3_2(), "rule__TableGrid__EmbeddedAssignment_3_2");
+					put(grammarAccess.getTableGridAccess().getToolbarAssignment_3_3_1(), "rule__TableGrid__ToolbarAssignment_3_3_1");
+					put(grammarAccess.getTableGridAccess().getSourceAssignment_4_1(), "rule__TableGrid__SourceAssignment_4_1");
+					put(grammarAccess.getPropertyAccess().getEditableAssignment_0(), "rule__Property__EditableAssignment_0");
+					put(grammarAccess.getPropertyAccess().getPathAssignment_2(), "rule__Property__PathAssignment_2");
+					put(grammarAccess.getPropertyAccess().getStyleAssignment_4(), "rule__Property__StyleAssignment_4");
+					put(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceAssignment_1(), "rule__TableDtoDatasource__DtoSourceAssignment_1");
+					put(grammarAccess.getTableDtoDatasourceAccess().getPropertiesAssignment_2_1(), "rule__TableDtoDatasource__PropertiesAssignment_2_1");
+					put(grammarAccess.getNestedFieldAccess().getFieldAssignment_1(), "rule__NestedField__FieldAssignment_1");
+					put(grammarAccess.getNestedFieldAccess().getPathAssignment_2(), "rule__NestedField__PathAssignment_2");
+					put(grammarAccess.getNestedPathAccess().getFieldAssignment_2(), "rule__NestedPath__FieldAssignment_2");
+					put(grammarAccess.getNestedPathAccess().getPathAssignment_3(), "rule__NestedPath__PathAssignment_3");
+					put(grammarAccess.getPropertyButtonStyleAccess().getEventTopicAssignment_3(), "rule__PropertyButtonStyle__EventTopicAssignment_3");
+					put(grammarAccess.getPropertyDateStyleAccess().getDateFormatAssignment_3(), "rule__PropertyDateStyle__DateFormatAssignment_3");
+					put(grammarAccess.getPropertyNumberStyleAccess().getNumberFormatAssignment_3(), "rule__PropertyNumberStyle__NumberFormatAssignment_3");
+					put(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueAssignment_3(), "rule__PropertyProgressbarStyle__MaxValueAssignment_3");
+					put(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsAssignment_3(), "rule__GridPropIndicatorStyle__GreenStartsAssignment_3");
+					put(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsAssignment_5(), "rule__GridPropIndicatorStyle__RedEndsAssignment_5");
+					put(grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternAssignment_2(), "rule__PropertyQuantityStyle__HtmlPatternAssignment_2");
+					put(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathAssignment_5(), "rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5");
+					put(grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatAssignment_6_2(), "rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2");
+					put(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathAssignment_9(), "rule__PropertyQuantityStyle__UomPropertyPathAssignment_9");
+					put(grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternAssignment_2(), "rule__PropertyPriceStyle__HtmlPatternAssignment_2");
+					put(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathAssignment_5(), "rule__PropertyPriceStyle__ValuePropertyPathAssignment_5");
+					put(grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatAssignment_6_2(), "rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2");
+					put(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathAssignment_9(), "rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9");
+					put(grammarAccess.getPropertyImageStyleAccess().getEventTopicAssignment_2_1(), "rule__PropertyImageStyle__EventTopicAssignment_2_1");
+					put(grammarAccess.getPropertyImageStyleAccess().getConfigsAssignment_4(), "rule__PropertyImageStyle__ConfigsAssignment_4");
+					put(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareAssignment_1(), "rule__NumericToResourceStyleConfig__CompareAssignment_1");
+					put(grammarAccess.getNumericToResourceStyleConfigAccess().getValueAssignment_2(), "rule__NumericToResourceStyleConfig__ValueAssignment_2");
+					put(grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathAssignment_4(), "rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4");
+					put(grammarAccess.getStringToResourceStyleConfigAccess().getCompareAssignment_1(), "rule__StringToResourceStyleConfig__CompareAssignment_1");
+					put(grammarAccess.getStringToResourceStyleConfigAccess().getValueAssignment_2(), "rule__StringToResourceStyleConfig__ValueAssignment_2");
+					put(grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathAssignment_4(), "rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4");
+					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.getTableSelectionAccess().getUnorderedGroup_3(), "rule__TableSelection__UnorderedGroup_3");
+					put(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), "rule__TableTable__UnorderedGroup_2");
+					put(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), "rule__TableBean__UnorderedGroup_2");
+					put(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), "rule__TableValue__UnorderedGroup_3");
+					put(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), "rule__TableValue__UnorderedGroup_4");
+					put(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), "rule__TableImage__UnorderedGroup_3");
+					put(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), "rule__TableAxis__UnorderedGroup_2");
+					put(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), "rule__TableGrid__UnorderedGroup_2");
+					put(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), "rule__TableGrid__UnorderedGroup_3");
+				}
+			};
+		}
+		return nameMappings.get(element);
+	}
+			
+	@Override
+	protected String[] getInitialHiddenTokens() {
+		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+	}
+
+	public TableDSLGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+
+	public void setGrammarAccess(TableDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSL.g b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSL.g
new file mode 100644
index 0000000..97ecac8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSL.g
@@ -0,0 +1,31918 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+grammar InternalTableDSL;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	backtrack=true;
+}
+
+@lexer::header {
+package org.eclipse.osbp.xtext.table.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.table.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.table.services.TableDSLGrammarAccess;
+
+}
+@parser::members {
+	private TableDSLGrammarAccess grammarAccess;
+
+	public void setGrammarAccess(TableDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+
+	@Override
+	protected Grammar getGrammar() {
+		return grammarAccess.getGrammar();
+	}
+
+	@Override
+	protected String getValueForTokenName(String tokenName) {
+		return tokenName;
+	}
+}
+
+// Entry rule entryRuleTableModel
+entryRuleTableModel
+:
+{ before(grammarAccess.getTableModelRule()); }
+	 ruleTableModel
+{ after(grammarAccess.getTableModelRule()); } 
+	 EOF 
+;
+
+// Rule TableModel
+ruleTableModel 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableModelAccess().getGroup()); }
+		(rule__TableModel__Group__0)
+		{ after(grammarAccess.getTableModelAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTablePackage
+entryRuleTablePackage
+:
+{ before(grammarAccess.getTablePackageRule()); }
+	 ruleTablePackage
+{ after(grammarAccess.getTablePackageRule()); } 
+	 EOF 
+;
+
+// Rule TablePackage
+ruleTablePackage 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTablePackageAccess().getGroup()); }
+		(rule__TablePackage__Group__0)
+		{ after(grammarAccess.getTablePackageAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTable
+entryRuleTable
+:
+{ before(grammarAccess.getTableRule()); }
+	 ruleTable
+{ after(grammarAccess.getTableRule()); } 
+	 EOF 
+;
+
+// Rule Table
+ruleTable 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableAccess().getGroup()); }
+		(rule__Table__Group__0)
+		{ after(grammarAccess.getTableAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableOption
+entryRuleTableOption
+:
+{ before(grammarAccess.getTableOptionRule()); }
+	 ruleTableOption
+{ after(grammarAccess.getTableOptionRule()); } 
+	 EOF 
+;
+
+// Rule TableOption
+ruleTableOption 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableOptionAccess().getAlternatives()); }
+		(rule__TableOption__Alternatives)
+		{ after(grammarAccess.getTableOptionAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableSelection
+entryRuleTableSelection
+:
+{ before(grammarAccess.getTableSelectionRule()); }
+	 ruleTableSelection
+{ after(grammarAccess.getTableSelectionRule()); } 
+	 EOF 
+;
+
+// Rule TableSelection
+ruleTableSelection 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getGroup()); }
+		(rule__TableSelection__Group__0)
+		{ after(grammarAccess.getTableSelectionAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableTable
+entryRuleTableTable
+:
+{ before(grammarAccess.getTableTableRule()); }
+	 ruleTableTable
+{ after(grammarAccess.getTableTableRule()); } 
+	 EOF 
+;
+
+// Rule TableTable
+ruleTableTable 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableTableAccess().getGroup()); }
+		(rule__TableTable__Group__0)
+		{ after(grammarAccess.getTableTableAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableBean
+entryRuleTableBean
+:
+{ before(grammarAccess.getTableBeanRule()); }
+	 ruleTableBean
+{ after(grammarAccess.getTableBeanRule()); } 
+	 EOF 
+;
+
+// Rule TableBean
+ruleTableBean 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableBeanAccess().getGroup()); }
+		(rule__TableBean__Group__0)
+		{ after(grammarAccess.getTableBeanAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTablePreorder
+entryRuleTablePreorder
+:
+{ before(grammarAccess.getTablePreorderRule()); }
+	 ruleTablePreorder
+{ after(grammarAccess.getTablePreorderRule()); } 
+	 EOF 
+;
+
+// Rule TablePreorder
+ruleTablePreorder 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTablePreorderAccess().getGroup()); }
+		(rule__TablePreorder__Group__0)
+		{ after(grammarAccess.getTablePreorderAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableValue
+entryRuleTableValue
+:
+{ before(grammarAccess.getTableValueRule()); }
+	 ruleTableValue
+{ after(grammarAccess.getTableValueRule()); } 
+	 EOF 
+;
+
+// Rule TableValue
+ruleTableValue 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableValueAccess().getGroup()); }
+		(rule__TableValue__Group__0)
+		{ after(grammarAccess.getTableValueAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableFormatter
+entryRuleTableFormatter
+:
+{ before(grammarAccess.getTableFormatterRule()); }
+	 ruleTableFormatter
+{ after(grammarAccess.getTableFormatterRule()); } 
+	 EOF 
+;
+
+// Rule TableFormatter
+ruleTableFormatter 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableFormatterAccess().getGroup()); }
+		(rule__TableFormatter__Group__0)
+		{ after(grammarAccess.getTableFormatterAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableImage
+entryRuleTableImage
+:
+{ before(grammarAccess.getTableImageRule()); }
+	 ruleTableImage
+{ after(grammarAccess.getTableImageRule()); } 
+	 EOF 
+;
+
+// Rule TableImage
+ruleTableImage 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableImageAccess().getGroup()); }
+		(rule__TableImage__Group__0)
+		{ after(grammarAccess.getTableImageAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableTooltipPattern
+entryRuleTableTooltipPattern
+:
+{ before(grammarAccess.getTableTooltipPatternRule()); }
+	 ruleTableTooltipPattern
+{ after(grammarAccess.getTableTooltipPatternRule()); } 
+	 EOF 
+;
+
+// Rule TableTooltipPattern
+ruleTableTooltipPattern 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableTooltipPatternAccess().getGroup()); }
+		(rule__TableTooltipPattern__Group__0)
+		{ after(grammarAccess.getTableTooltipPatternAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableValueElement
+entryRuleTableValueElement
+:
+{ before(grammarAccess.getTableValueElementRule()); }
+	 ruleTableValueElement
+{ after(grammarAccess.getTableValueElementRule()); } 
+	 EOF 
+;
+
+// Rule TableValueElement
+ruleTableValueElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableValueElementAccess().getAlternatives()); }
+		(rule__TableValueElement__Alternatives)
+		{ after(grammarAccess.getTableValueElementAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableTask
+entryRuleTableTask
+:
+{ before(grammarAccess.getTableTaskRule()); }
+	 ruleTableTask
+{ after(grammarAccess.getTableTaskRule()); } 
+	 EOF 
+;
+
+// Rule TableTask
+ruleTableTask 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableTaskAccess().getGroup()); }
+		(rule__TableTask__Group__0)
+		{ after(grammarAccess.getTableTaskAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableAllColumns
+entryRuleTableAllColumns
+:
+{ before(grammarAccess.getTableAllColumnsRule()); }
+	 ruleTableAllColumns
+{ after(grammarAccess.getTableAllColumnsRule()); } 
+	 EOF 
+;
+
+// Rule TableAllColumns
+ruleTableAllColumns 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableAllColumnsAccess().getGroup()); }
+		(rule__TableAllColumns__Group__0)
+		{ after(grammarAccess.getTableAllColumnsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableOrdinal
+entryRuleTableOrdinal
+:
+{ before(grammarAccess.getTableOrdinalRule()); }
+	 ruleTableOrdinal
+{ after(grammarAccess.getTableOrdinalRule()); } 
+	 EOF 
+;
+
+// Rule TableOrdinal
+ruleTableOrdinal 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableOrdinalAccess().getGroup()); }
+		(rule__TableOrdinal__Group__0)
+		{ after(grammarAccess.getTableOrdinalAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableColumn
+entryRuleTableColumn
+:
+{ before(grammarAccess.getTableColumnRule()); }
+	 ruleTableColumn
+{ after(grammarAccess.getTableColumnRule()); } 
+	 EOF 
+;
+
+// Rule TableColumn
+ruleTableColumn 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableColumnAccess().getGroup()); }
+		(rule__TableColumn__Group__0)
+		{ after(grammarAccess.getTableColumnAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableMeasure
+entryRuleTableMeasure
+:
+{ before(grammarAccess.getTableMeasureRule()); }
+	 ruleTableMeasure
+{ after(grammarAccess.getTableMeasureRule()); } 
+	 EOF 
+;
+
+// Rule TableMeasure
+ruleTableMeasure 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableMeasureAccess().getGroup()); }
+		(rule__TableMeasure__Group__0)
+		{ after(grammarAccess.getTableMeasureAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableDerived
+entryRuleTableDerived
+:
+{ before(grammarAccess.getTableDerivedRule()); }
+	 ruleTableDerived
+{ after(grammarAccess.getTableDerivedRule()); } 
+	 EOF 
+;
+
+// Rule TableDerived
+ruleTableDerived 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableDerivedAccess().getGroup()); }
+		(rule__TableDerived__Group__0)
+		{ after(grammarAccess.getTableDerivedAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableHierarchy
+entryRuleTableHierarchy
+:
+{ before(grammarAccess.getTableHierarchyRule()); }
+	 ruleTableHierarchy
+{ after(grammarAccess.getTableHierarchyRule()); } 
+	 EOF 
+;
+
+// Rule TableHierarchy
+ruleTableHierarchy 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableHierarchyAccess().getGroup()); }
+		(rule__TableHierarchy__Group__0)
+		{ after(grammarAccess.getTableHierarchyAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableAttribute
+entryRuleTableAttribute
+:
+{ before(grammarAccess.getTableAttributeRule()); }
+	 ruleTableAttribute
+{ after(grammarAccess.getTableAttributeRule()); } 
+	 EOF 
+;
+
+// Rule TableAttribute
+ruleTableAttribute 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableAttributeAccess().getGroup()); }
+		(rule__TableAttribute__Group__0)
+		{ after(grammarAccess.getTableAttributeAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableAggregation
+entryRuleTableAggregation
+:
+{ before(grammarAccess.getTableAggregationRule()); }
+	 ruleTableAggregation
+{ after(grammarAccess.getTableAggregationRule()); } 
+	 EOF 
+;
+
+// Rule TableAggregation
+ruleTableAggregation 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableAggregationAccess().getGroup()); }
+		(rule__TableAggregation__Group__0)
+		{ after(grammarAccess.getTableAggregationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableInterval
+entryRuleTableInterval
+:
+{ before(grammarAccess.getTableIntervalRule()); }
+	 ruleTableInterval
+{ after(grammarAccess.getTableIntervalRule()); } 
+	 EOF 
+;
+
+// Rule TableInterval
+ruleTableInterval 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableIntervalAccess().getAlternatives()); }
+		(rule__TableInterval__Alternatives)
+		{ after(grammarAccess.getTableIntervalAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableNumberInterval
+entryRuleTableNumberInterval
+:
+{ before(grammarAccess.getTableNumberIntervalRule()); }
+	 ruleTableNumberInterval
+{ after(grammarAccess.getTableNumberIntervalRule()); } 
+	 EOF 
+;
+
+// Rule TableNumberInterval
+ruleTableNumberInterval 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableNumberIntervalAccess().getGroup()); }
+		(rule__TableNumberInterval__Group__0)
+		{ after(grammarAccess.getTableNumberIntervalAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableIntInterval
+entryRuleTableIntInterval
+:
+{ before(grammarAccess.getTableIntIntervalRule()); }
+	 ruleTableIntInterval
+{ after(grammarAccess.getTableIntIntervalRule()); } 
+	 EOF 
+;
+
+// Rule TableIntInterval
+ruleTableIntInterval 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableIntIntervalAccess().getGroup()); }
+		(rule__TableIntInterval__Group__0)
+		{ after(grammarAccess.getTableIntIntervalAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableDateDayInterval
+entryRuleTableDateDayInterval
+:
+{ before(grammarAccess.getTableDateDayIntervalRule()); }
+	 ruleTableDateDayInterval
+{ after(grammarAccess.getTableDateDayIntervalRule()); } 
+	 EOF 
+;
+
+// Rule TableDateDayInterval
+ruleTableDateDayInterval 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableDateDayIntervalAccess().getGroup()); }
+		(rule__TableDateDayInterval__Group__0)
+		{ after(grammarAccess.getTableDateDayIntervalAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableLookup
+entryRuleTableLookup
+:
+{ before(grammarAccess.getTableLookupRule()); }
+	 ruleTableLookup
+{ after(grammarAccess.getTableLookupRule()); } 
+	 EOF 
+;
+
+// Rule TableLookup
+ruleTableLookup 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableLookupAccess().getAlternatives()); }
+		(rule__TableLookup__Alternatives)
+		{ after(grammarAccess.getTableLookupAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableIntLookup
+entryRuleTableIntLookup
+:
+{ before(grammarAccess.getTableIntLookupRule()); }
+	 ruleTableIntLookup
+{ after(grammarAccess.getTableIntLookupRule()); } 
+	 EOF 
+;
+
+// Rule TableIntLookup
+ruleTableIntLookup 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableIntLookupAccess().getGroup()); }
+		(rule__TableIntLookup__Group__0)
+		{ after(grammarAccess.getTableIntLookupAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableNumberLookup
+entryRuleTableNumberLookup
+:
+{ before(grammarAccess.getTableNumberLookupRule()); }
+	 ruleTableNumberLookup
+{ after(grammarAccess.getTableNumberLookupRule()); } 
+	 EOF 
+;
+
+// Rule TableNumberLookup
+ruleTableNumberLookup 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableNumberLookupAccess().getGroup()); }
+		(rule__TableNumberLookup__Group__0)
+		{ after(grammarAccess.getTableNumberLookupAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableStringLookup
+entryRuleTableStringLookup
+:
+{ before(grammarAccess.getTableStringLookupRule()); }
+	 ruleTableStringLookup
+{ after(grammarAccess.getTableStringLookupRule()); } 
+	 EOF 
+;
+
+// Rule TableStringLookup
+ruleTableStringLookup 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableStringLookupAccess().getGroup()); }
+		(rule__TableStringLookup__Group__0)
+		{ after(grammarAccess.getTableStringLookupAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableDateDayLookup
+entryRuleTableDateDayLookup
+:
+{ before(grammarAccess.getTableDateDayLookupRule()); }
+	 ruleTableDateDayLookup
+{ after(grammarAccess.getTableDateDayLookupRule()); } 
+	 EOF 
+;
+
+// Rule TableDateDayLookup
+ruleTableDateDayLookup 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableDateDayLookupAccess().getGroup()); }
+		(rule__TableDateDayLookup__Group__0)
+		{ after(grammarAccess.getTableDateDayLookupAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableDatamart
+entryRuleTableDatamart
+:
+{ before(grammarAccess.getTableDatamartRule()); }
+	 ruleTableDatamart
+{ after(grammarAccess.getTableDatamartRule()); } 
+	 EOF 
+;
+
+// Rule TableDatamart
+ruleTableDatamart 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableDatamartAccess().getGroup()); }
+		(rule__TableDatamart__Group__0)
+		{ after(grammarAccess.getTableDatamartAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableElement
+entryRuleTableElement
+:
+{ before(grammarAccess.getTableElementRule()); }
+	 ruleTableElement
+{ after(grammarAccess.getTableElementRule()); } 
+	 EOF 
+;
+
+// Rule TableElement
+ruleTableElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableElementAccess().getTableAxisParserRuleCall()); }
+		ruleTableAxis
+		{ after(grammarAccess.getTableElementAccess().getTableAxisParserRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableEvent
+entryRuleTableEvent
+:
+{ before(grammarAccess.getTableEventRule()); }
+	 ruleTableEvent
+{ after(grammarAccess.getTableEventRule()); } 
+	 EOF 
+;
+
+// Rule TableEvent
+ruleTableEvent 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableEventAccess().getSourceAssignment()); }
+		(rule__TableEvent__SourceAssignment)
+		{ after(grammarAccess.getTableEventAccess().getSourceAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableAxis
+entryRuleTableAxis
+:
+{ before(grammarAccess.getTableAxisRule()); }
+	 ruleTableAxis
+{ after(grammarAccess.getTableAxisRule()); } 
+	 EOF 
+;
+
+// Rule TableAxis
+ruleTableAxis 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableAxisAccess().getGroup()); }
+		(rule__TableAxis__Group__0)
+		{ after(grammarAccess.getTableAxisAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableRangeElement
+entryRuleTableRangeElement
+:
+{ before(grammarAccess.getTableRangeElementRule()); }
+	 ruleTableRangeElement
+{ after(grammarAccess.getTableRangeElementRule()); } 
+	 EOF 
+;
+
+// Rule TableRangeElement
+ruleTableRangeElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableRangeElementAccess().getAlternatives()); }
+		(rule__TableRangeElement__Alternatives)
+		{ after(grammarAccess.getTableRangeElementAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableTextColor
+entryRuleTableTextColor
+:
+{ before(grammarAccess.getTableTextColorRule()); }
+	 ruleTableTextColor
+{ after(grammarAccess.getTableTextColorRule()); } 
+	 EOF 
+;
+
+// Rule TableTextColor
+ruleTableTextColor 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableTextColorAccess().getGroup()); }
+		(rule__TableTextColor__Group__0)
+		{ after(grammarAccess.getTableTextColorAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableCellColor
+entryRuleTableCellColor
+:
+{ before(grammarAccess.getTableCellColorRule()); }
+	 ruleTableCellColor
+{ after(grammarAccess.getTableCellColorRule()); } 
+	 EOF 
+;
+
+// Rule TableCellColor
+ruleTableCellColor 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableCellColorAccess().getGroup()); }
+		(rule__TableCellColor__Group__0)
+		{ after(grammarAccess.getTableCellColorAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableIcon
+entryRuleTableIcon
+:
+{ before(grammarAccess.getTableIconRule()); }
+	 ruleTableIcon
+{ after(grammarAccess.getTableIconRule()); } 
+	 EOF 
+;
+
+// Rule TableIcon
+ruleTableIcon 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableIconAccess().getGroup()); }
+		(rule__TableIcon__Group__0)
+		{ after(grammarAccess.getTableIconAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableTrend
+entryRuleTableTrend
+:
+{ before(grammarAccess.getTableTrendRule()); }
+	 ruleTableTrend
+{ after(grammarAccess.getTableTrendRule()); } 
+	 EOF 
+;
+
+// Rule TableTrend
+ruleTableTrend 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableTrendAccess().getGroup()); }
+		(rule__TableTrend__Group__0)
+		{ after(grammarAccess.getTableTrendAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableTooltip
+entryRuleTableTooltip
+:
+{ before(grammarAccess.getTableTooltipRule()); }
+	 ruleTableTooltip
+{ after(grammarAccess.getTableTooltipRule()); } 
+	 EOF 
+;
+
+// Rule TableTooltip
+ruleTableTooltip 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableTooltipAccess().getGroup()); }
+		(rule__TableTooltip__Group__0)
+		{ after(grammarAccess.getTableTooltipAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableGrid
+entryRuleTableGrid
+:
+{ before(grammarAccess.getTableGridRule()); }
+	 ruleTableGrid
+{ after(grammarAccess.getTableGridRule()); } 
+	 EOF 
+;
+
+// Rule TableGrid
+ruleTableGrid 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableGridAccess().getGroup()); }
+		(rule__TableGrid__Group__0)
+		{ after(grammarAccess.getTableGridAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleProperty
+entryRuleProperty
+:
+{ before(grammarAccess.getPropertyRule()); }
+	 ruleProperty
+{ after(grammarAccess.getPropertyRule()); } 
+	 EOF 
+;
+
+// Rule Property
+ruleProperty 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyAccess().getGroup()); }
+		(rule__Property__Group__0)
+		{ after(grammarAccess.getPropertyAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTableDtoDatasource
+entryRuleTableDtoDatasource
+:
+{ before(grammarAccess.getTableDtoDatasourceRule()); }
+	 ruleTableDtoDatasource
+{ after(grammarAccess.getTableDtoDatasourceRule()); } 
+	 EOF 
+;
+
+// Rule TableDtoDatasource
+ruleTableDtoDatasource 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTableDtoDatasourceAccess().getGroup()); }
+		(rule__TableDtoDatasource__Group__0)
+		{ after(grammarAccess.getTableDtoDatasourceAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleNestedField
+entryRuleNestedField
+:
+{ before(grammarAccess.getNestedFieldRule()); }
+	 ruleNestedField
+{ after(grammarAccess.getNestedFieldRule()); } 
+	 EOF 
+;
+
+// Rule NestedField
+ruleNestedField 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getNestedFieldAccess().getGroup()); }
+		(rule__NestedField__Group__0)
+		{ after(grammarAccess.getNestedFieldAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleNestedPath
+entryRuleNestedPath
+:
+{ before(grammarAccess.getNestedPathRule()); }
+	 ruleNestedPath
+{ after(grammarAccess.getNestedPathRule()); } 
+	 EOF 
+;
+
+// Rule NestedPath
+ruleNestedPath 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getNestedPathAccess().getGroup()); }
+		(rule__NestedPath__Group__0)
+		{ after(grammarAccess.getNestedPathAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyStyle
+entryRulePropertyStyle
+:
+{ before(grammarAccess.getPropertyStyleRule()); }
+	 rulePropertyStyle
+{ after(grammarAccess.getPropertyStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyStyle
+rulePropertyStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getAlternatives()); }
+		(rule__PropertyStyle__Alternatives)
+		{ after(grammarAccess.getPropertyStyleAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyButtonStyle
+entryRulePropertyButtonStyle
+:
+{ before(grammarAccess.getPropertyButtonStyleRule()); }
+	 rulePropertyButtonStyle
+{ after(grammarAccess.getPropertyButtonStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyButtonStyle
+rulePropertyButtonStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyButtonStyleAccess().getGroup()); }
+		(rule__PropertyButtonStyle__Group__0)
+		{ after(grammarAccess.getPropertyButtonStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyHtmlStyle
+entryRulePropertyHtmlStyle
+:
+{ before(grammarAccess.getPropertyHtmlStyleRule()); }
+	 rulePropertyHtmlStyle
+{ after(grammarAccess.getPropertyHtmlStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyHtmlStyle
+rulePropertyHtmlStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyHtmlStyleAccess().getGroup()); }
+		(rule__PropertyHtmlStyle__Group__0)
+		{ after(grammarAccess.getPropertyHtmlStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyBooleanStyle
+entryRulePropertyBooleanStyle
+:
+{ before(grammarAccess.getPropertyBooleanStyleRule()); }
+	 rulePropertyBooleanStyle
+{ after(grammarAccess.getPropertyBooleanStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyBooleanStyle
+rulePropertyBooleanStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyBooleanStyleAccess().getGroup()); }
+		(rule__PropertyBooleanStyle__Group__0)
+		{ after(grammarAccess.getPropertyBooleanStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyDateStyle
+entryRulePropertyDateStyle
+:
+{ before(grammarAccess.getPropertyDateStyleRule()); }
+	 rulePropertyDateStyle
+{ after(grammarAccess.getPropertyDateStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyDateStyle
+rulePropertyDateStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyDateStyleAccess().getGroup()); }
+		(rule__PropertyDateStyle__Group__0)
+		{ after(grammarAccess.getPropertyDateStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyNumberStyle
+entryRulePropertyNumberStyle
+:
+{ before(grammarAccess.getPropertyNumberStyleRule()); }
+	 rulePropertyNumberStyle
+{ after(grammarAccess.getPropertyNumberStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyNumberStyle
+rulePropertyNumberStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyNumberStyleAccess().getGroup()); }
+		(rule__PropertyNumberStyle__Group__0)
+		{ after(grammarAccess.getPropertyNumberStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyProgressbarStyle
+entryRulePropertyProgressbarStyle
+:
+{ before(grammarAccess.getPropertyProgressbarStyleRule()); }
+	 rulePropertyProgressbarStyle
+{ after(grammarAccess.getPropertyProgressbarStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyProgressbarStyle
+rulePropertyProgressbarStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyProgressbarStyleAccess().getGroup()); }
+		(rule__PropertyProgressbarStyle__Group__0)
+		{ after(grammarAccess.getPropertyProgressbarStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleGridPropIndicatorStyle
+entryRuleGridPropIndicatorStyle
+:
+{ before(grammarAccess.getGridPropIndicatorStyleRule()); }
+	 ruleGridPropIndicatorStyle
+{ after(grammarAccess.getGridPropIndicatorStyleRule()); } 
+	 EOF 
+;
+
+// Rule GridPropIndicatorStyle
+ruleGridPropIndicatorStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getGridPropIndicatorStyleAccess().getGroup()); }
+		(rule__GridPropIndicatorStyle__Group__0)
+		{ after(grammarAccess.getGridPropIndicatorStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyQuantityStyle
+entryRulePropertyQuantityStyle
+:
+{ before(grammarAccess.getPropertyQuantityStyleRule()); }
+	 rulePropertyQuantityStyle
+{ after(grammarAccess.getPropertyQuantityStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyQuantityStyle
+rulePropertyQuantityStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyQuantityStyleAccess().getGroup()); }
+		(rule__PropertyQuantityStyle__Group__0)
+		{ after(grammarAccess.getPropertyQuantityStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyPriceStyle
+entryRulePropertyPriceStyle
+:
+{ before(grammarAccess.getPropertyPriceStyleRule()); }
+	 rulePropertyPriceStyle
+{ after(grammarAccess.getPropertyPriceStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyPriceStyle
+rulePropertyPriceStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyPriceStyleAccess().getGroup()); }
+		(rule__PropertyPriceStyle__Group__0)
+		{ after(grammarAccess.getPropertyPriceStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyTextStyle
+entryRulePropertyTextStyle
+:
+{ before(grammarAccess.getPropertyTextStyleRule()); }
+	 rulePropertyTextStyle
+{ after(grammarAccess.getPropertyTextStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyTextStyle
+rulePropertyTextStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyTextStyleAccess().getGroup()); }
+		(rule__PropertyTextStyle__Group__0)
+		{ after(grammarAccess.getPropertyTextStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRulePropertyImageStyle
+entryRulePropertyImageStyle
+:
+{ before(grammarAccess.getPropertyImageStyleRule()); }
+	 rulePropertyImageStyle
+{ after(grammarAccess.getPropertyImageStyleRule()); } 
+	 EOF 
+;
+
+// Rule PropertyImageStyle
+rulePropertyImageStyle 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getPropertyImageStyleAccess().getGroup()); }
+		(rule__PropertyImageStyle__Group__0)
+		{ after(grammarAccess.getPropertyImageStyleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStyleConfig
+entryRuleStyleConfig
+:
+{ before(grammarAccess.getStyleConfigRule()); }
+	 ruleStyleConfig
+{ after(grammarAccess.getStyleConfigRule()); } 
+	 EOF 
+;
+
+// Rule StyleConfig
+ruleStyleConfig 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getStyleConfigAccess().getAlternatives()); }
+		(rule__StyleConfig__Alternatives)
+		{ after(grammarAccess.getStyleConfigAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleNumericToResourceStyleConfig
+entryRuleNumericToResourceStyleConfig
+:
+{ before(grammarAccess.getNumericToResourceStyleConfigRule()); }
+	 ruleNumericToResourceStyleConfig
+{ after(grammarAccess.getNumericToResourceStyleConfigRule()); } 
+	 EOF 
+;
+
+// Rule NumericToResourceStyleConfig
+ruleNumericToResourceStyleConfig 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getNumericToResourceStyleConfigAccess().getGroup()); }
+		(rule__NumericToResourceStyleConfig__Group__0)
+		{ after(grammarAccess.getNumericToResourceStyleConfigAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStringToResourceStyleConfig
+entryRuleStringToResourceStyleConfig
+:
+{ before(grammarAccess.getStringToResourceStyleConfigRule()); }
+	 ruleStringToResourceStyleConfig
+{ after(grammarAccess.getStringToResourceStyleConfigRule()); } 
+	 EOF 
+;
+
+// Rule StringToResourceStyleConfig
+ruleStringToResourceStyleConfig 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getStringToResourceStyleConfigAccess().getGroup()); }
+		(rule__StringToResourceStyleConfig__Group__0)
+		{ after(grammarAccess.getStringToResourceStyleConfigAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleLInt
+entryRuleLInt
+:
+{ before(grammarAccess.getLIntRule()); }
+	 ruleLInt
+{ after(grammarAccess.getLIntRule()); } 
+	 EOF 
+;
+
+// Rule LInt
+ruleLInt 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getLIntAccess().getGroup()); }
+		(rule__LInt__Group__0)
+		{ after(grammarAccess.getLIntAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleLDouble
+entryRuleLDouble
+:
+{ before(grammarAccess.getLDoubleRule()); }
+	 ruleLDouble
+{ after(grammarAccess.getLDoubleRule()); } 
+	 EOF 
+;
+
+// Rule LDouble
+ruleLDouble 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getLDoubleAccess().getGroup()); }
+		(rule__LDouble__Group__0)
+		{ after(grammarAccess.getLDoubleAccess().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 entryRuleSignedInt
+entryRuleSignedInt
+:
+{ before(grammarAccess.getSignedIntRule()); }
+	 ruleSignedInt
+{ after(grammarAccess.getSignedIntRule()); } 
+	 EOF 
+;
+
+// Rule SignedInt
+ruleSignedInt 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getSignedIntAccess().getGroup()); }
+		(rule__SignedInt__Group__0)
+		{ after(grammarAccess.getSignedIntAccess().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 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 StyleCompare
+ruleStyleCompare
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStyleCompareAccess().getAlternatives()); }
+		(rule__StyleCompare__Alternatives)
+		{ after(grammarAccess.getStyleCompareAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule TrendIconEnum
+ruleTrendIconEnum
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTrendIconEnumAccess().getAlternatives()); }
+		(rule__TrendIconEnum__Alternatives)
+		{ after(grammarAccess.getTrendIconEnumAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule RowHeaderMode
+ruleRowHeaderMode
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getRowHeaderModeAccess().getAlternatives()); }
+		(rule__RowHeaderMode__Alternatives)
+		{ after(grammarAccess.getRowHeaderModeAccess().getAlternatives()); }
+	)
+;
+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__TableOption__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableOptionAccess().getTableSelectionParserRuleCall_0()); }
+		ruleTableSelection
+		{ after(grammarAccess.getTableOptionAccess().getTableSelectionParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableOptionAccess().getTableTableParserRuleCall_1()); }
+		ruleTableTable
+		{ after(grammarAccess.getTableOptionAccess().getTableTableParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableOptionAccess().getTableGridParserRuleCall_2()); }
+		ruleTableGrid
+		{ after(grammarAccess.getTableOptionAccess().getTableGridParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableOptionAccess().getTableBeanParserRuleCall_3()); }
+		ruleTableBean
+		{ after(grammarAccess.getTableOptionAccess().getTableBeanParserRuleCall_3()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Alternatives_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getMultiSelectionAssignment_2_0()); }
+		(rule__TableSelection__MultiSelectionAssignment_2_0)
+		{ after(grammarAccess.getTableSelectionAccess().getMultiSelectionAssignment_2_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getSingleKeyword_2_1()); }
+		'single'
+		{ after(grammarAccess.getTableSelectionAccess().getSingleKeyword_2_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValueElement__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueElementAccess().getTableMeasureParserRuleCall_0()); }
+		ruleTableMeasure
+		{ after(grammarAccess.getTableValueElementAccess().getTableMeasureParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableValueElementAccess().getTableDerivedParserRuleCall_1()); }
+		ruleTableDerived
+		{ after(grammarAccess.getTableValueElementAccess().getTableDerivedParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableValueElementAccess().getTableHierarchyParserRuleCall_2()); }
+		ruleTableHierarchy
+		{ after(grammarAccess.getTableValueElementAccess().getTableHierarchyParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableValueElementAccess().getTableAttributeParserRuleCall_3()); }
+		ruleTableAttribute
+		{ after(grammarAccess.getTableValueElementAccess().getTableAttributeParserRuleCall_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_4()); }
+		ruleTableAggregation
+		{ after(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableValueElementAccess().getTableOrdinalParserRuleCall_5()); }
+		ruleTableOrdinal
+		{ after(grammarAccess.getTableValueElementAccess().getTableOrdinalParserRuleCall_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableValueElementAccess().getTableColumnParserRuleCall_6()); }
+		ruleTableColumn
+		{ after(grammarAccess.getTableValueElementAccess().getTableColumnParserRuleCall_6()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableValueElementAccess().getTableTaskParserRuleCall_7()); }
+		ruleTableTask
+		{ after(grammarAccess.getTableValueElementAccess().getTableTaskParserRuleCall_7()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableValueElementAccess().getTableAllColumnsParserRuleCall_8()); }
+		ruleTableAllColumns
+		{ after(grammarAccess.getTableValueElementAccess().getTableAllColumnsParserRuleCall_8()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableInterval__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableIntervalAccess().getTableNumberIntervalParserRuleCall_0()); }
+		ruleTableNumberInterval
+		{ after(grammarAccess.getTableIntervalAccess().getTableNumberIntervalParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableIntervalAccess().getTableIntIntervalParserRuleCall_1()); }
+		ruleTableIntInterval
+		{ after(grammarAccess.getTableIntervalAccess().getTableIntIntervalParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableIntervalAccess().getTableDateDayIntervalParserRuleCall_2()); }
+		ruleTableDateDayInterval
+		{ after(grammarAccess.getTableIntervalAccess().getTableDateDayIntervalParserRuleCall_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableLookup__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableLookupAccess().getTableNumberLookupParserRuleCall_0()); }
+		ruleTableNumberLookup
+		{ after(grammarAccess.getTableLookupAccess().getTableNumberLookupParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableLookupAccess().getTableIntLookupParserRuleCall_1()); }
+		ruleTableIntLookup
+		{ after(grammarAccess.getTableLookupAccess().getTableIntLookupParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableLookupAccess().getTableStringLookupParserRuleCall_2()); }
+		ruleTableStringLookup
+		{ after(grammarAccess.getTableLookupAccess().getTableStringLookupParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableLookupAccess().getTableDateDayLookupParserRuleCall_3()); }
+		ruleTableDateDayLookup
+		{ after(grammarAccess.getTableLookupAccess().getTableDateDayLookupParserRuleCall_3()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableRangeElement__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableRangeElementAccess().getTableTextColorParserRuleCall_0()); }
+		ruleTableTextColor
+		{ after(grammarAccess.getTableRangeElementAccess().getTableTextColorParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableRangeElementAccess().getTableCellColorParserRuleCall_1()); }
+		ruleTableCellColor
+		{ after(grammarAccess.getTableRangeElementAccess().getTableCellColorParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableRangeElementAccess().getTableIconParserRuleCall_2()); }
+		ruleTableIcon
+		{ after(grammarAccess.getTableRangeElementAccess().getTableIconParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableRangeElementAccess().getTableTrendParserRuleCall_3()); }
+		ruleTableTrend
+		{ after(grammarAccess.getTableRangeElementAccess().getTableTrendParserRuleCall_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTableRangeElementAccess().getTableTooltipParserRuleCall_4()); }
+		ruleTableTooltip
+		{ after(grammarAccess.getTableRangeElementAccess().getTableTooltipParserRuleCall_4()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyStyle__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getPropertyButtonStyleParserRuleCall_0()); }
+		rulePropertyButtonStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getPropertyButtonStyleParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getPropertyHtmlStyleParserRuleCall_1()); }
+		rulePropertyHtmlStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getPropertyHtmlStyleParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getPropertyProgressbarStyleParserRuleCall_2()); }
+		rulePropertyProgressbarStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getPropertyProgressbarStyleParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getPropertyTextStyleParserRuleCall_3()); }
+		rulePropertyTextStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getPropertyTextStyleParserRuleCall_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getPropertyBooleanStyleParserRuleCall_4()); }
+		rulePropertyBooleanStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getPropertyBooleanStyleParserRuleCall_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getPropertyDateStyleParserRuleCall_5()); }
+		rulePropertyDateStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getPropertyDateStyleParserRuleCall_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getPropertyNumberStyleParserRuleCall_6()); }
+		rulePropertyNumberStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getPropertyNumberStyleParserRuleCall_6()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getPropertyImageStyleParserRuleCall_7()); }
+		rulePropertyImageStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getPropertyImageStyleParserRuleCall_7()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getPropertyQuantityStyleParserRuleCall_8()); }
+		rulePropertyQuantityStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getPropertyQuantityStyleParserRuleCall_8()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getPropertyPriceStyleParserRuleCall_9()); }
+		rulePropertyPriceStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getPropertyPriceStyleParserRuleCall_9()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getPropertyStyleAccess().getGridPropIndicatorStyleParserRuleCall_10()); }
+		ruleGridPropIndicatorStyle
+		{ after(grammarAccess.getPropertyStyleAccess().getGridPropIndicatorStyleParserRuleCall_10()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StyleConfig__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStyleConfigAccess().getNumericToResourceStyleConfigParserRuleCall_0()); }
+		ruleNumericToResourceStyleConfig
+		{ after(grammarAccess.getStyleConfigAccess().getNumericToResourceStyleConfigParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getStyleConfigAccess().getStringToResourceStyleConfigParserRuleCall_1()); }
+		ruleStringToResourceStyleConfig
+		{ after(grammarAccess.getStyleConfigAccess().getStringToResourceStyleConfigParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LInt__Alternatives_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getLIntAccess().getPlusSignKeyword_0_0()); }
+		'+'
+		{ after(grammarAccess.getLIntAccess().getPlusSignKeyword_0_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getLIntAccess().getHyphenMinusKeyword_0_1()); }
+		'-'
+		{ after(grammarAccess.getLIntAccess().getHyphenMinusKeyword_0_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__StyleCompare__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStyleCompareAccess().getEqualEnumLiteralDeclaration_0()); }
+		('equal')
+		{ after(grammarAccess.getStyleCompareAccess().getEqualEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getStyleCompareAccess().getGreaterEqualEnumLiteralDeclaration_1()); }
+		('greater equal')
+		{ after(grammarAccess.getStyleCompareAccess().getGreaterEqualEnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getStyleCompareAccess().getGreaterThanEnumLiteralDeclaration_2()); }
+		('greater than')
+		{ after(grammarAccess.getStyleCompareAccess().getGreaterThanEnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getStyleCompareAccess().getLowerEqualEnumLiteralDeclaration_3()); }
+		('lower equal')
+		{ after(grammarAccess.getStyleCompareAccess().getLowerEqualEnumLiteralDeclaration_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getStyleCompareAccess().getLowerThanEnumLiteralDeclaration_4()); }
+		('lower than')
+		{ after(grammarAccess.getStyleCompareAccess().getLowerThanEnumLiteralDeclaration_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getStyleCompareAccess().getNotEqualEnumLiteralDeclaration_5()); }
+		('not equal')
+		{ after(grammarAccess.getStyleCompareAccess().getNotEqualEnumLiteralDeclaration_5()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrendIconEnum__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTrendIconEnumAccess().getRISINGEnumLiteralDeclaration_0()); }
+		('rising')
+		{ after(grammarAccess.getTrendIconEnumAccess().getRISINGEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTrendIconEnumAccess().getBADRISINGEnumLiteralDeclaration_1()); }
+		('bad-rising')
+		{ after(grammarAccess.getTrendIconEnumAccess().getBADRISINGEnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTrendIconEnumAccess().getSLOPINGEnumLiteralDeclaration_2()); }
+		('sloping')
+		{ after(grammarAccess.getTrendIconEnumAccess().getSLOPINGEnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTrendIconEnumAccess().getGOODSLOPINGEnumLiteralDeclaration_3()); }
+		('good-sloping')
+		{ after(grammarAccess.getTrendIconEnumAccess().getGOODSLOPINGEnumLiteralDeclaration_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getTrendIconEnumAccess().getSTAGNATINGEnumLiteralDeclaration_4()); }
+		('stagnating')
+		{ after(grammarAccess.getTrendIconEnumAccess().getSTAGNATINGEnumLiteralDeclaration_4()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RowHeaderMode__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getRowHeaderModeAccess().getHIDDENEnumLiteralDeclaration_0()); }
+		('hidden')
+		{ after(grammarAccess.getRowHeaderModeAccess().getHIDDENEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getRowHeaderModeAccess().getEXPLICIT_DEFAULTS_IDEnumLiteralDeclaration_1()); }
+		('explicit')
+		{ after(grammarAccess.getRowHeaderModeAccess().getEXPLICIT_DEFAULTS_IDEnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getRowHeaderModeAccess().getINDEXEnumLiteralDeclaration_2()); }
+		('indexed')
+		{ after(grammarAccess.getRowHeaderModeAccess().getINDEXEnumLiteralDeclaration_2()); }
+	)
+;
+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__TableModel__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableModel__Group__0__Impl
+	rule__TableModel__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableModel__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableModelAccess().getImportSectionAssignment_0()); }
+	(rule__TableModel__ImportSectionAssignment_0)?
+	{ after(grammarAccess.getTableModelAccess().getImportSectionAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableModel__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableModel__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableModel__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableModelAccess().getPackagesAssignment_1()); }
+	(rule__TableModel__PackagesAssignment_1)*
+	{ after(grammarAccess.getTableModelAccess().getPackagesAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TablePackage__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePackage__Group__0__Impl
+	rule__TablePackage__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePackageAccess().getTablePackageAction_0()); }
+	()
+	{ after(grammarAccess.getTablePackageAccess().getTablePackageAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePackage__Group__1__Impl
+	rule__TablePackage__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePackageAccess().getPackageKeyword_1()); }
+	'package'
+	{ after(grammarAccess.getTablePackageAccess().getPackageKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePackage__Group__2__Impl
+	rule__TablePackage__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePackageAccess().getNameAssignment_2()); }
+	(rule__TablePackage__NameAssignment_2)
+	{ after(grammarAccess.getTablePackageAccess().getNameAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePackage__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePackageAccess().getGroup_3()); }
+	(rule__TablePackage__Group_3__0)?
+	{ after(grammarAccess.getTablePackageAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TablePackage__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePackage__Group_3__0__Impl
+	rule__TablePackage__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePackageAccess().getLeftCurlyBracketKeyword_3_0()); }
+	'{'
+	{ after(grammarAccess.getTablePackageAccess().getLeftCurlyBracketKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePackage__Group_3__1__Impl
+	rule__TablePackage__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePackageAccess().getTablesAssignment_3_1()); }
+	(rule__TablePackage__TablesAssignment_3_1)*
+	{ after(grammarAccess.getTablePackageAccess().getTablesAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePackage__Group_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePackageAccess().getRightCurlyBracketKeyword_3_2()); }
+	'}'
+	{ after(grammarAccess.getTablePackageAccess().getRightCurlyBracketKeyword_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Table__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Table__Group__0__Impl
+	rule__Table__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAccess().getTableAction_0()); }
+	()
+	{ after(grammarAccess.getTableAccess().getTableAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Table__Group__1__Impl
+	rule__Table__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAccess().getTableKeyword_1()); }
+	'table'
+	{ after(grammarAccess.getTableAccess().getTableKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Table__Group__2__Impl
+	rule__Table__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAccess().getNameAssignment_2()); }
+	(rule__Table__NameAssignment_2)
+	{ after(grammarAccess.getTableAccess().getNameAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Table__Group__3__Impl
+	rule__Table__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAccess().getGroup_3()); }
+	(rule__Table__Group_3__0)?
+	{ after(grammarAccess.getTableAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Table__Group__4__Impl
+	rule__Table__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAccess().getAsKeyword_4()); }
+	'as'
+	{ after(grammarAccess.getTableAccess().getAsKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Table__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAccess().getTabletypeAssignment_5()); }
+	(rule__Table__TabletypeAssignment_5)
+	{ after(grammarAccess.getTableAccess().getTabletypeAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Table__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Table__Group_3__0__Impl
+	rule__Table__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAccess().getDescriptionAssignment_3_0()); }
+	(rule__Table__DescriptionAssignment_3_0)
+	{ after(grammarAccess.getTableAccess().getDescriptionAssignment_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Table__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAccess().getDescriptionValueAssignment_3_1()); }
+	(rule__Table__DescriptionValueAssignment_3_1)
+	{ after(grammarAccess.getTableAccess().getDescriptionValueAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableSelection__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group__0__Impl
+	rule__TableSelection__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getTableSelectionAction_0()); }
+	()
+	{ after(grammarAccess.getTableSelectionAccess().getTableSelectionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group__1__Impl
+	rule__TableSelection__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getSelectionKeyword_1()); }
+	'selection'
+	{ after(grammarAccess.getTableSelectionAccess().getSelectionKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group__2__Impl
+	rule__TableSelection__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getAlternatives_2()); }
+	(rule__TableSelection__Alternatives_2)
+	{ after(grammarAccess.getTableSelectionAccess().getAlternatives_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group__3__Impl
+	rule__TableSelection__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3()); }
+	(rule__TableSelection__UnorderedGroup_3)
+	{ after(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getGroup_4()); }
+	(rule__TableSelection__Group_4__0)?
+	{ after(grammarAccess.getTableSelectionAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableSelection__Group_3_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group_3_1__0__Impl
+	rule__TableSelection__Group_3_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_3_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getRowHeaderKeyword_3_1_0()); }
+	'rowHeader'
+	{ after(grammarAccess.getTableSelectionAccess().getRowHeaderKeyword_3_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_3_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group_3_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_3_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getHeaderModeAssignment_3_1_1()); }
+	(rule__TableSelection__HeaderModeAssignment_3_1_1)
+	{ after(grammarAccess.getTableSelectionAccess().getHeaderModeAssignment_3_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableSelection__Group_3_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group_3_2__0__Impl
+	rule__TableSelection__Group_3_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_3_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getPollingAssignment_3_2_0()); }
+	(rule__TableSelection__PollingAssignment_3_2_0)
+	{ after(grammarAccess.getTableSelectionAccess().getPollingAssignment_3_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_3_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group_3_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_3_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getPollingTimeAssignment_3_2_1()); }
+	(rule__TableSelection__PollingTimeAssignment_3_2_1)
+	{ after(grammarAccess.getTableSelectionAccess().getPollingTimeAssignment_3_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableSelection__Group_3_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group_3_5__0__Impl
+	rule__TableSelection__Group_3_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_3_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getToolbarKeyword_3_5_0()); }
+	'toolbar'
+	{ after(grammarAccess.getTableSelectionAccess().getToolbarKeyword_3_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_3_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group_3_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_3_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getToolbarAssignment_3_5_1()); }
+	(rule__TableSelection__ToolbarAssignment_3_5_1)
+	{ after(grammarAccess.getTableSelectionAccess().getToolbarAssignment_3_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableSelection__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group_4__0__Impl
+	rule__TableSelection__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getUsingKeyword_4_0()); }
+	'using'
+	{ after(grammarAccess.getTableSelectionAccess().getUsingKeyword_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableSelectionAccess().getSourceAssignment_4_1()); }
+	(rule__TableSelection__SourceAssignment_4_1)
+	{ after(grammarAccess.getTableSelectionAccess().getSourceAssignment_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTable__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group__0__Impl
+	rule__TableTable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getTableTableAction_0()); }
+	()
+	{ after(grammarAccess.getTableTableAccess().getTableTableAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group__1__Impl
+	rule__TableTable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getTableKeyword_1()); }
+	'table'
+	{ after(grammarAccess.getTableTableAccess().getTableKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group__2__Impl
+	rule__TableTable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getUnorderedGroup_2()); }
+	(rule__TableTable__UnorderedGroup_2)
+	{ after(grammarAccess.getTableTableAccess().getUnorderedGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getGroup_3()); }
+	(rule__TableTable__Group_3__0)?
+	{ after(grammarAccess.getTableTableAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTable__Group_2_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group_2_2__0__Impl
+	rule__TableTable__Group_2_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_2_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getRowHeaderKeyword_2_2_0()); }
+	'rowHeader'
+	{ after(grammarAccess.getTableTableAccess().getRowHeaderKeyword_2_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_2_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group_2_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_2_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getHeaderModeAssignment_2_2_1()); }
+	(rule__TableTable__HeaderModeAssignment_2_2_1)
+	{ after(grammarAccess.getTableTableAccess().getHeaderModeAssignment_2_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTable__Group_2_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group_2_3__0__Impl
+	rule__TableTable__Group_2_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_2_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getPollingAssignment_2_3_0()); }
+	(rule__TableTable__PollingAssignment_2_3_0)
+	{ after(grammarAccess.getTableTableAccess().getPollingAssignment_2_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_2_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group_2_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_2_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getPollingTimeAssignment_2_3_1()); }
+	(rule__TableTable__PollingTimeAssignment_2_3_1)
+	{ after(grammarAccess.getTableTableAccess().getPollingTimeAssignment_2_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTable__Group_2_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group_2_6__0__Impl
+	rule__TableTable__Group_2_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_2_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getToolbarKeyword_2_6_0()); }
+	'toolbar'
+	{ after(grammarAccess.getTableTableAccess().getToolbarKeyword_2_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_2_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group_2_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_2_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getToolbarAssignment_2_6_1()); }
+	(rule__TableTable__ToolbarAssignment_2_6_1)
+	{ after(grammarAccess.getTableTableAccess().getToolbarAssignment_2_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTable__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group_3__0__Impl
+	rule__TableTable__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getUsingKeyword_3_0()); }
+	'using'
+	{ after(grammarAccess.getTableTableAccess().getUsingKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTableAccess().getSourceAssignment_3_1()); }
+	(rule__TableTable__SourceAssignment_3_1)
+	{ after(grammarAccess.getTableTableAccess().getSourceAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableBean__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group__0__Impl
+	rule__TableBean__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getTableBeanAction_0()); }
+	()
+	{ after(grammarAccess.getTableBeanAccess().getTableBeanAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group__1__Impl
+	rule__TableBean__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getBeanKeyword_1()); }
+	'bean'
+	{ after(grammarAccess.getTableBeanAccess().getBeanKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group__2__Impl
+	rule__TableBean__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getUnorderedGroup_2()); }
+	(rule__TableBean__UnorderedGroup_2)
+	{ after(grammarAccess.getTableBeanAccess().getUnorderedGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getGroup_3()); }
+	(rule__TableBean__Group_3__0)?
+	{ after(grammarAccess.getTableBeanAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableBean__Group_2_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group_2_2__0__Impl
+	rule__TableBean__Group_2_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_2_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getRowHeaderKeyword_2_2_0()); }
+	'rowHeader'
+	{ after(grammarAccess.getTableBeanAccess().getRowHeaderKeyword_2_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_2_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group_2_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_2_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getHeaderModeAssignment_2_2_1()); }
+	(rule__TableBean__HeaderModeAssignment_2_2_1)
+	{ after(grammarAccess.getTableBeanAccess().getHeaderModeAssignment_2_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableBean__Group_2_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group_2_3__0__Impl
+	rule__TableBean__Group_2_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_2_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getPollingAssignment_2_3_0()); }
+	(rule__TableBean__PollingAssignment_2_3_0)
+	{ after(grammarAccess.getTableBeanAccess().getPollingAssignment_2_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_2_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group_2_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_2_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getPollingTimeAssignment_2_3_1()); }
+	(rule__TableBean__PollingTimeAssignment_2_3_1)
+	{ after(grammarAccess.getTableBeanAccess().getPollingTimeAssignment_2_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableBean__Group_2_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group_2_6__0__Impl
+	rule__TableBean__Group_2_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_2_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getToolbarKeyword_2_6_0()); }
+	'toolbar'
+	{ after(grammarAccess.getTableBeanAccess().getToolbarKeyword_2_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_2_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group_2_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_2_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getToolbarAssignment_2_6_1()); }
+	(rule__TableBean__ToolbarAssignment_2_6_1)
+	{ after(grammarAccess.getTableBeanAccess().getToolbarAssignment_2_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableBean__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group_3__0__Impl
+	rule__TableBean__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getUsingKeyword_3_0()); }
+	'using'
+	{ after(grammarAccess.getTableBeanAccess().getUsingKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableBeanAccess().getSourceAssignment_3_1()); }
+	(rule__TableBean__SourceAssignment_3_1)
+	{ after(grammarAccess.getTableBeanAccess().getSourceAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TablePreorder__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePreorder__Group__0__Impl
+	rule__TablePreorder__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePreorder__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePreorderAccess().getTablePreorderAction_0()); }
+	()
+	{ after(grammarAccess.getTablePreorderAccess().getTablePreorderAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePreorder__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePreorder__Group__1__Impl
+	rule__TablePreorder__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePreorder__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePreorderAccess().getPreorderKeyword_1()); }
+	'preorder'
+	{ after(grammarAccess.getTablePreorderAccess().getPreorderKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePreorder__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePreorder__Group__2__Impl
+	rule__TablePreorder__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePreorder__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePreorderAccess().getColumnAssignment_2()); }
+	(rule__TablePreorder__ColumnAssignment_2)
+	{ after(grammarAccess.getTablePreorderAccess().getColumnAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePreorder__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TablePreorder__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePreorder__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTablePreorderAccess().getAscendingAssignment_3()); }
+	(rule__TablePreorder__AscendingAssignment_3)?
+	{ after(grammarAccess.getTablePreorderAccess().getAscendingAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableValue__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group__0__Impl
+	rule__TableValue__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getTableValueAction_0()); }
+	()
+	{ after(grammarAccess.getTableValueAccess().getTableValueAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group__1__Impl
+	rule__TableValue__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getValueKeyword_1()); }
+	'value'
+	{ after(grammarAccess.getTableValueAccess().getValueKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group__2__Impl
+	rule__TableValue__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getColumnAssignment_2()); }
+	(rule__TableValue__ColumnAssignment_2)
+	{ after(grammarAccess.getTableValueAccess().getColumnAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group__3__Impl
+	rule__TableValue__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getUnorderedGroup_3()); }
+	(rule__TableValue__UnorderedGroup_3)
+	{ after(grammarAccess.getTableValueAccess().getUnorderedGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getUnorderedGroup_4()); }
+	(rule__TableValue__UnorderedGroup_4)
+	{ after(grammarAccess.getTableValueAccess().getUnorderedGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableValue__Group_3_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_3_1__0__Impl
+	rule__TableValue__Group_3_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_3_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getIconKeyword_3_1_0()); }
+	'icon'
+	{ after(grammarAccess.getTableValueAccess().getIconKeyword_3_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_3_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_3_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_3_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getIconNameAssignment_3_1_1()); }
+	(rule__TableValue__IconNameAssignment_3_1_1)
+	{ after(grammarAccess.getTableValueAccess().getIconNameAssignment_3_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableValue__Group_3_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_3_3__0__Impl
+	rule__TableValue__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_3_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getHasImageAssignment_3_3_0()); }
+	(rule__TableValue__HasImageAssignment_3_3_0)
+	{ after(grammarAccess.getTableValueAccess().getHasImageAssignment_3_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_3_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_3_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getImageAssignment_3_3_1()); }
+	(rule__TableValue__ImageAssignment_3_3_1)
+	{ after(grammarAccess.getTableValueAccess().getImageAssignment_3_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableValue__Group_4_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_4_0__0__Impl
+	rule__TableValue__Group_4_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()); }
+	'intervals'
+	{ after(grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_4_0__1__Impl
+	rule__TableValue__Group_4_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getHideLabelIntervalAssignment_4_0_1()); }
+	(rule__TableValue__HideLabelIntervalAssignment_4_0_1)?
+	{ after(grammarAccess.getTableValueAccess().getHideLabelIntervalAssignment_4_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_4_0__2__Impl
+	rule__TableValue__Group_4_0__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()); }
+	'{'
+	{ after(grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_0__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_4_0__3__Impl
+	rule__TableValue__Group_4_0__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_0__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getIntervalsAssignment_4_0_3()); }
+	(rule__TableValue__IntervalsAssignment_4_0_3)*
+	{ after(grammarAccess.getTableValueAccess().getIntervalsAssignment_4_0_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_0__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_4_0__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_0__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()); }
+	'}'
+	{ after(grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableValue__Group_4_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_4_1__0__Impl
+	rule__TableValue__Group_4_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()); }
+	'lookups'
+	{ after(grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_4_1__1__Impl
+	rule__TableValue__Group_4_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getHideLabelLookupAssignment_4_1_1()); }
+	(rule__TableValue__HideLabelLookupAssignment_4_1_1)?
+	{ after(grammarAccess.getTableValueAccess().getHideLabelLookupAssignment_4_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_4_1__2__Impl
+	rule__TableValue__Group_4_1__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()); }
+	'{'
+	{ after(grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_1__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_4_1__3__Impl
+	rule__TableValue__Group_4_1__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_1__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getLookupsAssignment_4_1_3()); }
+	(rule__TableValue__LookupsAssignment_4_1_3)*
+	{ after(grammarAccess.getTableValueAccess().getLookupsAssignment_4_1_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_1__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__Group_4_1__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__Group_4_1__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()); }
+	'}'
+	{ after(grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableFormatter__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableFormatter__Group__0__Impl
+	rule__TableFormatter__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableFormatter__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableFormatterAccess().getTableFormatterAction_0()); }
+	()
+	{ after(grammarAccess.getTableFormatterAccess().getTableFormatterAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableFormatter__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableFormatter__Group__1__Impl
+	rule__TableFormatter__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableFormatter__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableFormatterAccess().getFormatterKeyword_1()); }
+	'formatter'
+	{ after(grammarAccess.getTableFormatterAccess().getFormatterKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableFormatter__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableFormatter__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableFormatter__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableFormatterAccess().getFormatAssignment_2()); }
+	(rule__TableFormatter__FormatAssignment_2)
+	{ after(grammarAccess.getTableFormatterAccess().getFormatAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableImage__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableImage__Group__0__Impl
+	rule__TableImage__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableImageAccess().getTableImageAction_0()); }
+	()
+	{ after(grammarAccess.getTableImageAccess().getTableImageAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableImage__Group__1__Impl
+	rule__TableImage__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableImageAccess().getPathKeyword_1()); }
+	'path'
+	{ after(grammarAccess.getTableImageAccess().getPathKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableImage__Group__2__Impl
+	rule__TableImage__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableImageAccess().getImagePathPatternAssignment_2()); }
+	(rule__TableImage__ImagePathPatternAssignment_2)
+	{ after(grammarAccess.getTableImageAccess().getImagePathPatternAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableImage__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableImageAccess().getUnorderedGroup_3()); }
+	(rule__TableImage__UnorderedGroup_3)
+	{ after(grammarAccess.getTableImageAccess().getUnorderedGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableImage__Group_3_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableImage__Group_3_2__0__Impl
+	rule__TableImage__Group_3_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__Group_3_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableImageAccess().getResizeAssignment_3_2_0()); }
+	(rule__TableImage__ResizeAssignment_3_2_0)
+	{ after(grammarAccess.getTableImageAccess().getResizeAssignment_3_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__Group_3_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableImage__Group_3_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__Group_3_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableImageAccess().getResizeStringAssignment_3_2_1()); }
+	(rule__TableImage__ResizeStringAssignment_3_2_1)
+	{ after(grammarAccess.getTableImageAccess().getResizeStringAssignment_3_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTooltipPattern__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTooltipPattern__Group__0__Impl
+	rule__TableTooltipPattern__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTooltipPattern__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTooltipPatternAccess().getTableTooltipPatternAction_0()); }
+	()
+	{ after(grammarAccess.getTableTooltipPatternAccess().getTableTooltipPatternAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTooltipPattern__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTooltipPattern__Group__1__Impl
+	rule__TableTooltipPattern__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTooltipPattern__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternKeyword_1()); }
+	'tooltipPattern'
+	{ after(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTooltipPattern__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTooltipPattern__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTooltipPattern__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternAssignment_2()); }
+	(rule__TableTooltipPattern__TooltipPatternAssignment_2)
+	{ after(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTask__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTask__Group__0__Impl
+	rule__TableTask__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTask__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTaskAccess().getTableTaskAction_0()); }
+	()
+	{ after(grammarAccess.getTableTaskAccess().getTableTaskAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTask__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTask__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTask__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTaskAccess().getTaskIdKeyword_1()); }
+	'taskId'
+	{ after(grammarAccess.getTableTaskAccess().getTaskIdKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableAllColumns__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAllColumns__Group__0__Impl
+	rule__TableAllColumns__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAllColumns__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAllColumnsAccess().getTableAllColumnsAction_0()); }
+	()
+	{ after(grammarAccess.getTableAllColumnsAccess().getTableAllColumnsAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAllColumns__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAllColumns__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAllColumns__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAllColumnsAccess().getAllColumnsKeyword_1()); }
+	'allColumns'
+	{ after(grammarAccess.getTableAllColumnsAccess().getAllColumnsKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableOrdinal__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableOrdinal__Group__0__Impl
+	rule__TableOrdinal__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableOrdinal__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableOrdinalAccess().getOrdinalKeyword_0()); }
+	'ordinal'
+	{ after(grammarAccess.getTableOrdinalAccess().getOrdinalKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableOrdinal__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableOrdinal__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableOrdinal__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableOrdinalAccess().getValueRefAssignment_1()); }
+	(rule__TableOrdinal__ValueRefAssignment_1)
+	{ after(grammarAccess.getTableOrdinalAccess().getValueRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableColumn__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableColumn__Group__0__Impl
+	rule__TableColumn__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableColumn__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableColumnAccess().getColumnKeyword_0()); }
+	'column'
+	{ after(grammarAccess.getTableColumnAccess().getColumnKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableColumn__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableColumn__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableColumn__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableColumnAccess().getValueRefAssignment_1()); }
+	(rule__TableColumn__ValueRefAssignment_1)
+	{ after(grammarAccess.getTableColumnAccess().getValueRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableMeasure__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableMeasure__Group__0__Impl
+	rule__TableMeasure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableMeasure__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableMeasureAccess().getMeasureKeyword_0()); }
+	'measure'
+	{ after(grammarAccess.getTableMeasureAccess().getMeasureKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableMeasure__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableMeasure__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableMeasure__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableMeasureAccess().getValueRefAssignment_1()); }
+	(rule__TableMeasure__ValueRefAssignment_1)
+	{ after(grammarAccess.getTableMeasureAccess().getValueRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableDerived__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDerived__Group__0__Impl
+	rule__TableDerived__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDerived__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDerivedAccess().getDerivedKeyword_0()); }
+	'derived'
+	{ after(grammarAccess.getTableDerivedAccess().getDerivedKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDerived__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDerived__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDerived__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDerivedAccess().getValueRefAssignment_1()); }
+	(rule__TableDerived__ValueRefAssignment_1)
+	{ after(grammarAccess.getTableDerivedAccess().getValueRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableHierarchy__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableHierarchy__Group__0__Impl
+	rule__TableHierarchy__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableHierarchy__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableHierarchyAccess().getLevelKeyword_0()); }
+	'level'
+	{ after(grammarAccess.getTableHierarchyAccess().getLevelKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableHierarchy__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableHierarchy__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableHierarchy__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableHierarchyAccess().getValueRefAssignment_1()); }
+	(rule__TableHierarchy__ValueRefAssignment_1)
+	{ after(grammarAccess.getTableHierarchyAccess().getValueRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableAttribute__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAttribute__Group__0__Impl
+	rule__TableAttribute__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAttribute__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAttributeAccess().getTableAttributeAction_0()); }
+	()
+	{ after(grammarAccess.getTableAttributeAccess().getTableAttributeAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAttribute__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAttribute__Group__1__Impl
+	rule__TableAttribute__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAttribute__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAttributeAccess().getPropertyKeyword_1()); }
+	'property'
+	{ after(grammarAccess.getTableAttributeAccess().getPropertyKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAttribute__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAttribute__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAttribute__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAttributeAccess().getValueRefAssignment_2()); }
+	(rule__TableAttribute__ValueRefAssignment_2)
+	{ after(grammarAccess.getTableAttributeAccess().getValueRefAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableAggregation__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAggregation__Group__0__Impl
+	rule__TableAggregation__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAggregation__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAggregationAccess().getAggregationKeyword_0()); }
+	'aggregation'
+	{ after(grammarAccess.getTableAggregationAccess().getAggregationKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAggregation__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAggregation__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAggregation__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAggregationAccess().getValueRefAssignment_1()); }
+	(rule__TableAggregation__ValueRefAssignment_1)
+	{ after(grammarAccess.getTableAggregationAccess().getValueRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableNumberInterval__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableNumberInterval__Group__0__Impl
+	rule__TableNumberInterval__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberInterval__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableNumberIntervalAccess().getTableNumberIntervalAction_0()); }
+	()
+	{ after(grammarAccess.getTableNumberIntervalAccess().getTableNumberIntervalAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberInterval__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableNumberInterval__Group__1__Impl
+	rule__TableNumberInterval__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberInterval__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableNumberIntervalAccess().getUpToNumberKeyword_1()); }
+	'upToNumber'
+	{ after(grammarAccess.getTableNumberIntervalAccess().getUpToNumberKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberInterval__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableNumberInterval__Group__2__Impl
+	rule__TableNumberInterval__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberInterval__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueAssignment_2()); }
+	(rule__TableNumberInterval__NumberIntervalValueAssignment_2)
+	{ after(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberInterval__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableNumberInterval__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberInterval__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableNumberIntervalAccess().getNumberRangeAssignment_3()); }
+	(rule__TableNumberInterval__NumberRangeAssignment_3)
+	{ after(grammarAccess.getTableNumberIntervalAccess().getNumberRangeAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableIntInterval__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableIntInterval__Group__0__Impl
+	rule__TableIntInterval__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntInterval__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableIntIntervalAccess().getTableIntIntervalAction_0()); }
+	()
+	{ after(grammarAccess.getTableIntIntervalAccess().getTableIntIntervalAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntInterval__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableIntInterval__Group__1__Impl
+	rule__TableIntInterval__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntInterval__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableIntIntervalAccess().getUpToIntegerKeyword_1()); }
+	'upToInteger'
+	{ after(grammarAccess.getTableIntIntervalAccess().getUpToIntegerKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntInterval__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableIntInterval__Group__2__Impl
+	rule__TableIntInterval__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntInterval__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueAssignment_2()); }
+	(rule__TableIntInterval__IntIntervalValueAssignment_2)
+	{ after(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntInterval__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableIntInterval__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntInterval__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableIntIntervalAccess().getIntRangeAssignment_3()); }
+	(rule__TableIntInterval__IntRangeAssignment_3)
+	{ after(grammarAccess.getTableIntIntervalAccess().getIntRangeAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableDateDayInterval__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDateDayInterval__Group__0__Impl
+	rule__TableDateDayInterval__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayInterval__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDateDayIntervalAccess().getTableDateDayIntervalAction_0()); }
+	()
+	{ after(grammarAccess.getTableDateDayIntervalAccess().getTableDateDayIntervalAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayInterval__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDateDayInterval__Group__1__Impl
+	rule__TableDateDayInterval__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayInterval__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDateDayIntervalAccess().getDaysInPastKeyword_1()); }
+	'daysInPast'
+	{ after(grammarAccess.getTableDateDayIntervalAccess().getDaysInPastKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayInterval__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDateDayInterval__Group__2__Impl
+	rule__TableDateDayInterval__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayInterval__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueAssignment_2()); }
+	(rule__TableDateDayInterval__DateIntervalValueAssignment_2)
+	{ after(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayInterval__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDateDayInterval__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayInterval__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDateDayIntervalAccess().getDateRangeAssignment_3()); }
+	(rule__TableDateDayInterval__DateRangeAssignment_3)
+	{ after(grammarAccess.getTableDateDayIntervalAccess().getDateRangeAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableIntLookup__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableIntLookup__Group__0__Impl
+	rule__TableIntLookup__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntLookup__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableIntLookupAccess().getTableIntLookupAction_0()); }
+	()
+	{ after(grammarAccess.getTableIntLookupAccess().getTableIntLookupAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntLookup__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableIntLookup__Group__1__Impl
+	rule__TableIntLookup__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntLookup__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableIntLookupAccess().getIntegerKeyword_1()); }
+	'integer'
+	{ after(grammarAccess.getTableIntLookupAccess().getIntegerKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntLookup__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableIntLookup__Group__2__Impl
+	rule__TableIntLookup__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntLookup__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableIntLookupAccess().getLookupValueAssignment_2()); }
+	(rule__TableIntLookup__LookupValueAssignment_2)
+	{ after(grammarAccess.getTableIntLookupAccess().getLookupValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntLookup__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableIntLookup__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntLookup__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableIntLookupAccess().getDiscreteAssignment_3()); }
+	(rule__TableIntLookup__DiscreteAssignment_3)
+	{ after(grammarAccess.getTableIntLookupAccess().getDiscreteAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableNumberLookup__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableNumberLookup__Group__0__Impl
+	rule__TableNumberLookup__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberLookup__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableNumberLookupAccess().getTableNumberLookupAction_0()); }
+	()
+	{ after(grammarAccess.getTableNumberLookupAccess().getTableNumberLookupAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberLookup__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableNumberLookup__Group__1__Impl
+	rule__TableNumberLookup__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberLookup__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableNumberLookupAccess().getNumberKeyword_1()); }
+	'number'
+	{ after(grammarAccess.getTableNumberLookupAccess().getNumberKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberLookup__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableNumberLookup__Group__2__Impl
+	rule__TableNumberLookup__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberLookup__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableNumberLookupAccess().getLookupValueAssignment_2()); }
+	(rule__TableNumberLookup__LookupValueAssignment_2)
+	{ after(grammarAccess.getTableNumberLookupAccess().getLookupValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberLookup__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableNumberLookup__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberLookup__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableNumberLookupAccess().getDiscreteAssignment_3()); }
+	(rule__TableNumberLookup__DiscreteAssignment_3)
+	{ after(grammarAccess.getTableNumberLookupAccess().getDiscreteAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableStringLookup__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableStringLookup__Group__0__Impl
+	rule__TableStringLookup__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableStringLookup__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableStringLookupAccess().getTableStringLookupAction_0()); }
+	()
+	{ after(grammarAccess.getTableStringLookupAccess().getTableStringLookupAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableStringLookup__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableStringLookup__Group__1__Impl
+	rule__TableStringLookup__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableStringLookup__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableStringLookupAccess().getStringKeyword_1()); }
+	'string'
+	{ after(grammarAccess.getTableStringLookupAccess().getStringKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableStringLookup__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableStringLookup__Group__2__Impl
+	rule__TableStringLookup__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableStringLookup__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableStringLookupAccess().getLookupValueAssignment_2()); }
+	(rule__TableStringLookup__LookupValueAssignment_2)
+	{ after(grammarAccess.getTableStringLookupAccess().getLookupValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableStringLookup__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableStringLookup__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableStringLookup__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableStringLookupAccess().getDiscreteAssignment_3()); }
+	(rule__TableStringLookup__DiscreteAssignment_3)
+	{ after(grammarAccess.getTableStringLookupAccess().getDiscreteAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableDateDayLookup__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDateDayLookup__Group__0__Impl
+	rule__TableDateDayLookup__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayLookup__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDateDayLookupAccess().getTableDateDayLookupAction_0()); }
+	()
+	{ after(grammarAccess.getTableDateDayLookupAccess().getTableDateDayLookupAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayLookup__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDateDayLookup__Group__1__Impl
+	rule__TableDateDayLookup__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayLookup__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDateDayLookupAccess().getDaysInPastKeyword_1()); }
+	'daysInPast'
+	{ after(grammarAccess.getTableDateDayLookupAccess().getDaysInPastKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayLookup__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDateDayLookup__Group__2__Impl
+	rule__TableDateDayLookup__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayLookup__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDateDayLookupAccess().getLookupValueAssignment_2()); }
+	(rule__TableDateDayLookup__LookupValueAssignment_2)
+	{ after(grammarAccess.getTableDateDayLookupAccess().getLookupValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayLookup__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDateDayLookup__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayLookup__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDateDayLookupAccess().getDiscreteAssignment_3()); }
+	(rule__TableDateDayLookup__DiscreteAssignment_3)
+	{ after(grammarAccess.getTableDateDayLookupAccess().getDiscreteAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableDatamart__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDatamart__Group__0__Impl
+	rule__TableDatamart__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDatamartAccess().getDatamartKeyword_0()); }
+	'datamart'
+	{ after(grammarAccess.getTableDatamartAccess().getDatamartKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDatamart__Group__1__Impl
+	rule__TableDatamart__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDatamartAccess().getDatamartRefAssignment_1()); }
+	(rule__TableDatamart__DatamartRefAssignment_1)
+	{ after(grammarAccess.getTableDatamartAccess().getDatamartRefAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDatamart__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDatamartAccess().getGroup_2()); }
+	(rule__TableDatamart__Group_2__0)?
+	{ after(grammarAccess.getTableDatamartAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableDatamart__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDatamart__Group_2__0__Impl
+	rule__TableDatamart__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDatamartAccess().getLeftCurlyBracketKeyword_2_0()); }
+	'{'
+	{ after(grammarAccess.getTableDatamartAccess().getLeftCurlyBracketKeyword_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDatamart__Group_2__1__Impl
+	rule__TableDatamart__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDatamartAccess().getElementsAssignment_2_1()); }
+	(rule__TableDatamart__ElementsAssignment_2_1)*
+	{ after(grammarAccess.getTableDatamartAccess().getElementsAssignment_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__Group_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDatamart__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__Group_2__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDatamartAccess().getRightCurlyBracketKeyword_2_2()); }
+	'}'
+	{ after(grammarAccess.getTableDatamartAccess().getRightCurlyBracketKeyword_2_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableAxis__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group__0__Impl
+	rule__TableAxis__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getAxisKeyword_0()); }
+	'axis'
+	{ after(grammarAccess.getTableAxisAccess().getAxisKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group__1__Impl
+	rule__TableAxis__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getAxisAssignment_1()); }
+	(rule__TableAxis__AxisAssignment_1)
+	{ after(grammarAccess.getTableAxisAccess().getAxisAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group__2__Impl
+	rule__TableAxis__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getUnorderedGroup_2()); }
+	(rule__TableAxis__UnorderedGroup_2)
+	{ after(grammarAccess.getTableAxisAccess().getUnorderedGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group__3__Impl
+	rule__TableAxis__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getGroup_3()); }
+	(rule__TableAxis__Group_3__0)?
+	{ after(grammarAccess.getTableAxisAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getGroup_4()); }
+	(rule__TableAxis__Group_4__0)?
+	{ after(grammarAccess.getTableAxisAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableAxis__Group_2_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group_2_0__0__Impl
+	rule__TableAxis__Group_2_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_2_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getHasRowHeightAssignment_2_0_0()); }
+	(rule__TableAxis__HasRowHeightAssignment_2_0_0)
+	{ after(grammarAccess.getTableAxisAccess().getHasRowHeightAssignment_2_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_2_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group_2_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_2_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getRowHeightAssignment_2_0_1()); }
+	(rule__TableAxis__RowHeightAssignment_2_0_1)
+	{ after(grammarAccess.getTableAxisAccess().getRowHeightAssignment_2_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableAxis__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group_3__0__Impl
+	rule__TableAxis__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getHasDetailsAssignment_3_0()); }
+	(rule__TableAxis__HasDetailsAssignment_3_0)
+	{ after(grammarAccess.getTableAxisAccess().getHasDetailsAssignment_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group_3__1__Impl
+	rule__TableAxis__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_3_1()); }
+	'{'
+	{ after(grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group_3__2__Impl
+	rule__TableAxis__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getValuesAssignment_3_2()); }
+	(rule__TableAxis__ValuesAssignment_3_2)*
+	{ after(grammarAccess.getTableAxisAccess().getValuesAssignment_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_3__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_3_3()); }
+	'}'
+	{ after(grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableAxis__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group_4__0__Impl
+	rule__TableAxis__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getHasEventsAssignment_4_0()); }
+	(rule__TableAxis__HasEventsAssignment_4_0)
+	{ after(grammarAccess.getTableAxisAccess().getHasEventsAssignment_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group_4__1__Impl
+	rule__TableAxis__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_4_1()); }
+	'{'
+	{ after(grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_4__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group_4__2__Impl
+	rule__TableAxis__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_4__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getEventsAssignment_4_2()); }
+	(rule__TableAxis__EventsAssignment_4_2)*
+	{ after(grammarAccess.getTableAxisAccess().getEventsAssignment_4_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_4__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__Group_4__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__Group_4__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_4_3()); }
+	'}'
+	{ after(grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_4_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTextColor__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTextColor__Group__0__Impl
+	rule__TableTextColor__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTextColor__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTextColorAccess().getTextcolorKeyword_0()); }
+	'textcolor'
+	{ after(grammarAccess.getTableTextColorAccess().getTextcolorKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTextColor__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTextColor__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTextColor__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTextColorAccess().getRgbAssignment_1()); }
+	(rule__TableTextColor__RgbAssignment_1)
+	{ after(grammarAccess.getTableTextColorAccess().getRgbAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableCellColor__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableCellColor__Group__0__Impl
+	rule__TableCellColor__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableCellColor__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableCellColorAccess().getCellcolorKeyword_0()); }
+	'cellcolor'
+	{ after(grammarAccess.getTableCellColorAccess().getCellcolorKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableCellColor__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableCellColor__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableCellColor__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableCellColorAccess().getRgbAssignment_1()); }
+	(rule__TableCellColor__RgbAssignment_1)
+	{ after(grammarAccess.getTableCellColorAccess().getRgbAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableIcon__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableIcon__Group__0__Impl
+	rule__TableIcon__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIcon__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableIconAccess().getIconKeyword_0()); }
+	'icon'
+	{ after(grammarAccess.getTableIconAccess().getIconKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIcon__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableIcon__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIcon__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableIconAccess().getIconAssignment_1()); }
+	(rule__TableIcon__IconAssignment_1)
+	{ after(grammarAccess.getTableIconAccess().getIconAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTrend__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTrend__Group__0__Impl
+	rule__TableTrend__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTrend__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTrendAccess().getTrendKeyword_0()); }
+	'trend'
+	{ after(grammarAccess.getTableTrendAccess().getTrendKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTrend__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTrend__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTrend__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTrendAccess().getIconAssignment_1()); }
+	(rule__TableTrend__IconAssignment_1)
+	{ after(grammarAccess.getTableTrendAccess().getIconAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTooltip__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTooltip__Group__0__Impl
+	rule__TableTooltip__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTooltip__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTooltipAccess().getTooltipKeyword_0()); }
+	'tooltip'
+	{ after(grammarAccess.getTableTooltipAccess().getTooltipKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTooltip__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTooltip__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTooltip__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableTooltipAccess().getTooltipAssignment_1()); }
+	(rule__TableTooltip__TooltipAssignment_1)
+	{ after(grammarAccess.getTableTooltipAccess().getTooltipAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableGrid__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group__0__Impl
+	rule__TableGrid__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getTableGridAction_0()); }
+	()
+	{ after(grammarAccess.getTableGridAccess().getTableGridAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group__1__Impl
+	rule__TableGrid__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getGridKeyword_1()); }
+	'grid'
+	{ after(grammarAccess.getTableGridAccess().getGridKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group__2__Impl
+	rule__TableGrid__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getUnorderedGroup_2()); }
+	(rule__TableGrid__UnorderedGroup_2)
+	{ after(grammarAccess.getTableGridAccess().getUnorderedGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group__3__Impl
+	rule__TableGrid__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getUnorderedGroup_3()); }
+	(rule__TableGrid__UnorderedGroup_3)
+	{ after(grammarAccess.getTableGridAccess().getUnorderedGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getGroup_4()); }
+	(rule__TableGrid__Group_4__0)?
+	{ after(grammarAccess.getTableGridAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableGrid__Group_2_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group_2_1__0__Impl
+	rule__TableGrid__Group_2_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_2_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getRowheaderKeyword_2_1_0()); }
+	'rowheader'
+	{ after(grammarAccess.getTableGridAccess().getRowheaderKeyword_2_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_2_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group_2_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_2_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getHeaderModeAssignment_2_1_1()); }
+	(rule__TableGrid__HeaderModeAssignment_2_1_1)
+	{ after(grammarAccess.getTableGridAccess().getHeaderModeAssignment_2_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableGrid__Group_3_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group_3_0__0__Impl
+	rule__TableGrid__Group_3_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_3_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getPollingAssignment_3_0_0()); }
+	(rule__TableGrid__PollingAssignment_3_0_0)
+	{ after(grammarAccess.getTableGridAccess().getPollingAssignment_3_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_3_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group_3_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_3_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getPollingTimeAssignment_3_0_1()); }
+	(rule__TableGrid__PollingTimeAssignment_3_0_1)
+	{ after(grammarAccess.getTableGridAccess().getPollingTimeAssignment_3_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableGrid__Group_3_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group_3_3__0__Impl
+	rule__TableGrid__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_3_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getToolbarKeyword_3_3_0()); }
+	'toolbar'
+	{ after(grammarAccess.getTableGridAccess().getToolbarKeyword_3_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_3_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_3_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getToolbarAssignment_3_3_1()); }
+	(rule__TableGrid__ToolbarAssignment_3_3_1)
+	{ after(grammarAccess.getTableGridAccess().getToolbarAssignment_3_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableGrid__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group_4__0__Impl
+	rule__TableGrid__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getUsingKeyword_4_0()); }
+	'using'
+	{ after(grammarAccess.getTableGridAccess().getUsingKeyword_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableGridAccess().getSourceAssignment_4_1()); }
+	(rule__TableGrid__SourceAssignment_4_1)
+	{ after(grammarAccess.getTableGridAccess().getSourceAssignment_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Property__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Property__Group__0__Impl
+	rule__Property__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyAccess().getEditableAssignment_0()); }
+	(rule__Property__EditableAssignment_0)?
+	{ after(grammarAccess.getPropertyAccess().getEditableAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Property__Group__1__Impl
+	rule__Property__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyAccess().getPropKeyword_1()); }
+	'prop'
+	{ after(grammarAccess.getPropertyAccess().getPropKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Property__Group__2__Impl
+	rule__Property__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyAccess().getPathAssignment_2()); }
+	(rule__Property__PathAssignment_2)
+	{ after(grammarAccess.getPropertyAccess().getPathAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Property__Group__3__Impl
+	rule__Property__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyAccess().getStyleKeyword_3()); }
+	'style'
+	{ after(grammarAccess.getPropertyAccess().getStyleKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Property__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyAccess().getStyleAssignment_4()); }
+	(rule__Property__StyleAssignment_4)
+	{ after(grammarAccess.getPropertyAccess().getStyleAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableDtoDatasource__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDtoDatasource__Group__0__Impl
+	rule__TableDtoDatasource__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDtoDatasourceAccess().getDtoKeyword_0()); }
+	'dto'
+	{ after(grammarAccess.getTableDtoDatasourceAccess().getDtoKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDtoDatasource__Group__1__Impl
+	rule__TableDtoDatasource__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceAssignment_1()); }
+	(rule__TableDtoDatasource__DtoSourceAssignment_1)
+	{ after(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDtoDatasource__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDtoDatasourceAccess().getGroup_2()); }
+	(rule__TableDtoDatasource__Group_2__0)?
+	{ after(grammarAccess.getTableDtoDatasourceAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableDtoDatasource__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDtoDatasource__Group_2__0__Impl
+	rule__TableDtoDatasource__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDtoDatasourceAccess().getLeftCurlyBracketKeyword_2_0()); }
+	'{'
+	{ after(grammarAccess.getTableDtoDatasourceAccess().getLeftCurlyBracketKeyword_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDtoDatasource__Group_2__1__Impl
+	rule__TableDtoDatasource__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDtoDatasourceAccess().getPropertiesAssignment_2_1()); }
+	(rule__TableDtoDatasource__PropertiesAssignment_2_1)*
+	{ after(grammarAccess.getTableDtoDatasourceAccess().getPropertiesAssignment_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__Group_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableDtoDatasource__Group_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__Group_2__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTableDtoDatasourceAccess().getRightCurlyBracketKeyword_2_2()); }
+	'}'
+	{ after(grammarAccess.getTableDtoDatasourceAccess().getRightCurlyBracketKeyword_2_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NestedField__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NestedField__Group__0__Impl
+	rule__NestedField__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedField__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNestedFieldAccess().getCxGridNestedFieldAction_0()); }
+	()
+	{ after(grammarAccess.getNestedFieldAccess().getCxGridNestedFieldAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedField__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NestedField__Group__1__Impl
+	rule__NestedField__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedField__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNestedFieldAccess().getFieldAssignment_1()); }
+	(rule__NestedField__FieldAssignment_1)
+	{ after(grammarAccess.getNestedFieldAccess().getFieldAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedField__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NestedField__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedField__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNestedFieldAccess().getPathAssignment_2()); }
+	(rule__NestedField__PathAssignment_2)?
+	{ after(grammarAccess.getNestedFieldAccess().getPathAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NestedPath__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NestedPath__Group__0__Impl
+	rule__NestedPath__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedPath__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNestedPathAccess().getCxGridNestedPathAction_0()); }
+	()
+	{ after(grammarAccess.getNestedPathAccess().getCxGridNestedPathAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedPath__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NestedPath__Group__1__Impl
+	rule__NestedPath__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedPath__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNestedPathAccess().getFullStopKeyword_1()); }
+	'.'
+	{ after(grammarAccess.getNestedPathAccess().getFullStopKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedPath__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NestedPath__Group__2__Impl
+	rule__NestedPath__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedPath__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNestedPathAccess().getFieldAssignment_2()); }
+	(rule__NestedPath__FieldAssignment_2)
+	{ after(grammarAccess.getNestedPathAccess().getFieldAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedPath__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NestedPath__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedPath__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNestedPathAccess().getPathAssignment_3()); }
+	(rule__NestedPath__PathAssignment_3)?
+	{ after(grammarAccess.getNestedPathAccess().getPathAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyButtonStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyButtonStyle__Group__0__Impl
+	rule__PropertyButtonStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyButtonStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyButtonStyleAccess().getCxGridPropButtonStyleAction_0()); }
+	()
+	{ after(grammarAccess.getPropertyButtonStyleAccess().getCxGridPropButtonStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyButtonStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyButtonStyle__Group__1__Impl
+	rule__PropertyButtonStyle__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyButtonStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyButtonStyleAccess().getButtonStyleKeyword_1()); }
+	'buttonStyle'
+	{ after(grammarAccess.getPropertyButtonStyleAccess().getButtonStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyButtonStyle__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyButtonStyle__Group__2__Impl
+	rule__PropertyButtonStyle__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyButtonStyle__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyButtonStyleAccess().getEventTopicKeyword_2()); }
+	'eventTopic'
+	{ after(grammarAccess.getPropertyButtonStyleAccess().getEventTopicKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyButtonStyle__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyButtonStyle__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyButtonStyle__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyButtonStyleAccess().getEventTopicAssignment_3()); }
+	(rule__PropertyButtonStyle__EventTopicAssignment_3)
+	{ after(grammarAccess.getPropertyButtonStyleAccess().getEventTopicAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyHtmlStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyHtmlStyle__Group__0__Impl
+	rule__PropertyHtmlStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyHtmlStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyHtmlStyleAccess().getCxGridPropHtmlStyleAction_0()); }
+	()
+	{ after(grammarAccess.getPropertyHtmlStyleAccess().getCxGridPropHtmlStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyHtmlStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyHtmlStyle__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyHtmlStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyHtmlStyleAccess().getHtmlStyleKeyword_1()); }
+	'htmlStyle'
+	{ after(grammarAccess.getPropertyHtmlStyleAccess().getHtmlStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyBooleanStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyBooleanStyle__Group__0__Impl
+	rule__PropertyBooleanStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyBooleanStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyBooleanStyleAccess().getCxGridPropBooleanStyleAction_0()); }
+	()
+	{ after(grammarAccess.getPropertyBooleanStyleAccess().getCxGridPropBooleanStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyBooleanStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyBooleanStyle__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyBooleanStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyBooleanStyleAccess().getBoolStyleKeyword_1()); }
+	'boolStyle'
+	{ after(grammarAccess.getPropertyBooleanStyleAccess().getBoolStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDateStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyDateStyle__Group__0__Impl
+	rule__PropertyDateStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyDateStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyDateStyleAccess().getCxGridPropDateStyleAction_0()); }
+	()
+	{ after(grammarAccess.getPropertyDateStyleAccess().getCxGridPropDateStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyDateStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyDateStyle__Group__1__Impl
+	rule__PropertyDateStyle__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyDateStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyDateStyleAccess().getDateStyleKeyword_1()); }
+	'dateStyle'
+	{ after(grammarAccess.getPropertyDateStyleAccess().getDateStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyDateStyle__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyDateStyle__Group__2__Impl
+	rule__PropertyDateStyle__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyDateStyle__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyDateStyleAccess().getFormatKeyword_2()); }
+	'format'
+	{ after(grammarAccess.getPropertyDateStyleAccess().getFormatKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyDateStyle__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyDateStyle__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyDateStyle__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyDateStyleAccess().getDateFormatAssignment_3()); }
+	(rule__PropertyDateStyle__DateFormatAssignment_3)
+	{ after(grammarAccess.getPropertyDateStyleAccess().getDateFormatAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyNumberStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyNumberStyle__Group__0__Impl
+	rule__PropertyNumberStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyNumberStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyNumberStyleAccess().getCxGridPropNumberStyleAction_0()); }
+	()
+	{ after(grammarAccess.getPropertyNumberStyleAccess().getCxGridPropNumberStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyNumberStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyNumberStyle__Group__1__Impl
+	rule__PropertyNumberStyle__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyNumberStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyNumberStyleAccess().getNumberStyleKeyword_1()); }
+	'numberStyle'
+	{ after(grammarAccess.getPropertyNumberStyleAccess().getNumberStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyNumberStyle__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyNumberStyle__Group__2__Impl
+	rule__PropertyNumberStyle__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyNumberStyle__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyNumberStyleAccess().getFormatKeyword_2()); }
+	'format'
+	{ after(grammarAccess.getPropertyNumberStyleAccess().getFormatKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyNumberStyle__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyNumberStyle__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyNumberStyle__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyNumberStyleAccess().getNumberFormatAssignment_3()); }
+	(rule__PropertyNumberStyle__NumberFormatAssignment_3)
+	{ after(grammarAccess.getPropertyNumberStyleAccess().getNumberFormatAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyProgressbarStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyProgressbarStyle__Group__0__Impl
+	rule__PropertyProgressbarStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyProgressbarStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyProgressbarStyleAccess().getCxGridPropProgressbarStyleAction_0()); }
+	()
+	{ after(grammarAccess.getPropertyProgressbarStyleAccess().getCxGridPropProgressbarStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyProgressbarStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyProgressbarStyle__Group__1__Impl
+	rule__PropertyProgressbarStyle__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyProgressbarStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyProgressbarStyleAccess().getProgressbarStyleKeyword_1()); }
+	'progressbarStyle'
+	{ after(grammarAccess.getPropertyProgressbarStyleAccess().getProgressbarStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyProgressbarStyle__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyProgressbarStyle__Group__2__Impl
+	rule__PropertyProgressbarStyle__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyProgressbarStyle__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyProgressbarStyleAccess().getMaxKeyword_2()); }
+	'max'
+	{ after(grammarAccess.getPropertyProgressbarStyleAccess().getMaxKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyProgressbarStyle__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyProgressbarStyle__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyProgressbarStyle__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueAssignment_3()); }
+	(rule__PropertyProgressbarStyle__MaxValueAssignment_3)
+	{ after(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GridPropIndicatorStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GridPropIndicatorStyle__Group__0__Impl
+	rule__GridPropIndicatorStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGridPropIndicatorStyleAccess().getCxGridPropIndicatorStyleAction_0()); }
+	()
+	{ after(grammarAccess.getGridPropIndicatorStyleAccess().getCxGridPropIndicatorStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GridPropIndicatorStyle__Group__1__Impl
+	rule__GridPropIndicatorStyle__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGridPropIndicatorStyleAccess().getIndicatorStyleKeyword_1()); }
+	'indicatorStyle'
+	{ after(grammarAccess.getGridPropIndicatorStyleAccess().getIndicatorStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GridPropIndicatorStyle__Group__2__Impl
+	rule__GridPropIndicatorStyle__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGridPropIndicatorStyleAccess().getGreenFromKeyword_2()); }
+	'greenFrom'
+	{ after(grammarAccess.getGridPropIndicatorStyleAccess().getGreenFromKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GridPropIndicatorStyle__Group__3__Impl
+	rule__GridPropIndicatorStyle__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsAssignment_3()); }
+	(rule__GridPropIndicatorStyle__GreenStartsAssignment_3)
+	{ after(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GridPropIndicatorStyle__Group__4__Impl
+	rule__GridPropIndicatorStyle__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGridPropIndicatorStyleAccess().getRedUntilKeyword_4()); }
+	'redUntil'
+	{ after(grammarAccess.getGridPropIndicatorStyleAccess().getRedUntilKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GridPropIndicatorStyle__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsAssignment_5()); }
+	(rule__GridPropIndicatorStyle__RedEndsAssignment_5)
+	{ after(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyQuantityStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group__0__Impl
+	rule__PropertyQuantityStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getCxGridPropQuantityStyleAction_0()); }
+	()
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getCxGridPropQuantityStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group__1__Impl
+	rule__PropertyQuantityStyle__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getQuantityStyleKeyword_1()); }
+	'quantityStyle'
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getQuantityStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group__2__Impl
+	rule__PropertyQuantityStyle__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternAssignment_2()); }
+	(rule__PropertyQuantityStyle__HtmlPatternAssignment_2)?
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group__3__Impl
+	rule__PropertyQuantityStyle__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getValueKeyword_3()); }
+	'value'
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getValueKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group__4__Impl
+	rule__PropertyQuantityStyle__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_4()); }
+	'='
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group__5__Impl
+	rule__PropertyQuantityStyle__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathAssignment_5()); }
+	(rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5)
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group__6__Impl
+	rule__PropertyQuantityStyle__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getGroup_6()); }
+	(rule__PropertyQuantityStyle__Group_6__0)?
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getGroup_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group__7__Impl
+	rule__PropertyQuantityStyle__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getUomKeyword_7()); }
+	'uom'
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getUomKeyword_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group__8__Impl
+	rule__PropertyQuantityStyle__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_8()); }
+	'='
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathAssignment_9()); }
+	(rule__PropertyQuantityStyle__UomPropertyPathAssignment_9)
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathAssignment_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyQuantityStyle__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group_6__0__Impl
+	rule__PropertyQuantityStyle__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getLeftParenthesisKeyword_6_0()); }
+	'('
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getLeftParenthesisKeyword_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group_6__1__Impl
+	rule__PropertyQuantityStyle__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getFormatKeyword_6_1()); }
+	'format'
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getFormatKeyword_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group_6__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group_6__2__Impl
+	rule__PropertyQuantityStyle__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group_6__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatAssignment_6_2()); }
+	(rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2)
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatAssignment_6_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group_6__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyQuantityStyle__Group_6__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__Group_6__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyQuantityStyleAccess().getRightParenthesisKeyword_6_3()); }
+	')'
+	{ after(grammarAccess.getPropertyQuantityStyleAccess().getRightParenthesisKeyword_6_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyPriceStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group__0__Impl
+	rule__PropertyPriceStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getCxGridPropPriceStyleAction_0()); }
+	()
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getCxGridPropPriceStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group__1__Impl
+	rule__PropertyPriceStyle__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getPriceStyleKeyword_1()); }
+	'priceStyle'
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getPriceStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group__2__Impl
+	rule__PropertyPriceStyle__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternAssignment_2()); }
+	(rule__PropertyPriceStyle__HtmlPatternAssignment_2)?
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group__3__Impl
+	rule__PropertyPriceStyle__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getValueKeyword_3()); }
+	'value'
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getValueKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group__4__Impl
+	rule__PropertyPriceStyle__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_4()); }
+	'='
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group__5__Impl
+	rule__PropertyPriceStyle__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathAssignment_5()); }
+	(rule__PropertyPriceStyle__ValuePropertyPathAssignment_5)
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group__6__Impl
+	rule__PropertyPriceStyle__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getGroup_6()); }
+	(rule__PropertyPriceStyle__Group_6__0)?
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getGroup_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group__7__Impl
+	rule__PropertyPriceStyle__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getCurrencyKeyword_7()); }
+	'currency'
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getCurrencyKeyword_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group__8__Impl
+	rule__PropertyPriceStyle__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_8()); }
+	'='
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathAssignment_9()); }
+	(rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9)
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathAssignment_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyPriceStyle__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group_6__0__Impl
+	rule__PropertyPriceStyle__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getLeftParenthesisKeyword_6_0()); }
+	'('
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getLeftParenthesisKeyword_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group_6__1__Impl
+	rule__PropertyPriceStyle__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getFormatKeyword_6_1()); }
+	'format'
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getFormatKeyword_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group_6__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group_6__2__Impl
+	rule__PropertyPriceStyle__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group_6__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatAssignment_6_2()); }
+	(rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2)
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatAssignment_6_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group_6__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyPriceStyle__Group_6__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__Group_6__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyPriceStyleAccess().getRightParenthesisKeyword_6_3()); }
+	')'
+	{ after(grammarAccess.getPropertyPriceStyleAccess().getRightParenthesisKeyword_6_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyTextStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyTextStyle__Group__0__Impl
+	rule__PropertyTextStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyTextStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyTextStyleAccess().getCxGridPropTextStyleAction_0()); }
+	()
+	{ after(grammarAccess.getPropertyTextStyleAccess().getCxGridPropTextStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyTextStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyTextStyle__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyTextStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyTextStyleAccess().getTextStyleKeyword_1()); }
+	'textStyle'
+	{ after(grammarAccess.getPropertyTextStyleAccess().getTextStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyImageStyle__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyImageStyle__Group__0__Impl
+	rule__PropertyImageStyle__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyImageStyleAccess().getCxGridPropImageStyleAction_0()); }
+	()
+	{ after(grammarAccess.getPropertyImageStyleAccess().getCxGridPropImageStyleAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyImageStyle__Group__1__Impl
+	rule__PropertyImageStyle__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyImageStyleAccess().getImageStyleKeyword_1()); }
+	'imageStyle'
+	{ after(grammarAccess.getPropertyImageStyleAccess().getImageStyleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyImageStyle__Group__2__Impl
+	rule__PropertyImageStyle__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyImageStyleAccess().getGroup_2()); }
+	(rule__PropertyImageStyle__Group_2__0)?
+	{ after(grammarAccess.getPropertyImageStyleAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyImageStyle__Group__3__Impl
+	rule__PropertyImageStyle__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyImageStyleAccess().getLeftCurlyBracketKeyword_3()); }
+	'{'
+	{ after(grammarAccess.getPropertyImageStyleAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyImageStyle__Group__4__Impl
+	rule__PropertyImageStyle__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyImageStyleAccess().getConfigsAssignment_4()); }
+	(rule__PropertyImageStyle__ConfigsAssignment_4)*
+	{ after(grammarAccess.getPropertyImageStyleAccess().getConfigsAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyImageStyle__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyImageStyleAccess().getRightCurlyBracketKeyword_5()); }
+	'}'
+	{ after(grammarAccess.getPropertyImageStyleAccess().getRightCurlyBracketKeyword_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PropertyImageStyle__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyImageStyle__Group_2__0__Impl
+	rule__PropertyImageStyle__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyImageStyleAccess().getEventTopicKeyword_2_0()); }
+	'eventTopic'
+	{ after(grammarAccess.getPropertyImageStyleAccess().getEventTopicKeyword_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__PropertyImageStyle__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getPropertyImageStyleAccess().getEventTopicAssignment_2_1()); }
+	(rule__PropertyImageStyle__EventTopicAssignment_2_1)
+	{ after(grammarAccess.getPropertyImageStyleAccess().getEventTopicAssignment_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NumericToResourceStyleConfig__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NumericToResourceStyleConfig__Group__0__Impl
+	rule__NumericToResourceStyleConfig__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNumericToResourceStyleConfigAccess().getNumberKeyword_0()); }
+	'number'
+	{ after(grammarAccess.getNumericToResourceStyleConfigAccess().getNumberKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NumericToResourceStyleConfig__Group__1__Impl
+	rule__NumericToResourceStyleConfig__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareAssignment_1()); }
+	(rule__NumericToResourceStyleConfig__CompareAssignment_1)
+	{ after(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NumericToResourceStyleConfig__Group__2__Impl
+	rule__NumericToResourceStyleConfig__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNumericToResourceStyleConfigAccess().getValueAssignment_2()); }
+	(rule__NumericToResourceStyleConfig__ValueAssignment_2)
+	{ after(grammarAccess.getNumericToResourceStyleConfigAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NumericToResourceStyleConfig__Group__3__Impl
+	rule__NumericToResourceStyleConfig__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNumericToResourceStyleConfigAccess().getThenKeyword_3()); }
+	'then'
+	{ after(grammarAccess.getNumericToResourceStyleConfigAccess().getThenKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__NumericToResourceStyleConfig__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathAssignment_4()); }
+	(rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4)
+	{ after(grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StringToResourceStyleConfig__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringToResourceStyleConfig__Group__0__Impl
+	rule__StringToResourceStyleConfig__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringToResourceStyleConfigAccess().getStringKeyword_0()); }
+	'string'
+	{ after(grammarAccess.getStringToResourceStyleConfigAccess().getStringKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringToResourceStyleConfig__Group__1__Impl
+	rule__StringToResourceStyleConfig__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringToResourceStyleConfigAccess().getCompareAssignment_1()); }
+	(rule__StringToResourceStyleConfig__CompareAssignment_1)
+	{ after(grammarAccess.getStringToResourceStyleConfigAccess().getCompareAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringToResourceStyleConfig__Group__2__Impl
+	rule__StringToResourceStyleConfig__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringToResourceStyleConfigAccess().getValueAssignment_2()); }
+	(rule__StringToResourceStyleConfig__ValueAssignment_2)
+	{ after(grammarAccess.getStringToResourceStyleConfigAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringToResourceStyleConfig__Group__3__Impl
+	rule__StringToResourceStyleConfig__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringToResourceStyleConfigAccess().getThenKeyword_3()); }
+	'then'
+	{ after(grammarAccess.getStringToResourceStyleConfigAccess().getThenKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringToResourceStyleConfig__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathAssignment_4()); }
+	(rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4)
+	{ after(grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LInt__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__LInt__Group__0__Impl
+	rule__LInt__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LInt__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLIntAccess().getAlternatives_0()); }
+	(rule__LInt__Alternatives_0)?
+	{ after(grammarAccess.getLIntAccess().getAlternatives_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LInt__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__LInt__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LInt__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLIntAccess().getINTTerminalRuleCall_1()); }
+	RULE_INT
+	{ after(grammarAccess.getLIntAccess().getINTTerminalRuleCall_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LDouble__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__LDouble__Group__0__Impl
+	rule__LDouble__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LDouble__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLDoubleAccess().getLIntParserRuleCall_0()); }
+	ruleLInt
+	{ after(grammarAccess.getLDoubleAccess().getLIntParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LDouble__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__LDouble__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LDouble__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLDoubleAccess().getGroup_1()); }
+	(rule__LDouble__Group_1__0)?
+	{ after(grammarAccess.getLDoubleAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LDouble__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__LDouble__Group_1__0__Impl
+	rule__LDouble__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LDouble__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLDoubleAccess().getFullStopKeyword_1_0()); }
+	'.'
+	{ after(grammarAccess.getLDoubleAccess().getFullStopKeyword_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LDouble__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__LDouble__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LDouble__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLDoubleAccess().getINTTerminalRuleCall_1_1()); }
+	RULE_INT
+	{ after(grammarAccess.getLDoubleAccess().getINTTerminalRuleCall_1_1()); }
+)
+;
+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().getNumberParserRuleCall_1()); }
+	ruleNumber
+	{ after(grammarAccess.getSignedNumberAccess().getNumberParserRuleCall_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SignedInt__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignedInt__Group__0__Impl
+	rule__SignedInt__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignedInt__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignedIntAccess().getHyphenMinusKeyword_0()); }
+	('-')?
+	{ after(grammarAccess.getSignedIntAccess().getHyphenMinusKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignedInt__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SignedInt__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SignedInt__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSignedIntAccess().getINTTerminalRuleCall_1()); }
+	RULE_INT
+	{ after(grammarAccess.getSignedIntAccess().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();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); }
+	(rule__XAnnotation__AnnotationTypeAssignment_2)
+	{ after(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getGroup_3()); }
+	(rule__XAnnotation__Group_3__0)?
+	{ after(grammarAccess.getXAnnotationAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group_3__0__Impl
+	rule__XAnnotation__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); }
+	('(')
+	{ after(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group_3__1__Impl
+	rule__XAnnotation__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); }
+	(rule__XAnnotation__Alternatives_3_1)?
+	{ after(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); }
+	')'
+	{ after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group_3_1_0__0__Impl
+	rule__XAnnotation__Group_3_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); }
+	(rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0)
+	{ after(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group_3_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); }
+	(rule__XAnnotation__Group_3_1_0_1__0)*
+	{ after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3_1_0_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group_3_1_0_1__0__Impl
+	rule__XAnnotation__Group_3_1_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); }
+	','
+	{ after(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotation__Group_3_1_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); }
+	(rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1)
+	{ after(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValuePair__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValuePair__Group__0__Impl
+	rule__XAnnotationElementValuePair__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); }
+	(rule__XAnnotationElementValuePair__Group_0__0)
+	{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValuePair__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); }
+	(rule__XAnnotationElementValuePair__ValueAssignment_1)
+	{ after(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValuePair__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValuePair__Group_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); }
+	(rule__XAnnotationElementValuePair__Group_0_0__0)
+	{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValuePair__Group_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValuePair__Group_0_0__0__Impl
+	rule__XAnnotationElementValuePair__Group_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); }
+	(rule__XAnnotationElementValuePair__ElementAssignment_0_0_0)
+	{ after(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); }
+	'='
+	{ after(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); }
+	(rule__XAnnotationElementValueOrCommaList__Group_0_0__0)
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); }
+	(rule__XAnnotationElementValueOrCommaList__Group_0_1__0)?
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); }
+	']'
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); }
+	(rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0)
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); }
+	()
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); }
+	'#'
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
+	'['
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); }
+	(rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0)
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); }
+	(rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0)*
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); }
+	','
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); }
+	(rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1)
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); }
+	ruleXAnnotationOrExpression
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); }
+	(rule__XAnnotationElementValueOrCommaList__Group_1_1__0)?
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); }
+	()
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	(
+		{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
+		(rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0)
+		{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
+	)
+	(
+		{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
+		(rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0)*
+		{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
+	)
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); }
+	','
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); }
+	(rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1)
+	{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0__0__Impl
+	rule__XAnnotationElementValue__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); }
+	(rule__XAnnotationElementValue__Group_0_0__0)
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0__1__Impl
+	rule__XAnnotationElementValue__Group_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); }
+	(rule__XAnnotationElementValue__Group_0_1__0)?
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); }
+	']'
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); }
+	(rule__XAnnotationElementValue__Group_0_0_0__0)
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0_0_0__0__Impl
+	rule__XAnnotationElementValue__Group_0_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); }
+	()
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0_0_0__1__Impl
+	rule__XAnnotationElementValue__Group_0_0_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); }
+	'#'
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_0_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
+	'['
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0_1__0__Impl
+	rule__XAnnotationElementValue__Group_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); }
+	(rule__XAnnotationElementValue__ElementsAssignment_0_1_0)
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); }
+	(rule__XAnnotationElementValue__Group_0_1_1__0)*
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0_1_1__0__Impl
+	rule__XAnnotationElementValue__Group_0_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); }
+	','
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); }
+	(rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1)
+	{ after(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_0__0__Impl
+	rule__XAssignment__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); }
+	()
+	{ after(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_0__1__Impl
+	rule__XAssignment__Group_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); }
+	(rule__XAssignment__FeatureAssignment_0_1)
+	{ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_0__2__Impl
+	rule__XAssignment__Group_0__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); }
+	ruleOpSingleAssign
+	{ after(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_0__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); }
+	(rule__XAssignment__ValueAssignment_0_3)
+	{ after(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_1__0__Impl
+	rule__XAssignment__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); }
+	ruleXOrExpression
+	{ after(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); }
+	(rule__XAssignment__Group_1_1__0)?
+	{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_1_1__0__Impl
+	rule__XAssignment__Group_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); }
+	(rule__XAssignment__Group_1_1_0__0)
+	{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); }
+	(rule__XAssignment__RightOperandAssignment_1_1_1)
+	{ after(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_1_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_1_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); }
+	(rule__XAssignment__Group_1_1_0_0__0)
+	{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_1_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_1_1_0_0__0__Impl
+	rule__XAssignment__Group_1_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAssignment__Group_1_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); }
+	(rule__XAssignment__FeatureAssignment_1_1_0_0_1)
+	{ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpMultiAssign__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpMultiAssign__Group_5__0__Impl
+	rule__OpMultiAssign__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); }
+	'<'
+	{ after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpMultiAssign__Group_5__1__Impl
+	rule__OpMultiAssign__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); }
+	'<'
+	{ after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_5__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpMultiAssign__Group_5__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_5__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); }
+	'='
+	{ after(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpMultiAssign__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpMultiAssign__Group_6__0__Impl
+	rule__OpMultiAssign__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); }
+	'>'
+	{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpMultiAssign__Group_6__1__Impl
+	rule__OpMultiAssign__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); }
+	('>')?
+	{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_6__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpMultiAssign__Group_6__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_6__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); }
+	'>='
+	{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOrExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOrExpression__Group__0__Impl
+	rule__XOrExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); }
+	ruleXAndExpression
+	{ after(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOrExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOrExpressionAccess().getGroup_1()); }
+	(rule__XOrExpression__Group_1__0)*
+	{ after(grammarAccess.getXOrExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOrExpression__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOrExpression__Group_1__0__Impl
+	rule__XOrExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); }
+	(rule__XOrExpression__Group_1_0__0)
+	{ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOrExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); }
+	(rule__XOrExpression__RightOperandAssignment_1_1)
+	{ after(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOrExpression__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOrExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); }
+	(rule__XOrExpression__Group_1_0_0__0)
+	{ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOrExpression__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOrExpression__Group_1_0_0__0__Impl
+	rule__XOrExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOrExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+	(rule__XOrExpression__FeatureAssignment_1_0_0_1)
+	{ after(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAndExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAndExpression__Group__0__Impl
+	rule__XAndExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); }
+	ruleXEqualityExpression
+	{ after(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAndExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAndExpressionAccess().getGroup_1()); }
+	(rule__XAndExpression__Group_1__0)*
+	{ after(grammarAccess.getXAndExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAndExpression__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAndExpression__Group_1__0__Impl
+	rule__XAndExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); }
+	(rule__XAndExpression__Group_1_0__0)
+	{ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAndExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); }
+	(rule__XAndExpression__RightOperandAssignment_1_1)
+	{ after(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAndExpression__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAndExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); }
+	(rule__XAndExpression__Group_1_0_0__0)
+	{ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAndExpression__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAndExpression__Group_1_0_0__0__Impl
+	rule__XAndExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAndExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+	(rule__XAndExpression__FeatureAssignment_1_0_0_1)
+	{ after(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XEqualityExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XEqualityExpression__Group__0__Impl
+	rule__XEqualityExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); }
+	ruleXRelationalExpression
+	{ after(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XEqualityExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); }
+	(rule__XEqualityExpression__Group_1__0)*
+	{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XEqualityExpression__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XEqualityExpression__Group_1__0__Impl
+	rule__XEqualityExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); }
+	(rule__XEqualityExpression__Group_1_0__0)
+	{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XEqualityExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); }
+	(rule__XEqualityExpression__RightOperandAssignment_1_1)
+	{ after(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XEqualityExpression__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XEqualityExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); }
+	(rule__XEqualityExpression__Group_1_0_0__0)
+	{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XEqualityExpression__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XEqualityExpression__Group_1_0_0__0__Impl
+	rule__XEqualityExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XEqualityExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+	(rule__XEqualityExpression__FeatureAssignment_1_0_0_1)
+	{ after(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group__0__Impl
+	rule__XRelationalExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); }
+	ruleXOtherOperatorExpression
+	{ after(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); }
+	(rule__XRelationalExpression__Alternatives_1)*
+	{ after(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group_1_0__0__Impl
+	rule__XRelationalExpression__Group_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); }
+	(rule__XRelationalExpression__Group_1_0_0__0)
+	{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); }
+	(rule__XRelationalExpression__TypeAssignment_1_0_1)
+	{ after(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group_1_0_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); }
+	(rule__XRelationalExpression__Group_1_0_0_0__0)
+	{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_0_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group_1_0_0_0__0__Impl
+	rule__XRelationalExpression__Group_1_0_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); }
+	()
+	{ after(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); }
+	'instanceof'
+	{ after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group_1_1__0__Impl
+	rule__XRelationalExpression__Group_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); }
+	(rule__XRelationalExpression__Group_1_1_0__0)
+	{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); }
+	(rule__XRelationalExpression__RightOperandAssignment_1_1_1)
+	{ after(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group_1_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); }
+	(rule__XRelationalExpression__Group_1_1_0_0__0)
+	{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group_1_1_0_0__0__Impl
+	rule__XRelationalExpression__Group_1_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); }
+	(rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1)
+	{ after(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpCompare__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpCompare__Group_1__0__Impl
+	rule__OpCompare__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpCompare__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); }
+	'<'
+	{ after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpCompare__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpCompare__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpCompare__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); }
+	'='
+	{ after(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOtherOperatorExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOtherOperatorExpression__Group__0__Impl
+	rule__XOtherOperatorExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); }
+	ruleXAdditiveExpression
+	{ after(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOtherOperatorExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); }
+	(rule__XOtherOperatorExpression__Group_1__0)*
+	{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOtherOperatorExpression__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOtherOperatorExpression__Group_1__0__Impl
+	rule__XOtherOperatorExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); }
+	(rule__XOtherOperatorExpression__Group_1_0__0)
+	{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOtherOperatorExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); }
+	(rule__XOtherOperatorExpression__RightOperandAssignment_1_1)
+	{ after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOtherOperatorExpression__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOtherOperatorExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); }
+	(rule__XOtherOperatorExpression__Group_1_0_0__0)
+	{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOtherOperatorExpression__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOtherOperatorExpression__Group_1_0_0__0__Impl
+	rule__XOtherOperatorExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+	(rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1)
+	{ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_2__0__Impl
+	rule__OpOther__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); }
+	'>'
+	{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); }
+	'..'
+	{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_5__0__Impl
+	rule__OpOther__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); }
+	'>'
+	{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); }
+	(rule__OpOther__Alternatives_5_1)
+	{ after(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_5_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_5_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); }
+	(rule__OpOther__Group_5_1_0_0__0)
+	{ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_5_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_5_1_0_0__0__Impl
+	rule__OpOther__Group_5_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); }
+	'>'
+	{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_5_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); }
+	'>'
+	{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_6__0__Impl
+	rule__OpOther__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); }
+	'<'
+	{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); }
+	(rule__OpOther__Alternatives_6_1)
+	{ after(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_6_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_6_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); }
+	(rule__OpOther__Group_6_1_0_0__0)
+	{ after(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_6_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_6_1_0_0__0__Impl
+	rule__OpOther__Group_6_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); }
+	'<'
+	{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__OpOther__Group_6_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); }
+	'<'
+	{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAdditiveExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAdditiveExpression__Group__0__Impl
+	rule__XAdditiveExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); }
+	ruleXMultiplicativeExpression
+	{ after(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAdditiveExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); }
+	(rule__XAdditiveExpression__Group_1__0)*
+	{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAdditiveExpression__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAdditiveExpression__Group_1__0__Impl
+	rule__XAdditiveExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); }
+	(rule__XAdditiveExpression__Group_1_0__0)
+	{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAdditiveExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); }
+	(rule__XAdditiveExpression__RightOperandAssignment_1_1)
+	{ after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAdditiveExpression__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAdditiveExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); }
+	(rule__XAdditiveExpression__Group_1_0_0__0)
+	{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAdditiveExpression__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAdditiveExpression__Group_1_0_0__0__Impl
+	rule__XAdditiveExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XAdditiveExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+	(rule__XAdditiveExpression__FeatureAssignment_1_0_0_1)
+	{ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMultiplicativeExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMultiplicativeExpression__Group__0__Impl
+	rule__XMultiplicativeExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); }
+	ruleXUnaryOperation
+	{ after(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMultiplicativeExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); }
+	(rule__XMultiplicativeExpression__Group_1__0)*
+	{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMultiplicativeExpression__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMultiplicativeExpression__Group_1__0__Impl
+	rule__XMultiplicativeExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); }
+	(rule__XMultiplicativeExpression__Group_1_0__0)
+	{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMultiplicativeExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); }
+	(rule__XMultiplicativeExpression__RightOperandAssignment_1_1)
+	{ after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMultiplicativeExpression__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMultiplicativeExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); }
+	(rule__XMultiplicativeExpression__Group_1_0_0__0)
+	{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMultiplicativeExpression__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMultiplicativeExpression__Group_1_0_0__0__Impl
+	rule__XMultiplicativeExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+	(rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1)
+	{ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XUnaryOperation__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XUnaryOperation__Group_0__0__Impl
+	rule__XUnaryOperation__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); }
+	()
+	{ after(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Group_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XUnaryOperation__Group_0__1__Impl
+	rule__XUnaryOperation__Group_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Group_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); }
+	(rule__XUnaryOperation__FeatureAssignment_0_1)
+	{ after(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Group_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XUnaryOperation__Group_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Group_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); }
+	(rule__XUnaryOperation__OperandAssignment_0_2)
+	{ after(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XCastedExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCastedExpression__Group__0__Impl
+	rule__XCastedExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); }
+	ruleXPostfixOperation
+	{ after(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCastedExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); }
+	(rule__XCastedExpression__Group_1__0)*
+	{ after(grammarAccess.getXCastedExpressionAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XCastedExpression__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCastedExpression__Group_1__0__Impl
+	rule__XCastedExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); }
+	(rule__XCastedExpression__Group_1_0__0)
+	{ after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCastedExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); }
+	(rule__XCastedExpression__TypeAssignment_1_1)
+	{ after(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XCastedExpression__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCastedExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); }
+	(rule__XCastedExpression__Group_1_0_0__0)
+	{ after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XCastedExpression__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCastedExpression__Group_1_0_0__0__Impl
+	rule__XCastedExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCastedExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); }
+	'as'
+	{ after(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XPostfixOperation__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XPostfixOperation__Group__0__Impl
+	rule__XPostfixOperation__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XPostfixOperation__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); }
+	ruleXMemberFeatureCall
+	{ after(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XPostfixOperation__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XPostfixOperation__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XPostfixOperation__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); }
+	(rule__XPostfixOperation__Group_1__0)?
+	{ after(grammarAccess.getXPostfixOperationAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XPostfixOperation__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XPostfixOperation__Group_1__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XPostfixOperation__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); }
+	(rule__XPostfixOperation__Group_1_0__0)
+	{ after(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XPostfixOperation__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XPostfixOperation__Group_1_0__0__Impl
+	rule__XPostfixOperation__Group_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XPostfixOperation__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); }
+	()
+	{ after(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XPostfixOperation__Group_1_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XPostfixOperation__Group_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XPostfixOperation__Group_1_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); }
+	(rule__XPostfixOperation__FeatureAssignment_1_0_1)
+	{ after(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group__0__Impl
+	rule__XMemberFeatureCall__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); }
+	ruleXPrimaryExpression
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); }
+	(rule__XMemberFeatureCall__Alternatives_1)*
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_0__0__Impl
+	rule__XMemberFeatureCall__Group_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); }
+	(rule__XMemberFeatureCall__Group_1_0_0__0)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); }
+	(rule__XMemberFeatureCall__ValueAssignment_1_0_1)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); }
+	(rule__XMemberFeatureCall__Group_1_0_0_0__0)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_0_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl
+	rule__XMemberFeatureCall__Group_1_0_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); }
+	()
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl
+	rule__XMemberFeatureCall__Group_1_0_0_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); }
+	(rule__XMemberFeatureCall__Alternatives_1_0_0_0_1)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl
+	rule__XMemberFeatureCall__Group_1_0_0_0__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); }
+	(rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); }
+	ruleOpSingleAssign
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1__0__Impl
+	rule__XMemberFeatureCall__Group_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); }
+	(rule__XMemberFeatureCall__Group_1_1_0__0)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1__1__Impl
+	rule__XMemberFeatureCall__Group_1_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); }
+	(rule__XMemberFeatureCall__Group_1_1_1__0)?
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1__2__Impl
+	rule__XMemberFeatureCall__Group_1_1__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); }
+	(rule__XMemberFeatureCall__FeatureAssignment_1_1_2)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1__3__Impl
+	rule__XMemberFeatureCall__Group_1_1__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); }
+	(rule__XMemberFeatureCall__Group_1_1_3__0)?
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); }
+	(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4)?
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); }
+	(rule__XMemberFeatureCall__Group_1_1_0_0__0)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl
+	rule__XMemberFeatureCall__Group_1_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); }
+	()
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); }
+	(rule__XMemberFeatureCall__Alternatives_1_1_0_0_1)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_1__0__Impl
+	rule__XMemberFeatureCall__Group_1_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); }
+	'<'
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_1__1__Impl
+	rule__XMemberFeatureCall__Group_1_1_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); }
+	(rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_1__2__Impl
+	rule__XMemberFeatureCall__Group_1_1_1__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); }
+	(rule__XMemberFeatureCall__Group_1_1_1_2__0)*
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); }
+	'>'
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_1_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl
+	rule__XMemberFeatureCall__Group_1_1_1_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); }
+	','
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); }
+	(rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_3__0__Impl
+	rule__XMemberFeatureCall__Group_1_1_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); }
+	(rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_3__1__Impl
+	rule__XMemberFeatureCall__Group_1_1_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); }
+	(rule__XMemberFeatureCall__Alternatives_1_1_3_1)?
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); }
+	')'
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl
+	rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); }
+	(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); }
+	(rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0)*
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl
+	rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); }
+	','
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); }
+	(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1)
+	{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSetLiteral__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSetLiteral__Group__0__Impl
+	rule__XSetLiteral__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); }
+	()
+	{ after(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSetLiteral__Group__1__Impl
+	rule__XSetLiteral__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); }
+	'#'
+	{ after(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSetLiteral__Group__2__Impl
+	rule__XSetLiteral__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); }
+	'{'
+	{ after(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSetLiteral__Group__3__Impl
+	rule__XSetLiteral__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSetLiteralAccess().getGroup_3()); }
+	(rule__XSetLiteral__Group_3__0)?
+	{ after(grammarAccess.getXSetLiteralAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSetLiteral__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); }
+	'}'
+	{ after(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSetLiteral__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSetLiteral__Group_3__0__Impl
+	rule__XSetLiteral__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); }
+	(rule__XSetLiteral__ElementsAssignment_3_0)
+	{ after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSetLiteral__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); }
+	(rule__XSetLiteral__Group_3_1__0)*
+	{ after(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSetLiteral__Group_3_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSetLiteral__Group_3_1__0__Impl
+	rule__XSetLiteral__Group_3_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group_3_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); }
+	','
+	{ after(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group_3_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSetLiteral__Group_3_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group_3_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); }
+	(rule__XSetLiteral__ElementsAssignment_3_1_1)
+	{ after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XListLiteral__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XListLiteral__Group__0__Impl
+	rule__XListLiteral__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); }
+	()
+	{ after(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XListLiteral__Group__1__Impl
+	rule__XListLiteral__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); }
+	'#'
+	{ after(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XListLiteral__Group__2__Impl
+	rule__XListLiteral__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); }
+	'['
+	{ after(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XListLiteral__Group__3__Impl
+	rule__XListLiteral__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXListLiteralAccess().getGroup_3()); }
+	(rule__XListLiteral__Group_3__0)?
+	{ after(grammarAccess.getXListLiteralAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XListLiteral__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); }
+	']'
+	{ after(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XListLiteral__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XListLiteral__Group_3__0__Impl
+	rule__XListLiteral__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); }
+	(rule__XListLiteral__ElementsAssignment_3_0)
+	{ after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XListLiteral__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); }
+	(rule__XListLiteral__Group_3_1__0)*
+	{ after(grammarAccess.getXListLiteralAccess().getGroup_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XListLiteral__Group_3_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XListLiteral__Group_3_1__0__Impl
+	rule__XListLiteral__Group_3_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group_3_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); }
+	','
+	{ after(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group_3_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XListLiteral__Group_3_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group_3_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); }
+	(rule__XListLiteral__ElementsAssignment_3_1_1)
+	{ after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group__0__Impl
+	rule__XClosure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getGroup_0()); }
+	(rule__XClosure__Group_0__0)
+	{ after(grammarAccess.getXClosureAccess().getGroup_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group__1__Impl
+	rule__XClosure__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getGroup_1()); }
+	(rule__XClosure__Group_1__0)?
+	{ after(grammarAccess.getXClosureAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group__2__Impl
+	rule__XClosure__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); }
+	(rule__XClosure__ExpressionAssignment_2)
+	{ after(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); }
+	']'
+	{ after(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getGroup_0_0()); }
+	(rule__XClosure__Group_0_0__0)
+	{ after(grammarAccess.getXClosureAccess().getGroup_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group_0_0__0__Impl
+	rule__XClosure__Group_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); }
+	()
+	{ after(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); }
+	'['
+	{ after(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group_1__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getGroup_1_0()); }
+	(rule__XClosure__Group_1_0__0)
+	{ after(grammarAccess.getXClosureAccess().getGroup_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group_1_0__0__Impl
+	rule__XClosure__Group_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); }
+	(rule__XClosure__Group_1_0_0__0)?
+	{ after(grammarAccess.getXClosureAccess().getGroup_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); }
+	(rule__XClosure__ExplicitSyntaxAssignment_1_0_1)
+	{ after(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group_1_0_0__0__Impl
+	rule__XClosure__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); }
+	(rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0)
+	{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); }
+	(rule__XClosure__Group_1_0_0_1__0)*
+	{ after(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group_1_0_0_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group_1_0_0_1__0__Impl
+	rule__XClosure__Group_1_0_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0_0_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); }
+	','
+	{ after(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0_0_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XClosure__Group_1_0_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0_0_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); }
+	(rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1)
+	{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XExpressionInClosure__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XExpressionInClosure__Group__0__Impl
+	rule__XExpressionInClosure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); }
+	()
+	{ after(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XExpressionInClosure__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); }
+	(rule__XExpressionInClosure__Group_1__0)*
+	{ after(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XExpressionInClosure__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XExpressionInClosure__Group_1__0__Impl
+	rule__XExpressionInClosure__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); }
+	(rule__XExpressionInClosure__ExpressionsAssignment_1_0)
+	{ after(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XExpressionInClosure__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); }
+	(';')?
+	{ after(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XShortClosure__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XShortClosure__Group__0__Impl
+	rule__XShortClosure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXShortClosureAccess().getGroup_0()); }
+	(rule__XShortClosure__Group_0__0)
+	{ after(grammarAccess.getXShortClosureAccess().getGroup_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XShortClosure__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); }
+	(rule__XShortClosure__ExpressionAssignment_1)
+	{ after(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XShortClosure__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XShortClosure__Group_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); }
+	(rule__XShortClosure__Group_0_0__0)
+	{ after(grammarAccess.getXShortClosureAccess().getGroup_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XShortClosure__Group_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XShortClosure__Group_0_0__0__Impl
+	rule__XShortClosure__Group_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); }
+	()
+	{ after(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XShortClosure__Group_0_0__1__Impl
+	rule__XShortClosure__Group_0_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); }
+	(rule__XShortClosure__Group_0_0_1__0)?
+	{ after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XShortClosure__Group_0_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); }
+	(rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2)
+	{ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XShortClosure__Group_0_0_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XShortClosure__Group_0_0_1__0__Impl
+	rule__XShortClosure__Group_0_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); }
+	(rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0)
+	{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XShortClosure__Group_0_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); }
+	(rule__XShortClosure__Group_0_0_1_1__0)*
+	{ after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XShortClosure__Group_0_0_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XShortClosure__Group_0_0_1_1__0__Impl
+	rule__XShortClosure__Group_0_0_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); }
+	','
+	{ after(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XShortClosure__Group_0_0_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); }
+	(rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1)
+	{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XParenthesizedExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XParenthesizedExpression__Group__0__Impl
+	rule__XParenthesizedExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XParenthesizedExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); }
+	'('
+	{ after(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XParenthesizedExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XParenthesizedExpression__Group__1__Impl
+	rule__XParenthesizedExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XParenthesizedExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); }
+	ruleXExpression
+	{ after(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XParenthesizedExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XParenthesizedExpression__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XParenthesizedExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); }
+	')'
+	{ after(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XIfExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XIfExpression__Group__0__Impl
+	rule__XIfExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); }
+	()
+	{ after(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XIfExpression__Group__1__Impl
+	rule__XIfExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); }
+	'if'
+	{ after(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XIfExpression__Group__2__Impl
+	rule__XIfExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); }
+	'('
+	{ after(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XIfExpression__Group__3__Impl
+	rule__XIfExpression__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); }
+	(rule__XIfExpression__IfAssignment_3)
+	{ after(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XIfExpression__Group__4__Impl
+	rule__XIfExpression__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); }
+	')'
+	{ after(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XIfExpression__Group__5__Impl
+	rule__XIfExpression__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); }
+	(rule__XIfExpression__ThenAssignment_5)
+	{ after(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XIfExpression__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXIfExpressionAccess().getGroup_6()); }
+	(rule__XIfExpression__Group_6__0)?
+	{ after(grammarAccess.getXIfExpressionAccess().getGroup_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XIfExpression__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XIfExpression__Group_6__0__Impl
+	rule__XIfExpression__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); }
+	('else')
+	{ after(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XIfExpression__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); }
+	(rule__XIfExpression__ElseAssignment_6_1)
+	{ after(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group__0__Impl
+	rule__XSwitchExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); }
+	()
+	{ after(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group__1__Impl
+	rule__XSwitchExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); }
+	'switch'
+	{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group__2__Impl
+	rule__XSwitchExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); }
+	(rule__XSwitchExpression__Alternatives_2)
+	{ after(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group__3__Impl
+	rule__XSwitchExpression__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); }
+	'{'
+	{ after(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group__4__Impl
+	rule__XSwitchExpression__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); }
+	(rule__XSwitchExpression__CasesAssignment_4)*
+	{ after(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group__5__Impl
+	rule__XSwitchExpression__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); }
+	(rule__XSwitchExpression__Group_5__0)?
+	{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); }
+	'}'
+	{ after(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_0__0__Impl
+	rule__XSwitchExpression__Group_2_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); }
+	(rule__XSwitchExpression__Group_2_0_0__0)
+	{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_0__1__Impl
+	rule__XSwitchExpression__Group_2_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); }
+	(rule__XSwitchExpression__SwitchAssignment_2_0_1)
+	{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); }
+	')'
+	{ after(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_0_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); }
+	(rule__XSwitchExpression__Group_2_0_0_0__0)
+	{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_0_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_0_0_0__0__Impl
+	rule__XSwitchExpression__Group_2_0_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); }
+	'('
+	{ after(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_0_0_0__1__Impl
+	rule__XSwitchExpression__Group_2_0_0_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); }
+	(rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1)
+	{ after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0_0_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_0_0_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0_0_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); }
+	':'
+	{ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_1__0__Impl
+	rule__XSwitchExpression__Group_2_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); }
+	(rule__XSwitchExpression__Group_2_1_0__0)?
+	{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); }
+	(rule__XSwitchExpression__SwitchAssignment_2_1_1)
+	{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); }
+	(rule__XSwitchExpression__Group_2_1_0_0__0)
+	{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_1_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_1_0_0__0__Impl
+	rule__XSwitchExpression__Group_2_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); }
+	(rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0)
+	{ after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); }
+	':'
+	{ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_5__0__Impl
+	rule__XSwitchExpression__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); }
+	'default'
+	{ after(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_5__1__Impl
+	rule__XSwitchExpression__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); }
+	':'
+	{ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_5__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSwitchExpression__Group_5__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_5__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); }
+	(rule__XSwitchExpression__DefaultAssignment_5_2)
+	{ after(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XCasePart__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCasePart__Group__0__Impl
+	rule__XCasePart__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); }
+	()
+	{ after(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCasePart__Group__1__Impl
+	rule__XCasePart__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); }
+	(rule__XCasePart__TypeGuardAssignment_1)?
+	{ after(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCasePart__Group__2__Impl
+	rule__XCasePart__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCasePartAccess().getGroup_2()); }
+	(rule__XCasePart__Group_2__0)?
+	{ after(grammarAccess.getXCasePartAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCasePart__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCasePartAccess().getAlternatives_3()); }
+	(rule__XCasePart__Alternatives_3)
+	{ after(grammarAccess.getXCasePartAccess().getAlternatives_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XCasePart__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCasePart__Group_2__0__Impl
+	rule__XCasePart__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); }
+	'case'
+	{ after(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCasePart__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); }
+	(rule__XCasePart__CaseAssignment_2_1)
+	{ after(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XCasePart__Group_3_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCasePart__Group_3_0__0__Impl
+	rule__XCasePart__Group_3_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group_3_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); }
+	':'
+	{ after(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group_3_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCasePart__Group_3_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group_3_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); }
+	(rule__XCasePart__ThenAssignment_3_0_1)
+	{ after(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XForLoopExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XForLoopExpression__Group__0__Impl
+	rule__XForLoopExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); }
+	(rule__XForLoopExpression__Group_0__0)
+	{ after(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XForLoopExpression__Group__1__Impl
+	rule__XForLoopExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); }
+	(rule__XForLoopExpression__ForExpressionAssignment_1)
+	{ after(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XForLoopExpression__Group__2__Impl
+	rule__XForLoopExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); }
+	')'
+	{ after(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XForLoopExpression__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); }
+	(rule__XForLoopExpression__EachExpressionAssignment_3)
+	{ after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XForLoopExpression__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XForLoopExpression__Group_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); }
+	(rule__XForLoopExpression__Group_0_0__0)
+	{ after(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XForLoopExpression__Group_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XForLoopExpression__Group_0_0__0__Impl
+	rule__XForLoopExpression__Group_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); }
+	()
+	{ after(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XForLoopExpression__Group_0_0__1__Impl
+	rule__XForLoopExpression__Group_0_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); }
+	'for'
+	{ after(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group_0_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XForLoopExpression__Group_0_0__2__Impl
+	rule__XForLoopExpression__Group_0_0__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group_0_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); }
+	'('
+	{ after(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group_0_0__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XForLoopExpression__Group_0_0__3__Impl
+	rule__XForLoopExpression__Group_0_0__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group_0_0__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); }
+	(rule__XForLoopExpression__DeclaredParamAssignment_0_0_3)
+	{ after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group_0_0__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XForLoopExpression__Group_0_0__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group_0_0__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); }
+	':'
+	{ after(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XBasicForLoopExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group__0__Impl
+	rule__XBasicForLoopExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); }
+	()
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group__1__Impl
+	rule__XBasicForLoopExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); }
+	'for'
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group__2__Impl
+	rule__XBasicForLoopExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); }
+	'('
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group__3__Impl
+	rule__XBasicForLoopExpression__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); }
+	(rule__XBasicForLoopExpression__Group_3__0)?
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group__4__Impl
+	rule__XBasicForLoopExpression__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); }
+	';'
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group__5__Impl
+	rule__XBasicForLoopExpression__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); }
+	(rule__XBasicForLoopExpression__ExpressionAssignment_5)?
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group__6__Impl
+	rule__XBasicForLoopExpression__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); }
+	';'
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group__7__Impl
+	rule__XBasicForLoopExpression__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); }
+	(rule__XBasicForLoopExpression__Group_7__0)?
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group__8__Impl
+	rule__XBasicForLoopExpression__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); }
+	')'
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); }
+	(rule__XBasicForLoopExpression__EachExpressionAssignment_9)
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XBasicForLoopExpression__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group_3__0__Impl
+	rule__XBasicForLoopExpression__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); }
+	(rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0)
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); }
+	(rule__XBasicForLoopExpression__Group_3_1__0)*
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XBasicForLoopExpression__Group_3_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group_3_1__0__Impl
+	rule__XBasicForLoopExpression__Group_3_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_3_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); }
+	','
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_3_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group_3_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_3_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); }
+	(rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1)
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XBasicForLoopExpression__Group_7__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group_7__0__Impl
+	rule__XBasicForLoopExpression__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_7__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); }
+	(rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0)
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_7__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_7__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); }
+	(rule__XBasicForLoopExpression__Group_7_1__0)*
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XBasicForLoopExpression__Group_7_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group_7_1__0__Impl
+	rule__XBasicForLoopExpression__Group_7_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_7_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); }
+	','
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_7_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBasicForLoopExpression__Group_7_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__Group_7_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); }
+	(rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1)
+	{ after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XWhileExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XWhileExpression__Group__0__Impl
+	rule__XWhileExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); }
+	()
+	{ after(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XWhileExpression__Group__1__Impl
+	rule__XWhileExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); }
+	'while'
+	{ after(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XWhileExpression__Group__2__Impl
+	rule__XWhileExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); }
+	'('
+	{ after(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XWhileExpression__Group__3__Impl
+	rule__XWhileExpression__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); }
+	(rule__XWhileExpression__PredicateAssignment_3)
+	{ after(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XWhileExpression__Group__4__Impl
+	rule__XWhileExpression__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); }
+	')'
+	{ after(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XWhileExpression__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); }
+	(rule__XWhileExpression__BodyAssignment_5)
+	{ after(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XDoWhileExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XDoWhileExpression__Group__0__Impl
+	rule__XDoWhileExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); }
+	()
+	{ after(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XDoWhileExpression__Group__1__Impl
+	rule__XDoWhileExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); }
+	'do'
+	{ after(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XDoWhileExpression__Group__2__Impl
+	rule__XDoWhileExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); }
+	(rule__XDoWhileExpression__BodyAssignment_2)
+	{ after(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XDoWhileExpression__Group__3__Impl
+	rule__XDoWhileExpression__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); }
+	'while'
+	{ after(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XDoWhileExpression__Group__4__Impl
+	rule__XDoWhileExpression__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); }
+	'('
+	{ after(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XDoWhileExpression__Group__5__Impl
+	rule__XDoWhileExpression__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); }
+	(rule__XDoWhileExpression__PredicateAssignment_5)
+	{ after(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XDoWhileExpression__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); }
+	')'
+	{ after(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XBlockExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBlockExpression__Group__0__Impl
+	rule__XBlockExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); }
+	()
+	{ after(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBlockExpression__Group__1__Impl
+	rule__XBlockExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); }
+	'{'
+	{ after(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBlockExpression__Group__2__Impl
+	rule__XBlockExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); }
+	(rule__XBlockExpression__Group_2__0)*
+	{ after(grammarAccess.getXBlockExpressionAccess().getGroup_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBlockExpression__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); }
+	'}'
+	{ after(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XBlockExpression__Group_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBlockExpression__Group_2__0__Impl
+	rule__XBlockExpression__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); }
+	(rule__XBlockExpression__ExpressionsAssignment_2_0)
+	{ after(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBlockExpression__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); }
+	(';')?
+	{ after(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XVariableDeclaration__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XVariableDeclaration__Group__0__Impl
+	rule__XVariableDeclaration__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); }
+	()
+	{ after(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XVariableDeclaration__Group__1__Impl
+	rule__XVariableDeclaration__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); }
+	(rule__XVariableDeclaration__Alternatives_1)
+	{ after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XVariableDeclaration__Group__2__Impl
+	rule__XVariableDeclaration__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); }
+	(rule__XVariableDeclaration__Alternatives_2)
+	{ after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XVariableDeclaration__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); }
+	(rule__XVariableDeclaration__Group_3__0)?
+	{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XVariableDeclaration__Group_2_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XVariableDeclaration__Group_2_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_2_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); }
+	(rule__XVariableDeclaration__Group_2_0_0__0)
+	{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XVariableDeclaration__Group_2_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XVariableDeclaration__Group_2_0_0__0__Impl
+	rule__XVariableDeclaration__Group_2_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_2_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); }
+	(rule__XVariableDeclaration__TypeAssignment_2_0_0_0)
+	{ after(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_2_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XVariableDeclaration__Group_2_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_2_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); }
+	(rule__XVariableDeclaration__NameAssignment_2_0_0_1)
+	{ after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XVariableDeclaration__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XVariableDeclaration__Group_3__0__Impl
+	rule__XVariableDeclaration__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); }
+	'='
+	{ after(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XVariableDeclaration__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); }
+	(rule__XVariableDeclaration__RightAssignment_3_1)
+	{ after(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmFormalParameter__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmFormalParameter__Group__0__Impl
+	rule__JvmFormalParameter__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmFormalParameter__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
+	(rule__JvmFormalParameter__ParameterTypeAssignment_0)?
+	{ after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmFormalParameter__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmFormalParameter__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmFormalParameter__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); }
+	(rule__JvmFormalParameter__NameAssignment_1)
+	{ after(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FullJvmFormalParameter__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__FullJvmFormalParameter__Group__0__Impl
+	rule__FullJvmFormalParameter__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FullJvmFormalParameter__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
+	(rule__FullJvmFormalParameter__ParameterTypeAssignment_0)
+	{ after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FullJvmFormalParameter__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__FullJvmFormalParameter__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FullJvmFormalParameter__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); }
+	(rule__FullJvmFormalParameter__NameAssignment_1)
+	{ after(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group__0__Impl
+	rule__XFeatureCall__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); }
+	()
+	{ after(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group__1__Impl
+	rule__XFeatureCall__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getGroup_1()); }
+	(rule__XFeatureCall__Group_1__0)?
+	{ after(grammarAccess.getXFeatureCallAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group__2__Impl
+	rule__XFeatureCall__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); }
+	(rule__XFeatureCall__FeatureAssignment_2)
+	{ after(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group__3__Impl
+	rule__XFeatureCall__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getGroup_3()); }
+	(rule__XFeatureCall__Group_3__0)?
+	{ after(grammarAccess.getXFeatureCallAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); }
+	(rule__XFeatureCall__FeatureCallArgumentsAssignment_4)?
+	{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_1__0__Impl
+	rule__XFeatureCall__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); }
+	'<'
+	{ after(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_1__1__Impl
+	rule__XFeatureCall__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); }
+	(rule__XFeatureCall__TypeArgumentsAssignment_1_1)
+	{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_1__2__Impl
+	rule__XFeatureCall__Group_1__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); }
+	(rule__XFeatureCall__Group_1_2__0)*
+	{ after(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_1__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); }
+	'>'
+	{ after(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_1_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_1_2__0__Impl
+	rule__XFeatureCall__Group_1_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); }
+	','
+	{ after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_1_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); }
+	(rule__XFeatureCall__TypeArgumentsAssignment_1_2_1)
+	{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_3__0__Impl
+	rule__XFeatureCall__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); }
+	(rule__XFeatureCall__ExplicitOperationCallAssignment_3_0)
+	{ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_3__1__Impl
+	rule__XFeatureCall__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); }
+	(rule__XFeatureCall__Alternatives_3_1)?
+	{ after(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); }
+	')'
+	{ after(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_3_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_3_1_1__0__Impl
+	rule__XFeatureCall__Group_3_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); }
+	(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0)
+	{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_3_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); }
+	(rule__XFeatureCall__Group_3_1_1_1__0)*
+	{ after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_3_1_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_3_1_1_1__0__Impl
+	rule__XFeatureCall__Group_3_1_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3_1_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); }
+	','
+	{ after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3_1_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFeatureCall__Group_3_1_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3_1_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); }
+	(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1)
+	{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group__0__Impl
+	rule__XConstructorCall__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); }
+	()
+	{ after(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group__1__Impl
+	rule__XConstructorCall__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); }
+	'new'
+	{ after(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group__2__Impl
+	rule__XConstructorCall__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); }
+	(rule__XConstructorCall__ConstructorAssignment_2)
+	{ after(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group__3__Impl
+	rule__XConstructorCall__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getGroup_3()); }
+	(rule__XConstructorCall__Group_3__0)?
+	{ after(grammarAccess.getXConstructorCallAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group__4__Impl
+	rule__XConstructorCall__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getGroup_4()); }
+	(rule__XConstructorCall__Group_4__0)?
+	{ after(grammarAccess.getXConstructorCallAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); }
+	(rule__XConstructorCall__ArgumentsAssignment_5)?
+	{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_3__0__Impl
+	rule__XConstructorCall__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); }
+	('<')
+	{ after(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_3__1__Impl
+	rule__XConstructorCall__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); }
+	(rule__XConstructorCall__TypeArgumentsAssignment_3_1)
+	{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_3__2__Impl
+	rule__XConstructorCall__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); }
+	(rule__XConstructorCall__Group_3_2__0)*
+	{ after(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); }
+	'>'
+	{ after(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_3_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_3_2__0__Impl
+	rule__XConstructorCall__Group_3_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); }
+	','
+	{ after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_3_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); }
+	(rule__XConstructorCall__TypeArgumentsAssignment_3_2_1)
+	{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_4__0__Impl
+	rule__XConstructorCall__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); }
+	(rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0)
+	{ after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_4__1__Impl
+	rule__XConstructorCall__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); }
+	(rule__XConstructorCall__Alternatives_4_1)?
+	{ after(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); }
+	')'
+	{ after(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_4_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_4_1_1__0__Impl
+	rule__XConstructorCall__Group_4_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); }
+	(rule__XConstructorCall__ArgumentsAssignment_4_1_1_0)
+	{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_4_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); }
+	(rule__XConstructorCall__Group_4_1_1_1__0)*
+	{ after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_4_1_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_4_1_1_1__0__Impl
+	rule__XConstructorCall__Group_4_1_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4_1_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); }
+	','
+	{ after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4_1_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XConstructorCall__Group_4_1_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4_1_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); }
+	(rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1)
+	{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XBooleanLiteral__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBooleanLiteral__Group__0__Impl
+	rule__XBooleanLiteral__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBooleanLiteral__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); }
+	()
+	{ after(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBooleanLiteral__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XBooleanLiteral__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBooleanLiteral__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); }
+	(rule__XBooleanLiteral__Alternatives_1)
+	{ after(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XNullLiteral__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XNullLiteral__Group__0__Impl
+	rule__XNullLiteral__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XNullLiteral__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); }
+	()
+	{ after(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XNullLiteral__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XNullLiteral__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XNullLiteral__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); }
+	'null'
+	{ after(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XNumberLiteral__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XNumberLiteral__Group__0__Impl
+	rule__XNumberLiteral__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XNumberLiteral__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); }
+	()
+	{ after(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XNumberLiteral__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XNumberLiteral__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XNumberLiteral__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); }
+	(rule__XNumberLiteral__ValueAssignment_1)
+	{ after(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XStringLiteral__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XStringLiteral__Group__0__Impl
+	rule__XStringLiteral__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XStringLiteral__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); }
+	()
+	{ after(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XStringLiteral__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XStringLiteral__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XStringLiteral__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); }
+	(rule__XStringLiteral__ValueAssignment_1)
+	{ after(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XTypeLiteral__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTypeLiteral__Group__0__Impl
+	rule__XTypeLiteral__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); }
+	()
+	{ after(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTypeLiteral__Group__1__Impl
+	rule__XTypeLiteral__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); }
+	'typeof'
+	{ after(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTypeLiteral__Group__2__Impl
+	rule__XTypeLiteral__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); }
+	'('
+	{ after(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTypeLiteral__Group__3__Impl
+	rule__XTypeLiteral__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); }
+	(rule__XTypeLiteral__TypeAssignment_3)
+	{ after(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTypeLiteral__Group__4__Impl
+	rule__XTypeLiteral__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); }
+	(rule__XTypeLiteral__ArrayDimensionsAssignment_4)*
+	{ after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTypeLiteral__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); }
+	')'
+	{ after(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XThrowExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XThrowExpression__Group__0__Impl
+	rule__XThrowExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XThrowExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); }
+	()
+	{ after(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XThrowExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XThrowExpression__Group__1__Impl
+	rule__XThrowExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XThrowExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); }
+	'throw'
+	{ after(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XThrowExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XThrowExpression__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XThrowExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); }
+	(rule__XThrowExpression__ExpressionAssignment_2)
+	{ after(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XReturnExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XReturnExpression__Group__0__Impl
+	rule__XReturnExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XReturnExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); }
+	()
+	{ after(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XReturnExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XReturnExpression__Group__1__Impl
+	rule__XReturnExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XReturnExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); }
+	'return'
+	{ after(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XReturnExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XReturnExpression__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XReturnExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); }
+	(rule__XReturnExpression__ExpressionAssignment_2)?
+	{ after(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XTryCatchFinallyExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTryCatchFinallyExpression__Group__0__Impl
+	rule__XTryCatchFinallyExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); }
+	()
+	{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTryCatchFinallyExpression__Group__1__Impl
+	rule__XTryCatchFinallyExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); }
+	'try'
+	{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTryCatchFinallyExpression__Group__2__Impl
+	rule__XTryCatchFinallyExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); }
+	(rule__XTryCatchFinallyExpression__ExpressionAssignment_2)
+	{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTryCatchFinallyExpression__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); }
+	(rule__XTryCatchFinallyExpression__Alternatives_3)
+	{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XTryCatchFinallyExpression__Group_3_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTryCatchFinallyExpression__Group_3_0__0__Impl
+	rule__XTryCatchFinallyExpression__Group_3_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	(
+		{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
+		(rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0)
+		{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
+	)
+	(
+		{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
+		(rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0)*
+		{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
+	)
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); }
+	(rule__XTryCatchFinallyExpression__Group_3_0_1__0)?
+	{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XTryCatchFinallyExpression__Group_3_0_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl
+	rule__XTryCatchFinallyExpression__Group_3_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); }
+	('finally')
+	{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_0_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); }
+	(rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1)
+	{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XTryCatchFinallyExpression__Group_3_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTryCatchFinallyExpression__Group_3_1__0__Impl
+	rule__XTryCatchFinallyExpression__Group_3_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); }
+	'finally'
+	{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); }
+	(rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1)
+	{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSynchronizedExpression__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSynchronizedExpression__Group__0__Impl
+	rule__XSynchronizedExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); }
+	(rule__XSynchronizedExpression__Group_0__0)
+	{ after(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSynchronizedExpression__Group__1__Impl
+	rule__XSynchronizedExpression__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); }
+	(rule__XSynchronizedExpression__ParamAssignment_1)
+	{ after(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSynchronizedExpression__Group__2__Impl
+	rule__XSynchronizedExpression__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); }
+	')'
+	{ after(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSynchronizedExpression__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); }
+	(rule__XSynchronizedExpression__ExpressionAssignment_3)
+	{ after(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSynchronizedExpression__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSynchronizedExpression__Group_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); }
+	(rule__XSynchronizedExpression__Group_0_0__0)
+	{ after(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XSynchronizedExpression__Group_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSynchronizedExpression__Group_0_0__0__Impl
+	rule__XSynchronizedExpression__Group_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); }
+	()
+	{ after(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSynchronizedExpression__Group_0_0__1__Impl
+	rule__XSynchronizedExpression__Group_0_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); }
+	'synchronized'
+	{ after(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group_0_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XSynchronizedExpression__Group_0_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__Group_0_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); }
+	'('
+	{ after(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XCatchClause__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCatchClause__Group__0__Impl
+	rule__XCatchClause__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); }
+	('catch')
+	{ after(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCatchClause__Group__1__Impl
+	rule__XCatchClause__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); }
+	'('
+	{ after(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCatchClause__Group__2__Impl
+	rule__XCatchClause__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); }
+	(rule__XCatchClause__DeclaredParamAssignment_2)
+	{ after(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCatchClause__Group__3__Impl
+	rule__XCatchClause__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); }
+	')'
+	{ after(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XCatchClause__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); }
+	(rule__XCatchClause__ExpressionAssignment_4)
+	{ after(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedName__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__QualifiedName__Group__0__Impl
+	rule__QualifiedName__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
+	ruleValidID
+	{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__QualifiedName__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
+	(rule__QualifiedName__Group_1__0)*
+	{ after(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedName__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__QualifiedName__Group_1__0__Impl
+	rule__QualifiedName__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
+	('.')
+	{ after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__QualifiedName__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
+	ruleValidID
+	{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Number__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Number__Group_1__0__Impl
+	rule__Number__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNumberAccess().getAlternatives_1_0()); }
+	(rule__Number__Alternatives_1_0)
+	{ after(grammarAccess.getNumberAccess().getAlternatives_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Number__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNumberAccess().getGroup_1_1()); }
+	(rule__Number__Group_1_1__0)?
+	{ after(grammarAccess.getNumberAccess().getGroup_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Number__Group_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Number__Group_1_1__0__Impl
+	rule__Number__Group_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Group_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); }
+	'.'
+	{ after(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Group_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Number__Group_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Number__Group_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); }
+	(rule__Number__Alternatives_1_1_1)
+	{ after(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmTypeReference__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmTypeReference__Group_0__0__Impl
+	rule__JvmTypeReference__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); }
+	ruleJvmParameterizedTypeReference
+	{ after(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmTypeReference__Group_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); }
+	(rule__JvmTypeReference__Group_0_1__0)*
+	{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmTypeReference__Group_0_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmTypeReference__Group_0_1__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); }
+	(rule__JvmTypeReference__Group_0_1_0__0)
+	{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmTypeReference__Group_0_1_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmTypeReference__Group_0_1_0__0__Impl
+	rule__JvmTypeReference__Group_0_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0_1_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); }
+	()
+	{ after(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0_1_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmTypeReference__Group_0_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0_1_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); }
+	ruleArrayBrackets
+	{ after(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ArrayBrackets__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ArrayBrackets__Group__0__Impl
+	rule__ArrayBrackets__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ArrayBrackets__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); }
+	'['
+	{ after(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ArrayBrackets__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ArrayBrackets__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ArrayBrackets__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); }
+	']'
+	{ after(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XFunctionTypeRef__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFunctionTypeRef__Group__0__Impl
+	rule__XFunctionTypeRef__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); }
+	(rule__XFunctionTypeRef__Group_0__0)?
+	{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFunctionTypeRef__Group__1__Impl
+	rule__XFunctionTypeRef__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); }
+	'=>'
+	{ after(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFunctionTypeRef__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); }
+	(rule__XFunctionTypeRef__ReturnTypeAssignment_2)
+	{ after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XFunctionTypeRef__Group_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFunctionTypeRef__Group_0__0__Impl
+	rule__XFunctionTypeRef__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); }
+	'('
+	{ after(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFunctionTypeRef__Group_0__1__Impl
+	rule__XFunctionTypeRef__Group_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); }
+	(rule__XFunctionTypeRef__Group_0_1__0)?
+	{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFunctionTypeRef__Group_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); }
+	')'
+	{ after(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XFunctionTypeRef__Group_0_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFunctionTypeRef__Group_0_1__0__Impl
+	rule__XFunctionTypeRef__Group_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); }
+	(rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0)
+	{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFunctionTypeRef__Group_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); }
+	(rule__XFunctionTypeRef__Group_0_1_1__0)*
+	{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XFunctionTypeRef__Group_0_1_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFunctionTypeRef__Group_0_1_1__0__Impl
+	rule__XFunctionTypeRef__Group_0_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0_1_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); }
+	','
+	{ after(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0_1_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); }
+	(rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1)
+	{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group__0__Impl
+	rule__JvmParameterizedTypeReference__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); }
+	(rule__JvmParameterizedTypeReference__TypeAssignment_0)
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); }
+	(rule__JvmParameterizedTypeReference__Group_1__0)?
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1__0__Impl
+	rule__JvmParameterizedTypeReference__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); }
+	('<')
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1__1__Impl
+	rule__JvmParameterizedTypeReference__Group_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); }
+	(rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1)
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1__2__Impl
+	rule__JvmParameterizedTypeReference__Group_1__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); }
+	(rule__JvmParameterizedTypeReference__Group_1_2__0)*
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1__3__Impl
+	rule__JvmParameterizedTypeReference__Group_1__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); }
+	'>'
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); }
+	(rule__JvmParameterizedTypeReference__Group_1_4__0)*
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_2__0__Impl
+	rule__JvmParameterizedTypeReference__Group_1_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); }
+	','
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); }
+	(rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1)
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4__0__Impl
+	rule__JvmParameterizedTypeReference__Group_1_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); }
+	(rule__JvmParameterizedTypeReference__Group_1_4_0__0)
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4__1__Impl
+	rule__JvmParameterizedTypeReference__Group_1_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); }
+	(rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1)
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); }
+	(rule__JvmParameterizedTypeReference__Group_1_4_2__0)?
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1_4_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); }
+	(rule__JvmParameterizedTypeReference__Group_1_4_0_0__0)
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl
+	rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); }
+	()
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); }
+	'.'
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1_4_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl
+	rule__JvmParameterizedTypeReference__Group_1_4_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); }
+	('<')
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl
+	rule__JvmParameterizedTypeReference__Group_1_4_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); }
+	(rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1)
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl
+	rule__JvmParameterizedTypeReference__Group_1_4_2__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); }
+	(rule__JvmParameterizedTypeReference__Group_1_4_2_2__0)*
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_2__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); }
+	'>'
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl
+	rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); }
+	','
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); }
+	(rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1)
+	{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmWildcardTypeReference__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmWildcardTypeReference__Group__0__Impl
+	rule__JvmWildcardTypeReference__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); }
+	()
+	{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmWildcardTypeReference__Group__1__Impl
+	rule__JvmWildcardTypeReference__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); }
+	'?'
+	{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmWildcardTypeReference__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); }
+	(rule__JvmWildcardTypeReference__Alternatives_2)?
+	{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmWildcardTypeReference__Group_2_0__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmWildcardTypeReference__Group_2_0__0__Impl
+	rule__JvmWildcardTypeReference__Group_2_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group_2_0__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); }
+	(rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0)
+	{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group_2_0__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmWildcardTypeReference__Group_2_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group_2_0__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); }
+	(rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1)*
+	{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmWildcardTypeReference__Group_2_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmWildcardTypeReference__Group_2_1__0__Impl
+	rule__JvmWildcardTypeReference__Group_2_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group_2_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); }
+	(rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0)
+	{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group_2_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmWildcardTypeReference__Group_2_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group_2_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); }
+	(rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1)*
+	{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmUpperBound__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmUpperBound__Group__0__Impl
+	rule__JvmUpperBound__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBound__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); }
+	'extends'
+	{ after(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBound__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmUpperBound__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBound__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); }
+	(rule__JvmUpperBound__TypeReferenceAssignment_1)
+	{ after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmUpperBoundAnded__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmUpperBoundAnded__Group__0__Impl
+	rule__JvmUpperBoundAnded__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBoundAnded__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); }
+	'&'
+	{ after(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBoundAnded__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmUpperBoundAnded__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBoundAnded__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); }
+	(rule__JvmUpperBoundAnded__TypeReferenceAssignment_1)
+	{ after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmLowerBound__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmLowerBound__Group__0__Impl
+	rule__JvmLowerBound__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBound__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); }
+	'super'
+	{ after(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBound__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmLowerBound__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBound__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); }
+	(rule__JvmLowerBound__TypeReferenceAssignment_1)
+	{ after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__JvmLowerBoundAnded__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmLowerBoundAnded__Group__0__Impl
+	rule__JvmLowerBoundAnded__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBoundAnded__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); }
+	'&'
+	{ after(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBoundAnded__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__JvmLowerBoundAnded__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBoundAnded__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); }
+	(rule__JvmLowerBoundAnded__TypeReferenceAssignment_1)
+	{ after(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedNameWithWildcard__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__QualifiedNameWithWildcard__Group__0__Impl
+	rule__QualifiedNameWithWildcard__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); }
+	ruleQualifiedName
+	{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__QualifiedNameWithWildcard__Group__1__Impl
+	rule__QualifiedNameWithWildcard__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); }
+	'.'
+	{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__QualifiedNameWithWildcard__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); }
+	'*'
+	{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedNameInStaticImport__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__QualifiedNameInStaticImport__Group__0__Impl
+	rule__QualifiedNameInStaticImport__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameInStaticImport__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); }
+	ruleValidID
+	{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameInStaticImport__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__QualifiedNameInStaticImport__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameInStaticImport__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); }
+	'.'
+	{ after(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableSelection__UnorderedGroup_3
+	@init {
+		int stackSize = keepStackSize();
+		getUnorderedGroupHelper().enter(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+	}
+:
+	rule__TableSelection__UnorderedGroup_3__0
+	?
+;
+finally {
+	getUnorderedGroupHelper().leave(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__UnorderedGroup_3__Impl
+	@init {
+		int stackSize = keepStackSize();
+		boolean selected = false;
+	}
+:
+		(
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableSelectionAccess().getSelectalwaysAssignment_3_0()); }
+					(rule__TableSelection__SelectalwaysAssignment_3_0)
+					{ after(grammarAccess.getTableSelectionAccess().getSelectalwaysAssignment_3_0()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableSelectionAccess().getGroup_3_1()); }
+					(rule__TableSelection__Group_3_1__0)
+					{ after(grammarAccess.getTableSelectionAccess().getGroup_3_1()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableSelectionAccess().getGroup_3_2()); }
+					(rule__TableSelection__Group_3_2__0)
+					{ after(grammarAccess.getTableSelectionAccess().getGroup_3_2()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableSelectionAccess().getFilteringAssignment_3_3()); }
+					(rule__TableSelection__FilteringAssignment_3_3)
+					{ after(grammarAccess.getTableSelectionAccess().getFilteringAssignment_3_3()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableSelectionAccess().getEmbeddedAssignment_3_4()); }
+					(rule__TableSelection__EmbeddedAssignment_3_4)
+					{ after(grammarAccess.getTableSelectionAccess().getEmbeddedAssignment_3_4()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableSelectionAccess().getGroup_3_5()); }
+					(rule__TableSelection__Group_3_5__0)
+					{ after(grammarAccess.getTableSelectionAccess().getGroup_3_5()); }
+				)
+			)
+		)
+		)
+;
+finally {
+	if (selected)
+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__UnorderedGroup_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__UnorderedGroup_3__Impl
+	rule__TableSelection__UnorderedGroup_3__1?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__UnorderedGroup_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__UnorderedGroup_3__Impl
+	rule__TableSelection__UnorderedGroup_3__2?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__UnorderedGroup_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__UnorderedGroup_3__Impl
+	rule__TableSelection__UnorderedGroup_3__3?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__UnorderedGroup_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__UnorderedGroup_3__Impl
+	rule__TableSelection__UnorderedGroup_3__4?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__UnorderedGroup_3__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__UnorderedGroup_3__Impl
+	rule__TableSelection__UnorderedGroup_3__5?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__UnorderedGroup_3__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableSelection__UnorderedGroup_3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableTable__UnorderedGroup_2
+	@init {
+		int stackSize = keepStackSize();
+		getUnorderedGroupHelper().enter(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+	}
+:
+	rule__TableTable__UnorderedGroup_2__0
+	?
+;
+finally {
+	getUnorderedGroupHelper().leave(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__UnorderedGroup_2__Impl
+	@init {
+		int stackSize = keepStackSize();
+		boolean selected = false;
+	}
+:
+		(
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableTableAccess().getSelectalwaysAssignment_2_0()); }
+					(rule__TableTable__SelectalwaysAssignment_2_0)
+					{ after(grammarAccess.getTableTableAccess().getSelectalwaysAssignment_2_0()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableTableAccess().getSelectByIdAssignment_2_1()); }
+					(rule__TableTable__SelectByIdAssignment_2_1)
+					{ after(grammarAccess.getTableTableAccess().getSelectByIdAssignment_2_1()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableTableAccess().getGroup_2_2()); }
+					(rule__TableTable__Group_2_2__0)
+					{ after(grammarAccess.getTableTableAccess().getGroup_2_2()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableTableAccess().getGroup_2_3()); }
+					(rule__TableTable__Group_2_3__0)
+					{ after(grammarAccess.getTableTableAccess().getGroup_2_3()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableTableAccess().getFilteringAssignment_2_4()); }
+					(rule__TableTable__FilteringAssignment_2_4)
+					{ after(grammarAccess.getTableTableAccess().getFilteringAssignment_2_4()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableTableAccess().getEmbeddedAssignment_2_5()); }
+					(rule__TableTable__EmbeddedAssignment_2_5)
+					{ after(grammarAccess.getTableTableAccess().getEmbeddedAssignment_2_5()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableTableAccess().getGroup_2_6()); }
+					(rule__TableTable__Group_2_6__0)
+					{ after(grammarAccess.getTableTableAccess().getGroup_2_6()); }
+				)
+			)
+		)
+		)
+;
+finally {
+	if (selected)
+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__UnorderedGroup_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__UnorderedGroup_2__Impl
+	rule__TableTable__UnorderedGroup_2__1?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__UnorderedGroup_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__UnorderedGroup_2__Impl
+	rule__TableTable__UnorderedGroup_2__2?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__UnorderedGroup_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__UnorderedGroup_2__Impl
+	rule__TableTable__UnorderedGroup_2__3?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__UnorderedGroup_2__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__UnorderedGroup_2__Impl
+	rule__TableTable__UnorderedGroup_2__4?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__UnorderedGroup_2__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__UnorderedGroup_2__Impl
+	rule__TableTable__UnorderedGroup_2__5?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__UnorderedGroup_2__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__UnorderedGroup_2__Impl
+	rule__TableTable__UnorderedGroup_2__6?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__UnorderedGroup_2__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableTable__UnorderedGroup_2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableBean__UnorderedGroup_2
+	@init {
+		int stackSize = keepStackSize();
+		getUnorderedGroupHelper().enter(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+	}
+:
+	rule__TableBean__UnorderedGroup_2__0
+	?
+;
+finally {
+	getUnorderedGroupHelper().leave(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__UnorderedGroup_2__Impl
+	@init {
+		int stackSize = keepStackSize();
+		boolean selected = false;
+	}
+:
+		(
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableBeanAccess().getSelectalwaysAssignment_2_0()); }
+					(rule__TableBean__SelectalwaysAssignment_2_0)
+					{ after(grammarAccess.getTableBeanAccess().getSelectalwaysAssignment_2_0()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableBeanAccess().getSelectByIdAssignment_2_1()); }
+					(rule__TableBean__SelectByIdAssignment_2_1)
+					{ after(grammarAccess.getTableBeanAccess().getSelectByIdAssignment_2_1()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableBeanAccess().getGroup_2_2()); }
+					(rule__TableBean__Group_2_2__0)
+					{ after(grammarAccess.getTableBeanAccess().getGroup_2_2()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableBeanAccess().getGroup_2_3()); }
+					(rule__TableBean__Group_2_3__0)
+					{ after(grammarAccess.getTableBeanAccess().getGroup_2_3()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableBeanAccess().getFilteringAssignment_2_4()); }
+					(rule__TableBean__FilteringAssignment_2_4)
+					{ after(grammarAccess.getTableBeanAccess().getFilteringAssignment_2_4()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableBeanAccess().getEmbeddedAssignment_2_5()); }
+					(rule__TableBean__EmbeddedAssignment_2_5)
+					{ after(grammarAccess.getTableBeanAccess().getEmbeddedAssignment_2_5()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableBeanAccess().getGroup_2_6()); }
+					(rule__TableBean__Group_2_6__0)
+					{ after(grammarAccess.getTableBeanAccess().getGroup_2_6()); }
+				)
+			)
+		)
+		)
+;
+finally {
+	if (selected)
+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__UnorderedGroup_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__UnorderedGroup_2__Impl
+	rule__TableBean__UnorderedGroup_2__1?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__UnorderedGroup_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__UnorderedGroup_2__Impl
+	rule__TableBean__UnorderedGroup_2__2?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__UnorderedGroup_2__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__UnorderedGroup_2__Impl
+	rule__TableBean__UnorderedGroup_2__3?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__UnorderedGroup_2__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__UnorderedGroup_2__Impl
+	rule__TableBean__UnorderedGroup_2__4?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__UnorderedGroup_2__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__UnorderedGroup_2__Impl
+	rule__TableBean__UnorderedGroup_2__5?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__UnorderedGroup_2__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__UnorderedGroup_2__Impl
+	rule__TableBean__UnorderedGroup_2__6?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__UnorderedGroup_2__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableBean__UnorderedGroup_2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableValue__UnorderedGroup_3
+	@init {
+		int stackSize = keepStackSize();
+		getUnorderedGroupHelper().enter(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+	}
+:
+	rule__TableValue__UnorderedGroup_3__0
+	?
+;
+finally {
+	getUnorderedGroupHelper().leave(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__UnorderedGroup_3__Impl
+	@init {
+		int stackSize = keepStackSize();
+		boolean selected = false;
+	}
+:
+		(
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableValueAccess().getCollapsedAssignment_3_0()); }
+					(rule__TableValue__CollapsedAssignment_3_0)
+					{ after(grammarAccess.getTableValueAccess().getCollapsedAssignment_3_0()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableValueAccess().getGroup_3_1()); }
+					(rule__TableValue__Group_3_1__0)
+					{ after(grammarAccess.getTableValueAccess().getGroup_3_1()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableValueAccess().getFormatterAssignment_3_2()); }
+					(rule__TableValue__FormatterAssignment_3_2)
+					{ after(grammarAccess.getTableValueAccess().getFormatterAssignment_3_2()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableValueAccess().getGroup_3_3()); }
+					(rule__TableValue__Group_3_3__0)
+					{ after(grammarAccess.getTableValueAccess().getGroup_3_3()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableValueAccess().getTooltipPatternAssignment_3_4()); }
+					(rule__TableValue__TooltipPatternAssignment_3_4)
+					{ after(grammarAccess.getTableValueAccess().getTooltipPatternAssignment_3_4()); }
+				)
+			)
+		)
+		)
+;
+finally {
+	if (selected)
+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__UnorderedGroup_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__UnorderedGroup_3__Impl
+	rule__TableValue__UnorderedGroup_3__1?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__UnorderedGroup_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__UnorderedGroup_3__Impl
+	rule__TableValue__UnorderedGroup_3__2?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__UnorderedGroup_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__UnorderedGroup_3__Impl
+	rule__TableValue__UnorderedGroup_3__3?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__UnorderedGroup_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__UnorderedGroup_3__Impl
+	rule__TableValue__UnorderedGroup_3__4?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__UnorderedGroup_3__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__UnorderedGroup_3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableValue__UnorderedGroup_4
+	@init {
+		int stackSize = keepStackSize();
+		getUnorderedGroupHelper().enter(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
+	}
+:
+	rule__TableValue__UnorderedGroup_4__0
+	?
+;
+finally {
+	getUnorderedGroupHelper().leave(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__UnorderedGroup_4__Impl
+	@init {
+		int stackSize = keepStackSize();
+		boolean selected = false;
+	}
+:
+		(
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableValueAccess().getGroup_4_0()); }
+					(rule__TableValue__Group_4_0__0)
+					{ after(grammarAccess.getTableValueAccess().getGroup_4_0()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableValueAccess().getGroup_4_1()); }
+					(rule__TableValue__Group_4_1__0)
+					{ after(grammarAccess.getTableValueAccess().getGroup_4_1()); }
+				)
+			)
+		)
+		)
+;
+finally {
+	if (selected)
+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__UnorderedGroup_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__UnorderedGroup_4__Impl
+	rule__TableValue__UnorderedGroup_4__1?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__UnorderedGroup_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableValue__UnorderedGroup_4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableImage__UnorderedGroup_3
+	@init {
+		int stackSize = keepStackSize();
+		getUnorderedGroupHelper().enter(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+	}
+:
+	rule__TableImage__UnorderedGroup_3__0
+	?
+;
+finally {
+	getUnorderedGroupHelper().leave(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__UnorderedGroup_3__Impl
+	@init {
+		int stackSize = keepStackSize();
+		boolean selected = false;
+	}
+:
+		(
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableImageAccess().getHasParameterAssignment_3_0()); }
+					(rule__TableImage__HasParameterAssignment_3_0)
+					{ after(grammarAccess.getTableImageAccess().getHasParameterAssignment_3_0()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableImageAccess().getHideImageLabelAssignment_3_1()); }
+					(rule__TableImage__HideImageLabelAssignment_3_1)
+					{ after(grammarAccess.getTableImageAccess().getHideImageLabelAssignment_3_1()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableImageAccess().getGroup_3_2()); }
+					(rule__TableImage__Group_3_2__0)
+					{ after(grammarAccess.getTableImageAccess().getGroup_3_2()); }
+				)
+			)
+		)
+		)
+;
+finally {
+	if (selected)
+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__UnorderedGroup_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableImage__UnorderedGroup_3__Impl
+	rule__TableImage__UnorderedGroup_3__1?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__UnorderedGroup_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableImage__UnorderedGroup_3__Impl
+	rule__TableImage__UnorderedGroup_3__2?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__UnorderedGroup_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableImage__UnorderedGroup_3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableAxis__UnorderedGroup_2
+	@init {
+		int stackSize = keepStackSize();
+		getUnorderedGroupHelper().enter(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
+	}
+:
+	rule__TableAxis__UnorderedGroup_2__0
+	?
+;
+finally {
+	getUnorderedGroupHelper().leave(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__UnorderedGroup_2__Impl
+	@init {
+		int stackSize = keepStackSize();
+		boolean selected = false;
+	}
+:
+		(
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableAxisAccess().getGroup_2_0()); }
+					(rule__TableAxis__Group_2_0__0)
+					{ after(grammarAccess.getTableAxisAccess().getGroup_2_0()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableAxisAccess().getPreOrderAssignment_2_1()); }
+					(rule__TableAxis__PreOrderAssignment_2_1)
+					{ after(grammarAccess.getTableAxisAccess().getPreOrderAssignment_2_1()); }
+				)
+			)
+		)
+		)
+;
+finally {
+	if (selected)
+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__UnorderedGroup_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__UnorderedGroup_2__Impl
+	rule__TableAxis__UnorderedGroup_2__1?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__UnorderedGroup_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableAxis__UnorderedGroup_2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableGrid__UnorderedGroup_2
+	@init {
+		int stackSize = keepStackSize();
+		getUnorderedGroupHelper().enter(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
+	}
+:
+	rule__TableGrid__UnorderedGroup_2__0
+	?
+;
+finally {
+	getUnorderedGroupHelper().leave(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__UnorderedGroup_2__Impl
+	@init {
+		int stackSize = keepStackSize();
+		boolean selected = false;
+	}
+:
+		(
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableGridAccess().getSelectalwaysAssignment_2_0()); }
+					(rule__TableGrid__SelectalwaysAssignment_2_0)
+					{ after(grammarAccess.getTableGridAccess().getSelectalwaysAssignment_2_0()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableGridAccess().getGroup_2_1()); }
+					(rule__TableGrid__Group_2_1__0)
+					{ after(grammarAccess.getTableGridAccess().getGroup_2_1()); }
+				)
+			)
+		)
+		)
+;
+finally {
+	if (selected)
+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__UnorderedGroup_2__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__UnorderedGroup_2__Impl
+	rule__TableGrid__UnorderedGroup_2__1?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__UnorderedGroup_2__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__UnorderedGroup_2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableGrid__UnorderedGroup_3
+	@init {
+		int stackSize = keepStackSize();
+		getUnorderedGroupHelper().enter(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+	}
+:
+	rule__TableGrid__UnorderedGroup_3__0
+	?
+;
+finally {
+	getUnorderedGroupHelper().leave(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__UnorderedGroup_3__Impl
+	@init {
+		int stackSize = keepStackSize();
+		boolean selected = false;
+	}
+:
+		(
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableGridAccess().getGroup_3_0()); }
+					(rule__TableGrid__Group_3_0__0)
+					{ after(grammarAccess.getTableGridAccess().getGroup_3_0()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableGridAccess().getFilteringAssignment_3_1()); }
+					(rule__TableGrid__FilteringAssignment_3_1)
+					{ after(grammarAccess.getTableGridAccess().getFilteringAssignment_3_1()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableGridAccess().getEmbeddedAssignment_3_2()); }
+					(rule__TableGrid__EmbeddedAssignment_3_2)
+					{ after(grammarAccess.getTableGridAccess().getEmbeddedAssignment_3_2()); }
+				)
+			)
+		)|
+		( 
+			{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3)}?=>(
+				{
+					getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3);
+				}
+				{
+					selected = true;
+				}
+				(
+					{ before(grammarAccess.getTableGridAccess().getGroup_3_3()); }
+					(rule__TableGrid__Group_3_3__0)
+					{ after(grammarAccess.getTableGridAccess().getGroup_3_3()); }
+				)
+			)
+		)
+		)
+;
+finally {
+	if (selected)
+		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__UnorderedGroup_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__UnorderedGroup_3__Impl
+	rule__TableGrid__UnorderedGroup_3__1?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__UnorderedGroup_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__UnorderedGroup_3__Impl
+	rule__TableGrid__UnorderedGroup_3__2?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__UnorderedGroup_3__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__UnorderedGroup_3__Impl
+	rule__TableGrid__UnorderedGroup_3__3?
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__UnorderedGroup_3__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TableGrid__UnorderedGroup_3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TableModel__ImportSectionAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); }
+		ruleXImportSection
+		{ after(grammarAccess.getTableModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableModel__PackagesAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableModelAccess().getPackagesTablePackageParserRuleCall_1_0()); }
+		ruleTablePackage
+		{ after(grammarAccess.getTableModelAccess().getPackagesTablePackageParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__NameAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTablePackageAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+		ruleQualifiedName
+		{ after(grammarAccess.getTablePackageAccess().getNameQualifiedNameParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePackage__TablesAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTablePackageAccess().getTablesTableParserRuleCall_3_1_0()); }
+		ruleTable
+		{ after(grammarAccess.getTablePackageAccess().getTablesTableParserRuleCall_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__NameAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAccess().getNameIDTerminalRuleCall_2_0()); }
+		RULE_ID
+		{ after(grammarAccess.getTableAccess().getNameIDTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__DescriptionAssignment_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0()); }
+		(
+			{ before(grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0()); }
+			'describedBy'
+			{ after(grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0()); }
+		)
+		{ after(grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__DescriptionValueAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); }
+		ruleTRANSLATABLESTRING
+		{ after(grammarAccess.getTableAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Table__TabletypeAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAccess().getTabletypeTableOptionParserRuleCall_5_0()); }
+		ruleTableOption
+		{ after(grammarAccess.getTableAccess().getTabletypeTableOptionParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__MultiSelectionAssignment_2_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getMultiSelectionMultipleKeyword_2_0_0()); }
+		(
+			{ before(grammarAccess.getTableSelectionAccess().getMultiSelectionMultipleKeyword_2_0_0()); }
+			'multiple'
+			{ after(grammarAccess.getTableSelectionAccess().getMultiSelectionMultipleKeyword_2_0_0()); }
+		)
+		{ after(grammarAccess.getTableSelectionAccess().getMultiSelectionMultipleKeyword_2_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__SelectalwaysAssignment_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getSelectalwaysAlwaysSelectedKeyword_3_0_0()); }
+		(
+			{ before(grammarAccess.getTableSelectionAccess().getSelectalwaysAlwaysSelectedKeyword_3_0_0()); }
+			'alwaysSelected'
+			{ after(grammarAccess.getTableSelectionAccess().getSelectalwaysAlwaysSelectedKeyword_3_0_0()); }
+		)
+		{ after(grammarAccess.getTableSelectionAccess().getSelectalwaysAlwaysSelectedKeyword_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__HeaderModeAssignment_3_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getHeaderModeRowHeaderModeEnumRuleCall_3_1_1_0()); }
+		ruleRowHeaderMode
+		{ after(grammarAccess.getTableSelectionAccess().getHeaderModeRowHeaderModeEnumRuleCall_3_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__PollingAssignment_3_2_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_2_0_0()); }
+		(
+			{ before(grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_2_0_0()); }
+			'polling'
+			{ after(grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_2_0_0()); }
+		)
+		{ after(grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_2_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__PollingTimeAssignment_3_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getPollingTimeNumberParserRuleCall_3_2_1_0()); }
+		ruleNumber
+		{ after(grammarAccess.getTableSelectionAccess().getPollingTimeNumberParserRuleCall_3_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__FilteringAssignment_3_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_3_0()); }
+		(
+			{ before(grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_3_0()); }
+			'filtering'
+			{ after(grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_3_0()); }
+		)
+		{ after(grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__EmbeddedAssignment_3_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_4_0()); }
+		(
+			{ before(grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_4_0()); }
+			'embedded'
+			{ after(grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_4_0()); }
+		)
+		{ after(grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__ToolbarAssignment_3_5_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getToolbarActionToolbarCrossReference_3_5_1_0()); }
+		(
+			{ before(grammarAccess.getTableSelectionAccess().getToolbarActionToolbarIDTerminalRuleCall_3_5_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableSelectionAccess().getToolbarActionToolbarIDTerminalRuleCall_3_5_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableSelectionAccess().getToolbarActionToolbarCrossReference_3_5_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableSelection__SourceAssignment_4_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableSelectionAccess().getSourceTableDatamartParserRuleCall_4_1_0()); }
+		ruleTableDatamart
+		{ after(grammarAccess.getTableSelectionAccess().getSourceTableDatamartParserRuleCall_4_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__SelectalwaysAssignment_2_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTableAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); }
+		(
+			{ before(grammarAccess.getTableTableAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); }
+			'alwaysSelected'
+			{ after(grammarAccess.getTableTableAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); }
+		)
+		{ after(grammarAccess.getTableTableAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__SelectByIdAssignment_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTableAccess().getSelectByIdSelectByIdKeyword_2_1_0()); }
+		(
+			{ before(grammarAccess.getTableTableAccess().getSelectByIdSelectByIdKeyword_2_1_0()); }
+			'selectById'
+			{ after(grammarAccess.getTableTableAccess().getSelectByIdSelectByIdKeyword_2_1_0()); }
+		)
+		{ after(grammarAccess.getTableTableAccess().getSelectByIdSelectByIdKeyword_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__HeaderModeAssignment_2_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTableAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0()); }
+		ruleRowHeaderMode
+		{ after(grammarAccess.getTableTableAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__PollingAssignment_2_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTableAccess().getPollingPollingKeyword_2_3_0_0()); }
+		(
+			{ before(grammarAccess.getTableTableAccess().getPollingPollingKeyword_2_3_0_0()); }
+			'polling'
+			{ after(grammarAccess.getTableTableAccess().getPollingPollingKeyword_2_3_0_0()); }
+		)
+		{ after(grammarAccess.getTableTableAccess().getPollingPollingKeyword_2_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__PollingTimeAssignment_2_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTableAccess().getPollingTimeNumberParserRuleCall_2_3_1_0()); }
+		ruleNumber
+		{ after(grammarAccess.getTableTableAccess().getPollingTimeNumberParserRuleCall_2_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__FilteringAssignment_2_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_2_4_0()); }
+		(
+			{ before(grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_2_4_0()); }
+			'filtering'
+			{ after(grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_2_4_0()); }
+		)
+		{ after(grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_2_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__EmbeddedAssignment_2_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_2_5_0()); }
+		(
+			{ before(grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_2_5_0()); }
+			'embedded'
+			{ after(grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_2_5_0()); }
+		)
+		{ after(grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_2_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__ToolbarAssignment_2_6_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTableAccess().getToolbarActionToolbarCrossReference_2_6_1_0()); }
+		(
+			{ before(grammarAccess.getTableTableAccess().getToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableTableAccess().getToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableTableAccess().getToolbarActionToolbarCrossReference_2_6_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTable__SourceAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTableAccess().getSourceTableDatamartParserRuleCall_3_1_0()); }
+		ruleTableDatamart
+		{ after(grammarAccess.getTableTableAccess().getSourceTableDatamartParserRuleCall_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__SelectalwaysAssignment_2_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableBeanAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); }
+		(
+			{ before(grammarAccess.getTableBeanAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); }
+			'alwaysSelected'
+			{ after(grammarAccess.getTableBeanAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); }
+		)
+		{ after(grammarAccess.getTableBeanAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__SelectByIdAssignment_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableBeanAccess().getSelectByIdSelectByIdKeyword_2_1_0()); }
+		(
+			{ before(grammarAccess.getTableBeanAccess().getSelectByIdSelectByIdKeyword_2_1_0()); }
+			'selectById'
+			{ after(grammarAccess.getTableBeanAccess().getSelectByIdSelectByIdKeyword_2_1_0()); }
+		)
+		{ after(grammarAccess.getTableBeanAccess().getSelectByIdSelectByIdKeyword_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__HeaderModeAssignment_2_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableBeanAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0()); }
+		ruleRowHeaderMode
+		{ after(grammarAccess.getTableBeanAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__PollingAssignment_2_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableBeanAccess().getPollingPollingKeyword_2_3_0_0()); }
+		(
+			{ before(grammarAccess.getTableBeanAccess().getPollingPollingKeyword_2_3_0_0()); }
+			'polling'
+			{ after(grammarAccess.getTableBeanAccess().getPollingPollingKeyword_2_3_0_0()); }
+		)
+		{ after(grammarAccess.getTableBeanAccess().getPollingPollingKeyword_2_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__PollingTimeAssignment_2_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableBeanAccess().getPollingTimeNumberParserRuleCall_2_3_1_0()); }
+		ruleNumber
+		{ after(grammarAccess.getTableBeanAccess().getPollingTimeNumberParserRuleCall_2_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__FilteringAssignment_2_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableBeanAccess().getFilteringFilteringKeyword_2_4_0()); }
+		(
+			{ before(grammarAccess.getTableBeanAccess().getFilteringFilteringKeyword_2_4_0()); }
+			'filtering'
+			{ after(grammarAccess.getTableBeanAccess().getFilteringFilteringKeyword_2_4_0()); }
+		)
+		{ after(grammarAccess.getTableBeanAccess().getFilteringFilteringKeyword_2_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__EmbeddedAssignment_2_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableBeanAccess().getEmbeddedEmbeddedKeyword_2_5_0()); }
+		(
+			{ before(grammarAccess.getTableBeanAccess().getEmbeddedEmbeddedKeyword_2_5_0()); }
+			'embedded'
+			{ after(grammarAccess.getTableBeanAccess().getEmbeddedEmbeddedKeyword_2_5_0()); }
+		)
+		{ after(grammarAccess.getTableBeanAccess().getEmbeddedEmbeddedKeyword_2_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__ToolbarAssignment_2_6_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableBeanAccess().getToolbarActionToolbarCrossReference_2_6_1_0()); }
+		(
+			{ before(grammarAccess.getTableBeanAccess().getToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableBeanAccess().getToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableBeanAccess().getToolbarActionToolbarCrossReference_2_6_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBean__SourceAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableBeanAccess().getSourceTableDatamartParserRuleCall_3_1_0()); }
+		ruleTableDatamart
+		{ after(grammarAccess.getTableBeanAccess().getSourceTableDatamartParserRuleCall_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePreorder__ColumnAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTablePreorderAccess().getColumnTableValueElementParserRuleCall_2_0()); }
+		ruleTableValueElement
+		{ after(grammarAccess.getTablePreorderAccess().getColumnTableValueElementParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TablePreorder__AscendingAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0()); }
+		(
+			{ before(grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0()); }
+			'ascending'
+			{ after(grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0()); }
+		)
+		{ after(grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__ColumnAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getColumnTableValueElementParserRuleCall_2_0()); }
+		ruleTableValueElement
+		{ after(grammarAccess.getTableValueAccess().getColumnTableValueElementParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__CollapsedAssignment_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0()); }
+		(
+			{ before(grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0()); }
+			'collapse'
+			{ after(grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0()); }
+		)
+		{ after(grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__IconNameAssignment_3_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getIconNameSTRINGTerminalRuleCall_3_1_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getTableValueAccess().getIconNameSTRINGTerminalRuleCall_3_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__FormatterAssignment_3_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getFormatterTableFormatterParserRuleCall_3_2_0()); }
+		ruleTableFormatter
+		{ after(grammarAccess.getTableValueAccess().getFormatterTableFormatterParserRuleCall_3_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__HasImageAssignment_3_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0()); }
+		(
+			{ before(grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0()); }
+			'image'
+			{ after(grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0()); }
+		)
+		{ after(grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__ImageAssignment_3_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getImageTableImageParserRuleCall_3_3_1_0()); }
+		ruleTableImage
+		{ after(grammarAccess.getTableValueAccess().getImageTableImageParserRuleCall_3_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__TooltipPatternAssignment_3_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getTooltipPatternTableTooltipPatternParserRuleCall_3_4_0()); }
+		ruleTableTooltipPattern
+		{ after(grammarAccess.getTableValueAccess().getTooltipPatternTableTooltipPatternParserRuleCall_3_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__HideLabelIntervalAssignment_4_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0()); }
+		(
+			{ before(grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0()); }
+			'hidelabel'
+			{ after(grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0()); }
+		)
+		{ after(grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__IntervalsAssignment_4_0_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getIntervalsTableIntervalParserRuleCall_4_0_3_0()); }
+		ruleTableInterval
+		{ after(grammarAccess.getTableValueAccess().getIntervalsTableIntervalParserRuleCall_4_0_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__HideLabelLookupAssignment_4_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0()); }
+		(
+			{ before(grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0()); }
+			'hidelabel'
+			{ after(grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0()); }
+		)
+		{ after(grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValue__LookupsAssignment_4_1_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableValueAccess().getLookupsTableLookupParserRuleCall_4_1_3_0()); }
+		ruleTableLookup
+		{ after(grammarAccess.getTableValueAccess().getLookupsTableLookupParserRuleCall_4_1_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableFormatter__FormatAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableFormatterAccess().getFormatSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getTableFormatterAccess().getFormatSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__ImagePathPatternAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableImageAccess().getImagePathPatternSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getTableImageAccess().getImagePathPatternSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__HasParameterAssignment_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0()); }
+		(
+			{ before(grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0()); }
+			'dynamic'
+			{ after(grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0()); }
+		)
+		{ after(grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__HideImageLabelAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0()); }
+		(
+			{ before(grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0()); }
+			'hidelabel'
+			{ after(grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0()); }
+		)
+		{ after(grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__ResizeAssignment_3_2_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0()); }
+		(
+			{ before(grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0()); }
+			'resize'
+			{ after(grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0()); }
+		)
+		{ after(grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableImage__ResizeStringAssignment_3_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableImageAccess().getResizeStringSTRINGTerminalRuleCall_3_2_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getTableImageAccess().getResizeStringSTRINGTerminalRuleCall_3_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTooltipPattern__TooltipPatternAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0()); }
+		ruleTRANSLATABLESTRING
+		{ after(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableOrdinal__ValueRefAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableOrdinalAccess().getValueRefNumberParserRuleCall_1_0()); }
+		ruleNumber
+		{ after(grammarAccess.getTableOrdinalAccess().getValueRefNumberParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableColumn__ValueRefAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableColumnAccess().getValueRefDatamartColumnCrossReference_1_0()); }
+		(
+			{ before(grammarAccess.getTableColumnAccess().getValueRefDatamartColumnIDTerminalRuleCall_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableColumnAccess().getValueRefDatamartColumnIDTerminalRuleCall_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableColumnAccess().getValueRefDatamartColumnCrossReference_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableMeasure__ValueRefAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureCrossReference_1_0()); }
+		(
+			{ before(grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureIDTerminalRuleCall_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureIDTerminalRuleCall_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureCrossReference_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDerived__ValueRefAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureCrossReference_1_0()); }
+		(
+			{ before(grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureIDTerminalRuleCall_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureIDTerminalRuleCall_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureCrossReference_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableHierarchy__ValueRefAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelCrossReference_1_0()); }
+		(
+			{ before(grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelIDTerminalRuleCall_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelIDTerminalRuleCall_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelCrossReference_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAttribute__ValueRefAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeCrossReference_2_0()); }
+		(
+			{ before(grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeIDTerminalRuleCall_2_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeIDTerminalRuleCall_2_0_1()); }
+		)
+		{ after(grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeCrossReference_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAggregation__ValueRefAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionCrossReference_1_0()); }
+		(
+			{ before(grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionIDTerminalRuleCall_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionIDTerminalRuleCall_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionCrossReference_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberInterval__NumberIntervalValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0()); }
+		ruleSignedNumber
+		{ after(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberInterval__NumberRangeAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableNumberIntervalAccess().getNumberRangeTableRangeElementParserRuleCall_3_0()); }
+		ruleTableRangeElement
+		{ after(grammarAccess.getTableNumberIntervalAccess().getNumberRangeTableRangeElementParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntInterval__IntIntervalValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueSignedIntParserRuleCall_2_0()); }
+		ruleSignedInt
+		{ after(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueSignedIntParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntInterval__IntRangeAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableIntIntervalAccess().getIntRangeTableRangeElementParserRuleCall_3_0()); }
+		ruleTableRangeElement
+		{ after(grammarAccess.getTableIntIntervalAccess().getIntRangeTableRangeElementParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayInterval__DateIntervalValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueSignedIntParserRuleCall_2_0()); }
+		ruleSignedInt
+		{ after(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueSignedIntParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayInterval__DateRangeAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableDateDayIntervalAccess().getDateRangeTableRangeElementParserRuleCall_3_0()); }
+		ruleTableRangeElement
+		{ after(grammarAccess.getTableDateDayIntervalAccess().getDateRangeTableRangeElementParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntLookup__LookupValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableIntLookupAccess().getLookupValueSignedIntParserRuleCall_2_0()); }
+		ruleSignedInt
+		{ after(grammarAccess.getTableIntLookupAccess().getLookupValueSignedIntParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIntLookup__DiscreteAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableIntLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); }
+		ruleTableRangeElement
+		{ after(grammarAccess.getTableIntLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberLookup__LookupValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableNumberLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0()); }
+		ruleSignedNumber
+		{ after(grammarAccess.getTableNumberLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableNumberLookup__DiscreteAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableNumberLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); }
+		ruleTableRangeElement
+		{ after(grammarAccess.getTableNumberLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableStringLookup__LookupValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableStringLookup__DiscreteAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableStringLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); }
+		ruleTableRangeElement
+		{ after(grammarAccess.getTableStringLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayLookup__LookupValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedIntParserRuleCall_2_0()); }
+		ruleSignedInt
+		{ after(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedIntParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDateDayLookup__DiscreteAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableDateDayLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); }
+		ruleTableRangeElement
+		{ after(grammarAccess.getTableDateDayLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__DatamartRefAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionCrossReference_1_0()); }
+		(
+			{ before(grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionIDTerminalRuleCall_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionIDTerminalRuleCall_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionCrossReference_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDatamart__ElementsAssignment_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableDatamartAccess().getElementsTableElementParserRuleCall_2_1_0()); }
+		ruleTableElement
+		{ after(grammarAccess.getTableDatamartAccess().getElementsTableElementParserRuleCall_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableEvent__SourceAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableEventAccess().getSourceTableValueElementParserRuleCall_0()); }
+		ruleTableValueElement
+		{ after(grammarAccess.getTableEventAccess().getSourceTableValueElementParserRuleCall_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__AxisAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAxisAccess().getAxisAxisEnumEnumRuleCall_1_0()); }
+		ruleAxisEnum
+		{ after(grammarAccess.getTableAxisAccess().getAxisAxisEnumEnumRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__HasRowHeightAssignment_2_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0()); }
+		(
+			{ before(grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0()); }
+			'rowheight'
+			{ after(grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0()); }
+		)
+		{ after(grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__RowHeightAssignment_2_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAxisAccess().getRowHeightNumberParserRuleCall_2_0_1_0()); }
+		ruleNumber
+		{ after(grammarAccess.getTableAxisAccess().getRowHeightNumberParserRuleCall_2_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__PreOrderAssignment_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAxisAccess().getPreOrderTablePreorderParserRuleCall_2_1_0()); }
+		ruleTablePreorder
+		{ after(grammarAccess.getTableAxisAccess().getPreOrderTablePreorderParserRuleCall_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__HasDetailsAssignment_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0()); }
+		(
+			{ before(grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0()); }
+			'details'
+			{ after(grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0()); }
+		)
+		{ after(grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__ValuesAssignment_3_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAxisAccess().getValuesTableValueParserRuleCall_3_2_0()); }
+		ruleTableValue
+		{ after(grammarAccess.getTableAxisAccess().getValuesTableValueParserRuleCall_3_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__HasEventsAssignment_4_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAxisAccess().getHasEventsNotifyOnSelectKeyword_4_0_0()); }
+		(
+			{ before(grammarAccess.getTableAxisAccess().getHasEventsNotifyOnSelectKeyword_4_0_0()); }
+			'notifyOnSelect'
+			{ after(grammarAccess.getTableAxisAccess().getHasEventsNotifyOnSelectKeyword_4_0_0()); }
+		)
+		{ after(grammarAccess.getTableAxisAccess().getHasEventsNotifyOnSelectKeyword_4_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableAxis__EventsAssignment_4_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableAxisAccess().getEventsTableEventParserRuleCall_4_2_0()); }
+		ruleTableEvent
+		{ after(grammarAccess.getTableAxisAccess().getEventsTableEventParserRuleCall_4_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTextColor__RgbAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTextColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getTableTextColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableCellColor__RgbAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableCellColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getTableCellColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableIcon__IconAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTrend__IconAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTrendAccess().getIconTrendIconEnumEnumRuleCall_1_0()); }
+		ruleTrendIconEnum
+		{ after(grammarAccess.getTableTrendAccess().getIconTrendIconEnumEnumRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableTooltip__TooltipAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableTooltipAccess().getTooltipTRANSLATABLESTRINGParserRuleCall_1_0()); }
+		ruleTRANSLATABLESTRING
+		{ after(grammarAccess.getTableTooltipAccess().getTooltipTRANSLATABLESTRINGParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__SelectalwaysAssignment_2_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0()); }
+		(
+			{ before(grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0()); }
+			'selectalways'
+			{ after(grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0()); }
+		)
+		{ after(grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__HeaderModeAssignment_2_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableGridAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0()); }
+		ruleRowHeaderMode
+		{ after(grammarAccess.getTableGridAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__PollingAssignment_3_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0()); }
+		(
+			{ before(grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0()); }
+			'polling'
+			{ after(grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0()); }
+		)
+		{ after(grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__PollingTimeAssignment_3_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableGridAccess().getPollingTimeNumberParserRuleCall_3_0_1_0()); }
+		ruleNumber
+		{ after(grammarAccess.getTableGridAccess().getPollingTimeNumberParserRuleCall_3_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__FilteringAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0()); }
+		(
+			{ before(grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0()); }
+			'filtering'
+			{ after(grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0()); }
+		)
+		{ after(grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__EmbeddedAssignment_3_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0()); }
+		(
+			{ before(grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0()); }
+			'embedded'
+			{ after(grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0()); }
+		)
+		{ after(grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__ToolbarAssignment_3_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableGridAccess().getToolbarActionToolbarCrossReference_3_3_1_0()); }
+		(
+			{ before(grammarAccess.getTableGridAccess().getToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableGridAccess().getToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableGridAccess().getToolbarActionToolbarCrossReference_3_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableGrid__SourceAssignment_4_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableGridAccess().getSourceTableDtoDatasourceParserRuleCall_4_1_0()); }
+		ruleTableDtoDatasource
+		{ after(grammarAccess.getTableGridAccess().getSourceTableDtoDatasourceParserRuleCall_4_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__EditableAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0()); }
+		(
+			{ before(grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0()); }
+			'editable'
+			{ after(grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0()); }
+		)
+		{ after(grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__PathAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyAccess().getPathNestedFieldParserRuleCall_2_0()); }
+		ruleNestedField
+		{ after(grammarAccess.getPropertyAccess().getPathNestedFieldParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Property__StyleAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyAccess().getStylePropertyStyleParserRuleCall_4_0()); }
+		rulePropertyStyle
+		{ after(grammarAccess.getPropertyAccess().getStylePropertyStyleParserRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__DtoSourceAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoCrossReference_1_0()); }
+		(
+			{ before(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoIDTerminalRuleCall_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoIDTerminalRuleCall_1_0_1()); }
+		)
+		{ after(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoCrossReference_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableDtoDatasource__PropertiesAssignment_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTableDtoDatasourceAccess().getPropertiesPropertyParserRuleCall_2_1_0()); }
+		ruleProperty
+		{ after(grammarAccess.getTableDtoDatasourceAccess().getPropertiesPropertyParserRuleCall_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedField__FieldAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getNestedFieldAccess().getFieldJvmOperationCrossReference_1_0()); }
+		(
+			{ before(grammarAccess.getNestedFieldAccess().getFieldJvmOperationIDTerminalRuleCall_1_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getNestedFieldAccess().getFieldJvmOperationIDTerminalRuleCall_1_0_1()); }
+		)
+		{ after(grammarAccess.getNestedFieldAccess().getFieldJvmOperationCrossReference_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedField__PathAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getNestedFieldAccess().getPathNestedPathParserRuleCall_2_0()); }
+		ruleNestedPath
+		{ after(grammarAccess.getNestedFieldAccess().getPathNestedPathParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedPath__FieldAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getNestedPathAccess().getFieldJvmOperationCrossReference_2_0()); }
+		(
+			{ before(grammarAccess.getNestedPathAccess().getFieldJvmOperationIDTerminalRuleCall_2_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getNestedPathAccess().getFieldJvmOperationIDTerminalRuleCall_2_0_1()); }
+		)
+		{ after(grammarAccess.getNestedPathAccess().getFieldJvmOperationCrossReference_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NestedPath__PathAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getNestedPathAccess().getPathNestedPathParserRuleCall_3_0()); }
+		ruleNestedPath
+		{ after(grammarAccess.getNestedPathAccess().getPathNestedPathParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyButtonStyle__EventTopicAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyButtonStyleAccess().getEventTopicSTRINGTerminalRuleCall_3_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getPropertyButtonStyleAccess().getEventTopicSTRINGTerminalRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyDateStyle__DateFormatAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyDateStyleAccess().getDateFormatSTRINGTerminalRuleCall_3_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getPropertyDateStyleAccess().getDateFormatSTRINGTerminalRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyNumberStyle__NumberFormatAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyNumberStyleAccess().getNumberFormatSTRINGTerminalRuleCall_3_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getPropertyNumberStyleAccess().getNumberFormatSTRINGTerminalRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyProgressbarStyle__MaxValueAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueLDoubleParserRuleCall_3_0()); }
+		ruleLDouble
+		{ after(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueLDoubleParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__GreenStartsAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsLDoubleParserRuleCall_3_0()); }
+		ruleLDouble
+		{ after(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsLDoubleParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GridPropIndicatorStyle__RedEndsAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsLDoubleParserRuleCall_5_0()); }
+		ruleLDouble
+		{ after(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsLDoubleParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__HtmlPatternAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0()); }
+		ruleNestedField
+		{ after(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyQuantityStyle__UomPropertyPathAssignment_9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathNestedFieldParserRuleCall_9_0()); }
+		ruleNestedField
+		{ after(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathNestedFieldParserRuleCall_9_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__HtmlPatternAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__ValuePropertyPathAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0()); }
+		ruleNestedField
+		{ after(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathNestedFieldParserRuleCall_9_0()); }
+		ruleNestedField
+		{ after(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathNestedFieldParserRuleCall_9_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__EventTopicAssignment_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyImageStyleAccess().getEventTopicSTRINGTerminalRuleCall_2_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getPropertyImageStyleAccess().getEventTopicSTRINGTerminalRuleCall_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PropertyImageStyle__ConfigsAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getPropertyImageStyleAccess().getConfigsStyleConfigParserRuleCall_4_0()); }
+		ruleStyleConfig
+		{ after(grammarAccess.getPropertyImageStyleAccess().getConfigsStyleConfigParserRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__CompareAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0()); }
+		ruleStyleCompare
+		{ after(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getNumericToResourceStyleConfigAccess().getValueLDoubleParserRuleCall_2_0()); }
+		ruleLDouble
+		{ after(grammarAccess.getNumericToResourceStyleConfigAccess().getValueLDoubleParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0()); }
+		RULE_THEME_RESOURCE
+		{ after(grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__CompareAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0()); }
+		ruleStyleCompare
+		{ after(grammarAccess.getStringToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringToResourceStyleConfigAccess().getValueSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getStringToResourceStyleConfigAccess().getValueSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0()); }
+		RULE_THEME_RESOURCE
+		{ after(grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__StaticAssignment_2_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); }
+		(
+			{ before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); }
+			'static'
+			{ after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); }
+		)
+		{ after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__ExtensionAssignment_2_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); }
+		(
+			{ before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); }
+			'extension'
+			{ after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); }
+		)
+		{ after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0()); }
+		(
+			{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_2_0_2_0_1()); }
+			ruleQualifiedNameInStaticImport
+			{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_2_0_2_0_1()); }
+		)
+		{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__WildcardAssignment_2_0_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); }
+		(
+			{ before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); }
+			'*'
+			{ after(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); }
+		)
+		{ after(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0()); }
+		ruleValidID
+		{ after(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__ImportedTypeAssignment_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0()); }
+		(
+			{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_2_1_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_2_1_0_1()); }
+		)
+		{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0()); }
+		ruleQualifiedNameWithWildcard
+		{ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__FqnImportAssignment_2_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); }
+		(
+			{ before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); }
+			'ns'
+			{ after(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); }
+		)
+		{ after(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0()); }
+		ruleQualifiedName
+		{ after(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__AnnotationTypeAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); }
+		(
+			{ before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeQualifiedNameParserRuleCall_2_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeQualifiedNameParserRuleCall_2_0_1()); }
+		)
+		{ after(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); }
+		ruleXAnnotationElementValuePair
+		{ after(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); }
+		ruleXAnnotationElementValuePair
+		{ after(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__ValueAssignment_3_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); }
+		ruleXAnnotationElementValueOrCommaList
+		{ after(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); }
+		(
+			{ before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationValidIDParserRuleCall_0_0_0_0_1()); }
+			ruleValidID
+			{ after(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationValidIDParserRuleCall_0_0_0_0_1()); }
+		)
+		{ after(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__ValueAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); }
+		ruleXAnnotationElementValue
+		{ after(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); }
+		ruleXAnnotationOrExpression
+		{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); }
+		ruleXAnnotationOrExpression
+		{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); }
+		ruleXAnnotationOrExpression
+		{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__ElementsAssignment_0_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); }
+		ruleXAnnotationOrExpression
+		{ after(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); }
+		ruleXAnnotationOrExpression
+		{ after(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__FeatureAssignment_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
+		(
+			{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); }
+			ruleFeatureCallID
+			{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__ValueAssignment_0_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); }
+		ruleXAssignment
+		{ after(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__FeatureAssignment_1_1_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
+		(
+			{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); }
+			ruleOpMultiAssign
+			{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__RightOperandAssignment_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); }
+		ruleXAssignment
+		{ after(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__FeatureAssignment_1_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+		(
+			{ before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); }
+			ruleOpOr
+			{ after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__RightOperandAssignment_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); }
+		ruleXAndExpression
+		{ after(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__FeatureAssignment_1_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+		(
+			{ before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); }
+			ruleOpAnd
+			{ after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__RightOperandAssignment_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); }
+		ruleXEqualityExpression
+		{ after(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__FeatureAssignment_1_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+		(
+			{ before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); }
+			ruleOpEquality
+			{ after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__RightOperandAssignment_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); }
+		ruleXRelationalExpression
+		{ after(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__TypeAssignment_1_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
+		(
+			{ before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); }
+			ruleOpCompare
+			{ after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__RightOperandAssignment_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); }
+		ruleXOtherOperatorExpression
+		{ after(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+		(
+			{ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); }
+			ruleOpOther
+			{ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__RightOperandAssignment_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); }
+		ruleXAdditiveExpression
+		{ after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+		(
+			{ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); }
+			ruleOpAdd
+			{ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__RightOperandAssignment_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); }
+		ruleXMultiplicativeExpression
+		{ after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+		(
+			{ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); }
+			ruleOpMulti
+			{ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__RightOperandAssignment_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); }
+		ruleXUnaryOperation
+		{ after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__FeatureAssignment_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
+		(
+			{ before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); }
+			ruleOpUnary
+			{ after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__OperandAssignment_0_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); }
+		ruleXUnaryOperation
+		{ after(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__TypeAssignment_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XPostfixOperation__FeatureAssignment_1_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); }
+		(
+			{ before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); }
+			ruleOpPostfix
+			{ after(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); }
+		)
+		{ after(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
+		(
+			{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
+			'::'
+			{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
+		)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); }
+		(
+			{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); }
+			ruleFeatureCallID
+			{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); }
+		)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__ValueAssignment_1_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); }
+		ruleXAssignment
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
+		(
+			{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
+			'?.'
+			{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
+		)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
+		(
+			{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
+			'::'
+			{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
+		)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); }
+		ruleJvmArgumentTypeReference
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); }
+		ruleJvmArgumentTypeReference
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__FeatureAssignment_1_1_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); }
+		(
+			{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); }
+			ruleIdOrSuper
+			{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); }
+		)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
+		(
+			{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
+			'('
+			{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
+		)
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); }
+		ruleXShortClosure
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); }
+		ruleXClosure
+		{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__ElementsAssignment_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__ElementsAssignment_3_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__ElementsAssignment_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__ElementsAssignment_3_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); }
+		ruleJvmFormalParameter
+		{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); }
+		ruleJvmFormalParameter
+		{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__ExplicitSyntaxAssignment_1_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
+		(
+			{ before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
+			'|'
+			{ after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
+		)
+		{ after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XClosure__ExpressionAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); }
+		ruleXExpressionInClosure
+		{ after(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__ExpressionsAssignment_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); }
+		ruleXExpressionOrVarDeclaration
+		{ after(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); }
+		ruleJvmFormalParameter
+		{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); }
+		ruleJvmFormalParameter
+		{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
+		(
+			{ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
+			'|'
+			{ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
+		)
+		{ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__ExpressionAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__IfAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__ThenAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__ElseAssignment_6_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); }
+		ruleJvmFormalParameter
+		{ after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__SwitchAssignment_2_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); }
+		ruleJvmFormalParameter
+		{ after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__SwitchAssignment_2_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__CasesAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); }
+		ruleXCasePart
+		{ after(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__DefaultAssignment_5_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__TypeGuardAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__CaseAssignment_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__ThenAssignment_3_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCasePart__FallThroughAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); }
+		(
+			{ before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); }
+			','
+			{ after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); }
+		)
+		{ after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); }
+		ruleJvmFormalParameter
+		{ after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__ForExpressionAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__EachExpressionAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); }
+		ruleXExpressionOrVarDeclaration
+		{ after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); }
+		ruleXExpressionOrVarDeclaration
+		{ after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__ExpressionAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBasicForLoopExpression__EachExpressionAssignment_9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__PredicateAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__BodyAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__BodyAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__PredicateAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__ExpressionsAssignment_2_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); }
+		ruleXExpressionOrVarDeclaration
+		{ after(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__WriteableAssignment_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
+		(
+			{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
+			'var'
+			{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
+		)
+		{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__TypeAssignment_2_0_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__NameAssignment_2_0_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); }
+		ruleValidID
+		{ after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__NameAssignment_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); }
+		ruleValidID
+		{ after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__RightAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmFormalParameter__ParameterTypeAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmFormalParameter__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
+		ruleValidID
+		{ after(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FullJvmFormalParameter__ParameterTypeAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FullJvmFormalParameter__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
+		ruleValidID
+		{ after(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__TypeArgumentsAssignment_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
+		ruleJvmArgumentTypeReference
+		{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
+		ruleJvmArgumentTypeReference
+		{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__FeatureAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); }
+		(
+			{ before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); }
+			ruleIdOrSuper
+			{ after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); }
+		)
+		{ after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
+		(
+			{ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
+			'('
+			{ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
+		)
+		{ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); }
+		ruleXShortClosure
+		{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); }
+		ruleXClosure
+		{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ConstructorAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); }
+		(
+			{ before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); }
+		)
+		{ after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__TypeArgumentsAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); }
+		ruleJvmArgumentTypeReference
+		{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); }
+		ruleJvmArgumentTypeReference
+		{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); }
+		(
+			{ before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); }
+			'('
+			{ after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); }
+		)
+		{ after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ArgumentsAssignment_4_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); }
+		ruleXShortClosure
+		{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ArgumentsAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); }
+		ruleXClosure
+		{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XBooleanLiteral__IsTrueAssignment_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
+		(
+			{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
+			'true'
+			{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
+		)
+		{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XNumberLiteral__ValueAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); }
+		ruleNumber
+		{ after(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XStringLiteral__ValueAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__TypeAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); }
+		(
+			{ before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); }
+		)
+		{ after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__ArrayDimensionsAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); }
+		ruleArrayBrackets
+		{ after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XThrowExpression__ExpressionAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XReturnExpression__ExpressionAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__ExpressionAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); }
+		ruleXCatchClause
+		{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__ParamAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XSynchronizedExpression__ExpressionAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__DeclaredParamAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); }
+		ruleFullJvmFormalParameter
+		{ after(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__ExpressionAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); }
+		ruleXExpression
+		{ after(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__ReturnTypeAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__TypeAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
+		ruleJvmArgumentTypeReference
+		{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
+		ruleJvmArgumentTypeReference
+		{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); }
+		(
+			{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); }
+			ruleValidID
+			{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); }
+		)
+		{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); }
+		ruleJvmArgumentTypeReference
+		{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); }
+		ruleJvmArgumentTypeReference
+		{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); }
+		ruleJvmUpperBound
+		{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); }
+		ruleJvmUpperBoundAnded
+		{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); }
+		ruleJvmLowerBound
+		{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); }
+		ruleJvmLowerBoundAnded
+		{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBound__TypeReferenceAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBound__TypeReferenceAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+		ruleJvmTypeReference
+		{ after(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportSection__ImportDeclarationsAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); }
+		ruleXImportDeclaration
+		{ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+RULE_THEME_RESOURCE : 'theme:/' ('a'..'z'|'A'..'Z'|'$'|'_'|'.'|'/'|'0'..'9')*;
+
+RULE_EVENT_TOPIC : '\'' RULE_ID ('/' RULE_ID)* '/*'? '\'';
+
+RULE_HEX : ('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F'|'_')+ ('#' (('b'|'B') ('i'|'I')|('l'|'L')))?;
+
+RULE_INT : '0'..'9' ('0'..'9'|'_')*;
+
+RULE_DECIMAL : RULE_INT (('e'|'E') ('+'|'-')? RULE_INT)? (('b'|'B') ('i'|'I'|'d'|'D')|('l'|'L'|'d'|'D'|'f'|'F'))?;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'0'..'9')*;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'?|'\'' ('\\' .|~(('\\'|'\'')))* '\''?);
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
diff --git a/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSL.tokens b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSL.tokens
new file mode 100644
index 0000000..84175f9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSL.tokens
@@ -0,0 +1,359 @@
+'!'=43
+'!='=27
+'!=='=29
+'#'=143
+'%'=42
+'%='=25
+'&&'=17
+'&'=164
+'('=132
+')'=133
+'*'=39
+'**'=40
+'*='=23
+'+'=19
+'++'=44
+'+='=21
+','=141
+'-'=20
+'--'=45
+'-='=22
+'->'=33
+'.'=46
+'..'=35
+'..<'=34
+'/'=41
+'/='=24
+':'=149
+'::'=184
+';'=139
+'<'=32
+'<>'=37
+'='=15
+'=='=26
+'==='=28
+'=>'=36
+'>'=31
+'>='=30
+'?'=163
+'?.'=185
+'?:'=38
+'@'=140
+'['=144
+']'=142
+'aggregation'=100
+'allColumns'=93
+'alwaysSelected'=167
+'as'=78
+'ascending'=172
+'axis'=108
+'bad-rising'=61
+'bean'=83
+'boolStyle'=121
+'buttonStyle'=118
+'case'=150
+'catch'=162
+'cellcolor'=110
+'chapters'=73
+'collapse'=173
+'column'=95
+'columns'=69
+'currency'=135
+'datamart'=107
+'dateStyle'=122
+'daysInPast'=103
+'default'=68
+'derived'=97
+'describedBy'=165
+'details'=179
+'do'=153
+'dto'=117
+'dynamic'=176
+'editable'=182
+'else'=147
+'embedded'=170
+'equal'=54
+'eventTopic'=119
+'explicit'=66
+'extends'=48
+'extension'=51
+'false'=53
+'filtering'=169
+'finally'=160
+'for'=151
+'format'=123
+'formatter'=89
+'good-sloping'=63
+'greater equal'=55
+'greater than'=56
+'greenFrom'=128
+'grid'=113
+'hidden'=65
+'hidelabel'=175
+'htmlStyle'=120
+'icon'=86
+'if'=146
+'image'=174
+'imageStyle'=137
+'import'=50
+'indexed'=67
+'indicatorStyle'=127
+'instanceof'=145
+'integer'=104
+'intervals'=87
+'level'=98
+'lookups'=88
+'lower equal'=57
+'lower than'=58
+'max'=126
+'measure'=96
+'multiple'=166
+'new'=154
+'not equal'=59
+'notifyOnSelect'=180
+'ns'=183
+'null'=155
+'number'=105
+'numberStyle'=124
+'ordinal'=94
+'package'=74
+'pages'=71
+'path'=90
+'polling'=168
+'preorder'=84
+'priceStyle'=134
+'progressbarStyle'=125
+'prop'=115
+'property'=99
+'quantityStyle'=130
+'redUntil'=129
+'resize'=177
+'return'=158
+'rising'=60
+'rowHeader'=80
+'rowheader'=114
+'rowheight'=178
+'rows'=70
+'sections'=72
+'selectById'=171
+'selectalways'=181
+'selection'=79
+'single'=18
+'sloping'=62
+'stagnating'=64
+'static'=49
+'string'=106
+'style'=116
+'super'=52
+'switch'=148
+'synchronized'=161
+'table'=77
+'taskId'=92
+'textStyle'=136
+'textcolor'=109
+'then'=138
+'throw'=157
+'toolbar'=81
+'tooltip'=112
+'tooltipPattern'=91
+'trend'=111
+'true'=188
+'try'=159
+'typeof'=156
+'uom'=131
+'upToInteger'=102
+'upToNumber'=101
+'using'=82
+'val'=47
+'value'=85
+'var'=187
+'while'=152
+'{'=75
+'|'=186
+'||'=16
+'}'=76
+RULE_ANY_OTHER=14
+RULE_DECIMAL=8
+RULE_EVENT_TOPIC=10
+RULE_HEX=6
+RULE_ID=5
+RULE_INT=7
+RULE_ML_COMMENT=11
+RULE_SL_COMMENT=12
+RULE_STRING=4
+RULE_THEME_RESOURCE=9
+RULE_WS=13
+T__100=100
+T__101=101
+T__102=102
+T__103=103
+T__104=104
+T__105=105
+T__106=106
+T__107=107
+T__108=108
+T__109=109
+T__110=110
+T__111=111
+T__112=112
+T__113=113
+T__114=114
+T__115=115
+T__116=116
+T__117=117
+T__118=118
+T__119=119
+T__120=120
+T__121=121
+T__122=122
+T__123=123
+T__124=124
+T__125=125
+T__126=126
+T__127=127
+T__128=128
+T__129=129
+T__130=130
+T__131=131
+T__132=132
+T__133=133
+T__134=134
+T__135=135
+T__136=136
+T__137=137
+T__138=138
+T__139=139
+T__140=140
+T__141=141
+T__142=142
+T__143=143
+T__144=144
+T__145=145
+T__146=146
+T__147=147
+T__148=148
+T__149=149
+T__150=150
+T__151=151
+T__152=152
+T__153=153
+T__154=154
+T__155=155
+T__156=156
+T__157=157
+T__158=158
+T__159=159
+T__15=15
+T__160=160
+T__161=161
+T__162=162
+T__163=163
+T__164=164
+T__165=165
+T__166=166
+T__167=167
+T__168=168
+T__169=169
+T__16=16
+T__170=170
+T__171=171
+T__172=172
+T__173=173
+T__174=174
+T__175=175
+T__176=176
+T__177=177
+T__178=178
+T__179=179
+T__17=17
+T__180=180
+T__181=181
+T__182=182
+T__183=183
+T__184=184
+T__185=185
+T__186=186
+T__187=187
+T__188=188
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
+T__41=41
+T__42=42
+T__43=43
+T__44=44
+T__45=45
+T__46=46
+T__47=47
+T__48=48
+T__49=49
+T__50=50
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__59=59
+T__60=60
+T__61=61
+T__62=62
+T__63=63
+T__64=64
+T__65=65
+T__66=66
+T__67=67
+T__68=68
+T__69=69
+T__70=70
+T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
+T__76=76
+T__77=77
+T__78=78
+T__79=79
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
+T__89=89
+T__90=90
+T__91=91
+T__92=92
+T__93=93
+T__94=94
+T__95=95
+T__96=96
+T__97=97
+T__98=98
+T__99=99
diff --git a/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSLLexer.java b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSLLexer.java
new file mode 100644
index 0000000..1318cd0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSLLexer.java
@@ -0,0 +1,7190 @@
+package org.eclipse.osbp.xtext.table.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;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalTableDSLLexer extends Lexer {
+    public static final int T__144=144;
+    public static final int T__143=143;
+    public static final int T__146=146;
+    public static final int T__50=50;
+    public static final int T__145=145;
+    public static final int T__140=140;
+    public static final int T__142=142;
+    public static final int T__141=141;
+    public static final int T__59=59;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__137=137;
+    public static final int T__52=52;
+    public static final int T__136=136;
+    public static final int T__53=53;
+    public static final int T__139=139;
+    public static final int T__54=54;
+    public static final int T__138=138;
+    public static final int T__133=133;
+    public static final int T__132=132;
+    public static final int T__60=60;
+    public static final int T__135=135;
+    public static final int T__61=61;
+    public static final int T__134=134;
+    public static final int RULE_ID=5;
+    public static final int T__131=131;
+    public static final int T__130=130;
+    public static final int RULE_EVENT_TOPIC=10;
+    public static final int RULE_INT=7;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__129=129;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__126=126;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__166=166;
+    public static final int T__165=165;
+    public static final int T__168=168;
+    public static final int T__167=167;
+    public static final int T__162=162;
+    public static final int T__161=161;
+    public static final int T__164=164;
+    public static final int T__163=163;
+    public static final int T__160=160;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__159=159;
+    public static final int T__30=30;
+    public static final int T__158=158;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__155=155;
+    public static final int T__154=154;
+    public static final int T__157=157;
+    public static final int T__156=156;
+    public static final int T__151=151;
+    public static final int T__150=150;
+    public static final int T__153=153;
+    public static final int T__152=152;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__40=40;
+    public static final int T__148=148;
+    public static final int T__41=41;
+    public static final int T__147=147;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__149=149;
+    public static final int T__100=100;
+    public static final int T__102=102;
+    public static final int T__101=101;
+    public static final int T__19=19;
+    public static final int T__15=15;
+    public static final int T__16=16;
+    public static final int T__17=17;
+    public static final int T__18=18;
+    public static final int RULE_DECIMAL=8;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__121=121;
+    public static final int T__124=124;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_SL_COMMENT=12;
+    public static final int T__119=119;
+    public static final int T__118=118;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__114=114;
+    public static final int T__117=117;
+    public static final int T__116=116;
+    public static final int T__111=111;
+    public static final int T__110=110;
+    public static final int T__113=113;
+    public static final int T__112=112;
+    public static final int T__108=108;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__104=104;
+    public static final int T__103=103;
+    public static final int T__106=106;
+    public static final int T__105=105;
+    public static final int RULE_HEX=6;
+    public static final int RULE_ML_COMMENT=11;
+    public static final int RULE_THEME_RESOURCE=9;
+    public static final int T__91=91;
+    public static final int T__188=188;
+    public static final int T__92=92;
+    public static final int T__187=187;
+    public static final int T__93=93;
+    public static final int T__94=94;
+    public static final int T__184=184;
+    public static final int T__183=183;
+    public static final int T__186=186;
+    public static final int T__90=90;
+    public static final int T__185=185;
+    public static final int T__180=180;
+    public static final int T__182=182;
+    public static final int T__181=181;
+    public static final int T__99=99;
+    public static final int T__95=95;
+    public static final int T__96=96;
+    public static final int T__97=97;
+    public static final int T__98=98;
+    public static final int T__177=177;
+    public static final int T__176=176;
+    public static final int T__179=179;
+    public static final int T__178=178;
+    public static final int T__173=173;
+    public static final int T__172=172;
+    public static final int T__175=175;
+    public static final int T__174=174;
+    public static final int T__171=171;
+    public static final int T__170=170;
+    public static final int T__169=169;
+    public static final int T__70=70;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int RULE_STRING=4;
+    public static final int T__77=77;
+    public static final int T__78=78;
+    public static final int T__79=79;
+    public static final int T__73=73;
+    public static final int T__74=74;
+    public static final int T__75=75;
+    public static final int T__76=76;
+    public static final int T__80=80;
+    public static final int T__81=81;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int RULE_WS=13;
+    public static final int RULE_ANY_OTHER=14;
+    public static final int T__88=88;
+    public static final int T__89=89;
+    public static final int T__84=84;
+    public static final int T__85=85;
+    public static final int T__86=86;
+    public static final int T__87=87;
+
+    // delegates
+    // delegators
+
+    public InternalTableDSLLexer() {;} 
+    public InternalTableDSLLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalTableDSLLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "InternalTableDSL.g"; }
+
+    // $ANTLR start "T__15"
+    public final void mT__15() throws RecognitionException {
+        try {
+            int _type = T__15;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:11:7: ( '=' )
+            // InternalTableDSL.g:11:9: '='
+            {
+            match('='); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:12:7: ( '||' )
+            // InternalTableDSL.g:12:9: '||'
+            {
+            match("||"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__16"
+
+    // $ANTLR start "T__17"
+    public final void mT__17() throws RecognitionException {
+        try {
+            int _type = T__17;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:13:7: ( '&&' )
+            // InternalTableDSL.g:13:9: '&&'
+            {
+            match("&&"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__17"
+
+    // $ANTLR start "T__18"
+    public final void mT__18() throws RecognitionException {
+        try {
+            int _type = T__18;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:14:7: ( 'single' )
+            // InternalTableDSL.g:14:9: 'single'
+            {
+            match("single"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__18"
+
+    // $ANTLR start "T__19"
+    public final void mT__19() throws RecognitionException {
+        try {
+            int _type = T__19;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:15:7: ( '+' )
+            // InternalTableDSL.g:15:9: '+'
+            {
+            match('+'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__19"
+
+    // $ANTLR start "T__20"
+    public final void mT__20() throws RecognitionException {
+        try {
+            int _type = T__20;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:16:7: ( '-' )
+            // InternalTableDSL.g:16:9: '-'
+            {
+            match('-'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__20"
+
+    // $ANTLR start "T__21"
+    public final void mT__21() throws RecognitionException {
+        try {
+            int _type = T__21;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:17:7: ( '+=' )
+            // InternalTableDSL.g:17:9: '+='
+            {
+            match("+="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__21"
+
+    // $ANTLR start "T__22"
+    public final void mT__22() throws RecognitionException {
+        try {
+            int _type = T__22;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:18:7: ( '-=' )
+            // InternalTableDSL.g:18:9: '-='
+            {
+            match("-="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__22"
+
+    // $ANTLR start "T__23"
+    public final void mT__23() throws RecognitionException {
+        try {
+            int _type = T__23;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:19:7: ( '*=' )
+            // InternalTableDSL.g:19:9: '*='
+            {
+            match("*="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__23"
+
+    // $ANTLR start "T__24"
+    public final void mT__24() throws RecognitionException {
+        try {
+            int _type = T__24;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:20:7: ( '/=' )
+            // InternalTableDSL.g:20:9: '/='
+            {
+            match("/="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__24"
+
+    // $ANTLR start "T__25"
+    public final void mT__25() throws RecognitionException {
+        try {
+            int _type = T__25;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:21:7: ( '%=' )
+            // InternalTableDSL.g:21:9: '%='
+            {
+            match("%="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__25"
+
+    // $ANTLR start "T__26"
+    public final void mT__26() throws RecognitionException {
+        try {
+            int _type = T__26;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:22:7: ( '==' )
+            // InternalTableDSL.g:22:9: '=='
+            {
+            match("=="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__26"
+
+    // $ANTLR start "T__27"
+    public final void mT__27() throws RecognitionException {
+        try {
+            int _type = T__27;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:23:7: ( '!=' )
+            // InternalTableDSL.g:23:9: '!='
+            {
+            match("!="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__27"
+
+    // $ANTLR start "T__28"
+    public final void mT__28() throws RecognitionException {
+        try {
+            int _type = T__28;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:24:7: ( '===' )
+            // InternalTableDSL.g:24:9: '==='
+            {
+            match("==="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__28"
+
+    // $ANTLR start "T__29"
+    public final void mT__29() throws RecognitionException {
+        try {
+            int _type = T__29;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:25:7: ( '!==' )
+            // InternalTableDSL.g:25:9: '!=='
+            {
+            match("!=="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__29"
+
+    // $ANTLR start "T__30"
+    public final void mT__30() throws RecognitionException {
+        try {
+            int _type = T__30;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:26:7: ( '>=' )
+            // InternalTableDSL.g:26:9: '>='
+            {
+            match(">="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__30"
+
+    // $ANTLR start "T__31"
+    public final void mT__31() throws RecognitionException {
+        try {
+            int _type = T__31;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:27:7: ( '>' )
+            // InternalTableDSL.g:27:9: '>'
+            {
+            match('>'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__31"
+
+    // $ANTLR start "T__32"
+    public final void mT__32() throws RecognitionException {
+        try {
+            int _type = T__32;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:28:7: ( '<' )
+            // InternalTableDSL.g:28:9: '<'
+            {
+            match('<'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__32"
+
+    // $ANTLR start "T__33"
+    public final void mT__33() throws RecognitionException {
+        try {
+            int _type = T__33;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:29:7: ( '->' )
+            // InternalTableDSL.g:29:9: '->'
+            {
+            match("->"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__33"
+
+    // $ANTLR start "T__34"
+    public final void mT__34() throws RecognitionException {
+        try {
+            int _type = T__34;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:30:7: ( '..<' )
+            // InternalTableDSL.g:30:9: '..<'
+            {
+            match("..<"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__34"
+
+    // $ANTLR start "T__35"
+    public final void mT__35() throws RecognitionException {
+        try {
+            int _type = T__35;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31:7: ( '..' )
+            // InternalTableDSL.g:31:9: '..'
+            {
+            match(".."); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__35"
+
+    // $ANTLR start "T__36"
+    public final void mT__36() throws RecognitionException {
+        try {
+            int _type = T__36;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:32:7: ( '=>' )
+            // InternalTableDSL.g:32:9: '=>'
+            {
+            match("=>"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__36"
+
+    // $ANTLR start "T__37"
+    public final void mT__37() throws RecognitionException {
+        try {
+            int _type = T__37;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:33:7: ( '<>' )
+            // InternalTableDSL.g:33:9: '<>'
+            {
+            match("<>"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__37"
+
+    // $ANTLR start "T__38"
+    public final void mT__38() throws RecognitionException {
+        try {
+            int _type = T__38;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:34:7: ( '?:' )
+            // InternalTableDSL.g:34:9: '?:'
+            {
+            match("?:"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__38"
+
+    // $ANTLR start "T__39"
+    public final void mT__39() throws RecognitionException {
+        try {
+            int _type = T__39;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:35:7: ( '*' )
+            // InternalTableDSL.g:35:9: '*'
+            {
+            match('*'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__39"
+
+    // $ANTLR start "T__40"
+    public final void mT__40() throws RecognitionException {
+        try {
+            int _type = T__40;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:36:7: ( '**' )
+            // InternalTableDSL.g:36:9: '**'
+            {
+            match("**"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__40"
+
+    // $ANTLR start "T__41"
+    public final void mT__41() throws RecognitionException {
+        try {
+            int _type = T__41;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:37:7: ( '/' )
+            // InternalTableDSL.g:37:9: '/'
+            {
+            match('/'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__41"
+
+    // $ANTLR start "T__42"
+    public final void mT__42() throws RecognitionException {
+        try {
+            int _type = T__42;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:38:7: ( '%' )
+            // InternalTableDSL.g:38:9: '%'
+            {
+            match('%'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__42"
+
+    // $ANTLR start "T__43"
+    public final void mT__43() throws RecognitionException {
+        try {
+            int _type = T__43;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:39:7: ( '!' )
+            // InternalTableDSL.g:39:9: '!'
+            {
+            match('!'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__43"
+
+    // $ANTLR start "T__44"
+    public final void mT__44() throws RecognitionException {
+        try {
+            int _type = T__44;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:40:7: ( '++' )
+            // InternalTableDSL.g:40:9: '++'
+            {
+            match("++"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__44"
+
+    // $ANTLR start "T__45"
+    public final void mT__45() throws RecognitionException {
+        try {
+            int _type = T__45;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:41:7: ( '--' )
+            // InternalTableDSL.g:41:9: '--'
+            {
+            match("--"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__45"
+
+    // $ANTLR start "T__46"
+    public final void mT__46() throws RecognitionException {
+        try {
+            int _type = T__46;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:42:7: ( '.' )
+            // InternalTableDSL.g:42:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__46"
+
+    // $ANTLR start "T__47"
+    public final void mT__47() throws RecognitionException {
+        try {
+            int _type = T__47;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:43:7: ( 'val' )
+            // InternalTableDSL.g:43:9: 'val'
+            {
+            match("val"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__47"
+
+    // $ANTLR start "T__48"
+    public final void mT__48() throws RecognitionException {
+        try {
+            int _type = T__48;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:44:7: ( 'extends' )
+            // InternalTableDSL.g:44:9: 'extends'
+            {
+            match("extends"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__48"
+
+    // $ANTLR start "T__49"
+    public final void mT__49() throws RecognitionException {
+        try {
+            int _type = T__49;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:45:7: ( 'static' )
+            // InternalTableDSL.g:45:9: 'static'
+            {
+            match("static"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__49"
+
+    // $ANTLR start "T__50"
+    public final void mT__50() throws RecognitionException {
+        try {
+            int _type = T__50;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:46:7: ( 'import' )
+            // InternalTableDSL.g:46:9: 'import'
+            {
+            match("import"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__50"
+
+    // $ANTLR start "T__51"
+    public final void mT__51() throws RecognitionException {
+        try {
+            int _type = T__51;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:47:7: ( 'extension' )
+            // InternalTableDSL.g:47:9: 'extension'
+            {
+            match("extension"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__51"
+
+    // $ANTLR start "T__52"
+    public final void mT__52() throws RecognitionException {
+        try {
+            int _type = T__52;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:48:7: ( 'super' )
+            // InternalTableDSL.g:48:9: 'super'
+            {
+            match("super"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__52"
+
+    // $ANTLR start "T__53"
+    public final void mT__53() throws RecognitionException {
+        try {
+            int _type = T__53;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:49:7: ( 'false' )
+            // InternalTableDSL.g:49:9: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__53"
+
+    // $ANTLR start "T__54"
+    public final void mT__54() throws RecognitionException {
+        try {
+            int _type = T__54;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:50:7: ( 'equal' )
+            // InternalTableDSL.g:50:9: 'equal'
+            {
+            match("equal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__54"
+
+    // $ANTLR start "T__55"
+    public final void mT__55() throws RecognitionException {
+        try {
+            int _type = T__55;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:51:7: ( 'greater equal' )
+            // InternalTableDSL.g:51:9: 'greater equal'
+            {
+            match("greater equal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__55"
+
+    // $ANTLR start "T__56"
+    public final void mT__56() throws RecognitionException {
+        try {
+            int _type = T__56;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:52:7: ( 'greater than' )
+            // InternalTableDSL.g:52:9: 'greater than'
+            {
+            match("greater than"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__56"
+
+    // $ANTLR start "T__57"
+    public final void mT__57() throws RecognitionException {
+        try {
+            int _type = T__57;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:53:7: ( 'lower equal' )
+            // InternalTableDSL.g:53:9: 'lower equal'
+            {
+            match("lower equal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__57"
+
+    // $ANTLR start "T__58"
+    public final void mT__58() throws RecognitionException {
+        try {
+            int _type = T__58;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:54:7: ( 'lower than' )
+            // InternalTableDSL.g:54:9: 'lower than'
+            {
+            match("lower than"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__58"
+
+    // $ANTLR start "T__59"
+    public final void mT__59() throws RecognitionException {
+        try {
+            int _type = T__59;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:55:7: ( 'not equal' )
+            // InternalTableDSL.g:55:9: 'not equal'
+            {
+            match("not equal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__59"
+
+    // $ANTLR start "T__60"
+    public final void mT__60() throws RecognitionException {
+        try {
+            int _type = T__60;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:56:7: ( 'rising' )
+            // InternalTableDSL.g:56:9: 'rising'
+            {
+            match("rising"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__60"
+
+    // $ANTLR start "T__61"
+    public final void mT__61() throws RecognitionException {
+        try {
+            int _type = T__61;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:57:7: ( 'bad-rising' )
+            // InternalTableDSL.g:57:9: 'bad-rising'
+            {
+            match("bad-rising"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__61"
+
+    // $ANTLR start "T__62"
+    public final void mT__62() throws RecognitionException {
+        try {
+            int _type = T__62;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:58:7: ( 'sloping' )
+            // InternalTableDSL.g:58:9: 'sloping'
+            {
+            match("sloping"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__62"
+
+    // $ANTLR start "T__63"
+    public final void mT__63() throws RecognitionException {
+        try {
+            int _type = T__63;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:59:7: ( 'good-sloping' )
+            // InternalTableDSL.g:59:9: 'good-sloping'
+            {
+            match("good-sloping"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__63"
+
+    // $ANTLR start "T__64"
+    public final void mT__64() throws RecognitionException {
+        try {
+            int _type = T__64;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:60:7: ( 'stagnating' )
+            // InternalTableDSL.g:60:9: 'stagnating'
+            {
+            match("stagnating"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__64"
+
+    // $ANTLR start "T__65"
+    public final void mT__65() throws RecognitionException {
+        try {
+            int _type = T__65;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:61:7: ( 'hidden' )
+            // InternalTableDSL.g:61:9: 'hidden'
+            {
+            match("hidden"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__65"
+
+    // $ANTLR start "T__66"
+    public final void mT__66() throws RecognitionException {
+        try {
+            int _type = T__66;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:62:7: ( 'explicit' )
+            // InternalTableDSL.g:62:9: 'explicit'
+            {
+            match("explicit"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__66"
+
+    // $ANTLR start "T__67"
+    public final void mT__67() throws RecognitionException {
+        try {
+            int _type = T__67;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:63:7: ( 'indexed' )
+            // InternalTableDSL.g:63:9: 'indexed'
+            {
+            match("indexed"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__67"
+
+    // $ANTLR start "T__68"
+    public final void mT__68() throws RecognitionException {
+        try {
+            int _type = T__68;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:64:7: ( 'default' )
+            // InternalTableDSL.g:64:9: 'default'
+            {
+            match("default"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__68"
+
+    // $ANTLR start "T__69"
+    public final void mT__69() throws RecognitionException {
+        try {
+            int _type = T__69;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:65:7: ( 'columns' )
+            // InternalTableDSL.g:65:9: 'columns'
+            {
+            match("columns"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__69"
+
+    // $ANTLR start "T__70"
+    public final void mT__70() throws RecognitionException {
+        try {
+            int _type = T__70;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:66:7: ( 'rows' )
+            // InternalTableDSL.g:66:9: 'rows'
+            {
+            match("rows"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__70"
+
+    // $ANTLR start "T__71"
+    public final void mT__71() throws RecognitionException {
+        try {
+            int _type = T__71;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:67:7: ( 'pages' )
+            // InternalTableDSL.g:67:9: 'pages'
+            {
+            match("pages"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__71"
+
+    // $ANTLR start "T__72"
+    public final void mT__72() throws RecognitionException {
+        try {
+            int _type = T__72;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:68:7: ( 'sections' )
+            // InternalTableDSL.g:68:9: 'sections'
+            {
+            match("sections"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__72"
+
+    // $ANTLR start "T__73"
+    public final void mT__73() throws RecognitionException {
+        try {
+            int _type = T__73;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:69:7: ( 'chapters' )
+            // InternalTableDSL.g:69:9: 'chapters'
+            {
+            match("chapters"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__73"
+
+    // $ANTLR start "T__74"
+    public final void mT__74() throws RecognitionException {
+        try {
+            int _type = T__74;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:70:7: ( 'package' )
+            // InternalTableDSL.g:70:9: 'package'
+            {
+            match("package"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__74"
+
+    // $ANTLR start "T__75"
+    public final void mT__75() throws RecognitionException {
+        try {
+            int _type = T__75;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:71:7: ( '{' )
+            // InternalTableDSL.g:71:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
+    // $ANTLR start "T__76"
+    public final void mT__76() throws RecognitionException {
+        try {
+            int _type = T__76;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:72:7: ( '}' )
+            // InternalTableDSL.g:72:9: '}'
+            {
+            match('}'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__76"
+
+    // $ANTLR start "T__77"
+    public final void mT__77() throws RecognitionException {
+        try {
+            int _type = T__77;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:73:7: ( 'table' )
+            // InternalTableDSL.g:73:9: 'table'
+            {
+            match("table"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__77"
+
+    // $ANTLR start "T__78"
+    public final void mT__78() throws RecognitionException {
+        try {
+            int _type = T__78;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:74:7: ( 'as' )
+            // InternalTableDSL.g:74:9: 'as'
+            {
+            match("as"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__78"
+
+    // $ANTLR start "T__79"
+    public final void mT__79() throws RecognitionException {
+        try {
+            int _type = T__79;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:75:7: ( 'selection' )
+            // InternalTableDSL.g:75:9: 'selection'
+            {
+            match("selection"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__79"
+
+    // $ANTLR start "T__80"
+    public final void mT__80() throws RecognitionException {
+        try {
+            int _type = T__80;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:76:7: ( 'rowHeader' )
+            // InternalTableDSL.g:76:9: 'rowHeader'
+            {
+            match("rowHeader"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__80"
+
+    // $ANTLR start "T__81"
+    public final void mT__81() throws RecognitionException {
+        try {
+            int _type = T__81;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:77:7: ( 'toolbar' )
+            // InternalTableDSL.g:77:9: 'toolbar'
+            {
+            match("toolbar"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__81"
+
+    // $ANTLR start "T__82"
+    public final void mT__82() throws RecognitionException {
+        try {
+            int _type = T__82;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:78:7: ( 'using' )
+            // InternalTableDSL.g:78:9: 'using'
+            {
+            match("using"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__82"
+
+    // $ANTLR start "T__83"
+    public final void mT__83() throws RecognitionException {
+        try {
+            int _type = T__83;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:79:7: ( 'bean' )
+            // InternalTableDSL.g:79:9: 'bean'
+            {
+            match("bean"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__83"
+
+    // $ANTLR start "T__84"
+    public final void mT__84() throws RecognitionException {
+        try {
+            int _type = T__84;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:80:7: ( 'preorder' )
+            // InternalTableDSL.g:80:9: 'preorder'
+            {
+            match("preorder"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__84"
+
+    // $ANTLR start "T__85"
+    public final void mT__85() throws RecognitionException {
+        try {
+            int _type = T__85;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:81:7: ( 'value' )
+            // InternalTableDSL.g:81:9: 'value'
+            {
+            match("value"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__85"
+
+    // $ANTLR start "T__86"
+    public final void mT__86() throws RecognitionException {
+        try {
+            int _type = T__86;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:82:7: ( 'icon' )
+            // InternalTableDSL.g:82:9: 'icon'
+            {
+            match("icon"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__86"
+
+    // $ANTLR start "T__87"
+    public final void mT__87() throws RecognitionException {
+        try {
+            int _type = T__87;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:83:7: ( 'intervals' )
+            // InternalTableDSL.g:83:9: 'intervals'
+            {
+            match("intervals"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__87"
+
+    // $ANTLR start "T__88"
+    public final void mT__88() throws RecognitionException {
+        try {
+            int _type = T__88;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:84:7: ( 'lookups' )
+            // InternalTableDSL.g:84:9: 'lookups'
+            {
+            match("lookups"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__88"
+
+    // $ANTLR start "T__89"
+    public final void mT__89() throws RecognitionException {
+        try {
+            int _type = T__89;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:85:7: ( 'formatter' )
+            // InternalTableDSL.g:85:9: 'formatter'
+            {
+            match("formatter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__89"
+
+    // $ANTLR start "T__90"
+    public final void mT__90() throws RecognitionException {
+        try {
+            int _type = T__90;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:86:7: ( 'path' )
+            // InternalTableDSL.g:86:9: 'path'
+            {
+            match("path"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__90"
+
+    // $ANTLR start "T__91"
+    public final void mT__91() throws RecognitionException {
+        try {
+            int _type = T__91;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:87:7: ( 'tooltipPattern' )
+            // InternalTableDSL.g:87:9: 'tooltipPattern'
+            {
+            match("tooltipPattern"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__91"
+
+    // $ANTLR start "T__92"
+    public final void mT__92() throws RecognitionException {
+        try {
+            int _type = T__92;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:88:7: ( 'taskId' )
+            // InternalTableDSL.g:88:9: 'taskId'
+            {
+            match("taskId"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__92"
+
+    // $ANTLR start "T__93"
+    public final void mT__93() throws RecognitionException {
+        try {
+            int _type = T__93;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:89:7: ( 'allColumns' )
+            // InternalTableDSL.g:89:9: 'allColumns'
+            {
+            match("allColumns"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__93"
+
+    // $ANTLR start "T__94"
+    public final void mT__94() throws RecognitionException {
+        try {
+            int _type = T__94;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:90:7: ( 'ordinal' )
+            // InternalTableDSL.g:90:9: 'ordinal'
+            {
+            match("ordinal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__94"
+
+    // $ANTLR start "T__95"
+    public final void mT__95() throws RecognitionException {
+        try {
+            int _type = T__95;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:91:7: ( 'column' )
+            // InternalTableDSL.g:91:9: 'column'
+            {
+            match("column"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__95"
+
+    // $ANTLR start "T__96"
+    public final void mT__96() throws RecognitionException {
+        try {
+            int _type = T__96;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:92:7: ( 'measure' )
+            // InternalTableDSL.g:92:9: 'measure'
+            {
+            match("measure"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__96"
+
+    // $ANTLR start "T__97"
+    public final void mT__97() throws RecognitionException {
+        try {
+            int _type = T__97;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:93:7: ( 'derived' )
+            // InternalTableDSL.g:93:9: 'derived'
+            {
+            match("derived"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__97"
+
+    // $ANTLR start "T__98"
+    public final void mT__98() throws RecognitionException {
+        try {
+            int _type = T__98;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:94:7: ( 'level' )
+            // InternalTableDSL.g:94:9: 'level'
+            {
+            match("level"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__98"
+
+    // $ANTLR start "T__99"
+    public final void mT__99() throws RecognitionException {
+        try {
+            int _type = T__99;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:95:7: ( 'property' )
+            // InternalTableDSL.g:95:9: 'property'
+            {
+            match("property"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__99"
+
+    // $ANTLR start "T__100"
+    public final void mT__100() throws RecognitionException {
+        try {
+            int _type = T__100;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:96:8: ( 'aggregation' )
+            // InternalTableDSL.g:96:10: 'aggregation'
+            {
+            match("aggregation"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__100"
+
+    // $ANTLR start "T__101"
+    public final void mT__101() throws RecognitionException {
+        try {
+            int _type = T__101;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:97:8: ( 'upToNumber' )
+            // InternalTableDSL.g:97:10: 'upToNumber'
+            {
+            match("upToNumber"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__101"
+
+    // $ANTLR start "T__102"
+    public final void mT__102() throws RecognitionException {
+        try {
+            int _type = T__102;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:98:8: ( 'upToInteger' )
+            // InternalTableDSL.g:98:10: 'upToInteger'
+            {
+            match("upToInteger"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__102"
+
+    // $ANTLR start "T__103"
+    public final void mT__103() throws RecognitionException {
+        try {
+            int _type = T__103;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:99:8: ( 'daysInPast' )
+            // InternalTableDSL.g:99:10: 'daysInPast'
+            {
+            match("daysInPast"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__103"
+
+    // $ANTLR start "T__104"
+    public final void mT__104() throws RecognitionException {
+        try {
+            int _type = T__104;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:100:8: ( 'integer' )
+            // InternalTableDSL.g:100:10: 'integer'
+            {
+            match("integer"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__104"
+
+    // $ANTLR start "T__105"
+    public final void mT__105() throws RecognitionException {
+        try {
+            int _type = T__105;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:101:8: ( 'number' )
+            // InternalTableDSL.g:101:10: 'number'
+            {
+            match("number"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__105"
+
+    // $ANTLR start "T__106"
+    public final void mT__106() throws RecognitionException {
+        try {
+            int _type = T__106;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:102:8: ( 'string' )
+            // InternalTableDSL.g:102:10: 'string'
+            {
+            match("string"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__106"
+
+    // $ANTLR start "T__107"
+    public final void mT__107() throws RecognitionException {
+        try {
+            int _type = T__107;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:103:8: ( 'datamart' )
+            // InternalTableDSL.g:103:10: 'datamart'
+            {
+            match("datamart"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__107"
+
+    // $ANTLR start "T__108"
+    public final void mT__108() throws RecognitionException {
+        try {
+            int _type = T__108;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:104:8: ( 'axis' )
+            // InternalTableDSL.g:104:10: 'axis'
+            {
+            match("axis"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__108"
+
+    // $ANTLR start "T__109"
+    public final void mT__109() throws RecognitionException {
+        try {
+            int _type = T__109;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:105:8: ( 'textcolor' )
+            // InternalTableDSL.g:105:10: 'textcolor'
+            {
+            match("textcolor"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__109"
+
+    // $ANTLR start "T__110"
+    public final void mT__110() throws RecognitionException {
+        try {
+            int _type = T__110;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:106:8: ( 'cellcolor' )
+            // InternalTableDSL.g:106:10: 'cellcolor'
+            {
+            match("cellcolor"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__110"
+
+    // $ANTLR start "T__111"
+    public final void mT__111() throws RecognitionException {
+        try {
+            int _type = T__111;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:107:8: ( 'trend' )
+            // InternalTableDSL.g:107:10: 'trend'
+            {
+            match("trend"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__111"
+
+    // $ANTLR start "T__112"
+    public final void mT__112() throws RecognitionException {
+        try {
+            int _type = T__112;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:108:8: ( 'tooltip' )
+            // InternalTableDSL.g:108:10: 'tooltip'
+            {
+            match("tooltip"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__112"
+
+    // $ANTLR start "T__113"
+    public final void mT__113() throws RecognitionException {
+        try {
+            int _type = T__113;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:109:8: ( 'grid' )
+            // InternalTableDSL.g:109:10: 'grid'
+            {
+            match("grid"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__113"
+
+    // $ANTLR start "T__114"
+    public final void mT__114() throws RecognitionException {
+        try {
+            int _type = T__114;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:110:8: ( 'rowheader' )
+            // InternalTableDSL.g:110:10: 'rowheader'
+            {
+            match("rowheader"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__114"
+
+    // $ANTLR start "T__115"
+    public final void mT__115() throws RecognitionException {
+        try {
+            int _type = T__115;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:111:8: ( 'prop' )
+            // InternalTableDSL.g:111:10: 'prop'
+            {
+            match("prop"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__115"
+
+    // $ANTLR start "T__116"
+    public final void mT__116() throws RecognitionException {
+        try {
+            int _type = T__116;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:112:8: ( 'style' )
+            // InternalTableDSL.g:112:10: 'style'
+            {
+            match("style"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__116"
+
+    // $ANTLR start "T__117"
+    public final void mT__117() throws RecognitionException {
+        try {
+            int _type = T__117;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:113:8: ( 'dto' )
+            // InternalTableDSL.g:113:10: 'dto'
+            {
+            match("dto"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__117"
+
+    // $ANTLR start "T__118"
+    public final void mT__118() throws RecognitionException {
+        try {
+            int _type = T__118;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:114:8: ( 'buttonStyle' )
+            // InternalTableDSL.g:114:10: 'buttonStyle'
+            {
+            match("buttonStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__118"
+
+    // $ANTLR start "T__119"
+    public final void mT__119() throws RecognitionException {
+        try {
+            int _type = T__119;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:115:8: ( 'eventTopic' )
+            // InternalTableDSL.g:115:10: 'eventTopic'
+            {
+            match("eventTopic"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__119"
+
+    // $ANTLR start "T__120"
+    public final void mT__120() throws RecognitionException {
+        try {
+            int _type = T__120;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:116:8: ( 'htmlStyle' )
+            // InternalTableDSL.g:116:10: 'htmlStyle'
+            {
+            match("htmlStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__120"
+
+    // $ANTLR start "T__121"
+    public final void mT__121() throws RecognitionException {
+        try {
+            int _type = T__121;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:117:8: ( 'boolStyle' )
+            // InternalTableDSL.g:117:10: 'boolStyle'
+            {
+            match("boolStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__121"
+
+    // $ANTLR start "T__122"
+    public final void mT__122() throws RecognitionException {
+        try {
+            int _type = T__122;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:118:8: ( 'dateStyle' )
+            // InternalTableDSL.g:118:10: 'dateStyle'
+            {
+            match("dateStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__122"
+
+    // $ANTLR start "T__123"
+    public final void mT__123() throws RecognitionException {
+        try {
+            int _type = T__123;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:119:8: ( 'format' )
+            // InternalTableDSL.g:119:10: 'format'
+            {
+            match("format"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__123"
+
+    // $ANTLR start "T__124"
+    public final void mT__124() throws RecognitionException {
+        try {
+            int _type = T__124;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:120:8: ( 'numberStyle' )
+            // InternalTableDSL.g:120:10: 'numberStyle'
+            {
+            match("numberStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__124"
+
+    // $ANTLR start "T__125"
+    public final void mT__125() throws RecognitionException {
+        try {
+            int _type = T__125;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:121:8: ( 'progressbarStyle' )
+            // InternalTableDSL.g:121:10: 'progressbarStyle'
+            {
+            match("progressbarStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__125"
+
+    // $ANTLR start "T__126"
+    public final void mT__126() throws RecognitionException {
+        try {
+            int _type = T__126;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:122:8: ( 'max' )
+            // InternalTableDSL.g:122:10: 'max'
+            {
+            match("max"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__126"
+
+    // $ANTLR start "T__127"
+    public final void mT__127() throws RecognitionException {
+        try {
+            int _type = T__127;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:123:8: ( 'indicatorStyle' )
+            // InternalTableDSL.g:123:10: 'indicatorStyle'
+            {
+            match("indicatorStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__127"
+
+    // $ANTLR start "T__128"
+    public final void mT__128() throws RecognitionException {
+        try {
+            int _type = T__128;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:124:8: ( 'greenFrom' )
+            // InternalTableDSL.g:124:10: 'greenFrom'
+            {
+            match("greenFrom"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__128"
+
+    // $ANTLR start "T__129"
+    public final void mT__129() throws RecognitionException {
+        try {
+            int _type = T__129;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:125:8: ( 'redUntil' )
+            // InternalTableDSL.g:125:10: 'redUntil'
+            {
+            match("redUntil"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__129"
+
+    // $ANTLR start "T__130"
+    public final void mT__130() throws RecognitionException {
+        try {
+            int _type = T__130;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:126:8: ( 'quantityStyle' )
+            // InternalTableDSL.g:126:10: 'quantityStyle'
+            {
+            match("quantityStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__130"
+
+    // $ANTLR start "T__131"
+    public final void mT__131() throws RecognitionException {
+        try {
+            int _type = T__131;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:127:8: ( 'uom' )
+            // InternalTableDSL.g:127:10: 'uom'
+            {
+            match("uom"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__131"
+
+    // $ANTLR start "T__132"
+    public final void mT__132() throws RecognitionException {
+        try {
+            int _type = T__132;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:128:8: ( '(' )
+            // InternalTableDSL.g:128:10: '('
+            {
+            match('('); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__132"
+
+    // $ANTLR start "T__133"
+    public final void mT__133() throws RecognitionException {
+        try {
+            int _type = T__133;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:129:8: ( ')' )
+            // InternalTableDSL.g:129:10: ')'
+            {
+            match(')'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__133"
+
+    // $ANTLR start "T__134"
+    public final void mT__134() throws RecognitionException {
+        try {
+            int _type = T__134;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:130:8: ( 'priceStyle' )
+            // InternalTableDSL.g:130:10: 'priceStyle'
+            {
+            match("priceStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__134"
+
+    // $ANTLR start "T__135"
+    public final void mT__135() throws RecognitionException {
+        try {
+            int _type = T__135;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:131:8: ( 'currency' )
+            // InternalTableDSL.g:131:10: 'currency'
+            {
+            match("currency"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__135"
+
+    // $ANTLR start "T__136"
+    public final void mT__136() throws RecognitionException {
+        try {
+            int _type = T__136;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:132:8: ( 'textStyle' )
+            // InternalTableDSL.g:132:10: 'textStyle'
+            {
+            match("textStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__136"
+
+    // $ANTLR start "T__137"
+    public final void mT__137() throws RecognitionException {
+        try {
+            int _type = T__137;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:133:8: ( 'imageStyle' )
+            // InternalTableDSL.g:133:10: 'imageStyle'
+            {
+            match("imageStyle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__137"
+
+    // $ANTLR start "T__138"
+    public final void mT__138() throws RecognitionException {
+        try {
+            int _type = T__138;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:134:8: ( 'then' )
+            // InternalTableDSL.g:134:10: 'then'
+            {
+            match("then"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__138"
+
+    // $ANTLR start "T__139"
+    public final void mT__139() throws RecognitionException {
+        try {
+            int _type = T__139;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:135:8: ( ';' )
+            // InternalTableDSL.g:135:10: ';'
+            {
+            match(';'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__139"
+
+    // $ANTLR start "T__140"
+    public final void mT__140() throws RecognitionException {
+        try {
+            int _type = T__140;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:136:8: ( '@' )
+            // InternalTableDSL.g:136:10: '@'
+            {
+            match('@'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__140"
+
+    // $ANTLR start "T__141"
+    public final void mT__141() throws RecognitionException {
+        try {
+            int _type = T__141;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:137:8: ( ',' )
+            // InternalTableDSL.g:137:10: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__141"
+
+    // $ANTLR start "T__142"
+    public final void mT__142() throws RecognitionException {
+        try {
+            int _type = T__142;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:138:8: ( ']' )
+            // InternalTableDSL.g:138:10: ']'
+            {
+            match(']'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__142"
+
+    // $ANTLR start "T__143"
+    public final void mT__143() throws RecognitionException {
+        try {
+            int _type = T__143;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:139:8: ( '#' )
+            // InternalTableDSL.g:139:10: '#'
+            {
+            match('#'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__143"
+
+    // $ANTLR start "T__144"
+    public final void mT__144() throws RecognitionException {
+        try {
+            int _type = T__144;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:140:8: ( '[' )
+            // InternalTableDSL.g:140:10: '['
+            {
+            match('['); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__144"
+
+    // $ANTLR start "T__145"
+    public final void mT__145() throws RecognitionException {
+        try {
+            int _type = T__145;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:141:8: ( 'instanceof' )
+            // InternalTableDSL.g:141:10: 'instanceof'
+            {
+            match("instanceof"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__145"
+
+    // $ANTLR start "T__146"
+    public final void mT__146() throws RecognitionException {
+        try {
+            int _type = T__146;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:142:8: ( 'if' )
+            // InternalTableDSL.g:142:10: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__146"
+
+    // $ANTLR start "T__147"
+    public final void mT__147() throws RecognitionException {
+        try {
+            int _type = T__147;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:143:8: ( 'else' )
+            // InternalTableDSL.g:143:10: 'else'
+            {
+            match("else"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__147"
+
+    // $ANTLR start "T__148"
+    public final void mT__148() throws RecognitionException {
+        try {
+            int _type = T__148;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:144:8: ( 'switch' )
+            // InternalTableDSL.g:144:10: 'switch'
+            {
+            match("switch"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__148"
+
+    // $ANTLR start "T__149"
+    public final void mT__149() throws RecognitionException {
+        try {
+            int _type = T__149;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:145:8: ( ':' )
+            // InternalTableDSL.g:145:10: ':'
+            {
+            match(':'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__149"
+
+    // $ANTLR start "T__150"
+    public final void mT__150() throws RecognitionException {
+        try {
+            int _type = T__150;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:146:8: ( 'case' )
+            // InternalTableDSL.g:146:10: 'case'
+            {
+            match("case"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__150"
+
+    // $ANTLR start "T__151"
+    public final void mT__151() throws RecognitionException {
+        try {
+            int _type = T__151;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:147:8: ( 'for' )
+            // InternalTableDSL.g:147:10: 'for'
+            {
+            match("for"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__151"
+
+    // $ANTLR start "T__152"
+    public final void mT__152() throws RecognitionException {
+        try {
+            int _type = T__152;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:148:8: ( 'while' )
+            // InternalTableDSL.g:148:10: 'while'
+            {
+            match("while"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__152"
+
+    // $ANTLR start "T__153"
+    public final void mT__153() throws RecognitionException {
+        try {
+            int _type = T__153;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:149:8: ( 'do' )
+            // InternalTableDSL.g:149:10: 'do'
+            {
+            match("do"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__153"
+
+    // $ANTLR start "T__154"
+    public final void mT__154() throws RecognitionException {
+        try {
+            int _type = T__154;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:150:8: ( 'new' )
+            // InternalTableDSL.g:150:10: 'new'
+            {
+            match("new"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__154"
+
+    // $ANTLR start "T__155"
+    public final void mT__155() throws RecognitionException {
+        try {
+            int _type = T__155;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:151:8: ( 'null' )
+            // InternalTableDSL.g:151:10: 'null'
+            {
+            match("null"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__155"
+
+    // $ANTLR start "T__156"
+    public final void mT__156() throws RecognitionException {
+        try {
+            int _type = T__156;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:152:8: ( 'typeof' )
+            // InternalTableDSL.g:152:10: 'typeof'
+            {
+            match("typeof"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__156"
+
+    // $ANTLR start "T__157"
+    public final void mT__157() throws RecognitionException {
+        try {
+            int _type = T__157;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:153:8: ( 'throw' )
+            // InternalTableDSL.g:153:10: 'throw'
+            {
+            match("throw"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__157"
+
+    // $ANTLR start "T__158"
+    public final void mT__158() throws RecognitionException {
+        try {
+            int _type = T__158;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:154:8: ( 'return' )
+            // InternalTableDSL.g:154:10: 'return'
+            {
+            match("return"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__158"
+
+    // $ANTLR start "T__159"
+    public final void mT__159() throws RecognitionException {
+        try {
+            int _type = T__159;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:155:8: ( 'try' )
+            // InternalTableDSL.g:155:10: 'try'
+            {
+            match("try"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__159"
+
+    // $ANTLR start "T__160"
+    public final void mT__160() throws RecognitionException {
+        try {
+            int _type = T__160;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:156:8: ( 'finally' )
+            // InternalTableDSL.g:156:10: 'finally'
+            {
+            match("finally"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__160"
+
+    // $ANTLR start "T__161"
+    public final void mT__161() throws RecognitionException {
+        try {
+            int _type = T__161;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:157:8: ( 'synchronized' )
+            // InternalTableDSL.g:157:10: 'synchronized'
+            {
+            match("synchronized"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__161"
+
+    // $ANTLR start "T__162"
+    public final void mT__162() throws RecognitionException {
+        try {
+            int _type = T__162;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:158:8: ( 'catch' )
+            // InternalTableDSL.g:158:10: 'catch'
+            {
+            match("catch"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__162"
+
+    // $ANTLR start "T__163"
+    public final void mT__163() throws RecognitionException {
+        try {
+            int _type = T__163;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:159:8: ( '?' )
+            // InternalTableDSL.g:159:10: '?'
+            {
+            match('?'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__163"
+
+    // $ANTLR start "T__164"
+    public final void mT__164() throws RecognitionException {
+        try {
+            int _type = T__164;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:160:8: ( '&' )
+            // InternalTableDSL.g:160:10: '&'
+            {
+            match('&'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__164"
+
+    // $ANTLR start "T__165"
+    public final void mT__165() throws RecognitionException {
+        try {
+            int _type = T__165;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:161:8: ( 'describedBy' )
+            // InternalTableDSL.g:161:10: 'describedBy'
+            {
+            match("describedBy"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__165"
+
+    // $ANTLR start "T__166"
+    public final void mT__166() throws RecognitionException {
+        try {
+            int _type = T__166;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:162:8: ( 'multiple' )
+            // InternalTableDSL.g:162:10: 'multiple'
+            {
+            match("multiple"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__166"
+
+    // $ANTLR start "T__167"
+    public final void mT__167() throws RecognitionException {
+        try {
+            int _type = T__167;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:163:8: ( 'alwaysSelected' )
+            // InternalTableDSL.g:163:10: 'alwaysSelected'
+            {
+            match("alwaysSelected"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__167"
+
+    // $ANTLR start "T__168"
+    public final void mT__168() throws RecognitionException {
+        try {
+            int _type = T__168;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:164:8: ( 'polling' )
+            // InternalTableDSL.g:164:10: 'polling'
+            {
+            match("polling"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__168"
+
+    // $ANTLR start "T__169"
+    public final void mT__169() throws RecognitionException {
+        try {
+            int _type = T__169;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:165:8: ( 'filtering' )
+            // InternalTableDSL.g:165:10: 'filtering'
+            {
+            match("filtering"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__169"
+
+    // $ANTLR start "T__170"
+    public final void mT__170() throws RecognitionException {
+        try {
+            int _type = T__170;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:166:8: ( 'embedded' )
+            // InternalTableDSL.g:166:10: 'embedded'
+            {
+            match("embedded"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__170"
+
+    // $ANTLR start "T__171"
+    public final void mT__171() throws RecognitionException {
+        try {
+            int _type = T__171;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:167:8: ( 'selectById' )
+            // InternalTableDSL.g:167:10: 'selectById'
+            {
+            match("selectById"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__171"
+
+    // $ANTLR start "T__172"
+    public final void mT__172() throws RecognitionException {
+        try {
+            int _type = T__172;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:168:8: ( 'ascending' )
+            // InternalTableDSL.g:168:10: 'ascending'
+            {
+            match("ascending"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__172"
+
+    // $ANTLR start "T__173"
+    public final void mT__173() throws RecognitionException {
+        try {
+            int _type = T__173;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:169:8: ( 'collapse' )
+            // InternalTableDSL.g:169:10: 'collapse'
+            {
+            match("collapse"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__173"
+
+    // $ANTLR start "T__174"
+    public final void mT__174() throws RecognitionException {
+        try {
+            int _type = T__174;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:170:8: ( 'image' )
+            // InternalTableDSL.g:170:10: 'image'
+            {
+            match("image"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__174"
+
+    // $ANTLR start "T__175"
+    public final void mT__175() throws RecognitionException {
+        try {
+            int _type = T__175;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:171:8: ( 'hidelabel' )
+            // InternalTableDSL.g:171:10: 'hidelabel'
+            {
+            match("hidelabel"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__175"
+
+    // $ANTLR start "T__176"
+    public final void mT__176() throws RecognitionException {
+        try {
+            int _type = T__176;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:172:8: ( 'dynamic' )
+            // InternalTableDSL.g:172:10: 'dynamic'
+            {
+            match("dynamic"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__176"
+
+    // $ANTLR start "T__177"
+    public final void mT__177() throws RecognitionException {
+        try {
+            int _type = T__177;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:173:8: ( 'resize' )
+            // InternalTableDSL.g:173:10: 'resize'
+            {
+            match("resize"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__177"
+
+    // $ANTLR start "T__178"
+    public final void mT__178() throws RecognitionException {
+        try {
+            int _type = T__178;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:174:8: ( 'rowheight' )
+            // InternalTableDSL.g:174:10: 'rowheight'
+            {
+            match("rowheight"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__178"
+
+    // $ANTLR start "T__179"
+    public final void mT__179() throws RecognitionException {
+        try {
+            int _type = T__179;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:175:8: ( 'details' )
+            // InternalTableDSL.g:175:10: 'details'
+            {
+            match("details"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__179"
+
+    // $ANTLR start "T__180"
+    public final void mT__180() throws RecognitionException {
+        try {
+            int _type = T__180;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:176:8: ( 'notifyOnSelect' )
+            // InternalTableDSL.g:176:10: 'notifyOnSelect'
+            {
+            match("notifyOnSelect"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__180"
+
+    // $ANTLR start "T__181"
+    public final void mT__181() throws RecognitionException {
+        try {
+            int _type = T__181;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:177:8: ( 'selectalways' )
+            // InternalTableDSL.g:177:10: 'selectalways'
+            {
+            match("selectalways"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__181"
+
+    // $ANTLR start "T__182"
+    public final void mT__182() throws RecognitionException {
+        try {
+            int _type = T__182;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:178:8: ( 'editable' )
+            // InternalTableDSL.g:178:10: 'editable'
+            {
+            match("editable"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__182"
+
+    // $ANTLR start "T__183"
+    public final void mT__183() throws RecognitionException {
+        try {
+            int _type = T__183;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:179:8: ( 'ns' )
+            // InternalTableDSL.g:179:10: 'ns'
+            {
+            match("ns"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__183"
+
+    // $ANTLR start "T__184"
+    public final void mT__184() throws RecognitionException {
+        try {
+            int _type = T__184;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:180:8: ( '::' )
+            // InternalTableDSL.g:180:10: '::'
+            {
+            match("::"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__184"
+
+    // $ANTLR start "T__185"
+    public final void mT__185() throws RecognitionException {
+        try {
+            int _type = T__185;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:181:8: ( '?.' )
+            // InternalTableDSL.g:181:10: '?.'
+            {
+            match("?."); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__185"
+
+    // $ANTLR start "T__186"
+    public final void mT__186() throws RecognitionException {
+        try {
+            int _type = T__186;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:182:8: ( '|' )
+            // InternalTableDSL.g:182:10: '|'
+            {
+            match('|'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__186"
+
+    // $ANTLR start "T__187"
+    public final void mT__187() throws RecognitionException {
+        try {
+            int _type = T__187;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:183:8: ( 'var' )
+            // InternalTableDSL.g:183:10: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__187"
+
+    // $ANTLR start "T__188"
+    public final void mT__188() throws RecognitionException {
+        try {
+            int _type = T__188;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:184:8: ( 'true' )
+            // InternalTableDSL.g:184:10: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__188"
+
+    // $ANTLR start "RULE_THEME_RESOURCE"
+    public final void mRULE_THEME_RESOURCE() throws RecognitionException {
+        try {
+            int _type = RULE_THEME_RESOURCE;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31898:21: ( 'theme:/' ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '.' | '/' | '0' .. '9' )* )
+            // InternalTableDSL.g:31898:23: 'theme:/' ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '.' | '/' | '0' .. '9' )*
+            {
+            match("theme:/"); 
+
+            // InternalTableDSL.g:31898:33: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '.' | '/' | '0' .. '9' )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0=='$'||(LA1_0>='.' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // InternalTableDSL.g:
+            	    {
+            	    if ( input.LA(1)=='$'||(input.LA(1)>='.' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_THEME_RESOURCE"
+
+    // $ANTLR start "RULE_EVENT_TOPIC"
+    public final void mRULE_EVENT_TOPIC() throws RecognitionException {
+        try {
+            int _type = RULE_EVENT_TOPIC;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31900:18: ( '\\'' RULE_ID ( '/' RULE_ID )* ( '/*' )? '\\'' )
+            // InternalTableDSL.g:31900:20: '\\'' RULE_ID ( '/' RULE_ID )* ( '/*' )? '\\''
+            {
+            match('\''); 
+            mRULE_ID(); 
+            // InternalTableDSL.g:31900:33: ( '/' RULE_ID )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0=='/') ) {
+                    int LA2_1 = input.LA(2);
+
+                    if ( (LA2_1=='$'||(LA2_1>='A' && LA2_1<='Z')||(LA2_1>='^' && LA2_1<='_')||(LA2_1>='a' && LA2_1<='z')) ) {
+                        alt2=1;
+                    }
+
+
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // InternalTableDSL.g:31900:34: '/' RULE_ID
+            	    {
+            	    match('/'); 
+            	    mRULE_ID(); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+            // InternalTableDSL.g:31900:48: ( '/*' )?
+            int alt3=2;
+            int LA3_0 = input.LA(1);
+
+            if ( (LA3_0=='/') ) {
+                alt3=1;
+            }
+            switch (alt3) {
+                case 1 :
+                    // InternalTableDSL.g:31900:48: '/*'
+                    {
+                    match("/*"); 
+
+
+                    }
+                    break;
+
+            }
+
+            match('\''); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_EVENT_TOPIC"
+
+    // $ANTLR start "RULE_HEX"
+    public final void mRULE_HEX() throws RecognitionException {
+        try {
+            int _type = RULE_HEX;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31902:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalTableDSL.g:31902:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            {
+            // InternalTableDSL.g:31902:12: ( '0x' | '0X' )
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0=='0') ) {
+                int LA4_1 = input.LA(2);
+
+                if ( (LA4_1=='x') ) {
+                    alt4=1;
+                }
+                else if ( (LA4_1=='X') ) {
+                    alt4=2;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 4, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 4, 0, input);
+
+                throw nvae;
+            }
+            switch (alt4) {
+                case 1 :
+                    // InternalTableDSL.g:31902:13: '0x'
+                    {
+                    match("0x"); 
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:31902:18: '0X'
+                    {
+                    match("0X"); 
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:31902:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            int cnt5=0;
+            loop5:
+            do {
+                int alt5=2;
+                int LA5_0 = input.LA(1);
+
+                if ( ((LA5_0>='0' && LA5_0<='9')||(LA5_0>='A' && LA5_0<='F')||LA5_0=='_'||(LA5_0>='a' && LA5_0<='f')) ) {
+                    alt5=1;
+                }
+
+
+                switch (alt5) {
+            	case 1 :
+            	    // InternalTableDSL.g:
+            	    {
+            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt5 >= 1 ) break loop5;
+                        EarlyExitException eee =
+                            new EarlyExitException(5, input);
+                        throw eee;
+                }
+                cnt5++;
+            } while (true);
+
+            // InternalTableDSL.g:31902:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0=='#') ) {
+                alt7=1;
+            }
+            switch (alt7) {
+                case 1 :
+                    // InternalTableDSL.g:31902:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    {
+                    match('#'); 
+                    // InternalTableDSL.g:31902:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    int alt6=2;
+                    int LA6_0 = input.LA(1);
+
+                    if ( (LA6_0=='B'||LA6_0=='b') ) {
+                        alt6=1;
+                    }
+                    else if ( (LA6_0=='L'||LA6_0=='l') ) {
+                        alt6=2;
+                    }
+                    else {
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 6, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt6) {
+                        case 1 :
+                            // InternalTableDSL.g:31902:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            {
+                            if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+                            if ( input.LA(1)=='I'||input.LA(1)=='i' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+
+                            }
+                            break;
+                        case 2 :
+                            // InternalTableDSL.g:31902:84: ( 'l' | 'L' )
+                            {
+                            if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_HEX"
+
+    // $ANTLR start "RULE_INT"
+    public final void mRULE_INT() throws RecognitionException {
+        try {
+            int _type = RULE_INT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31904:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalTableDSL.g:31904:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            {
+            matchRange('0','9'); 
+            // InternalTableDSL.g:31904:21: ( '0' .. '9' | '_' )*
+            loop8:
+            do {
+                int alt8=2;
+                int LA8_0 = input.LA(1);
+
+                if ( ((LA8_0>='0' && LA8_0<='9')||LA8_0=='_') ) {
+                    alt8=1;
+                }
+
+
+                switch (alt8) {
+            	case 1 :
+            	    // InternalTableDSL.g:
+            	    {
+            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||input.LA(1)=='_' ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop8;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_INT"
+
+    // $ANTLR start "RULE_DECIMAL"
+    public final void mRULE_DECIMAL() throws RecognitionException {
+        try {
+            int _type = RULE_DECIMAL;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31906:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalTableDSL.g:31906:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            {
+            mRULE_INT(); 
+            // InternalTableDSL.g:31906:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0=='E'||LA10_0=='e') ) {
+                alt10=1;
+            }
+            switch (alt10) {
+                case 1 :
+                    // InternalTableDSL.g:31906:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    {
+                    if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+                    // InternalTableDSL.g:31906:36: ( '+' | '-' )?
+                    int alt9=2;
+                    int LA9_0 = input.LA(1);
+
+                    if ( (LA9_0=='+'||LA9_0=='-') ) {
+                        alt9=1;
+                    }
+                    switch (alt9) {
+                        case 1 :
+                            // InternalTableDSL.g:
+                            {
+                            if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
+                                input.consume();
+
+                            }
+                            else {
+                                MismatchedSetException mse = new MismatchedSetException(null,input);
+                                recover(mse);
+                                throw mse;}
+
+
+                            }
+                            break;
+
+                    }
+
+                    mRULE_INT(); 
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:31906:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            int alt11=3;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0=='B'||LA11_0=='b') ) {
+                alt11=1;
+            }
+            else if ( (LA11_0=='D'||LA11_0=='F'||LA11_0=='L'||LA11_0=='d'||LA11_0=='f'||LA11_0=='l') ) {
+                alt11=2;
+            }
+            switch (alt11) {
+                case 1 :
+                    // InternalTableDSL.g:31906:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    {
+                    if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+                    if ( input.LA(1)=='D'||input.LA(1)=='I'||input.LA(1)=='d'||input.LA(1)=='i' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:31906:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    {
+                    if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='L'||input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='l' ) {
+                        input.consume();
+
+                    }
+                    else {
+                        MismatchedSetException mse = new MismatchedSetException(null,input);
+                        recover(mse);
+                        throw mse;}
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_DECIMAL"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31908:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalTableDSL.g:31908:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            {
+            // InternalTableDSL.g:31908:11: ( '^' )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0=='^') ) {
+                alt12=1;
+            }
+            switch (alt12) {
+                case 1 :
+                    // InternalTableDSL.g:31908:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // InternalTableDSL.g:31908:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            loop13:
+            do {
+                int alt13=2;
+                int LA13_0 = input.LA(1);
+
+                if ( (LA13_0=='$'||(LA13_0>='0' && LA13_0<='9')||(LA13_0>='A' && LA13_0<='Z')||LA13_0=='_'||(LA13_0>='a' && LA13_0<='z')) ) {
+                    alt13=1;
+                }
+
+
+                switch (alt13) {
+            	case 1 :
+            	    // InternalTableDSL.g:
+            	    {
+            	    if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop13;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ID"
+
+    // $ANTLR start "RULE_STRING"
+    public final void mRULE_STRING() throws RecognitionException {
+        try {
+            int _type = RULE_STRING;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31910:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalTableDSL.g:31910:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            {
+            // InternalTableDSL.g:31910:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            int alt18=2;
+            int LA18_0 = input.LA(1);
+
+            if ( (LA18_0=='\"') ) {
+                alt18=1;
+            }
+            else if ( (LA18_0=='\'') ) {
+                alt18=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 18, 0, input);
+
+                throw nvae;
+            }
+            switch (alt18) {
+                case 1 :
+                    // InternalTableDSL.g:31910:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    {
+                    match('\"'); 
+                    // InternalTableDSL.g:31910:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    loop14:
+                    do {
+                        int alt14=3;
+                        int LA14_0 = input.LA(1);
+
+                        if ( (LA14_0=='\\') ) {
+                            alt14=1;
+                        }
+                        else if ( ((LA14_0>='\u0000' && LA14_0<='!')||(LA14_0>='#' && LA14_0<='[')||(LA14_0>=']' && LA14_0<='\uFFFF')) ) {
+                            alt14=2;
+                        }
+
+
+                        switch (alt14) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:31910:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // InternalTableDSL.g:31910:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+                    	        input.consume();
+
+                    	    }
+                    	    else {
+                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
+                    	        recover(mse);
+                    	        throw mse;}
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop14;
+                        }
+                    } while (true);
+
+                    // InternalTableDSL.g:31910:44: ( '\"' )?
+                    int alt15=2;
+                    int LA15_0 = input.LA(1);
+
+                    if ( (LA15_0=='\"') ) {
+                        alt15=1;
+                    }
+                    switch (alt15) {
+                        case 1 :
+                            // InternalTableDSL.g:31910:44: '\"'
+                            {
+                            match('\"'); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:31910:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    {
+                    match('\''); 
+                    // InternalTableDSL.g:31910:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    loop16:
+                    do {
+                        int alt16=3;
+                        int LA16_0 = input.LA(1);
+
+                        if ( (LA16_0=='\\') ) {
+                            alt16=1;
+                        }
+                        else if ( ((LA16_0>='\u0000' && LA16_0<='&')||(LA16_0>='(' && LA16_0<='[')||(LA16_0>=']' && LA16_0<='\uFFFF')) ) {
+                            alt16=2;
+                        }
+
+
+                        switch (alt16) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:31910:55: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // InternalTableDSL.g:31910:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    {
+                    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+                    	        input.consume();
+
+                    	    }
+                    	    else {
+                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
+                    	        recover(mse);
+                    	        throw mse;}
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop16;
+                        }
+                    } while (true);
+
+                    // InternalTableDSL.g:31910:79: ( '\\'' )?
+                    int alt17=2;
+                    int LA17_0 = input.LA(1);
+
+                    if ( (LA17_0=='\'') ) {
+                        alt17=1;
+                    }
+                    switch (alt17) {
+                        case 1 :
+                            // InternalTableDSL.g:31910:79: '\\''
+                            {
+                            match('\''); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_STRING"
+
+    // $ANTLR start "RULE_ML_COMMENT"
+    public final void mRULE_ML_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_ML_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31912:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalTableDSL.g:31912:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // InternalTableDSL.g:31912:24: ( options {greedy=false; } : . )*
+            loop19:
+            do {
+                int alt19=2;
+                int LA19_0 = input.LA(1);
+
+                if ( (LA19_0=='*') ) {
+                    int LA19_1 = input.LA(2);
+
+                    if ( (LA19_1=='/') ) {
+                        alt19=2;
+                    }
+                    else if ( ((LA19_1>='\u0000' && LA19_1<='.')||(LA19_1>='0' && LA19_1<='\uFFFF')) ) {
+                        alt19=1;
+                    }
+
+
+                }
+                else if ( ((LA19_0>='\u0000' && LA19_0<=')')||(LA19_0>='+' && LA19_0<='\uFFFF')) ) {
+                    alt19=1;
+                }
+
+
+                switch (alt19) {
+            	case 1 :
+            	    // InternalTableDSL.g:31912:52: .
+            	    {
+            	    matchAny(); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop19;
+                }
+            } while (true);
+
+            match("*/"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ML_COMMENT"
+
+    // $ANTLR start "RULE_SL_COMMENT"
+    public final void mRULE_SL_COMMENT() throws RecognitionException {
+        try {
+            int _type = RULE_SL_COMMENT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31914:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalTableDSL.g:31914:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // InternalTableDSL.g:31914:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            loop20:
+            do {
+                int alt20=2;
+                int LA20_0 = input.LA(1);
+
+                if ( ((LA20_0>='\u0000' && LA20_0<='\t')||(LA20_0>='\u000B' && LA20_0<='\f')||(LA20_0>='\u000E' && LA20_0<='\uFFFF')) ) {
+                    alt20=1;
+                }
+
+
+                switch (alt20) {
+            	case 1 :
+            	    // InternalTableDSL.g:31914:24: ~ ( ( '\\n' | '\\r' ) )
+            	    {
+            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop20;
+                }
+            } while (true);
+
+            // InternalTableDSL.g:31914:40: ( ( '\\r' )? '\\n' )?
+            int alt22=2;
+            int LA22_0 = input.LA(1);
+
+            if ( (LA22_0=='\n'||LA22_0=='\r') ) {
+                alt22=1;
+            }
+            switch (alt22) {
+                case 1 :
+                    // InternalTableDSL.g:31914:41: ( '\\r' )? '\\n'
+                    {
+                    // InternalTableDSL.g:31914:41: ( '\\r' )?
+                    int alt21=2;
+                    int LA21_0 = input.LA(1);
+
+                    if ( (LA21_0=='\r') ) {
+                        alt21=1;
+                    }
+                    switch (alt21) {
+                        case 1 :
+                            // InternalTableDSL.g:31914:41: '\\r'
+                            {
+                            match('\r'); 
+
+                            }
+                            break;
+
+                    }
+
+                    match('\n'); 
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_SL_COMMENT"
+
+    // $ANTLR start "RULE_WS"
+    public final void mRULE_WS() throws RecognitionException {
+        try {
+            int _type = RULE_WS;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31916:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalTableDSL.g:31916:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // InternalTableDSL.g:31916:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            int cnt23=0;
+            loop23:
+            do {
+                int alt23=2;
+                int LA23_0 = input.LA(1);
+
+                if ( ((LA23_0>='\t' && LA23_0<='\n')||LA23_0=='\r'||LA23_0==' ') ) {
+                    alt23=1;
+                }
+
+
+                switch (alt23) {
+            	case 1 :
+            	    // InternalTableDSL.g:
+            	    {
+            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt23 >= 1 ) break loop23;
+                        EarlyExitException eee =
+                            new EarlyExitException(23, input);
+                        throw eee;
+                }
+                cnt23++;
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_WS"
+
+    // $ANTLR start "RULE_ANY_OTHER"
+    public final void mRULE_ANY_OTHER() throws RecognitionException {
+        try {
+            int _type = RULE_ANY_OTHER;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:31918:16: ( . )
+            // InternalTableDSL.g:31918:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // InternalTableDSL.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | T__172 | T__173 | T__174 | T__175 | T__176 | T__177 | T__178 | T__179 | T__180 | T__181 | T__182 | T__183 | T__184 | T__185 | T__186 | T__187 | T__188 | RULE_THEME_RESOURCE | RULE_EVENT_TOPIC | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt24=185;
+        alt24 = dfa24.predict(input);
+        switch (alt24) {
+            case 1 :
+                // InternalTableDSL.g:1:10: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 2 :
+                // InternalTableDSL.g:1:16: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 3 :
+                // InternalTableDSL.g:1:22: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 4 :
+                // InternalTableDSL.g:1:28: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 5 :
+                // InternalTableDSL.g:1:34: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 6 :
+                // InternalTableDSL.g:1:40: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 7 :
+                // InternalTableDSL.g:1:46: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 8 :
+                // InternalTableDSL.g:1:52: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 9 :
+                // InternalTableDSL.g:1:58: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 10 :
+                // InternalTableDSL.g:1:64: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 11 :
+                // InternalTableDSL.g:1:70: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 12 :
+                // InternalTableDSL.g:1:76: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 13 :
+                // InternalTableDSL.g:1:82: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 14 :
+                // InternalTableDSL.g:1:88: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 15 :
+                // InternalTableDSL.g:1:94: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 16 :
+                // InternalTableDSL.g:1:100: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 17 :
+                // InternalTableDSL.g:1:106: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 18 :
+                // InternalTableDSL.g:1:112: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 19 :
+                // InternalTableDSL.g:1:118: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 20 :
+                // InternalTableDSL.g:1:124: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 21 :
+                // InternalTableDSL.g:1:130: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 22 :
+                // InternalTableDSL.g:1:136: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 23 :
+                // InternalTableDSL.g:1:142: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 24 :
+                // InternalTableDSL.g:1:148: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 25 :
+                // InternalTableDSL.g:1:154: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 26 :
+                // InternalTableDSL.g:1:160: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 27 :
+                // InternalTableDSL.g:1:166: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 28 :
+                // InternalTableDSL.g:1:172: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 29 :
+                // InternalTableDSL.g:1:178: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 30 :
+                // InternalTableDSL.g:1:184: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 31 :
+                // InternalTableDSL.g:1:190: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 32 :
+                // InternalTableDSL.g:1:196: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 33 :
+                // InternalTableDSL.g:1:202: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 34 :
+                // InternalTableDSL.g:1:208: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 35 :
+                // InternalTableDSL.g:1:214: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 36 :
+                // InternalTableDSL.g:1:220: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 37 :
+                // InternalTableDSL.g:1:226: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 38 :
+                // InternalTableDSL.g:1:232: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 39 :
+                // InternalTableDSL.g:1:238: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 40 :
+                // InternalTableDSL.g:1:244: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 41 :
+                // InternalTableDSL.g:1:250: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 42 :
+                // InternalTableDSL.g:1:256: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 43 :
+                // InternalTableDSL.g:1:262: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 44 :
+                // InternalTableDSL.g:1:268: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 45 :
+                // InternalTableDSL.g:1:274: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 46 :
+                // InternalTableDSL.g:1:280: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 47 :
+                // InternalTableDSL.g:1:286: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 48 :
+                // InternalTableDSL.g:1:292: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 49 :
+                // InternalTableDSL.g:1:298: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 50 :
+                // InternalTableDSL.g:1:304: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 51 :
+                // InternalTableDSL.g:1:310: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 52 :
+                // InternalTableDSL.g:1:316: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 53 :
+                // InternalTableDSL.g:1:322: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 54 :
+                // InternalTableDSL.g:1:328: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 55 :
+                // InternalTableDSL.g:1:334: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 56 :
+                // InternalTableDSL.g:1:340: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 57 :
+                // InternalTableDSL.g:1:346: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 58 :
+                // InternalTableDSL.g:1:352: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 59 :
+                // InternalTableDSL.g:1:358: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 60 :
+                // InternalTableDSL.g:1:364: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 61 :
+                // InternalTableDSL.g:1:370: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 62 :
+                // InternalTableDSL.g:1:376: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 63 :
+                // InternalTableDSL.g:1:382: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 64 :
+                // InternalTableDSL.g:1:388: T__78
+                {
+                mT__78(); 
+
+                }
+                break;
+            case 65 :
+                // InternalTableDSL.g:1:394: T__79
+                {
+                mT__79(); 
+
+                }
+                break;
+            case 66 :
+                // InternalTableDSL.g:1:400: T__80
+                {
+                mT__80(); 
+
+                }
+                break;
+            case 67 :
+                // InternalTableDSL.g:1:406: T__81
+                {
+                mT__81(); 
+
+                }
+                break;
+            case 68 :
+                // InternalTableDSL.g:1:412: T__82
+                {
+                mT__82(); 
+
+                }
+                break;
+            case 69 :
+                // InternalTableDSL.g:1:418: T__83
+                {
+                mT__83(); 
+
+                }
+                break;
+            case 70 :
+                // InternalTableDSL.g:1:424: T__84
+                {
+                mT__84(); 
+
+                }
+                break;
+            case 71 :
+                // InternalTableDSL.g:1:430: T__85
+                {
+                mT__85(); 
+
+                }
+                break;
+            case 72 :
+                // InternalTableDSL.g:1:436: T__86
+                {
+                mT__86(); 
+
+                }
+                break;
+            case 73 :
+                // InternalTableDSL.g:1:442: T__87
+                {
+                mT__87(); 
+
+                }
+                break;
+            case 74 :
+                // InternalTableDSL.g:1:448: T__88
+                {
+                mT__88(); 
+
+                }
+                break;
+            case 75 :
+                // InternalTableDSL.g:1:454: T__89
+                {
+                mT__89(); 
+
+                }
+                break;
+            case 76 :
+                // InternalTableDSL.g:1:460: T__90
+                {
+                mT__90(); 
+
+                }
+                break;
+            case 77 :
+                // InternalTableDSL.g:1:466: T__91
+                {
+                mT__91(); 
+
+                }
+                break;
+            case 78 :
+                // InternalTableDSL.g:1:472: T__92
+                {
+                mT__92(); 
+
+                }
+                break;
+            case 79 :
+                // InternalTableDSL.g:1:478: T__93
+                {
+                mT__93(); 
+
+                }
+                break;
+            case 80 :
+                // InternalTableDSL.g:1:484: T__94
+                {
+                mT__94(); 
+
+                }
+                break;
+            case 81 :
+                // InternalTableDSL.g:1:490: T__95
+                {
+                mT__95(); 
+
+                }
+                break;
+            case 82 :
+                // InternalTableDSL.g:1:496: T__96
+                {
+                mT__96(); 
+
+                }
+                break;
+            case 83 :
+                // InternalTableDSL.g:1:502: T__97
+                {
+                mT__97(); 
+
+                }
+                break;
+            case 84 :
+                // InternalTableDSL.g:1:508: T__98
+                {
+                mT__98(); 
+
+                }
+                break;
+            case 85 :
+                // InternalTableDSL.g:1:514: T__99
+                {
+                mT__99(); 
+
+                }
+                break;
+            case 86 :
+                // InternalTableDSL.g:1:520: T__100
+                {
+                mT__100(); 
+
+                }
+                break;
+            case 87 :
+                // InternalTableDSL.g:1:527: T__101
+                {
+                mT__101(); 
+
+                }
+                break;
+            case 88 :
+                // InternalTableDSL.g:1:534: T__102
+                {
+                mT__102(); 
+
+                }
+                break;
+            case 89 :
+                // InternalTableDSL.g:1:541: T__103
+                {
+                mT__103(); 
+
+                }
+                break;
+            case 90 :
+                // InternalTableDSL.g:1:548: T__104
+                {
+                mT__104(); 
+
+                }
+                break;
+            case 91 :
+                // InternalTableDSL.g:1:555: T__105
+                {
+                mT__105(); 
+
+                }
+                break;
+            case 92 :
+                // InternalTableDSL.g:1:562: T__106
+                {
+                mT__106(); 
+
+                }
+                break;
+            case 93 :
+                // InternalTableDSL.g:1:569: T__107
+                {
+                mT__107(); 
+
+                }
+                break;
+            case 94 :
+                // InternalTableDSL.g:1:576: T__108
+                {
+                mT__108(); 
+
+                }
+                break;
+            case 95 :
+                // InternalTableDSL.g:1:583: T__109
+                {
+                mT__109(); 
+
+                }
+                break;
+            case 96 :
+                // InternalTableDSL.g:1:590: T__110
+                {
+                mT__110(); 
+
+                }
+                break;
+            case 97 :
+                // InternalTableDSL.g:1:597: T__111
+                {
+                mT__111(); 
+
+                }
+                break;
+            case 98 :
+                // InternalTableDSL.g:1:604: T__112
+                {
+                mT__112(); 
+
+                }
+                break;
+            case 99 :
+                // InternalTableDSL.g:1:611: T__113
+                {
+                mT__113(); 
+
+                }
+                break;
+            case 100 :
+                // InternalTableDSL.g:1:618: T__114
+                {
+                mT__114(); 
+
+                }
+                break;
+            case 101 :
+                // InternalTableDSL.g:1:625: T__115
+                {
+                mT__115(); 
+
+                }
+                break;
+            case 102 :
+                // InternalTableDSL.g:1:632: T__116
+                {
+                mT__116(); 
+
+                }
+                break;
+            case 103 :
+                // InternalTableDSL.g:1:639: T__117
+                {
+                mT__117(); 
+
+                }
+                break;
+            case 104 :
+                // InternalTableDSL.g:1:646: T__118
+                {
+                mT__118(); 
+
+                }
+                break;
+            case 105 :
+                // InternalTableDSL.g:1:653: T__119
+                {
+                mT__119(); 
+
+                }
+                break;
+            case 106 :
+                // InternalTableDSL.g:1:660: T__120
+                {
+                mT__120(); 
+
+                }
+                break;
+            case 107 :
+                // InternalTableDSL.g:1:667: T__121
+                {
+                mT__121(); 
+
+                }
+                break;
+            case 108 :
+                // InternalTableDSL.g:1:674: T__122
+                {
+                mT__122(); 
+
+                }
+                break;
+            case 109 :
+                // InternalTableDSL.g:1:681: T__123
+                {
+                mT__123(); 
+
+                }
+                break;
+            case 110 :
+                // InternalTableDSL.g:1:688: T__124
+                {
+                mT__124(); 
+
+                }
+                break;
+            case 111 :
+                // InternalTableDSL.g:1:695: T__125
+                {
+                mT__125(); 
+
+                }
+                break;
+            case 112 :
+                // InternalTableDSL.g:1:702: T__126
+                {
+                mT__126(); 
+
+                }
+                break;
+            case 113 :
+                // InternalTableDSL.g:1:709: T__127
+                {
+                mT__127(); 
+
+                }
+                break;
+            case 114 :
+                // InternalTableDSL.g:1:716: T__128
+                {
+                mT__128(); 
+
+                }
+                break;
+            case 115 :
+                // InternalTableDSL.g:1:723: T__129
+                {
+                mT__129(); 
+
+                }
+                break;
+            case 116 :
+                // InternalTableDSL.g:1:730: T__130
+                {
+                mT__130(); 
+
+                }
+                break;
+            case 117 :
+                // InternalTableDSL.g:1:737: T__131
+                {
+                mT__131(); 
+
+                }
+                break;
+            case 118 :
+                // InternalTableDSL.g:1:744: T__132
+                {
+                mT__132(); 
+
+                }
+                break;
+            case 119 :
+                // InternalTableDSL.g:1:751: T__133
+                {
+                mT__133(); 
+
+                }
+                break;
+            case 120 :
+                // InternalTableDSL.g:1:758: T__134
+                {
+                mT__134(); 
+
+                }
+                break;
+            case 121 :
+                // InternalTableDSL.g:1:765: T__135
+                {
+                mT__135(); 
+
+                }
+                break;
+            case 122 :
+                // InternalTableDSL.g:1:772: T__136
+                {
+                mT__136(); 
+
+                }
+                break;
+            case 123 :
+                // InternalTableDSL.g:1:779: T__137
+                {
+                mT__137(); 
+
+                }
+                break;
+            case 124 :
+                // InternalTableDSL.g:1:786: T__138
+                {
+                mT__138(); 
+
+                }
+                break;
+            case 125 :
+                // InternalTableDSL.g:1:793: T__139
+                {
+                mT__139(); 
+
+                }
+                break;
+            case 126 :
+                // InternalTableDSL.g:1:800: T__140
+                {
+                mT__140(); 
+
+                }
+                break;
+            case 127 :
+                // InternalTableDSL.g:1:807: T__141
+                {
+                mT__141(); 
+
+                }
+                break;
+            case 128 :
+                // InternalTableDSL.g:1:814: T__142
+                {
+                mT__142(); 
+
+                }
+                break;
+            case 129 :
+                // InternalTableDSL.g:1:821: T__143
+                {
+                mT__143(); 
+
+                }
+                break;
+            case 130 :
+                // InternalTableDSL.g:1:828: T__144
+                {
+                mT__144(); 
+
+                }
+                break;
+            case 131 :
+                // InternalTableDSL.g:1:835: T__145
+                {
+                mT__145(); 
+
+                }
+                break;
+            case 132 :
+                // InternalTableDSL.g:1:842: T__146
+                {
+                mT__146(); 
+
+                }
+                break;
+            case 133 :
+                // InternalTableDSL.g:1:849: T__147
+                {
+                mT__147(); 
+
+                }
+                break;
+            case 134 :
+                // InternalTableDSL.g:1:856: T__148
+                {
+                mT__148(); 
+
+                }
+                break;
+            case 135 :
+                // InternalTableDSL.g:1:863: T__149
+                {
+                mT__149(); 
+
+                }
+                break;
+            case 136 :
+                // InternalTableDSL.g:1:870: T__150
+                {
+                mT__150(); 
+
+                }
+                break;
+            case 137 :
+                // InternalTableDSL.g:1:877: T__151
+                {
+                mT__151(); 
+
+                }
+                break;
+            case 138 :
+                // InternalTableDSL.g:1:884: T__152
+                {
+                mT__152(); 
+
+                }
+                break;
+            case 139 :
+                // InternalTableDSL.g:1:891: T__153
+                {
+                mT__153(); 
+
+                }
+                break;
+            case 140 :
+                // InternalTableDSL.g:1:898: T__154
+                {
+                mT__154(); 
+
+                }
+                break;
+            case 141 :
+                // InternalTableDSL.g:1:905: T__155
+                {
+                mT__155(); 
+
+                }
+                break;
+            case 142 :
+                // InternalTableDSL.g:1:912: T__156
+                {
+                mT__156(); 
+
+                }
+                break;
+            case 143 :
+                // InternalTableDSL.g:1:919: T__157
+                {
+                mT__157(); 
+
+                }
+                break;
+            case 144 :
+                // InternalTableDSL.g:1:926: T__158
+                {
+                mT__158(); 
+
+                }
+                break;
+            case 145 :
+                // InternalTableDSL.g:1:933: T__159
+                {
+                mT__159(); 
+
+                }
+                break;
+            case 146 :
+                // InternalTableDSL.g:1:940: T__160
+                {
+                mT__160(); 
+
+                }
+                break;
+            case 147 :
+                // InternalTableDSL.g:1:947: T__161
+                {
+                mT__161(); 
+
+                }
+                break;
+            case 148 :
+                // InternalTableDSL.g:1:954: T__162
+                {
+                mT__162(); 
+
+                }
+                break;
+            case 149 :
+                // InternalTableDSL.g:1:961: T__163
+                {
+                mT__163(); 
+
+                }
+                break;
+            case 150 :
+                // InternalTableDSL.g:1:968: T__164
+                {
+                mT__164(); 
+
+                }
+                break;
+            case 151 :
+                // InternalTableDSL.g:1:975: T__165
+                {
+                mT__165(); 
+
+                }
+                break;
+            case 152 :
+                // InternalTableDSL.g:1:982: T__166
+                {
+                mT__166(); 
+
+                }
+                break;
+            case 153 :
+                // InternalTableDSL.g:1:989: T__167
+                {
+                mT__167(); 
+
+                }
+                break;
+            case 154 :
+                // InternalTableDSL.g:1:996: T__168
+                {
+                mT__168(); 
+
+                }
+                break;
+            case 155 :
+                // InternalTableDSL.g:1:1003: T__169
+                {
+                mT__169(); 
+
+                }
+                break;
+            case 156 :
+                // InternalTableDSL.g:1:1010: T__170
+                {
+                mT__170(); 
+
+                }
+                break;
+            case 157 :
+                // InternalTableDSL.g:1:1017: T__171
+                {
+                mT__171(); 
+
+                }
+                break;
+            case 158 :
+                // InternalTableDSL.g:1:1024: T__172
+                {
+                mT__172(); 
+
+                }
+                break;
+            case 159 :
+                // InternalTableDSL.g:1:1031: T__173
+                {
+                mT__173(); 
+
+                }
+                break;
+            case 160 :
+                // InternalTableDSL.g:1:1038: T__174
+                {
+                mT__174(); 
+
+                }
+                break;
+            case 161 :
+                // InternalTableDSL.g:1:1045: T__175
+                {
+                mT__175(); 
+
+                }
+                break;
+            case 162 :
+                // InternalTableDSL.g:1:1052: T__176
+                {
+                mT__176(); 
+
+                }
+                break;
+            case 163 :
+                // InternalTableDSL.g:1:1059: T__177
+                {
+                mT__177(); 
+
+                }
+                break;
+            case 164 :
+                // InternalTableDSL.g:1:1066: T__178
+                {
+                mT__178(); 
+
+                }
+                break;
+            case 165 :
+                // InternalTableDSL.g:1:1073: T__179
+                {
+                mT__179(); 
+
+                }
+                break;
+            case 166 :
+                // InternalTableDSL.g:1:1080: T__180
+                {
+                mT__180(); 
+
+                }
+                break;
+            case 167 :
+                // InternalTableDSL.g:1:1087: T__181
+                {
+                mT__181(); 
+
+                }
+                break;
+            case 168 :
+                // InternalTableDSL.g:1:1094: T__182
+                {
+                mT__182(); 
+
+                }
+                break;
+            case 169 :
+                // InternalTableDSL.g:1:1101: T__183
+                {
+                mT__183(); 
+
+                }
+                break;
+            case 170 :
+                // InternalTableDSL.g:1:1108: T__184
+                {
+                mT__184(); 
+
+                }
+                break;
+            case 171 :
+                // InternalTableDSL.g:1:1115: T__185
+                {
+                mT__185(); 
+
+                }
+                break;
+            case 172 :
+                // InternalTableDSL.g:1:1122: T__186
+                {
+                mT__186(); 
+
+                }
+                break;
+            case 173 :
+                // InternalTableDSL.g:1:1129: T__187
+                {
+                mT__187(); 
+
+                }
+                break;
+            case 174 :
+                // InternalTableDSL.g:1:1136: T__188
+                {
+                mT__188(); 
+
+                }
+                break;
+            case 175 :
+                // InternalTableDSL.g:1:1143: RULE_THEME_RESOURCE
+                {
+                mRULE_THEME_RESOURCE(); 
+
+                }
+                break;
+            case 176 :
+                // InternalTableDSL.g:1:1163: RULE_EVENT_TOPIC
+                {
+                mRULE_EVENT_TOPIC(); 
+
+                }
+                break;
+            case 177 :
+                // InternalTableDSL.g:1:1180: RULE_HEX
+                {
+                mRULE_HEX(); 
+
+                }
+                break;
+            case 178 :
+                // InternalTableDSL.g:1:1189: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 179 :
+                // InternalTableDSL.g:1:1198: RULE_DECIMAL
+                {
+                mRULE_DECIMAL(); 
+
+                }
+                break;
+            case 180 :
+                // InternalTableDSL.g:1:1211: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 181 :
+                // InternalTableDSL.g:1:1219: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 182 :
+                // InternalTableDSL.g:1:1231: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 183 :
+                // InternalTableDSL.g:1:1247: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 184 :
+                // InternalTableDSL.g:1:1263: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 185 :
+                // InternalTableDSL.g:1:1271: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA24 dfa24 = new DFA24(this);
+    static final String DFA24_eotS =
+        "\1\uffff\1\70\1\72\1\74\1\104\1\107\1\113\1\116\1\122\1\124\1\126\1\130\1\132\1\134\1\137\15\104\2\uffff\6\104\10\uffff\1\u00a9\1\104\1\u00ab\2\u00b0\1\65\4\uffff\1\u00b4\6\uffff\7\104\21\uffff\1\u00c0\5\uffff\1\u00c2\4\uffff\12\104\1\u00d2\12\104\1\u00e1\14\104\1\u00f4\11\104\2\uffff\6\104\1\u010e\13\104\12\uffff\1\104\1\uffff\2\u00ab\1\uffff\1\u00b0\5\uffff\12\104\4\uffff\1\u012b\1\u012c\15\104\1\uffff\1\104\1\u013d\13\104\1\u014b\1\uffff\21\104\1\u0161\1\uffff\23\104\1\u0177\5\104\1\uffff\6\104\1\u0184\2\104\1\u0187\3\104\2\u00ab\1\uffff\14\104\2\uffff\4\104\1\u019f\10\104\1\u01a9\2\104\1\uffff\4\104\1\u01b0\4\104\1\uffff\2\104\1\u01b7\1\uffff\1\104\1\u01b9\5\104\1\uffff\1\u01bf\14\104\1\uffff\6\104\1\u01d2\3\104\1\u01d6\1\104\1\u01d9\10\104\1\uffff\1\u01e4\1\u01e5\7\104\1\u01ed\2\104\1\uffff\2\104\1\uffff\3\104\3\u00ab\1\uffff\4\104\1\u01fb\1\u01fc\5\104\1\u0202\2\104\1\u0206\1\104\1\uffff\3\104\1\u020c\5\104\1\uffff\1\u0212\5\104\2\uffff\2\104\1\u021a\2\104\1\uffff\1\104\1\uffff\5\104\1\uffff\22\104\1\uffff\1\u0236\1\u0237\1\104\1\uffff\2\104\1\uffff\3\104\1\u023e\5\104\1\u0244\2\uffff\1\104\1\u0246\5\104\1\uffff\1\u024c\6\104\1\u0253\1\u00ab\1\u0254\1\u0255\1\104\1\u0257\2\uffff\3\104\1\u025d\1\104\1\uffff\3\104\1\uffff\3\104\1\u0265\1\104\1\uffff\5\104\1\uffff\1\u026d\4\104\1\uffff\1\104\1\uffff\1\104\1\u0277\1\u0278\4\104\1\u027d\1\u027e\2\104\1\u0281\12\104\1\u028d\4\104\2\uffff\6\104\1\uffff\1\u0298\4\104\3\uffff\1\u029d\4\104\1\uffff\6\104\3\uffff\1\104\1\uffff\1\u02a9\4\104\1\uffff\1\104\1\u02af\5\104\1\uffff\1\104\1\u02b6\2\104\1\u02b9\2\104\1\uffff\1\u02bc\3\104\2\uffff\1\u02c0\2\104\2\uffff\4\104\2\uffff\2\104\1\uffff\2\104\1\u02cb\1\u02cc\1\104\1\u02ce\3\104\1\u02d2\1\u02d3\1\uffff\4\104\1\u02d8\4\104\1\u02dd\1\uffff\1\u02de\1\u02e0\2\104\1\uffff\6\104\1\u02e9\1\u02ea\3\104\1\uffff\1\u02ee\4\104\1\uffff\1\104\1\u02f4\1\104\1\u02f6\1\u02f7\1\104\1\uffff\2\104\1\uffff\2\104\1\uffff\1\104\1\uffff\1\104\1\uffff\5\104\1\u0306\4\104\2\uffff\1\104\1\uffff\1\104\1\u030d\1\104\2\uffff\1\u030f\1\u0310\1\104\1\u0312\1\uffff\1\u0313\1\u0314\2\104\2\uffff\1\104\1\uffff\10\104\2\uffff\1\u0320\2\104\1\uffff\1\u0323\3\104\1\u0327\1\uffff\1\104\2\uffff\2\104\1\u032b\1\104\1\u032d\1\u032e\2\uffff\1\u032f\2\104\1\u0332\1\u0333\1\u0334\1\uffff\1\104\1\u0336\1\u0337\1\u0338\2\104\1\uffff\1\u033b\2\uffff\1\u033c\3\uffff\3\104\1\u0340\1\u0341\1\u0342\5\104\1\uffff\1\104\1\u0349\1\uffff\1\u034a\2\104\1\uffff\1\u034d\1\u034e\1\104\1\uffff\1\u0350\3\uffff\2\104\3\uffff\1\104\3\uffff\1\104\1\u0355\2\uffff\1\104\1\u0357\1\104\3\uffff\1\u0359\2\104\1\u035c\2\104\2\uffff\2\104\2\uffff\1\104\1\uffff\1\104\1\u0363\1\u0364\1\u0365\1\uffff\1\104\1\uffff\1\104\1\uffff\1\104\1\u0369\1\uffff\1\u036a\1\104\1\u036c\1\u036d\2\104\3\uffff\3\104\2\uffff\1\104\2\uffff\5\104\1\u0379\1\u037a\1\u037b\1\104\1\u037d\1\u037e\3\uffff\1\104\2\uffff\1\u0380\1\uffff";
+    static final String DFA24_eofS =
+        "\u0381\uffff";
+    static final String DFA24_minS =
+        "\1\0\1\75\1\174\1\46\1\145\1\53\1\55\2\52\3\75\1\76\2\56\1\141\1\144\1\143\1\141\1\157\3\145\1\141\1\151\3\141\2\uffff\1\141\1\147\1\157\1\162\1\141\1\165\10\uffff\1\72\1\150\1\44\2\60\1\44\4\uffff\1\75\6\uffff\1\156\1\141\1\160\1\157\1\143\1\151\1\156\21\uffff\1\75\5\uffff\1\74\4\uffff\1\154\1\160\1\165\1\145\1\163\1\142\1\151\1\141\1\144\1\157\1\44\1\154\1\162\1\154\1\145\2\157\1\166\1\164\1\154\1\167\1\44\1\163\1\167\2\144\1\141\1\164\1\157\1\144\1\155\1\146\1\164\1\157\1\44\1\156\1\154\1\141\1\154\1\162\1\163\1\143\1\145\1\154\2\uffff\1\142\1\157\1\170\2\145\1\160\1\44\1\154\1\147\2\151\1\124\1\155\1\144\1\141\1\170\1\154\1\141\12\uffff\1\151\1\uffff\2\44\1\uffff\1\60\5\uffff\2\147\1\151\1\154\1\145\1\160\1\164\1\145\1\164\1\143\4\uffff\2\44\1\145\1\154\1\141\1\156\2\145\1\164\1\157\1\147\2\145\1\164\1\156\1\uffff\1\163\1\44\1\141\1\164\1\141\2\144\1\145\1\153\1\145\1\40\1\142\1\154\1\44\1\uffff\1\151\1\110\1\125\1\165\1\151\1\55\1\156\1\164\1\154\1\144\1\154\1\141\1\151\1\143\1\141\1\163\1\141\1\44\1\uffff\1\141\1\154\1\160\1\154\1\162\1\145\1\143\1\145\1\153\1\150\1\157\1\147\1\143\2\154\1\153\1\154\1\164\1\156\1\44\1\145\1\155\1\157\2\145\1\uffff\1\103\1\141\1\162\1\163\1\156\1\157\1\44\1\151\1\163\1\44\1\164\1\156\1\154\2\44\1\uffff\1\154\1\151\2\156\1\145\1\162\2\151\2\143\1\150\1\145\2\uffff\1\156\1\151\1\154\1\164\1\44\1\144\1\141\1\162\1\145\1\170\1\143\1\147\1\141\1\44\1\145\1\141\1\uffff\1\154\1\145\1\164\1\156\1\44\1\55\1\162\1\165\1\154\1\uffff\1\146\1\145\1\44\1\uffff\1\156\1\44\2\145\1\156\1\162\1\172\1\uffff\1\44\1\157\1\123\1\145\1\154\1\123\1\165\1\166\1\162\1\151\1\111\1\155\1\123\1\uffff\2\155\1\141\1\164\1\143\1\145\1\44\1\150\1\163\1\141\1\44\1\162\1\44\1\162\1\145\1\151\1\145\1\111\1\142\1\123\1\144\1\uffff\2\44\1\145\1\167\1\157\1\156\1\157\1\171\1\145\1\44\1\147\1\111\1\uffff\1\156\1\165\1\uffff\1\151\1\164\1\145\1\47\2\44\1\uffff\1\145\1\143\1\141\1\147\2\44\1\156\1\157\1\164\1\150\1\162\1\44\1\144\1\143\1\44\1\124\1\uffff\1\144\1\142\1\164\1\44\1\145\1\141\1\166\1\145\1\156\1\uffff\1\44\1\164\1\154\1\162\1\145\1\106\2\uffff\1\40\1\160\1\44\1\171\1\162\1\uffff\1\147\1\uffff\2\141\1\164\1\156\1\145\1\uffff\1\156\1\164\1\156\1\141\1\164\1\154\1\145\1\151\1\154\1\156\1\141\1\164\1\151\1\156\1\160\1\145\1\157\1\156\1\uffff\2\44\1\147\1\uffff\1\144\1\162\1\uffff\1\145\1\123\1\156\1\44\1\144\1\141\1\151\1\157\1\164\1\44\2\uffff\1\72\1\44\1\146\1\144\1\154\1\163\1\147\1\uffff\1\44\1\165\1\156\1\141\1\162\1\160\1\151\4\44\1\164\1\44\2\uffff\1\147\1\156\1\102\1\44\1\157\1\uffff\1\163\2\151\1\uffff\1\157\1\145\1\154\1\44\1\164\1\uffff\1\144\1\164\1\141\1\162\1\143\1\uffff\1\44\1\171\1\151\2\162\1\145\1\163\1\uffff\1\117\2\44\2\144\1\147\1\151\2\44\1\123\1\171\1\44\1\142\1\171\1\164\1\144\1\142\1\163\1\120\1\162\1\171\1\143\1\44\1\163\1\162\1\154\1\143\2\uffff\2\145\1\164\1\163\1\164\1\147\1\uffff\1\44\1\162\1\160\1\154\1\171\3\uffff\1\44\1\151\1\165\1\123\1\141\1\uffff\1\155\1\164\1\154\1\145\1\154\1\164\3\uffff\1\151\1\uffff\1\44\1\163\1\157\1\171\1\154\1\uffff\1\156\1\44\1\157\1\164\1\160\1\144\1\145\1\uffff\1\171\1\44\1\157\1\154\1\44\2\145\1\uffff\1\44\1\156\1\40\1\157\2\uffff\1\44\1\156\1\164\2\uffff\2\145\1\150\1\154\2\uffff\1\164\1\154\1\uffff\1\145\1\154\2\44\1\145\1\44\1\141\1\164\1\154\2\44\1\uffff\1\145\1\163\1\157\1\171\1\44\1\162\1\171\1\163\1\171\1\44\1\uffff\2\44\1\157\1\154\1\uffff\1\156\1\155\1\145\1\164\1\142\1\145\2\44\1\145\1\171\1\156\1\uffff\1\44\1\156\1\111\1\167\1\151\1\uffff\1\156\1\44\1\151\2\44\1\154\1\uffff\1\162\1\163\1\uffff\1\157\1\162\1\uffff\1\147\1\145\1\155\1\uffff\1\123\1\171\2\162\1\164\1\44\1\171\1\145\1\154\1\145\2\uffff\1\144\1\uffff\1\163\1\44\1\145\2\uffff\2\44\1\162\1\44\1\uffff\2\44\1\142\1\154\2\uffff\1\141\1\uffff\1\162\1\145\1\147\1\156\1\154\1\151\1\145\1\147\2\uffff\1\44\1\123\1\147\1\uffff\1\44\1\144\1\141\1\172\1\44\1\uffff\1\143\2\uffff\1\145\1\123\1\44\1\146\2\44\2\uffff\1\44\1\145\1\154\3\44\1\uffff\1\154\3\44\1\102\1\164\1\uffff\1\44\2\uffff\1\44\3\uffff\1\141\1\145\1\164\3\44\1\163\1\145\1\157\1\162\1\145\1\uffff\1\164\1\44\1\uffff\1\44\1\171\1\145\1\uffff\2\44\1\164\1\uffff\1\44\3\uffff\1\154\1\145\3\uffff\1\145\3\uffff\1\171\1\44\2\uffff\1\162\1\44\1\164\3\uffff\1\44\1\143\1\156\1\44\1\162\1\171\2\uffff\1\163\1\144\2\uffff\1\171\1\uffff\1\145\3\44\1\uffff\1\123\1\uffff\1\145\1\uffff\1\164\1\44\1\uffff\1\44\1\154\2\44\1\154\1\143\3\uffff\1\164\1\162\1\145\2\uffff\1\145\2\uffff\1\145\1\164\1\171\1\156\1\144\3\44\1\154\2\44\3\uffff\1\145\2\uffff\1\44\1\uffff";
+    static final String DFA24_maxS =
+        "\1\uffff\1\76\1\174\1\46\1\171\1\75\1\76\5\75\1\76\1\56\1\72\1\141\1\170\1\156\1\157\1\162\1\157\1\165\1\157\1\165\1\164\1\171\1\165\1\162\2\uffff\1\171\1\170\1\163\1\162\2\165\10\uffff\1\72\1\150\1\172\1\170\1\154\1\172\4\uffff\1\75\6\uffff\1\156\1\171\1\160\1\157\1\154\1\151\1\156\21\uffff\1\75\5\uffff\1\74\4\uffff\1\162\1\164\1\165\1\145\1\163\1\142\1\151\1\160\1\164\1\157\1\172\1\154\1\162\1\156\1\151\1\157\1\167\1\166\1\164\1\155\1\167\1\172\1\163\1\167\1\164\1\144\1\141\1\164\1\157\1\144\1\155\1\164\1\171\1\157\1\172\1\156\1\154\1\141\1\154\1\162\2\164\1\157\1\154\2\uffff\1\163\1\157\1\170\1\171\1\162\1\160\1\172\1\167\1\147\2\151\1\124\1\155\1\144\1\141\1\170\1\154\1\141\12\uffff\1\151\1\uffff\2\172\1\uffff\1\154\5\uffff\1\147\1\164\1\151\1\154\1\145\1\160\1\164\1\145\1\164\1\143\4\uffff\2\172\1\145\1\154\1\141\1\156\2\145\1\164\1\157\1\147\1\151\1\145\1\164\1\156\1\uffff\1\163\1\172\1\141\1\164\1\145\2\144\1\145\1\153\1\145\1\151\1\142\1\154\1\172\1\uffff\1\151\1\163\1\125\1\165\1\151\1\55\1\156\1\164\1\154\1\145\1\154\1\141\1\151\1\143\1\141\1\163\1\145\1\172\1\uffff\1\141\1\165\1\160\1\154\1\162\1\145\1\143\1\145\1\153\1\150\1\157\1\160\1\143\2\154\1\153\1\154\1\164\1\156\1\172\1\145\1\156\1\157\2\145\1\uffff\1\103\1\141\1\162\1\163\1\156\1\157\1\172\1\151\1\163\1\172\1\164\1\156\1\154\2\172\1\uffff\1\154\1\151\2\156\1\145\1\162\2\151\2\143\1\150\1\145\2\uffff\1\156\1\151\1\154\1\164\1\172\1\144\1\141\1\162\1\145\1\170\1\143\1\162\1\141\1\172\1\145\1\141\1\uffff\1\154\1\145\1\164\1\156\1\172\1\55\1\162\1\165\1\154\1\uffff\1\146\1\145\1\172\1\uffff\1\156\1\172\2\145\1\156\1\162\1\172\1\uffff\1\172\1\157\1\123\1\145\1\154\1\123\1\165\1\166\1\162\1\151\1\111\1\155\1\123\1\uffff\2\155\1\141\1\164\1\143\1\145\1\172\1\150\1\163\1\141\1\172\1\162\1\172\1\162\1\145\1\151\1\145\1\111\1\164\1\143\1\144\1\uffff\2\172\1\145\1\167\1\157\1\156\1\157\1\171\1\145\1\172\1\147\1\116\1\uffff\1\156\1\165\1\uffff\1\151\1\164\1\145\1\47\2\172\1\uffff\1\145\1\143\1\141\1\147\2\172\1\156\1\157\1\164\1\150\1\162\1\172\1\163\1\143\1\172\1\124\1\uffff\1\144\1\142\1\164\1\172\1\145\1\141\1\166\1\145\1\156\1\uffff\1\172\1\164\1\154\1\162\1\145\1\106\2\uffff\1\40\1\160\1\172\1\171\1\162\1\uffff\1\147\1\uffff\1\141\1\151\1\164\1\156\1\145\1\uffff\1\156\1\164\1\156\1\141\1\164\1\154\1\145\1\151\1\154\1\156\1\141\1\164\1\151\1\156\1\160\1\145\1\157\1\156\1\uffff\2\172\1\147\1\uffff\1\144\1\162\1\uffff\1\145\1\123\1\156\1\172\1\144\1\141\1\151\1\157\1\164\1\172\2\uffff\1\72\1\172\1\146\1\144\1\154\1\163\1\147\1\uffff\1\172\1\165\1\156\1\141\1\162\1\160\1\151\4\172\1\164\1\172\2\uffff\1\147\1\156\1\151\1\172\1\157\1\uffff\1\163\2\151\1\uffff\1\157\1\145\1\154\1\172\1\164\1\uffff\1\144\1\164\1\141\1\162\1\143\1\uffff\1\172\1\171\1\151\2\162\1\164\1\163\1\uffff\1\117\2\172\2\144\1\147\1\151\2\172\1\123\1\171\1\172\1\142\1\171\1\164\1\144\1\142\1\163\1\120\1\162\1\171\1\143\1\172\1\163\1\162\1\154\1\143\2\uffff\2\145\1\164\1\163\1\164\1\147\1\uffff\1\172\1\162\1\160\1\154\1\171\3\uffff\1\172\1\151\1\165\1\123\1\141\1\uffff\1\155\1\164\1\154\1\145\1\154\1\164\3\uffff\1\151\1\uffff\1\172\1\163\1\157\1\171\1\154\1\uffff\1\156\1\172\1\157\1\164\1\160\1\144\1\145\1\uffff\1\171\1\172\1\157\1\154\1\172\2\145\1\uffff\1\172\1\156\1\40\1\157\2\uffff\1\172\1\156\1\164\2\uffff\2\145\1\150\1\154\2\uffff\1\164\1\154\1\uffff\1\145\1\154\2\172\1\145\1\172\1\141\1\164\1\154\2\172\1\uffff\1\145\1\163\1\157\1\171\1\172\1\162\1\171\1\163\1\171\1\172\1\uffff\2\172\1\157\1\154\1\uffff\1\156\1\155\1\145\1\164\1\142\1\145\2\172\1\145\1\171\1\156\1\uffff\1\172\1\156\1\111\1\167\1\151\1\uffff\1\156\1\172\1\151\2\172\1\154\1\uffff\1\162\1\163\1\uffff\1\157\1\162\1\uffff\1\147\1\164\1\155\1\uffff\1\123\1\171\2\162\1\164\1\172\1\171\1\145\1\154\1\145\2\uffff\1\144\1\uffff\1\163\1\172\1\145\2\uffff\2\172\1\162\1\172\1\uffff\2\172\1\142\1\154\2\uffff\1\141\1\uffff\1\162\1\145\1\147\1\156\1\154\1\151\1\145\1\147\2\uffff\1\172\1\123\1\147\1\uffff\1\172\1\144\1\141\2\172\1\uffff\1\143\2\uffff\1\145\1\123\1\172\1\146\2\172\2\uffff\1\172\1\145\1\154\3\172\1\uffff\1\154\3\172\1\102\1\164\1\uffff\1\172\2\uffff\1\172\3\uffff\1\141\1\145\1\164\3\172\1\163\1\145\1\157\1\162\1\145\1\uffff\1\164\1\172\1\uffff\1\172\1\171\1\145\1\uffff\2\172\1\164\1\uffff\1\172\3\uffff\1\154\1\145\3\uffff\1\145\3\uffff\1\171\1\172\2\uffff\1\162\1\172\1\164\3\uffff\1\172\1\143\1\156\1\172\1\162\1\171\2\uffff\1\163\1\144\2\uffff\1\171\1\uffff\1\145\3\172\1\uffff\1\123\1\uffff\1\145\1\uffff\1\164\1\172\1\uffff\1\172\1\154\2\172\1\154\1\143\3\uffff\1\164\1\162\1\145\2\uffff\1\145\2\uffff\1\145\1\164\1\171\1\156\1\144\3\172\1\154\2\172\3\uffff\1\145\2\uffff\1\172\1\uffff";
+    static final String DFA24_acceptS =
+        "\34\uffff\1\75\1\76\6\uffff\1\166\1\167\1\175\1\176\1\177\1\u0080\1\u0081\1\u0082\6\uffff\1\u00b4\1\u00b5\1\u00b8\1\u00b9\1\uffff\1\26\1\1\1\2\1\u00ac\1\3\1\u0096\7\uffff\1\u00b4\1\7\1\36\1\5\1\10\1\23\1\37\1\6\1\11\1\32\1\31\1\12\1\u00b6\1\u00b7\1\33\1\13\1\34\1\uffff\1\35\1\20\1\21\1\27\1\22\1\uffff\1\40\1\30\1\u00ab\1\u0095\54\uffff\1\75\1\76\22\uffff\1\166\1\167\1\175\1\176\1\177\1\u0080\1\u0081\1\u0082\1\u00aa\1\u0087\1\uffff\1\u00b5\2\uffff\1\u00b1\1\uffff\1\u00b2\1\u00b3\1\u00b8\1\16\1\14\12\uffff\1\17\1\15\1\24\1\25\17\uffff\1\u0084\16\uffff\1\u00a9\22\uffff\1\u008b\31\uffff\1\100\17\uffff\1\u00b0\14\uffff\1\41\1\u00ad\20\uffff\1\u0089\11\uffff\1\55\3\uffff\1\u008c\7\uffff\1\57\15\uffff\1\147\25\uffff\1\u0091\14\uffff\1\165\2\uffff\1\160\6\uffff\1\u00b0\20\uffff\1\u0085\11\uffff\1\110\6\uffff\1\143\1\61\5\uffff\1\u008d\1\uffff\1\70\5\uffff\1\105\22\uffff\1\u0088\3\uffff\1\114\2\uffff\1\145\12\uffff\1\u00ae\1\174\7\uffff\1\136\15\uffff\1\146\1\46\5\uffff\1\107\3\uffff\1\50\5\uffff\1\u00a0\5\uffff\1\47\7\uffff\1\124\33\uffff\1\u0094\1\71\6\uffff\1\77\5\uffff\1\141\1\u00af\1\u008f\5\uffff\1\104\6\uffff\1\u008a\1\4\1\43\1\uffff\1\134\5\uffff\1\u0086\7\uffff\1\44\7\uffff\1\155\4\uffff\1\53\1\54\3\uffff\1\133\1\56\4\uffff\1\u0090\1\u00a3\2\uffff\1\63\13\uffff\1\121\12\uffff\1\116\4\uffff\1\u008e\13\uffff\1\60\5\uffff\1\42\6\uffff\1\65\2\uffff\1\132\2\uffff\1\u0092\3\uffff\1\112\12\uffff\1\66\1\123\1\uffff\1\u00a5\3\uffff\1\u00a2\1\67\4\uffff\1\74\4\uffff\1\u009a\1\103\1\uffff\1\142\10\uffff\1\120\1\122\3\uffff\1\72\5\uffff\1\64\1\uffff\1\u009c\1\u00a8\6\uffff\1\51\1\52\6\uffff\1\163\6\uffff\1\135\1\uffff\1\u009f\1\73\1\uffff\1\171\1\106\1\125\13\uffff\1\u0098\2\uffff\1\101\3\uffff\1\45\3\uffff\1\111\1\uffff\1\113\1\u009b\1\162\2\uffff\1\102\1\144\1\u00a4\1\uffff\1\153\1\u00a1\1\152\2\uffff\1\154\1\140\3\uffff\1\137\1\172\1\u009e\6\uffff\1\62\1\u009d\2\uffff\1\151\1\173\1\uffff\1\u0083\4\uffff\1\131\1\uffff\1\170\1\uffff\1\117\2\uffff\1\127\6\uffff\1\156\1\150\1\u0097\3\uffff\1\126\1\130\1\uffff\1\u00a7\1\u0093\13\uffff\1\164\1\161\1\u00a6\1\uffff\1\115\1\u0099\1\uffff\1\157";
+    static final String DFA24_specialS =
+        "\1\0\u0380\uffff}>";
+    static final String[] DFA24_transitionS = {
+            "\11\65\2\64\2\65\1\64\22\65\1\64\1\12\1\63\1\52\1\62\1\11\1\3\1\56\1\44\1\45\1\7\1\5\1\50\1\6\1\15\1\10\1\57\11\60\1\54\1\46\1\14\1\1\1\13\1\16\1\47\32\62\1\53\1\65\1\51\1\61\1\62\1\65\1\37\1\27\1\32\1\31\1\20\1\22\1\23\1\30\1\21\2\62\1\24\1\42\1\25\1\41\1\33\1\43\1\26\1\4\1\36\1\40\1\17\1\55\3\62\1\34\1\2\1\35\uff82\65",
+            "\1\66\1\67",
+            "\1\71",
+            "\1\73",
+            "\1\101\3\uffff\1\75\2\uffff\1\100\7\uffff\1\76\1\77\1\uffff\1\102\1\uffff\1\103",
+            "\1\106\21\uffff\1\105",
+            "\1\112\17\uffff\1\110\1\111",
+            "\1\115\22\uffff\1\114",
+            "\1\120\4\uffff\1\121\15\uffff\1\117",
+            "\1\123",
+            "\1\125",
+            "\1\127",
+            "\1\131",
+            "\1\133",
+            "\1\136\13\uffff\1\135",
+            "\1\140",
+            "\1\146\7\uffff\1\144\1\145\3\uffff\1\142\4\uffff\1\143\1\uffff\1\141",
+            "\1\151\2\uffff\1\152\6\uffff\1\147\1\150",
+            "\1\153\7\uffff\1\155\5\uffff\1\154",
+            "\1\157\2\uffff\1\156",
+            "\1\161\11\uffff\1\160",
+            "\1\164\11\uffff\1\162\3\uffff\1\165\1\uffff\1\163",
+            "\1\170\3\uffff\1\166\5\uffff\1\167",
+            "\1\171\3\uffff\1\172\11\uffff\1\174\5\uffff\1\173",
+            "\1\175\12\uffff\1\176",
+            "\1\u0080\3\uffff\1\177\11\uffff\1\u0082\4\uffff\1\u0081\4\uffff\1\u0083",
+            "\1\u0088\3\uffff\1\u0086\2\uffff\1\u0085\6\uffff\1\u0084\5\uffff\1\u0087",
+            "\1\u0089\15\uffff\1\u008b\2\uffff\1\u008a",
+            "",
+            "",
+            "\1\u008e\3\uffff\1\u0090\2\uffff\1\u0092\6\uffff\1\u008f\2\uffff\1\u0091\6\uffff\1\u0093",
+            "\1\u0096\4\uffff\1\u0095\6\uffff\1\u0094\4\uffff\1\u0097",
+            "\1\u009a\1\u0099\2\uffff\1\u0098",
+            "\1\u009b",
+            "\1\u009d\3\uffff\1\u009c\17\uffff\1\u009e",
+            "\1\u009f",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00a8",
+            "\1\u00aa",
+            "\1\u00ad\34\uffff\32\u00ad\3\uffff\1\u00ac\1\u00ad\1\uffff\32\u00ad",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\13\uffff\1\u00ae\6\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\13\uffff\1\u00ae",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\22\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1",
+            "\1\104\34\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00b3",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00b5",
+            "\1\u00b6\20\uffff\1\u00b7\6\uffff\1\u00b8",
+            "\1\u00b9",
+            "\1\u00ba",
+            "\1\u00bb\10\uffff\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00bf",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00c1",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00c3\5\uffff\1\u00c4",
+            "\1\u00c6\3\uffff\1\u00c5",
+            "\1\u00c7",
+            "\1\u00c8",
+            "\1\u00c9",
+            "\1\u00ca",
+            "\1\u00cb",
+            "\1\u00cd\16\uffff\1\u00cc",
+            "\1\u00ce\16\uffff\1\u00d0\1\u00cf",
+            "\1\u00d1",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u00d3",
+            "\1\u00d4",
+            "\1\u00d6\1\uffff\1\u00d5",
+            "\1\u00d7\3\uffff\1\u00d8",
+            "\1\u00d9",
+            "\1\u00db\7\uffff\1\u00da",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00df\1\u00de",
+            "\1\u00e0",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u00e2",
+            "\1\u00e3",
+            "\1\u00e4\16\uffff\1\u00e6\1\u00e5",
+            "\1\u00e7",
+            "\1\u00e8",
+            "\1\u00e9",
+            "\1\u00ea",
+            "\1\u00eb",
+            "\1\u00ec",
+            "\1\u00ed\13\uffff\1\u00ee\1\u00ef\1\u00f0",
+            "\1\u00f2\4\uffff\1\u00f1",
+            "\1\u00f3",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u00f5",
+            "\1\u00f6",
+            "\1\u00f7",
+            "\1\u00f8",
+            "\1\u00f9",
+            "\1\u00fa\1\u00fb",
+            "\1\u00fd\3\uffff\1\u00fc\14\uffff\1\u00fe",
+            "\1\u00ff\3\uffff\1\u0101\5\uffff\1\u0100",
+            "\1\u0102",
+            "",
+            "",
+            "\1\u0103\20\uffff\1\u0104",
+            "\1\u0105",
+            "\1\u0106",
+            "\1\u0107\17\uffff\1\u0109\3\uffff\1\u0108",
+            "\1\u010a\14\uffff\1\u010b",
+            "\1\u010c",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\2\104\1\u010d\27\104",
+            "\1\u010f\12\uffff\1\u0110",
+            "\1\u0111",
+            "\1\u0112",
+            "\1\u0113",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\u0116",
+            "\1\u0117",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\u011a",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u011b",
+            "",
+            "\1\u00ad\34\uffff\32\u00ad\4\uffff\1\u00ad\1\uffff\32\u00ad",
+            "\1\u011c\2\uffff\1\u011e\7\uffff\1\u011d\12\u011c\7\uffff\32\u011c\4\uffff\1\u011c\1\uffff\32\u011c",
+            "",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\22\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u011f",
+            "\1\u0121\14\uffff\1\u0120",
+            "\1\u0122",
+            "\1\u0123",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\u0129",
+            "",
+            "",
+            "",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\24\104\1\u012a\5\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u012d",
+            "\1\u012e",
+            "\1\u012f",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\u0132",
+            "\1\u0133",
+            "\1\u0134",
+            "\1\u0135",
+            "\1\u0136\3\uffff\1\u0137",
+            "\1\u0138",
+            "\1\u0139",
+            "\1\u013a",
+            "",
+            "\1\u013b",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\14\104\1\u013c\15\104",
+            "\1\u013e",
+            "\1\u013f",
+            "\1\u0140\3\uffff\1\u0141",
+            "\1\u0142",
+            "\1\u0143",
+            "\1\u0144",
+            "\1\u0145",
+            "\1\u0146",
+            "\1\u0147\110\uffff\1\u0148",
+            "\1\u0149",
+            "\1\u014a",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\u014c",
+            "\1\u014e\37\uffff\1\u014f\12\uffff\1\u014d",
+            "\1\u0150",
+            "\1\u0151",
+            "\1\u0152",
+            "\1\u0153",
+            "\1\u0154",
+            "\1\u0155",
+            "\1\u0156",
+            "\1\u0157\1\u0158",
+            "\1\u0159",
+            "\1\u015a",
+            "\1\u015b",
+            "\1\u015c",
+            "\1\u015d",
+            "\1\u015e",
+            "\1\u015f\3\uffff\1\u0160",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\u0162",
+            "\1\u0164\10\uffff\1\u0163",
+            "\1\u0165",
+            "\1\u0166",
+            "\1\u0167",
+            "\1\u0168",
+            "\1\u0169",
+            "\1\u016a",
+            "\1\u016b",
+            "\1\u016c",
+            "\1\u016d",
+            "\1\u016f\10\uffff\1\u016e",
+            "\1\u0170",
+            "\1\u0171",
+            "\1\u0172",
+            "\1\u0173",
+            "\1\u0174",
+            "\1\u0175",
+            "\1\u0176",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0178",
+            "\1\u017a\1\u0179",
+            "\1\u017b",
+            "\1\u017c",
+            "\1\u017d",
+            "",
+            "\1\u017e",
+            "\1\u017f",
+            "\1\u0180",
+            "\1\u0181",
+            "\1\u0182",
+            "\1\u0183",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0185",
+            "\1\u0186",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0188",
+            "\1\u0189",
+            "\1\u018a",
+            "\1\u011c\2\uffff\1\u011e\7\uffff\1\u011d\12\u011c\7\uffff\32\u011c\4\uffff\1\u011c\1\uffff\32\u011c",
+            "\1\u018d\5\uffff\1\u018b\26\uffff\32\u018d\3\uffff\1\u018c\1\u018d\1\uffff\32\u018d",
+            "",
+            "\1\u018f",
+            "\1\u0190",
+            "\1\u0191",
+            "\1\u0192",
+            "\1\u0193",
+            "\1\u0194",
+            "\1\u0195",
+            "\1\u0196",
+            "\1\u0197",
+            "\1\u0198",
+            "\1\u0199",
+            "\1\u019a",
+            "",
+            "",
+            "\1\u019b",
+            "\1\u019c",
+            "\1\u019d",
+            "\1\u019e",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01a0",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\1\u01a3",
+            "\1\u01a4",
+            "\1\u01a5",
+            "\1\u01a7\12\uffff\1\u01a6",
+            "\1\u01a8",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01aa",
+            "\1\u01ab",
+            "",
+            "\1\u01ac",
+            "\1\u01ad",
+            "\1\u01ae",
+            "\1\u01af",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01b1",
+            "\1\u01b2",
+            "\1\u01b3",
+            "\1\u01b4",
+            "",
+            "\1\u01b5",
+            "\1\u01b6",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\u01b8",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01ba",
+            "\1\u01bb",
+            "\1\u01bc",
+            "\1\u01bd",
+            "\1\u01be",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01c0",
+            "\1\u01c1",
+            "\1\u01c2",
+            "\1\u01c3",
+            "\1\u01c4",
+            "\1\u01c5",
+            "\1\u01c6",
+            "\1\u01c7",
+            "\1\u01c8",
+            "\1\u01c9",
+            "\1\u01ca",
+            "\1\u01cb",
+            "",
+            "\1\u01cc",
+            "\1\u01cd",
+            "\1\u01ce",
+            "\1\u01cf",
+            "\1\u01d0",
+            "\1\u01d1",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01d3",
+            "\1\u01d4",
+            "\1\u01d5",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01d7",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\4\104\1\u01d8\25\104",
+            "\1\u01da",
+            "\1\u01db",
+            "\1\u01dc",
+            "\1\u01dd",
+            "\1\u01de",
+            "\1\u01df\21\uffff\1\u01e0",
+            "\1\u01e2\17\uffff\1\u01e1",
+            "\1\u01e3",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01e6",
+            "\1\u01e7",
+            "\1\u01e8",
+            "\1\u01e9",
+            "\1\u01ea",
+            "\1\u01eb",
+            "\1\u01ec",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01ee",
+            "\1\u01f0\4\uffff\1\u01ef",
+            "",
+            "\1\u01f1",
+            "\1\u01f2",
+            "",
+            "\1\u01f3",
+            "\1\u01f4",
+            "\1\u01f5",
+            "\1\u011e",
+            "\1\u018d\34\uffff\32\u018d\4\uffff\1\u018d\1\uffff\32\u018d",
+            "\1\u01f6\2\uffff\1\u011e\7\uffff\1\u011d\12\u01f6\7\uffff\32\u01f6\4\uffff\1\u01f6\1\uffff\32\u01f6",
+            "",
+            "\1\u01f7",
+            "\1\u01f8",
+            "\1\u01f9",
+            "\1\u01fa",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01fd",
+            "\1\u01fe",
+            "\1\u01ff",
+            "\1\u0200",
+            "\1\u0201",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0203\16\uffff\1\u0204",
+            "\1\u0205",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0207",
+            "",
+            "\1\u0208",
+            "\1\u0209",
+            "\1\u020a",
+            "\1\104\13\uffff\12\104\7\uffff\22\104\1\u020b\7\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u020d",
+            "\1\u020e",
+            "\1\u020f",
+            "\1\u0210",
+            "\1\u0211",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0213",
+            "\1\u0214",
+            "\1\u0215",
+            "\1\u0216",
+            "\1\u0217",
+            "",
+            "",
+            "\1\u0218",
+            "\1\u0219",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u021b",
+            "\1\u021c",
+            "",
+            "\1\u021d",
+            "",
+            "\1\u021e",
+            "\1\u021f\7\uffff\1\u0220",
+            "\1\u0221",
+            "\1\u0222",
+            "\1\u0223",
+            "",
+            "\1\u0224",
+            "\1\u0225",
+            "\1\u0226",
+            "\1\u0227",
+            "\1\u0228",
+            "\1\u0229",
+            "\1\u022a",
+            "\1\u022b",
+            "\1\u022c",
+            "\1\u022d",
+            "\1\u022e",
+            "\1\u022f",
+            "\1\u0230",
+            "\1\u0231",
+            "\1\u0232",
+            "\1\u0233",
+            "\1\u0234",
+            "\1\u0235",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0238",
+            "",
+            "\1\u0239",
+            "\1\u023a",
+            "",
+            "\1\u023b",
+            "\1\u023c",
+            "\1\u023d",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u023f",
+            "\1\u0240",
+            "\1\u0241",
+            "\1\u0242",
+            "\1\u0243",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "",
+            "\1\u0245",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0247",
+            "\1\u0248",
+            "\1\u0249",
+            "\1\u024a",
+            "\1\u024b",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u024d",
+            "\1\u024e",
+            "\1\u024f",
+            "\1\u0250",
+            "\1\u0251",
+            "\1\u0252",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u01f6\2\uffff\1\u011e\7\uffff\1\u011d\12\u01f6\7\uffff\32\u01f6\4\uffff\1\u01f6\1\uffff\32\u01f6",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0256",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "",
+            "\1\u0258",
+            "\1\u0259",
+            "\1\u025b\36\uffff\1\u025c\7\uffff\1\u025a",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u025e",
+            "",
+            "\1\u025f",
+            "\1\u0260",
+            "\1\u0261",
+            "",
+            "\1\u0262",
+            "\1\u0263",
+            "\1\u0264",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0266",
+            "",
+            "\1\u0267",
+            "\1\u0268",
+            "\1\u0269",
+            "\1\u026a",
+            "\1\u026b",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\23\104\1\u026c\6\104",
+            "\1\u026e",
+            "\1\u026f",
+            "\1\u0270",
+            "\1\u0271",
+            "\1\u0272\16\uffff\1\u0273",
+            "\1\u0274",
+            "",
+            "\1\u0275",
+            "\1\104\13\uffff\12\104\7\uffff\22\104\1\u0276\7\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0279",
+            "\1\u027a",
+            "\1\u027b",
+            "\1\u027c",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u027f",
+            "\1\u0280",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0282",
+            "\1\u0283",
+            "\1\u0284",
+            "\1\u0285",
+            "\1\u0286",
+            "\1\u0287",
+            "\1\u0288",
+            "\1\u0289",
+            "\1\u028a",
+            "\1\u028b",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\22\104\1\u028c\7\104",
+            "\1\u028e",
+            "\1\u028f",
+            "\1\u0290",
+            "\1\u0291",
+            "",
+            "",
+            "\1\u0292",
+            "\1\u0293",
+            "\1\u0294",
+            "\1\u0295",
+            "\1\u0296",
+            "\1\u0297",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0299",
+            "\1\u029a",
+            "\1\u029b",
+            "\1\u029c",
+            "",
+            "",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u029e",
+            "\1\u029f",
+            "\1\u02a0",
+            "\1\u02a1",
+            "",
+            "\1\u02a2",
+            "\1\u02a3",
+            "\1\u02a4",
+            "\1\u02a5",
+            "\1\u02a6",
+            "\1\u02a7",
+            "",
+            "",
+            "",
+            "\1\u02a8",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02aa",
+            "\1\u02ab",
+            "\1\u02ac",
+            "\1\u02ad",
+            "",
+            "\1\u02ae",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02b0",
+            "\1\u02b1",
+            "\1\u02b2",
+            "\1\u02b3",
+            "\1\u02b4",
+            "",
+            "\1\u02b5",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02b7",
+            "\1\u02b8",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02ba",
+            "\1\u02bb",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02bd",
+            "\1\u02be",
+            "\1\u02bf",
+            "",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02c1",
+            "\1\u02c2",
+            "",
+            "",
+            "\1\u02c3",
+            "\1\u02c4",
+            "\1\u02c5",
+            "\1\u02c6",
+            "",
+            "",
+            "\1\u02c7",
+            "\1\u02c8",
+            "",
+            "\1\u02c9",
+            "\1\u02ca",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02cd",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02cf",
+            "\1\u02d0",
+            "\1\u02d1",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\u02d4",
+            "\1\u02d5",
+            "\1\u02d6",
+            "\1\u02d7",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02d9",
+            "\1\u02da",
+            "\1\u02db",
+            "\1\u02dc",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\17\104\1\u02df\12\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02e1",
+            "\1\u02e2",
+            "",
+            "\1\u02e3",
+            "\1\u02e4",
+            "\1\u02e5",
+            "\1\u02e6",
+            "\1\u02e7",
+            "\1\u02e8",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02eb",
+            "\1\u02ec",
+            "\1\u02ed",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02ef",
+            "\1\u02f0",
+            "\1\u02f1",
+            "\1\u02f2",
+            "",
+            "\1\u02f3",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02f5",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u02f8",
+            "",
+            "\1\u02f9",
+            "\1\u02fa",
+            "",
+            "\1\u02fb",
+            "\1\u02fc",
+            "",
+            "\1\u02fd",
+            "\1\u02fe\16\uffff\1\u02ff",
+            "\1\u0300",
+            "",
+            "\1\u0301",
+            "\1\u0302",
+            "\1\u0303",
+            "\1\u0304",
+            "\1\u0305",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0307",
+            "\1\u0308",
+            "\1\u0309",
+            "\1\u030a",
+            "",
+            "",
+            "\1\u030b",
+            "",
+            "\1\u030c",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u030e",
+            "",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0311",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0315",
+            "\1\u0316",
+            "",
+            "",
+            "\1\u0317",
+            "",
+            "\1\u0318",
+            "\1\u0319",
+            "\1\u031a",
+            "\1\u031b",
+            "\1\u031c",
+            "\1\u031d",
+            "\1\u031e",
+            "\1\u031f",
+            "",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0321",
+            "\1\u0322",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0324",
+            "\1\u0325",
+            "\1\u0326",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\u0328",
+            "",
+            "",
+            "\1\u0329",
+            "\1\u032a",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u032c",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0330",
+            "\1\u0331",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\u0335",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0339",
+            "\1\u033a",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "",
+            "",
+            "\1\u033d",
+            "\1\u033e",
+            "\1\u033f",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0343",
+            "\1\u0344",
+            "\1\u0345",
+            "\1\u0346",
+            "\1\u0347",
+            "",
+            "\1\u0348",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u034b",
+            "\1\u034c",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u034f",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "",
+            "",
+            "\1\u0351",
+            "\1\u0352",
+            "",
+            "",
+            "",
+            "\1\u0353",
+            "",
+            "",
+            "",
+            "\1\u0354",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "",
+            "\1\u0356",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u0358",
+            "",
+            "",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u035a",
+            "\1\u035b",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u035d",
+            "\1\u035e",
+            "",
+            "",
+            "\1\u035f",
+            "\1\u0360",
+            "",
+            "",
+            "\1\u0361",
+            "",
+            "\1\u0362",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\u0366",
+            "",
+            "\1\u0367",
+            "",
+            "\1\u0368",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u036b",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u036e",
+            "\1\u036f",
+            "",
+            "",
+            "",
+            "\1\u0370",
+            "\1\u0371",
+            "\1\u0372",
+            "",
+            "",
+            "\1\u0373",
+            "",
+            "",
+            "\1\u0374",
+            "\1\u0375",
+            "\1\u0376",
+            "\1\u0377",
+            "\1\u0378",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\u037c",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            "",
+            "",
+            "",
+            "\1\u037f",
+            "",
+            "",
+            "\1\104\13\uffff\12\104\7\uffff\32\104\4\uffff\1\104\1\uffff\32\104",
+            ""
+    };
+
+    static final short[] DFA24_eot = DFA.unpackEncodedString(DFA24_eotS);
+    static final short[] DFA24_eof = DFA.unpackEncodedString(DFA24_eofS);
+    static final char[] DFA24_min = DFA.unpackEncodedStringToUnsignedChars(DFA24_minS);
+    static final char[] DFA24_max = DFA.unpackEncodedStringToUnsignedChars(DFA24_maxS);
+    static final short[] DFA24_accept = DFA.unpackEncodedString(DFA24_acceptS);
+    static final short[] DFA24_special = DFA.unpackEncodedString(DFA24_specialS);
+    static final short[][] DFA24_transition;
+
+    static {
+        int numStates = DFA24_transitionS.length;
+        DFA24_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA24_transition[i] = DFA.unpackEncodedString(DFA24_transitionS[i]);
+        }
+    }
+
+    class DFA24 extends DFA {
+
+        public DFA24(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 24;
+            this.eot = DFA24_eot;
+            this.eof = DFA24_eof;
+            this.min = DFA24_min;
+            this.max = DFA24_max;
+            this.accept = DFA24_accept;
+            this.special = DFA24_special;
+            this.transition = DFA24_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | T__172 | T__173 | T__174 | T__175 | T__176 | T__177 | T__178 | T__179 | T__180 | T__181 | T__182 | T__183 | T__184 | T__185 | T__186 | T__187 | T__188 | RULE_THEME_RESOURCE | RULE_EVENT_TOPIC | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            IntStream input = _input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA24_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA24_0=='=') ) {s = 1;}
+
+                        else if ( (LA24_0=='|') ) {s = 2;}
+
+                        else if ( (LA24_0=='&') ) {s = 3;}
+
+                        else if ( (LA24_0=='s') ) {s = 4;}
+
+                        else if ( (LA24_0=='+') ) {s = 5;}
+
+                        else if ( (LA24_0=='-') ) {s = 6;}
+
+                        else if ( (LA24_0=='*') ) {s = 7;}
+
+                        else if ( (LA24_0=='/') ) {s = 8;}
+
+                        else if ( (LA24_0=='%') ) {s = 9;}
+
+                        else if ( (LA24_0=='!') ) {s = 10;}
+
+                        else if ( (LA24_0=='>') ) {s = 11;}
+
+                        else if ( (LA24_0=='<') ) {s = 12;}
+
+                        else if ( (LA24_0=='.') ) {s = 13;}
+
+                        else if ( (LA24_0=='?') ) {s = 14;}
+
+                        else if ( (LA24_0=='v') ) {s = 15;}
+
+                        else if ( (LA24_0=='e') ) {s = 16;}
+
+                        else if ( (LA24_0=='i') ) {s = 17;}
+
+                        else if ( (LA24_0=='f') ) {s = 18;}
+
+                        else if ( (LA24_0=='g') ) {s = 19;}
+
+                        else if ( (LA24_0=='l') ) {s = 20;}
+
+                        else if ( (LA24_0=='n') ) {s = 21;}
+
+                        else if ( (LA24_0=='r') ) {s = 22;}
+
+                        else if ( (LA24_0=='b') ) {s = 23;}
+
+                        else if ( (LA24_0=='h') ) {s = 24;}
+
+                        else if ( (LA24_0=='d') ) {s = 25;}
+
+                        else if ( (LA24_0=='c') ) {s = 26;}
+
+                        else if ( (LA24_0=='p') ) {s = 27;}
+
+                        else if ( (LA24_0=='{') ) {s = 28;}
+
+                        else if ( (LA24_0=='}') ) {s = 29;}
+
+                        else if ( (LA24_0=='t') ) {s = 30;}
+
+                        else if ( (LA24_0=='a') ) {s = 31;}
+
+                        else if ( (LA24_0=='u') ) {s = 32;}
+
+                        else if ( (LA24_0=='o') ) {s = 33;}
+
+                        else if ( (LA24_0=='m') ) {s = 34;}
+
+                        else if ( (LA24_0=='q') ) {s = 35;}
+
+                        else if ( (LA24_0=='(') ) {s = 36;}
+
+                        else if ( (LA24_0==')') ) {s = 37;}
+
+                        else if ( (LA24_0==';') ) {s = 38;}
+
+                        else if ( (LA24_0=='@') ) {s = 39;}
+
+                        else if ( (LA24_0==',') ) {s = 40;}
+
+                        else if ( (LA24_0==']') ) {s = 41;}
+
+                        else if ( (LA24_0=='#') ) {s = 42;}
+
+                        else if ( (LA24_0=='[') ) {s = 43;}
+
+                        else if ( (LA24_0==':') ) {s = 44;}
+
+                        else if ( (LA24_0=='w') ) {s = 45;}
+
+                        else if ( (LA24_0=='\'') ) {s = 46;}
+
+                        else if ( (LA24_0=='0') ) {s = 47;}
+
+                        else if ( ((LA24_0>='1' && LA24_0<='9')) ) {s = 48;}
+
+                        else if ( (LA24_0=='^') ) {s = 49;}
+
+                        else if ( (LA24_0=='$'||(LA24_0>='A' && LA24_0<='Z')||LA24_0=='_'||(LA24_0>='j' && LA24_0<='k')||(LA24_0>='x' && LA24_0<='z')) ) {s = 50;}
+
+                        else if ( (LA24_0=='\"') ) {s = 51;}
+
+                        else if ( ((LA24_0>='\t' && LA24_0<='\n')||LA24_0=='\r'||LA24_0==' ') ) {s = 52;}
+
+                        else if ( ((LA24_0>='\u0000' && LA24_0<='\b')||(LA24_0>='\u000B' && LA24_0<='\f')||(LA24_0>='\u000E' && LA24_0<='\u001F')||LA24_0=='\\'||LA24_0=='`'||(LA24_0>='~' && LA24_0<='\uFFFF')) ) {s = 53;}
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 24, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSLParser.java b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSLParser.java
new file mode 100644
index 0000000..7e5d927
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/src-gen/org/eclipse/osbp/xtext/table/ide/contentassist/antlr/internal/InternalTableDSLParser.java
@@ -0,0 +1,110767 @@
+package org.eclipse.osbp.xtext.table.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.table.services.TableDSLGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+@SuppressWarnings("all")
+public class InternalTableDSLParser extends AbstractInternalContentAssistParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_THEME_RESOURCE", "RULE_EVENT_TOPIC", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'single'", "'+'", "'-'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'equal'", "'greater equal'", "'greater than'", "'lower equal'", "'lower than'", "'not equal'", "'rising'", "'bad-rising'", "'sloping'", "'good-sloping'", "'stagnating'", "'hidden'", "'explicit'", "'indexed'", "'default'", "'columns'", "'rows'", "'pages'", "'sections'", "'chapters'", "'package'", "'{'", "'}'", "'table'", "'as'", "'selection'", "'rowHeader'", "'toolbar'", "'using'", "'bean'", "'preorder'", "'value'", "'icon'", "'intervals'", "'lookups'", "'formatter'", "'path'", "'tooltipPattern'", "'taskId'", "'allColumns'", "'ordinal'", "'column'", "'measure'", "'derived'", "'level'", "'property'", "'aggregation'", "'upToNumber'", "'upToInteger'", "'daysInPast'", "'integer'", "'number'", "'string'", "'datamart'", "'axis'", "'textcolor'", "'cellcolor'", "'trend'", "'tooltip'", "'grid'", "'rowheader'", "'prop'", "'style'", "'dto'", "'buttonStyle'", "'eventTopic'", "'htmlStyle'", "'boolStyle'", "'dateStyle'", "'format'", "'numberStyle'", "'progressbarStyle'", "'max'", "'indicatorStyle'", "'greenFrom'", "'redUntil'", "'quantityStyle'", "'uom'", "'('", "')'", "'priceStyle'", "'currency'", "'textStyle'", "'imageStyle'", "'then'", "';'", "'@'", "','", "']'", "'#'", "'['", "'instanceof'", "'if'", "'else'", "'switch'", "':'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'describedBy'", "'multiple'", "'alwaysSelected'", "'polling'", "'filtering'", "'embedded'", "'selectById'", "'ascending'", "'collapse'", "'image'", "'hidelabel'", "'dynamic'", "'resize'", "'rowheight'", "'details'", "'notifyOnSelect'", "'selectalways'", "'editable'", "'ns'", "'::'", "'?.'", "'|'", "'var'", "'true'"
+    };
+    public static final int T__144=144;
+    public static final int T__143=143;
+    public static final int T__146=146;
+    public static final int T__50=50;
+    public static final int T__145=145;
+    public static final int T__140=140;
+    public static final int T__142=142;
+    public static final int T__141=141;
+    public static final int T__59=59;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__137=137;
+    public static final int T__52=52;
+    public static final int T__136=136;
+    public static final int T__53=53;
+    public static final int T__139=139;
+    public static final int T__54=54;
+    public static final int T__138=138;
+    public static final int T__133=133;
+    public static final int T__132=132;
+    public static final int T__60=60;
+    public static final int T__135=135;
+    public static final int T__61=61;
+    public static final int T__134=134;
+    public static final int RULE_ID=5;
+    public static final int T__131=131;
+    public static final int T__130=130;
+    public static final int RULE_EVENT_TOPIC=10;
+    public static final int RULE_INT=7;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__129=129;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__126=126;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__166=166;
+    public static final int T__165=165;
+    public static final int T__168=168;
+    public static final int T__167=167;
+    public static final int T__162=162;
+    public static final int T__161=161;
+    public static final int T__164=164;
+    public static final int T__163=163;
+    public static final int T__160=160;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__159=159;
+    public static final int T__30=30;
+    public static final int T__158=158;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__155=155;
+    public static final int T__154=154;
+    public static final int T__157=157;
+    public static final int T__156=156;
+    public static final int T__151=151;
+    public static final int T__150=150;
+    public static final int T__153=153;
+    public static final int T__152=152;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__40=40;
+    public static final int T__148=148;
+    public static final int T__41=41;
+    public static final int T__147=147;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__149=149;
+    public static final int T__100=100;
+    public static final int T__102=102;
+    public static final int T__101=101;
+    public static final int T__19=19;
+    public static final int T__15=15;
+    public static final int T__16=16;
+    public static final int T__17=17;
+    public static final int T__18=18;
+    public static final int RULE_DECIMAL=8;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__121=121;
+    public static final int T__124=124;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_SL_COMMENT=12;
+    public static final int T__119=119;
+    public static final int T__118=118;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__114=114;
+    public static final int T__117=117;
+    public static final int T__116=116;
+    public static final int T__111=111;
+    public static final int T__110=110;
+    public static final int T__113=113;
+    public static final int T__112=112;
+    public static final int T__108=108;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__104=104;
+    public static final int T__103=103;
+    public static final int T__106=106;
+    public static final int T__105=105;
+    public static final int RULE_HEX=6;
+    public static final int RULE_ML_COMMENT=11;
+    public static final int RULE_THEME_RESOURCE=9;
+    public static final int T__91=91;
+    public static final int T__188=188;
+    public static final int T__92=92;
+    public static final int T__187=187;
+    public static final int T__93=93;
+    public static final int T__94=94;
+    public static final int T__184=184;
+    public static final int T__183=183;
+    public static final int T__186=186;
+    public static final int T__90=90;
+    public static final int T__185=185;
+    public static final int T__180=180;
+    public static final int T__182=182;
+    public static final int T__181=181;
+    public static final int T__99=99;
+    public static final int T__95=95;
+    public static final int T__96=96;
+    public static final int T__97=97;
+    public static final int T__98=98;
+    public static final int T__177=177;
+    public static final int T__176=176;
+    public static final int T__179=179;
+    public static final int T__178=178;
+    public static final int T__173=173;
+    public static final int T__172=172;
+    public static final int T__175=175;
+    public static final int T__174=174;
+    public static final int T__171=171;
+    public static final int T__170=170;
+    public static final int T__169=169;
+    public static final int T__70=70;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int RULE_STRING=4;
+    public static final int T__77=77;
+    public static final int T__78=78;
+    public static final int T__79=79;
+    public static final int T__73=73;
+    public static final int T__74=74;
+    public static final int T__75=75;
+    public static final int T__76=76;
+    public static final int T__80=80;
+    public static final int T__81=81;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int RULE_WS=13;
+    public static final int RULE_ANY_OTHER=14;
+    public static final int T__88=88;
+    public static final int T__89=89;
+    public static final int T__84=84;
+    public static final int T__85=85;
+    public static final int T__86=86;
+    public static final int T__87=87;
+
+    // delegates
+    // delegators
+
+
+        public InternalTableDSLParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalTableDSLParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalTableDSLParser.tokenNames; }
+    public String getGrammarFileName() { return "InternalTableDSL.g"; }
+
+
+    	private TableDSLGrammarAccess grammarAccess;
+
+    	public void setGrammarAccess(TableDSLGrammarAccess grammarAccess) {
+    		this.grammarAccess = grammarAccess;
+    	}
+
+    	@Override
+    	protected Grammar getGrammar() {
+    		return grammarAccess.getGrammar();
+    	}
+
+    	@Override
+    	protected String getValueForTokenName(String tokenName) {
+    		return tokenName;
+    	}
+
+
+
+    // $ANTLR start "entryRuleTableModel"
+    // InternalTableDSL.g:54:1: entryRuleTableModel : ruleTableModel EOF ;
+    public final void entryRuleTableModel() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:55:1: ( ruleTableModel EOF )
+            // InternalTableDSL.g:56:1: ruleTableModel EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableModelRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableModel();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableModelRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableModel"
+
+
+    // $ANTLR start "ruleTableModel"
+    // InternalTableDSL.g:63:1: ruleTableModel : ( ( rule__TableModel__Group__0 ) ) ;
+    public final void ruleTableModel() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:67:2: ( ( ( rule__TableModel__Group__0 ) ) )
+            // InternalTableDSL.g:68:2: ( ( rule__TableModel__Group__0 ) )
+            {
+            // InternalTableDSL.g:68:2: ( ( rule__TableModel__Group__0 ) )
+            // InternalTableDSL.g:69:3: ( rule__TableModel__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableModelAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:70:3: ( rule__TableModel__Group__0 )
+            // InternalTableDSL.g:70:4: rule__TableModel__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableModel__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableModelAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableModel"
+
+
+    // $ANTLR start "entryRuleTablePackage"
+    // InternalTableDSL.g:79:1: entryRuleTablePackage : ruleTablePackage EOF ;
+    public final void entryRuleTablePackage() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:80:1: ( ruleTablePackage EOF )
+            // InternalTableDSL.g:81:1: ruleTablePackage EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTablePackage();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTablePackage"
+
+
+    // $ANTLR start "ruleTablePackage"
+    // InternalTableDSL.g:88:1: ruleTablePackage : ( ( rule__TablePackage__Group__0 ) ) ;
+    public final void ruleTablePackage() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:92:2: ( ( ( rule__TablePackage__Group__0 ) ) )
+            // InternalTableDSL.g:93:2: ( ( rule__TablePackage__Group__0 ) )
+            {
+            // InternalTableDSL.g:93:2: ( ( rule__TablePackage__Group__0 ) )
+            // InternalTableDSL.g:94:3: ( rule__TablePackage__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:95:3: ( rule__TablePackage__Group__0 )
+            // InternalTableDSL.g:95:4: rule__TablePackage__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TablePackage__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTablePackage"
+
+
+    // $ANTLR start "entryRuleTable"
+    // InternalTableDSL.g:104:1: entryRuleTable : ruleTable EOF ;
+    public final void entryRuleTable() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:105:1: ( ruleTable EOF )
+            // InternalTableDSL.g:106:1: ruleTable EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTable();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTable"
+
+
+    // $ANTLR start "ruleTable"
+    // InternalTableDSL.g:113:1: ruleTable : ( ( rule__Table__Group__0 ) ) ;
+    public final void ruleTable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:117:2: ( ( ( rule__Table__Group__0 ) ) )
+            // InternalTableDSL.g:118:2: ( ( rule__Table__Group__0 ) )
+            {
+            // InternalTableDSL.g:118:2: ( ( rule__Table__Group__0 ) )
+            // InternalTableDSL.g:119:3: ( rule__Table__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:120:3: ( rule__Table__Group__0 )
+            // InternalTableDSL.g:120:4: rule__Table__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Table__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTable"
+
+
+    // $ANTLR start "entryRuleTableOption"
+    // InternalTableDSL.g:129:1: entryRuleTableOption : ruleTableOption EOF ;
+    public final void entryRuleTableOption() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:130:1: ( ruleTableOption EOF )
+            // InternalTableDSL.g:131:1: ruleTableOption EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableOptionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableOption();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableOptionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableOption"
+
+
+    // $ANTLR start "ruleTableOption"
+    // InternalTableDSL.g:138:1: ruleTableOption : ( ( rule__TableOption__Alternatives ) ) ;
+    public final void ruleTableOption() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:142:2: ( ( ( rule__TableOption__Alternatives ) ) )
+            // InternalTableDSL.g:143:2: ( ( rule__TableOption__Alternatives ) )
+            {
+            // InternalTableDSL.g:143:2: ( ( rule__TableOption__Alternatives ) )
+            // InternalTableDSL.g:144:3: ( rule__TableOption__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableOptionAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:145:3: ( rule__TableOption__Alternatives )
+            // InternalTableDSL.g:145:4: rule__TableOption__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableOption__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableOptionAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableOption"
+
+
+    // $ANTLR start "entryRuleTableSelection"
+    // InternalTableDSL.g:154:1: entryRuleTableSelection : ruleTableSelection EOF ;
+    public final void entryRuleTableSelection() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:155:1: ( ruleTableSelection EOF )
+            // InternalTableDSL.g:156:1: ruleTableSelection EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableSelection();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableSelection"
+
+
+    // $ANTLR start "ruleTableSelection"
+    // InternalTableDSL.g:163:1: ruleTableSelection : ( ( rule__TableSelection__Group__0 ) ) ;
+    public final void ruleTableSelection() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:167:2: ( ( ( rule__TableSelection__Group__0 ) ) )
+            // InternalTableDSL.g:168:2: ( ( rule__TableSelection__Group__0 ) )
+            {
+            // InternalTableDSL.g:168:2: ( ( rule__TableSelection__Group__0 ) )
+            // InternalTableDSL.g:169:3: ( rule__TableSelection__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:170:3: ( rule__TableSelection__Group__0 )
+            // InternalTableDSL.g:170:4: rule__TableSelection__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableSelection"
+
+
+    // $ANTLR start "entryRuleTableTable"
+    // InternalTableDSL.g:179:1: entryRuleTableTable : ruleTableTable EOF ;
+    public final void entryRuleTableTable() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:180:1: ( ruleTableTable EOF )
+            // InternalTableDSL.g:181:1: ruleTableTable EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableTable();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableTable"
+
+
+    // $ANTLR start "ruleTableTable"
+    // InternalTableDSL.g:188:1: ruleTableTable : ( ( rule__TableTable__Group__0 ) ) ;
+    public final void ruleTableTable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:192:2: ( ( ( rule__TableTable__Group__0 ) ) )
+            // InternalTableDSL.g:193:2: ( ( rule__TableTable__Group__0 ) )
+            {
+            // InternalTableDSL.g:193:2: ( ( rule__TableTable__Group__0 ) )
+            // InternalTableDSL.g:194:3: ( rule__TableTable__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:195:3: ( rule__TableTable__Group__0 )
+            // InternalTableDSL.g:195:4: rule__TableTable__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableTable"
+
+
+    // $ANTLR start "entryRuleTableBean"
+    // InternalTableDSL.g:204:1: entryRuleTableBean : ruleTableBean EOF ;
+    public final void entryRuleTableBean() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:205:1: ( ruleTableBean EOF )
+            // InternalTableDSL.g:206:1: ruleTableBean EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableBean();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableBean"
+
+
+    // $ANTLR start "ruleTableBean"
+    // InternalTableDSL.g:213:1: ruleTableBean : ( ( rule__TableBean__Group__0 ) ) ;
+    public final void ruleTableBean() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:217:2: ( ( ( rule__TableBean__Group__0 ) ) )
+            // InternalTableDSL.g:218:2: ( ( rule__TableBean__Group__0 ) )
+            {
+            // InternalTableDSL.g:218:2: ( ( rule__TableBean__Group__0 ) )
+            // InternalTableDSL.g:219:3: ( rule__TableBean__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:220:3: ( rule__TableBean__Group__0 )
+            // InternalTableDSL.g:220:4: rule__TableBean__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableBean"
+
+
+    // $ANTLR start "entryRuleTablePreorder"
+    // InternalTableDSL.g:229:1: entryRuleTablePreorder : ruleTablePreorder EOF ;
+    public final void entryRuleTablePreorder() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:230:1: ( ruleTablePreorder EOF )
+            // InternalTableDSL.g:231:1: ruleTablePreorder EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePreorderRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTablePreorder();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePreorderRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTablePreorder"
+
+
+    // $ANTLR start "ruleTablePreorder"
+    // InternalTableDSL.g:238:1: ruleTablePreorder : ( ( rule__TablePreorder__Group__0 ) ) ;
+    public final void ruleTablePreorder() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:242:2: ( ( ( rule__TablePreorder__Group__0 ) ) )
+            // InternalTableDSL.g:243:2: ( ( rule__TablePreorder__Group__0 ) )
+            {
+            // InternalTableDSL.g:243:2: ( ( rule__TablePreorder__Group__0 ) )
+            // InternalTableDSL.g:244:3: ( rule__TablePreorder__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePreorderAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:245:3: ( rule__TablePreorder__Group__0 )
+            // InternalTableDSL.g:245:4: rule__TablePreorder__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TablePreorder__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePreorderAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTablePreorder"
+
+
+    // $ANTLR start "entryRuleTableValue"
+    // InternalTableDSL.g:254:1: entryRuleTableValue : ruleTableValue EOF ;
+    public final void entryRuleTableValue() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:255:1: ( ruleTableValue EOF )
+            // InternalTableDSL.g:256:1: ruleTableValue EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableValue();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableValue"
+
+
+    // $ANTLR start "ruleTableValue"
+    // InternalTableDSL.g:263:1: ruleTableValue : ( ( rule__TableValue__Group__0 ) ) ;
+    public final void ruleTableValue() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:267:2: ( ( ( rule__TableValue__Group__0 ) ) )
+            // InternalTableDSL.g:268:2: ( ( rule__TableValue__Group__0 ) )
+            {
+            // InternalTableDSL.g:268:2: ( ( rule__TableValue__Group__0 ) )
+            // InternalTableDSL.g:269:3: ( rule__TableValue__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:270:3: ( rule__TableValue__Group__0 )
+            // InternalTableDSL.g:270:4: rule__TableValue__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableValue"
+
+
+    // $ANTLR start "entryRuleTableFormatter"
+    // InternalTableDSL.g:279:1: entryRuleTableFormatter : ruleTableFormatter EOF ;
+    public final void entryRuleTableFormatter() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:280:1: ( ruleTableFormatter EOF )
+            // InternalTableDSL.g:281:1: ruleTableFormatter EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableFormatterRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableFormatter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableFormatterRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableFormatter"
+
+
+    // $ANTLR start "ruleTableFormatter"
+    // InternalTableDSL.g:288:1: ruleTableFormatter : ( ( rule__TableFormatter__Group__0 ) ) ;
+    public final void ruleTableFormatter() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:292:2: ( ( ( rule__TableFormatter__Group__0 ) ) )
+            // InternalTableDSL.g:293:2: ( ( rule__TableFormatter__Group__0 ) )
+            {
+            // InternalTableDSL.g:293:2: ( ( rule__TableFormatter__Group__0 ) )
+            // InternalTableDSL.g:294:3: ( rule__TableFormatter__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableFormatterAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:295:3: ( rule__TableFormatter__Group__0 )
+            // InternalTableDSL.g:295:4: rule__TableFormatter__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableFormatter__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableFormatterAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableFormatter"
+
+
+    // $ANTLR start "entryRuleTableImage"
+    // InternalTableDSL.g:304:1: entryRuleTableImage : ruleTableImage EOF ;
+    public final void entryRuleTableImage() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:305:1: ( ruleTableImage EOF )
+            // InternalTableDSL.g:306:1: ruleTableImage EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableImage();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableImage"
+
+
+    // $ANTLR start "ruleTableImage"
+    // InternalTableDSL.g:313:1: ruleTableImage : ( ( rule__TableImage__Group__0 ) ) ;
+    public final void ruleTableImage() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:317:2: ( ( ( rule__TableImage__Group__0 ) ) )
+            // InternalTableDSL.g:318:2: ( ( rule__TableImage__Group__0 ) )
+            {
+            // InternalTableDSL.g:318:2: ( ( rule__TableImage__Group__0 ) )
+            // InternalTableDSL.g:319:3: ( rule__TableImage__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:320:3: ( rule__TableImage__Group__0 )
+            // InternalTableDSL.g:320:4: rule__TableImage__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableImage__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableImage"
+
+
+    // $ANTLR start "entryRuleTableTooltipPattern"
+    // InternalTableDSL.g:329:1: entryRuleTableTooltipPattern : ruleTableTooltipPattern EOF ;
+    public final void entryRuleTableTooltipPattern() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:330:1: ( ruleTableTooltipPattern EOF )
+            // InternalTableDSL.g:331:1: ruleTableTooltipPattern EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipPatternRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableTooltipPattern();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipPatternRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableTooltipPattern"
+
+
+    // $ANTLR start "ruleTableTooltipPattern"
+    // InternalTableDSL.g:338:1: ruleTableTooltipPattern : ( ( rule__TableTooltipPattern__Group__0 ) ) ;
+    public final void ruleTableTooltipPattern() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:342:2: ( ( ( rule__TableTooltipPattern__Group__0 ) ) )
+            // InternalTableDSL.g:343:2: ( ( rule__TableTooltipPattern__Group__0 ) )
+            {
+            // InternalTableDSL.g:343:2: ( ( rule__TableTooltipPattern__Group__0 ) )
+            // InternalTableDSL.g:344:3: ( rule__TableTooltipPattern__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipPatternAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:345:3: ( rule__TableTooltipPattern__Group__0 )
+            // InternalTableDSL.g:345:4: rule__TableTooltipPattern__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTooltipPattern__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipPatternAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableTooltipPattern"
+
+
+    // $ANTLR start "entryRuleTableValueElement"
+    // InternalTableDSL.g:354:1: entryRuleTableValueElement : ruleTableValueElement EOF ;
+    public final void entryRuleTableValueElement() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:355:1: ( ruleTableValueElement EOF )
+            // InternalTableDSL.g:356:1: ruleTableValueElement EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueElementRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableValueElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueElementRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableValueElement"
+
+
+    // $ANTLR start "ruleTableValueElement"
+    // InternalTableDSL.g:363:1: ruleTableValueElement : ( ( rule__TableValueElement__Alternatives ) ) ;
+    public final void ruleTableValueElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:367:2: ( ( ( rule__TableValueElement__Alternatives ) ) )
+            // InternalTableDSL.g:368:2: ( ( rule__TableValueElement__Alternatives ) )
+            {
+            // InternalTableDSL.g:368:2: ( ( rule__TableValueElement__Alternatives ) )
+            // InternalTableDSL.g:369:3: ( rule__TableValueElement__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueElementAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:370:3: ( rule__TableValueElement__Alternatives )
+            // InternalTableDSL.g:370:4: rule__TableValueElement__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValueElement__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueElementAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableValueElement"
+
+
+    // $ANTLR start "entryRuleTableTask"
+    // InternalTableDSL.g:379:1: entryRuleTableTask : ruleTableTask EOF ;
+    public final void entryRuleTableTask() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:380:1: ( ruleTableTask EOF )
+            // InternalTableDSL.g:381:1: ruleTableTask EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTaskRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableTask();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTaskRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableTask"
+
+
+    // $ANTLR start "ruleTableTask"
+    // InternalTableDSL.g:388:1: ruleTableTask : ( ( rule__TableTask__Group__0 ) ) ;
+    public final void ruleTableTask() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:392:2: ( ( ( rule__TableTask__Group__0 ) ) )
+            // InternalTableDSL.g:393:2: ( ( rule__TableTask__Group__0 ) )
+            {
+            // InternalTableDSL.g:393:2: ( ( rule__TableTask__Group__0 ) )
+            // InternalTableDSL.g:394:3: ( rule__TableTask__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTaskAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:395:3: ( rule__TableTask__Group__0 )
+            // InternalTableDSL.g:395:4: rule__TableTask__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTask__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTaskAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableTask"
+
+
+    // $ANTLR start "entryRuleTableAllColumns"
+    // InternalTableDSL.g:404:1: entryRuleTableAllColumns : ruleTableAllColumns EOF ;
+    public final void entryRuleTableAllColumns() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:405:1: ( ruleTableAllColumns EOF )
+            // InternalTableDSL.g:406:1: ruleTableAllColumns EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAllColumnsRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableAllColumns();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAllColumnsRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableAllColumns"
+
+
+    // $ANTLR start "ruleTableAllColumns"
+    // InternalTableDSL.g:413:1: ruleTableAllColumns : ( ( rule__TableAllColumns__Group__0 ) ) ;
+    public final void ruleTableAllColumns() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:417:2: ( ( ( rule__TableAllColumns__Group__0 ) ) )
+            // InternalTableDSL.g:418:2: ( ( rule__TableAllColumns__Group__0 ) )
+            {
+            // InternalTableDSL.g:418:2: ( ( rule__TableAllColumns__Group__0 ) )
+            // InternalTableDSL.g:419:3: ( rule__TableAllColumns__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAllColumnsAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:420:3: ( rule__TableAllColumns__Group__0 )
+            // InternalTableDSL.g:420:4: rule__TableAllColumns__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAllColumns__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAllColumnsAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableAllColumns"
+
+
+    // $ANTLR start "entryRuleTableOrdinal"
+    // InternalTableDSL.g:429:1: entryRuleTableOrdinal : ruleTableOrdinal EOF ;
+    public final void entryRuleTableOrdinal() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:430:1: ( ruleTableOrdinal EOF )
+            // InternalTableDSL.g:431:1: ruleTableOrdinal EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableOrdinalRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableOrdinal();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableOrdinalRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableOrdinal"
+
+
+    // $ANTLR start "ruleTableOrdinal"
+    // InternalTableDSL.g:438:1: ruleTableOrdinal : ( ( rule__TableOrdinal__Group__0 ) ) ;
+    public final void ruleTableOrdinal() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:442:2: ( ( ( rule__TableOrdinal__Group__0 ) ) )
+            // InternalTableDSL.g:443:2: ( ( rule__TableOrdinal__Group__0 ) )
+            {
+            // InternalTableDSL.g:443:2: ( ( rule__TableOrdinal__Group__0 ) )
+            // InternalTableDSL.g:444:3: ( rule__TableOrdinal__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableOrdinalAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:445:3: ( rule__TableOrdinal__Group__0 )
+            // InternalTableDSL.g:445:4: rule__TableOrdinal__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableOrdinal__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableOrdinalAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableOrdinal"
+
+
+    // $ANTLR start "entryRuleTableColumn"
+    // InternalTableDSL.g:454:1: entryRuleTableColumn : ruleTableColumn EOF ;
+    public final void entryRuleTableColumn() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:455:1: ( ruleTableColumn EOF )
+            // InternalTableDSL.g:456:1: ruleTableColumn EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableColumnRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableColumn();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableColumnRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableColumn"
+
+
+    // $ANTLR start "ruleTableColumn"
+    // InternalTableDSL.g:463:1: ruleTableColumn : ( ( rule__TableColumn__Group__0 ) ) ;
+    public final void ruleTableColumn() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:467:2: ( ( ( rule__TableColumn__Group__0 ) ) )
+            // InternalTableDSL.g:468:2: ( ( rule__TableColumn__Group__0 ) )
+            {
+            // InternalTableDSL.g:468:2: ( ( rule__TableColumn__Group__0 ) )
+            // InternalTableDSL.g:469:3: ( rule__TableColumn__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableColumnAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:470:3: ( rule__TableColumn__Group__0 )
+            // InternalTableDSL.g:470:4: rule__TableColumn__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableColumn__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableColumnAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableColumn"
+
+
+    // $ANTLR start "entryRuleTableMeasure"
+    // InternalTableDSL.g:479:1: entryRuleTableMeasure : ruleTableMeasure EOF ;
+    public final void entryRuleTableMeasure() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:480:1: ( ruleTableMeasure EOF )
+            // InternalTableDSL.g:481:1: ruleTableMeasure EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableMeasureRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableMeasure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableMeasureRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableMeasure"
+
+
+    // $ANTLR start "ruleTableMeasure"
+    // InternalTableDSL.g:488:1: ruleTableMeasure : ( ( rule__TableMeasure__Group__0 ) ) ;
+    public final void ruleTableMeasure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:492:2: ( ( ( rule__TableMeasure__Group__0 ) ) )
+            // InternalTableDSL.g:493:2: ( ( rule__TableMeasure__Group__0 ) )
+            {
+            // InternalTableDSL.g:493:2: ( ( rule__TableMeasure__Group__0 ) )
+            // InternalTableDSL.g:494:3: ( rule__TableMeasure__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableMeasureAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:495:3: ( rule__TableMeasure__Group__0 )
+            // InternalTableDSL.g:495:4: rule__TableMeasure__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableMeasure__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableMeasureAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableMeasure"
+
+
+    // $ANTLR start "entryRuleTableDerived"
+    // InternalTableDSL.g:504:1: entryRuleTableDerived : ruleTableDerived EOF ;
+    public final void entryRuleTableDerived() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:505:1: ( ruleTableDerived EOF )
+            // InternalTableDSL.g:506:1: ruleTableDerived EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDerivedRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableDerived();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDerivedRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableDerived"
+
+
+    // $ANTLR start "ruleTableDerived"
+    // InternalTableDSL.g:513:1: ruleTableDerived : ( ( rule__TableDerived__Group__0 ) ) ;
+    public final void ruleTableDerived() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:517:2: ( ( ( rule__TableDerived__Group__0 ) ) )
+            // InternalTableDSL.g:518:2: ( ( rule__TableDerived__Group__0 ) )
+            {
+            // InternalTableDSL.g:518:2: ( ( rule__TableDerived__Group__0 ) )
+            // InternalTableDSL.g:519:3: ( rule__TableDerived__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDerivedAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:520:3: ( rule__TableDerived__Group__0 )
+            // InternalTableDSL.g:520:4: rule__TableDerived__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDerived__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDerivedAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableDerived"
+
+
+    // $ANTLR start "entryRuleTableHierarchy"
+    // InternalTableDSL.g:529:1: entryRuleTableHierarchy : ruleTableHierarchy EOF ;
+    public final void entryRuleTableHierarchy() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:530:1: ( ruleTableHierarchy EOF )
+            // InternalTableDSL.g:531:1: ruleTableHierarchy EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableHierarchyRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableHierarchy();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableHierarchyRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableHierarchy"
+
+
+    // $ANTLR start "ruleTableHierarchy"
+    // InternalTableDSL.g:538:1: ruleTableHierarchy : ( ( rule__TableHierarchy__Group__0 ) ) ;
+    public final void ruleTableHierarchy() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:542:2: ( ( ( rule__TableHierarchy__Group__0 ) ) )
+            // InternalTableDSL.g:543:2: ( ( rule__TableHierarchy__Group__0 ) )
+            {
+            // InternalTableDSL.g:543:2: ( ( rule__TableHierarchy__Group__0 ) )
+            // InternalTableDSL.g:544:3: ( rule__TableHierarchy__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableHierarchyAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:545:3: ( rule__TableHierarchy__Group__0 )
+            // InternalTableDSL.g:545:4: rule__TableHierarchy__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableHierarchy__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableHierarchyAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableHierarchy"
+
+
+    // $ANTLR start "entryRuleTableAttribute"
+    // InternalTableDSL.g:554:1: entryRuleTableAttribute : ruleTableAttribute EOF ;
+    public final void entryRuleTableAttribute() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:555:1: ( ruleTableAttribute EOF )
+            // InternalTableDSL.g:556:1: ruleTableAttribute EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAttributeRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableAttribute();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAttributeRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableAttribute"
+
+
+    // $ANTLR start "ruleTableAttribute"
+    // InternalTableDSL.g:563:1: ruleTableAttribute : ( ( rule__TableAttribute__Group__0 ) ) ;
+    public final void ruleTableAttribute() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:567:2: ( ( ( rule__TableAttribute__Group__0 ) ) )
+            // InternalTableDSL.g:568:2: ( ( rule__TableAttribute__Group__0 ) )
+            {
+            // InternalTableDSL.g:568:2: ( ( rule__TableAttribute__Group__0 ) )
+            // InternalTableDSL.g:569:3: ( rule__TableAttribute__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAttributeAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:570:3: ( rule__TableAttribute__Group__0 )
+            // InternalTableDSL.g:570:4: rule__TableAttribute__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAttribute__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAttributeAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableAttribute"
+
+
+    // $ANTLR start "entryRuleTableAggregation"
+    // InternalTableDSL.g:579:1: entryRuleTableAggregation : ruleTableAggregation EOF ;
+    public final void entryRuleTableAggregation() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:580:1: ( ruleTableAggregation EOF )
+            // InternalTableDSL.g:581:1: ruleTableAggregation EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAggregationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableAggregation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAggregationRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableAggregation"
+
+
+    // $ANTLR start "ruleTableAggregation"
+    // InternalTableDSL.g:588:1: ruleTableAggregation : ( ( rule__TableAggregation__Group__0 ) ) ;
+    public final void ruleTableAggregation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:592:2: ( ( ( rule__TableAggregation__Group__0 ) ) )
+            // InternalTableDSL.g:593:2: ( ( rule__TableAggregation__Group__0 ) )
+            {
+            // InternalTableDSL.g:593:2: ( ( rule__TableAggregation__Group__0 ) )
+            // InternalTableDSL.g:594:3: ( rule__TableAggregation__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAggregationAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:595:3: ( rule__TableAggregation__Group__0 )
+            // InternalTableDSL.g:595:4: rule__TableAggregation__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAggregation__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAggregationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableAggregation"
+
+
+    // $ANTLR start "entryRuleTableInterval"
+    // InternalTableDSL.g:604:1: entryRuleTableInterval : ruleTableInterval EOF ;
+    public final void entryRuleTableInterval() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:605:1: ( ruleTableInterval EOF )
+            // InternalTableDSL.g:606:1: ruleTableInterval EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntervalRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableInterval();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntervalRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableInterval"
+
+
+    // $ANTLR start "ruleTableInterval"
+    // InternalTableDSL.g:613:1: ruleTableInterval : ( ( rule__TableInterval__Alternatives ) ) ;
+    public final void ruleTableInterval() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:617:2: ( ( ( rule__TableInterval__Alternatives ) ) )
+            // InternalTableDSL.g:618:2: ( ( rule__TableInterval__Alternatives ) )
+            {
+            // InternalTableDSL.g:618:2: ( ( rule__TableInterval__Alternatives ) )
+            // InternalTableDSL.g:619:3: ( rule__TableInterval__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntervalAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:620:3: ( rule__TableInterval__Alternatives )
+            // InternalTableDSL.g:620:4: rule__TableInterval__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableInterval__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntervalAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableInterval"
+
+
+    // $ANTLR start "entryRuleTableNumberInterval"
+    // InternalTableDSL.g:629:1: entryRuleTableNumberInterval : ruleTableNumberInterval EOF ;
+    public final void entryRuleTableNumberInterval() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:630:1: ( ruleTableNumberInterval EOF )
+            // InternalTableDSL.g:631:1: ruleTableNumberInterval EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberIntervalRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableNumberInterval();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberIntervalRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableNumberInterval"
+
+
+    // $ANTLR start "ruleTableNumberInterval"
+    // InternalTableDSL.g:638:1: ruleTableNumberInterval : ( ( rule__TableNumberInterval__Group__0 ) ) ;
+    public final void ruleTableNumberInterval() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:642:2: ( ( ( rule__TableNumberInterval__Group__0 ) ) )
+            // InternalTableDSL.g:643:2: ( ( rule__TableNumberInterval__Group__0 ) )
+            {
+            // InternalTableDSL.g:643:2: ( ( rule__TableNumberInterval__Group__0 ) )
+            // InternalTableDSL.g:644:3: ( rule__TableNumberInterval__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberIntervalAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:645:3: ( rule__TableNumberInterval__Group__0 )
+            // InternalTableDSL.g:645:4: rule__TableNumberInterval__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableNumberInterval__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberIntervalAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableNumberInterval"
+
+
+    // $ANTLR start "entryRuleTableIntInterval"
+    // InternalTableDSL.g:654:1: entryRuleTableIntInterval : ruleTableIntInterval EOF ;
+    public final void entryRuleTableIntInterval() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:655:1: ( ruleTableIntInterval EOF )
+            // InternalTableDSL.g:656:1: ruleTableIntInterval EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntIntervalRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableIntInterval();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntIntervalRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableIntInterval"
+
+
+    // $ANTLR start "ruleTableIntInterval"
+    // InternalTableDSL.g:663:1: ruleTableIntInterval : ( ( rule__TableIntInterval__Group__0 ) ) ;
+    public final void ruleTableIntInterval() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:667:2: ( ( ( rule__TableIntInterval__Group__0 ) ) )
+            // InternalTableDSL.g:668:2: ( ( rule__TableIntInterval__Group__0 ) )
+            {
+            // InternalTableDSL.g:668:2: ( ( rule__TableIntInterval__Group__0 ) )
+            // InternalTableDSL.g:669:3: ( rule__TableIntInterval__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntIntervalAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:670:3: ( rule__TableIntInterval__Group__0 )
+            // InternalTableDSL.g:670:4: rule__TableIntInterval__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIntInterval__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntIntervalAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableIntInterval"
+
+
+    // $ANTLR start "entryRuleTableDateDayInterval"
+    // InternalTableDSL.g:679:1: entryRuleTableDateDayInterval : ruleTableDateDayInterval EOF ;
+    public final void entryRuleTableDateDayInterval() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:680:1: ( ruleTableDateDayInterval EOF )
+            // InternalTableDSL.g:681:1: ruleTableDateDayInterval EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayIntervalRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableDateDayInterval();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayIntervalRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableDateDayInterval"
+
+
+    // $ANTLR start "ruleTableDateDayInterval"
+    // InternalTableDSL.g:688:1: ruleTableDateDayInterval : ( ( rule__TableDateDayInterval__Group__0 ) ) ;
+    public final void ruleTableDateDayInterval() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:692:2: ( ( ( rule__TableDateDayInterval__Group__0 ) ) )
+            // InternalTableDSL.g:693:2: ( ( rule__TableDateDayInterval__Group__0 ) )
+            {
+            // InternalTableDSL.g:693:2: ( ( rule__TableDateDayInterval__Group__0 ) )
+            // InternalTableDSL.g:694:3: ( rule__TableDateDayInterval__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayIntervalAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:695:3: ( rule__TableDateDayInterval__Group__0 )
+            // InternalTableDSL.g:695:4: rule__TableDateDayInterval__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayInterval__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayIntervalAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableDateDayInterval"
+
+
+    // $ANTLR start "entryRuleTableLookup"
+    // InternalTableDSL.g:704:1: entryRuleTableLookup : ruleTableLookup EOF ;
+    public final void entryRuleTableLookup() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:705:1: ( ruleTableLookup EOF )
+            // InternalTableDSL.g:706:1: ruleTableLookup EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableLookupRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableLookup();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableLookupRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableLookup"
+
+
+    // $ANTLR start "ruleTableLookup"
+    // InternalTableDSL.g:713:1: ruleTableLookup : ( ( rule__TableLookup__Alternatives ) ) ;
+    public final void ruleTableLookup() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:717:2: ( ( ( rule__TableLookup__Alternatives ) ) )
+            // InternalTableDSL.g:718:2: ( ( rule__TableLookup__Alternatives ) )
+            {
+            // InternalTableDSL.g:718:2: ( ( rule__TableLookup__Alternatives ) )
+            // InternalTableDSL.g:719:3: ( rule__TableLookup__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableLookupAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:720:3: ( rule__TableLookup__Alternatives )
+            // InternalTableDSL.g:720:4: rule__TableLookup__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableLookup__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableLookupAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableLookup"
+
+
+    // $ANTLR start "entryRuleTableIntLookup"
+    // InternalTableDSL.g:729:1: entryRuleTableIntLookup : ruleTableIntLookup EOF ;
+    public final void entryRuleTableIntLookup() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:730:1: ( ruleTableIntLookup EOF )
+            // InternalTableDSL.g:731:1: ruleTableIntLookup EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntLookupRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableIntLookup();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntLookupRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableIntLookup"
+
+
+    // $ANTLR start "ruleTableIntLookup"
+    // InternalTableDSL.g:738:1: ruleTableIntLookup : ( ( rule__TableIntLookup__Group__0 ) ) ;
+    public final void ruleTableIntLookup() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:742:2: ( ( ( rule__TableIntLookup__Group__0 ) ) )
+            // InternalTableDSL.g:743:2: ( ( rule__TableIntLookup__Group__0 ) )
+            {
+            // InternalTableDSL.g:743:2: ( ( rule__TableIntLookup__Group__0 ) )
+            // InternalTableDSL.g:744:3: ( rule__TableIntLookup__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntLookupAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:745:3: ( rule__TableIntLookup__Group__0 )
+            // InternalTableDSL.g:745:4: rule__TableIntLookup__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIntLookup__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntLookupAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableIntLookup"
+
+
+    // $ANTLR start "entryRuleTableNumberLookup"
+    // InternalTableDSL.g:754:1: entryRuleTableNumberLookup : ruleTableNumberLookup EOF ;
+    public final void entryRuleTableNumberLookup() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:755:1: ( ruleTableNumberLookup EOF )
+            // InternalTableDSL.g:756:1: ruleTableNumberLookup EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberLookupRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableNumberLookup();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberLookupRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableNumberLookup"
+
+
+    // $ANTLR start "ruleTableNumberLookup"
+    // InternalTableDSL.g:763:1: ruleTableNumberLookup : ( ( rule__TableNumberLookup__Group__0 ) ) ;
+    public final void ruleTableNumberLookup() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:767:2: ( ( ( rule__TableNumberLookup__Group__0 ) ) )
+            // InternalTableDSL.g:768:2: ( ( rule__TableNumberLookup__Group__0 ) )
+            {
+            // InternalTableDSL.g:768:2: ( ( rule__TableNumberLookup__Group__0 ) )
+            // InternalTableDSL.g:769:3: ( rule__TableNumberLookup__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberLookupAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:770:3: ( rule__TableNumberLookup__Group__0 )
+            // InternalTableDSL.g:770:4: rule__TableNumberLookup__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableNumberLookup__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberLookupAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableNumberLookup"
+
+
+    // $ANTLR start "entryRuleTableStringLookup"
+    // InternalTableDSL.g:779:1: entryRuleTableStringLookup : ruleTableStringLookup EOF ;
+    public final void entryRuleTableStringLookup() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:780:1: ( ruleTableStringLookup EOF )
+            // InternalTableDSL.g:781:1: ruleTableStringLookup EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableStringLookupRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableStringLookup();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableStringLookupRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableStringLookup"
+
+
+    // $ANTLR start "ruleTableStringLookup"
+    // InternalTableDSL.g:788:1: ruleTableStringLookup : ( ( rule__TableStringLookup__Group__0 ) ) ;
+    public final void ruleTableStringLookup() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:792:2: ( ( ( rule__TableStringLookup__Group__0 ) ) )
+            // InternalTableDSL.g:793:2: ( ( rule__TableStringLookup__Group__0 ) )
+            {
+            // InternalTableDSL.g:793:2: ( ( rule__TableStringLookup__Group__0 ) )
+            // InternalTableDSL.g:794:3: ( rule__TableStringLookup__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableStringLookupAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:795:3: ( rule__TableStringLookup__Group__0 )
+            // InternalTableDSL.g:795:4: rule__TableStringLookup__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableStringLookup__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableStringLookupAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableStringLookup"
+
+
+    // $ANTLR start "entryRuleTableDateDayLookup"
+    // InternalTableDSL.g:804:1: entryRuleTableDateDayLookup : ruleTableDateDayLookup EOF ;
+    public final void entryRuleTableDateDayLookup() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:805:1: ( ruleTableDateDayLookup EOF )
+            // InternalTableDSL.g:806:1: ruleTableDateDayLookup EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayLookupRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableDateDayLookup();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayLookupRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableDateDayLookup"
+
+
+    // $ANTLR start "ruleTableDateDayLookup"
+    // InternalTableDSL.g:813:1: ruleTableDateDayLookup : ( ( rule__TableDateDayLookup__Group__0 ) ) ;
+    public final void ruleTableDateDayLookup() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:817:2: ( ( ( rule__TableDateDayLookup__Group__0 ) ) )
+            // InternalTableDSL.g:818:2: ( ( rule__TableDateDayLookup__Group__0 ) )
+            {
+            // InternalTableDSL.g:818:2: ( ( rule__TableDateDayLookup__Group__0 ) )
+            // InternalTableDSL.g:819:3: ( rule__TableDateDayLookup__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayLookupAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:820:3: ( rule__TableDateDayLookup__Group__0 )
+            // InternalTableDSL.g:820:4: rule__TableDateDayLookup__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayLookup__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayLookupAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableDateDayLookup"
+
+
+    // $ANTLR start "entryRuleTableDatamart"
+    // InternalTableDSL.g:829:1: entryRuleTableDatamart : ruleTableDatamart EOF ;
+    public final void entryRuleTableDatamart() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:830:1: ( ruleTableDatamart EOF )
+            // InternalTableDSL.g:831:1: ruleTableDatamart EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableDatamart();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableDatamart"
+
+
+    // $ANTLR start "ruleTableDatamart"
+    // InternalTableDSL.g:838:1: ruleTableDatamart : ( ( rule__TableDatamart__Group__0 ) ) ;
+    public final void ruleTableDatamart() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:842:2: ( ( ( rule__TableDatamart__Group__0 ) ) )
+            // InternalTableDSL.g:843:2: ( ( rule__TableDatamart__Group__0 ) )
+            {
+            // InternalTableDSL.g:843:2: ( ( rule__TableDatamart__Group__0 ) )
+            // InternalTableDSL.g:844:3: ( rule__TableDatamart__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:845:3: ( rule__TableDatamart__Group__0 )
+            // InternalTableDSL.g:845:4: rule__TableDatamart__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDatamart__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableDatamart"
+
+
+    // $ANTLR start "entryRuleTableElement"
+    // InternalTableDSL.g:854:1: entryRuleTableElement : ruleTableElement EOF ;
+    public final void entryRuleTableElement() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:855:1: ( ruleTableElement EOF )
+            // InternalTableDSL.g:856:1: ruleTableElement EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableElementRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableElementRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableElement"
+
+
+    // $ANTLR start "ruleTableElement"
+    // InternalTableDSL.g:863:1: ruleTableElement : ( ruleTableAxis ) ;
+    public final void ruleTableElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:867:2: ( ( ruleTableAxis ) )
+            // InternalTableDSL.g:868:2: ( ruleTableAxis )
+            {
+            // InternalTableDSL.g:868:2: ( ruleTableAxis )
+            // InternalTableDSL.g:869:3: ruleTableAxis
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableElementAccess().getTableAxisParserRuleCall()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableAxis();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableElementAccess().getTableAxisParserRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableElement"
+
+
+    // $ANTLR start "entryRuleTableEvent"
+    // InternalTableDSL.g:879:1: entryRuleTableEvent : ruleTableEvent EOF ;
+    public final void entryRuleTableEvent() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:880:1: ( ruleTableEvent EOF )
+            // InternalTableDSL.g:881:1: ruleTableEvent EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableEventRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableEvent();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableEventRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableEvent"
+
+
+    // $ANTLR start "ruleTableEvent"
+    // InternalTableDSL.g:888:1: ruleTableEvent : ( ( rule__TableEvent__SourceAssignment ) ) ;
+    public final void ruleTableEvent() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:892:2: ( ( ( rule__TableEvent__SourceAssignment ) ) )
+            // InternalTableDSL.g:893:2: ( ( rule__TableEvent__SourceAssignment ) )
+            {
+            // InternalTableDSL.g:893:2: ( ( rule__TableEvent__SourceAssignment ) )
+            // InternalTableDSL.g:894:3: ( rule__TableEvent__SourceAssignment )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableEventAccess().getSourceAssignment()); 
+            }
+            // InternalTableDSL.g:895:3: ( rule__TableEvent__SourceAssignment )
+            // InternalTableDSL.g:895:4: rule__TableEvent__SourceAssignment
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableEvent__SourceAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableEventAccess().getSourceAssignment()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableEvent"
+
+
+    // $ANTLR start "entryRuleTableAxis"
+    // InternalTableDSL.g:904:1: entryRuleTableAxis : ruleTableAxis EOF ;
+    public final void entryRuleTableAxis() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:905:1: ( ruleTableAxis EOF )
+            // InternalTableDSL.g:906:1: ruleTableAxis EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableAxis();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableAxis"
+
+
+    // $ANTLR start "ruleTableAxis"
+    // InternalTableDSL.g:913:1: ruleTableAxis : ( ( rule__TableAxis__Group__0 ) ) ;
+    public final void ruleTableAxis() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:917:2: ( ( ( rule__TableAxis__Group__0 ) ) )
+            // InternalTableDSL.g:918:2: ( ( rule__TableAxis__Group__0 ) )
+            {
+            // InternalTableDSL.g:918:2: ( ( rule__TableAxis__Group__0 ) )
+            // InternalTableDSL.g:919:3: ( rule__TableAxis__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:920:3: ( rule__TableAxis__Group__0 )
+            // InternalTableDSL.g:920:4: rule__TableAxis__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableAxis"
+
+
+    // $ANTLR start "entryRuleTableRangeElement"
+    // InternalTableDSL.g:929:1: entryRuleTableRangeElement : ruleTableRangeElement EOF ;
+    public final void entryRuleTableRangeElement() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:930:1: ( ruleTableRangeElement EOF )
+            // InternalTableDSL.g:931:1: ruleTableRangeElement EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableRangeElementRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableRangeElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableRangeElementRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableRangeElement"
+
+
+    // $ANTLR start "ruleTableRangeElement"
+    // InternalTableDSL.g:938:1: ruleTableRangeElement : ( ( rule__TableRangeElement__Alternatives ) ) ;
+    public final void ruleTableRangeElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:942:2: ( ( ( rule__TableRangeElement__Alternatives ) ) )
+            // InternalTableDSL.g:943:2: ( ( rule__TableRangeElement__Alternatives ) )
+            {
+            // InternalTableDSL.g:943:2: ( ( rule__TableRangeElement__Alternatives ) )
+            // InternalTableDSL.g:944:3: ( rule__TableRangeElement__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableRangeElementAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:945:3: ( rule__TableRangeElement__Alternatives )
+            // InternalTableDSL.g:945:4: rule__TableRangeElement__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableRangeElement__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableRangeElementAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableRangeElement"
+
+
+    // $ANTLR start "entryRuleTableTextColor"
+    // InternalTableDSL.g:954:1: entryRuleTableTextColor : ruleTableTextColor EOF ;
+    public final void entryRuleTableTextColor() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:955:1: ( ruleTableTextColor EOF )
+            // InternalTableDSL.g:956:1: ruleTableTextColor EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTextColorRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableTextColor();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTextColorRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableTextColor"
+
+
+    // $ANTLR start "ruleTableTextColor"
+    // InternalTableDSL.g:963:1: ruleTableTextColor : ( ( rule__TableTextColor__Group__0 ) ) ;
+    public final void ruleTableTextColor() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:967:2: ( ( ( rule__TableTextColor__Group__0 ) ) )
+            // InternalTableDSL.g:968:2: ( ( rule__TableTextColor__Group__0 ) )
+            {
+            // InternalTableDSL.g:968:2: ( ( rule__TableTextColor__Group__0 ) )
+            // InternalTableDSL.g:969:3: ( rule__TableTextColor__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTextColorAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:970:3: ( rule__TableTextColor__Group__0 )
+            // InternalTableDSL.g:970:4: rule__TableTextColor__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTextColor__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTextColorAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableTextColor"
+
+
+    // $ANTLR start "entryRuleTableCellColor"
+    // InternalTableDSL.g:979:1: entryRuleTableCellColor : ruleTableCellColor EOF ;
+    public final void entryRuleTableCellColor() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:980:1: ( ruleTableCellColor EOF )
+            // InternalTableDSL.g:981:1: ruleTableCellColor EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableCellColorRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableCellColor();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableCellColorRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableCellColor"
+
+
+    // $ANTLR start "ruleTableCellColor"
+    // InternalTableDSL.g:988:1: ruleTableCellColor : ( ( rule__TableCellColor__Group__0 ) ) ;
+    public final void ruleTableCellColor() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:992:2: ( ( ( rule__TableCellColor__Group__0 ) ) )
+            // InternalTableDSL.g:993:2: ( ( rule__TableCellColor__Group__0 ) )
+            {
+            // InternalTableDSL.g:993:2: ( ( rule__TableCellColor__Group__0 ) )
+            // InternalTableDSL.g:994:3: ( rule__TableCellColor__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableCellColorAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:995:3: ( rule__TableCellColor__Group__0 )
+            // InternalTableDSL.g:995:4: rule__TableCellColor__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableCellColor__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableCellColorAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableCellColor"
+
+
+    // $ANTLR start "entryRuleTableIcon"
+    // InternalTableDSL.g:1004:1: entryRuleTableIcon : ruleTableIcon EOF ;
+    public final void entryRuleTableIcon() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1005:1: ( ruleTableIcon EOF )
+            // InternalTableDSL.g:1006:1: ruleTableIcon EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIconRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableIcon();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIconRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableIcon"
+
+
+    // $ANTLR start "ruleTableIcon"
+    // InternalTableDSL.g:1013:1: ruleTableIcon : ( ( rule__TableIcon__Group__0 ) ) ;
+    public final void ruleTableIcon() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1017:2: ( ( ( rule__TableIcon__Group__0 ) ) )
+            // InternalTableDSL.g:1018:2: ( ( rule__TableIcon__Group__0 ) )
+            {
+            // InternalTableDSL.g:1018:2: ( ( rule__TableIcon__Group__0 ) )
+            // InternalTableDSL.g:1019:3: ( rule__TableIcon__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIconAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1020:3: ( rule__TableIcon__Group__0 )
+            // InternalTableDSL.g:1020:4: rule__TableIcon__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIcon__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIconAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableIcon"
+
+
+    // $ANTLR start "entryRuleTableTrend"
+    // InternalTableDSL.g:1029:1: entryRuleTableTrend : ruleTableTrend EOF ;
+    public final void entryRuleTableTrend() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1030:1: ( ruleTableTrend EOF )
+            // InternalTableDSL.g:1031:1: ruleTableTrend EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTrendRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableTrend();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTrendRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableTrend"
+
+
+    // $ANTLR start "ruleTableTrend"
+    // InternalTableDSL.g:1038:1: ruleTableTrend : ( ( rule__TableTrend__Group__0 ) ) ;
+    public final void ruleTableTrend() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1042:2: ( ( ( rule__TableTrend__Group__0 ) ) )
+            // InternalTableDSL.g:1043:2: ( ( rule__TableTrend__Group__0 ) )
+            {
+            // InternalTableDSL.g:1043:2: ( ( rule__TableTrend__Group__0 ) )
+            // InternalTableDSL.g:1044:3: ( rule__TableTrend__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTrendAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1045:3: ( rule__TableTrend__Group__0 )
+            // InternalTableDSL.g:1045:4: rule__TableTrend__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTrend__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTrendAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableTrend"
+
+
+    // $ANTLR start "entryRuleTableTooltip"
+    // InternalTableDSL.g:1054:1: entryRuleTableTooltip : ruleTableTooltip EOF ;
+    public final void entryRuleTableTooltip() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1055:1: ( ruleTableTooltip EOF )
+            // InternalTableDSL.g:1056:1: ruleTableTooltip EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableTooltip();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableTooltip"
+
+
+    // $ANTLR start "ruleTableTooltip"
+    // InternalTableDSL.g:1063:1: ruleTableTooltip : ( ( rule__TableTooltip__Group__0 ) ) ;
+    public final void ruleTableTooltip() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1067:2: ( ( ( rule__TableTooltip__Group__0 ) ) )
+            // InternalTableDSL.g:1068:2: ( ( rule__TableTooltip__Group__0 ) )
+            {
+            // InternalTableDSL.g:1068:2: ( ( rule__TableTooltip__Group__0 ) )
+            // InternalTableDSL.g:1069:3: ( rule__TableTooltip__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1070:3: ( rule__TableTooltip__Group__0 )
+            // InternalTableDSL.g:1070:4: rule__TableTooltip__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTooltip__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableTooltip"
+
+
+    // $ANTLR start "entryRuleTableGrid"
+    // InternalTableDSL.g:1079:1: entryRuleTableGrid : ruleTableGrid EOF ;
+    public final void entryRuleTableGrid() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1080:1: ( ruleTableGrid EOF )
+            // InternalTableDSL.g:1081:1: ruleTableGrid EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableGrid();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableGrid"
+
+
+    // $ANTLR start "ruleTableGrid"
+    // InternalTableDSL.g:1088:1: ruleTableGrid : ( ( rule__TableGrid__Group__0 ) ) ;
+    public final void ruleTableGrid() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1092:2: ( ( ( rule__TableGrid__Group__0 ) ) )
+            // InternalTableDSL.g:1093:2: ( ( rule__TableGrid__Group__0 ) )
+            {
+            // InternalTableDSL.g:1093:2: ( ( rule__TableGrid__Group__0 ) )
+            // InternalTableDSL.g:1094:3: ( rule__TableGrid__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1095:3: ( rule__TableGrid__Group__0 )
+            // InternalTableDSL.g:1095:4: rule__TableGrid__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableGrid"
+
+
+    // $ANTLR start "entryRuleProperty"
+    // InternalTableDSL.g:1104:1: entryRuleProperty : ruleProperty EOF ;
+    public final void entryRuleProperty() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1105:1: ( ruleProperty EOF )
+            // InternalTableDSL.g:1106:1: ruleProperty EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleProperty();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleProperty"
+
+
+    // $ANTLR start "ruleProperty"
+    // InternalTableDSL.g:1113:1: ruleProperty : ( ( rule__Property__Group__0 ) ) ;
+    public final void ruleProperty() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1117:2: ( ( ( rule__Property__Group__0 ) ) )
+            // InternalTableDSL.g:1118:2: ( ( rule__Property__Group__0 ) )
+            {
+            // InternalTableDSL.g:1118:2: ( ( rule__Property__Group__0 ) )
+            // InternalTableDSL.g:1119:3: ( rule__Property__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1120:3: ( rule__Property__Group__0 )
+            // InternalTableDSL.g:1120:4: rule__Property__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Property__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleProperty"
+
+
+    // $ANTLR start "entryRuleTableDtoDatasource"
+    // InternalTableDSL.g:1129:1: entryRuleTableDtoDatasource : ruleTableDtoDatasource EOF ;
+    public final void entryRuleTableDtoDatasource() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1130:1: ( ruleTableDtoDatasource EOF )
+            // InternalTableDSL.g:1131:1: ruleTableDtoDatasource EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTableDtoDatasource();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTableDtoDatasource"
+
+
+    // $ANTLR start "ruleTableDtoDatasource"
+    // InternalTableDSL.g:1138:1: ruleTableDtoDatasource : ( ( rule__TableDtoDatasource__Group__0 ) ) ;
+    public final void ruleTableDtoDatasource() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1142:2: ( ( ( rule__TableDtoDatasource__Group__0 ) ) )
+            // InternalTableDSL.g:1143:2: ( ( rule__TableDtoDatasource__Group__0 ) )
+            {
+            // InternalTableDSL.g:1143:2: ( ( rule__TableDtoDatasource__Group__0 ) )
+            // InternalTableDSL.g:1144:3: ( rule__TableDtoDatasource__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1145:3: ( rule__TableDtoDatasource__Group__0 )
+            // InternalTableDSL.g:1145:4: rule__TableDtoDatasource__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDtoDatasource__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTableDtoDatasource"
+
+
+    // $ANTLR start "entryRuleNestedField"
+    // InternalTableDSL.g:1154:1: entryRuleNestedField : ruleNestedField EOF ;
+    public final void entryRuleNestedField() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1155:1: ( ruleNestedField EOF )
+            // InternalTableDSL.g:1156:1: ruleNestedField EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedFieldRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedFieldRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNestedField"
+
+
+    // $ANTLR start "ruleNestedField"
+    // InternalTableDSL.g:1163:1: ruleNestedField : ( ( rule__NestedField__Group__0 ) ) ;
+    public final void ruleNestedField() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1167:2: ( ( ( rule__NestedField__Group__0 ) ) )
+            // InternalTableDSL.g:1168:2: ( ( rule__NestedField__Group__0 ) )
+            {
+            // InternalTableDSL.g:1168:2: ( ( rule__NestedField__Group__0 ) )
+            // InternalTableDSL.g:1169:3: ( rule__NestedField__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedFieldAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1170:3: ( rule__NestedField__Group__0 )
+            // InternalTableDSL.g:1170:4: rule__NestedField__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__NestedField__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedFieldAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNestedField"
+
+
+    // $ANTLR start "entryRuleNestedPath"
+    // InternalTableDSL.g:1179:1: entryRuleNestedPath : ruleNestedPath EOF ;
+    public final void entryRuleNestedPath() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1180:1: ( ruleNestedPath EOF )
+            // InternalTableDSL.g:1181:1: ruleNestedPath EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedPathRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleNestedPath();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedPathRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNestedPath"
+
+
+    // $ANTLR start "ruleNestedPath"
+    // InternalTableDSL.g:1188:1: ruleNestedPath : ( ( rule__NestedPath__Group__0 ) ) ;
+    public final void ruleNestedPath() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1192:2: ( ( ( rule__NestedPath__Group__0 ) ) )
+            // InternalTableDSL.g:1193:2: ( ( rule__NestedPath__Group__0 ) )
+            {
+            // InternalTableDSL.g:1193:2: ( ( rule__NestedPath__Group__0 ) )
+            // InternalTableDSL.g:1194:3: ( rule__NestedPath__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedPathAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1195:3: ( rule__NestedPath__Group__0 )
+            // InternalTableDSL.g:1195:4: rule__NestedPath__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__NestedPath__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedPathAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNestedPath"
+
+
+    // $ANTLR start "entryRulePropertyStyle"
+    // InternalTableDSL.g:1204:1: entryRulePropertyStyle : rulePropertyStyle EOF ;
+    public final void entryRulePropertyStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1205:1: ( rulePropertyStyle EOF )
+            // InternalTableDSL.g:1206:1: rulePropertyStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyStyle"
+
+
+    // $ANTLR start "rulePropertyStyle"
+    // InternalTableDSL.g:1213:1: rulePropertyStyle : ( ( rule__PropertyStyle__Alternatives ) ) ;
+    public final void rulePropertyStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1217:2: ( ( ( rule__PropertyStyle__Alternatives ) ) )
+            // InternalTableDSL.g:1218:2: ( ( rule__PropertyStyle__Alternatives ) )
+            {
+            // InternalTableDSL.g:1218:2: ( ( rule__PropertyStyle__Alternatives ) )
+            // InternalTableDSL.g:1219:3: ( rule__PropertyStyle__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyStyleAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:1220:3: ( rule__PropertyStyle__Alternatives )
+            // InternalTableDSL.g:1220:4: rule__PropertyStyle__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyStyle__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyStyleAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyStyle"
+
+
+    // $ANTLR start "entryRulePropertyButtonStyle"
+    // InternalTableDSL.g:1229:1: entryRulePropertyButtonStyle : rulePropertyButtonStyle EOF ;
+    public final void entryRulePropertyButtonStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1230:1: ( rulePropertyButtonStyle EOF )
+            // InternalTableDSL.g:1231:1: rulePropertyButtonStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyButtonStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyButtonStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyButtonStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyButtonStyle"
+
+
+    // $ANTLR start "rulePropertyButtonStyle"
+    // InternalTableDSL.g:1238:1: rulePropertyButtonStyle : ( ( rule__PropertyButtonStyle__Group__0 ) ) ;
+    public final void rulePropertyButtonStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1242:2: ( ( ( rule__PropertyButtonStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1243:2: ( ( rule__PropertyButtonStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1243:2: ( ( rule__PropertyButtonStyle__Group__0 ) )
+            // InternalTableDSL.g:1244:3: ( rule__PropertyButtonStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyButtonStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1245:3: ( rule__PropertyButtonStyle__Group__0 )
+            // InternalTableDSL.g:1245:4: rule__PropertyButtonStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyButtonStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyButtonStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyButtonStyle"
+
+
+    // $ANTLR start "entryRulePropertyHtmlStyle"
+    // InternalTableDSL.g:1254:1: entryRulePropertyHtmlStyle : rulePropertyHtmlStyle EOF ;
+    public final void entryRulePropertyHtmlStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1255:1: ( rulePropertyHtmlStyle EOF )
+            // InternalTableDSL.g:1256:1: rulePropertyHtmlStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyHtmlStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyHtmlStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyHtmlStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyHtmlStyle"
+
+
+    // $ANTLR start "rulePropertyHtmlStyle"
+    // InternalTableDSL.g:1263:1: rulePropertyHtmlStyle : ( ( rule__PropertyHtmlStyle__Group__0 ) ) ;
+    public final void rulePropertyHtmlStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1267:2: ( ( ( rule__PropertyHtmlStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1268:2: ( ( rule__PropertyHtmlStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1268:2: ( ( rule__PropertyHtmlStyle__Group__0 ) )
+            // InternalTableDSL.g:1269:3: ( rule__PropertyHtmlStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyHtmlStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1270:3: ( rule__PropertyHtmlStyle__Group__0 )
+            // InternalTableDSL.g:1270:4: rule__PropertyHtmlStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyHtmlStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyHtmlStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyHtmlStyle"
+
+
+    // $ANTLR start "entryRulePropertyBooleanStyle"
+    // InternalTableDSL.g:1279:1: entryRulePropertyBooleanStyle : rulePropertyBooleanStyle EOF ;
+    public final void entryRulePropertyBooleanStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1280:1: ( rulePropertyBooleanStyle EOF )
+            // InternalTableDSL.g:1281:1: rulePropertyBooleanStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyBooleanStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyBooleanStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyBooleanStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyBooleanStyle"
+
+
+    // $ANTLR start "rulePropertyBooleanStyle"
+    // InternalTableDSL.g:1288:1: rulePropertyBooleanStyle : ( ( rule__PropertyBooleanStyle__Group__0 ) ) ;
+    public final void rulePropertyBooleanStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1292:2: ( ( ( rule__PropertyBooleanStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1293:2: ( ( rule__PropertyBooleanStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1293:2: ( ( rule__PropertyBooleanStyle__Group__0 ) )
+            // InternalTableDSL.g:1294:3: ( rule__PropertyBooleanStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyBooleanStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1295:3: ( rule__PropertyBooleanStyle__Group__0 )
+            // InternalTableDSL.g:1295:4: rule__PropertyBooleanStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyBooleanStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyBooleanStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyBooleanStyle"
+
+
+    // $ANTLR start "entryRulePropertyDateStyle"
+    // InternalTableDSL.g:1304:1: entryRulePropertyDateStyle : rulePropertyDateStyle EOF ;
+    public final void entryRulePropertyDateStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1305:1: ( rulePropertyDateStyle EOF )
+            // InternalTableDSL.g:1306:1: rulePropertyDateStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyDateStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyDateStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyDateStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyDateStyle"
+
+
+    // $ANTLR start "rulePropertyDateStyle"
+    // InternalTableDSL.g:1313:1: rulePropertyDateStyle : ( ( rule__PropertyDateStyle__Group__0 ) ) ;
+    public final void rulePropertyDateStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1317:2: ( ( ( rule__PropertyDateStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1318:2: ( ( rule__PropertyDateStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1318:2: ( ( rule__PropertyDateStyle__Group__0 ) )
+            // InternalTableDSL.g:1319:3: ( rule__PropertyDateStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyDateStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1320:3: ( rule__PropertyDateStyle__Group__0 )
+            // InternalTableDSL.g:1320:4: rule__PropertyDateStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyDateStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyDateStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyDateStyle"
+
+
+    // $ANTLR start "entryRulePropertyNumberStyle"
+    // InternalTableDSL.g:1329:1: entryRulePropertyNumberStyle : rulePropertyNumberStyle EOF ;
+    public final void entryRulePropertyNumberStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1330:1: ( rulePropertyNumberStyle EOF )
+            // InternalTableDSL.g:1331:1: rulePropertyNumberStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyNumberStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyNumberStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyNumberStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyNumberStyle"
+
+
+    // $ANTLR start "rulePropertyNumberStyle"
+    // InternalTableDSL.g:1338:1: rulePropertyNumberStyle : ( ( rule__PropertyNumberStyle__Group__0 ) ) ;
+    public final void rulePropertyNumberStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1342:2: ( ( ( rule__PropertyNumberStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1343:2: ( ( rule__PropertyNumberStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1343:2: ( ( rule__PropertyNumberStyle__Group__0 ) )
+            // InternalTableDSL.g:1344:3: ( rule__PropertyNumberStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyNumberStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1345:3: ( rule__PropertyNumberStyle__Group__0 )
+            // InternalTableDSL.g:1345:4: rule__PropertyNumberStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyNumberStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyNumberStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyNumberStyle"
+
+
+    // $ANTLR start "entryRulePropertyProgressbarStyle"
+    // InternalTableDSL.g:1354:1: entryRulePropertyProgressbarStyle : rulePropertyProgressbarStyle EOF ;
+    public final void entryRulePropertyProgressbarStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1355:1: ( rulePropertyProgressbarStyle EOF )
+            // InternalTableDSL.g:1356:1: rulePropertyProgressbarStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyProgressbarStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyProgressbarStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyProgressbarStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyProgressbarStyle"
+
+
+    // $ANTLR start "rulePropertyProgressbarStyle"
+    // InternalTableDSL.g:1363:1: rulePropertyProgressbarStyle : ( ( rule__PropertyProgressbarStyle__Group__0 ) ) ;
+    public final void rulePropertyProgressbarStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1367:2: ( ( ( rule__PropertyProgressbarStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1368:2: ( ( rule__PropertyProgressbarStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1368:2: ( ( rule__PropertyProgressbarStyle__Group__0 ) )
+            // InternalTableDSL.g:1369:3: ( rule__PropertyProgressbarStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyProgressbarStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1370:3: ( rule__PropertyProgressbarStyle__Group__0 )
+            // InternalTableDSL.g:1370:4: rule__PropertyProgressbarStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyProgressbarStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyProgressbarStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyProgressbarStyle"
+
+
+    // $ANTLR start "entryRuleGridPropIndicatorStyle"
+    // InternalTableDSL.g:1379:1: entryRuleGridPropIndicatorStyle : ruleGridPropIndicatorStyle EOF ;
+    public final void entryRuleGridPropIndicatorStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1380:1: ( ruleGridPropIndicatorStyle EOF )
+            // InternalTableDSL.g:1381:1: ruleGridPropIndicatorStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getGridPropIndicatorStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleGridPropIndicatorStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getGridPropIndicatorStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleGridPropIndicatorStyle"
+
+
+    // $ANTLR start "ruleGridPropIndicatorStyle"
+    // InternalTableDSL.g:1388:1: ruleGridPropIndicatorStyle : ( ( rule__GridPropIndicatorStyle__Group__0 ) ) ;
+    public final void ruleGridPropIndicatorStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1392:2: ( ( ( rule__GridPropIndicatorStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1393:2: ( ( rule__GridPropIndicatorStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1393:2: ( ( rule__GridPropIndicatorStyle__Group__0 ) )
+            // InternalTableDSL.g:1394:3: ( rule__GridPropIndicatorStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getGridPropIndicatorStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1395:3: ( rule__GridPropIndicatorStyle__Group__0 )
+            // InternalTableDSL.g:1395:4: rule__GridPropIndicatorStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__GridPropIndicatorStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getGridPropIndicatorStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleGridPropIndicatorStyle"
+
+
+    // $ANTLR start "entryRulePropertyQuantityStyle"
+    // InternalTableDSL.g:1404:1: entryRulePropertyQuantityStyle : rulePropertyQuantityStyle EOF ;
+    public final void entryRulePropertyQuantityStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1405:1: ( rulePropertyQuantityStyle EOF )
+            // InternalTableDSL.g:1406:1: rulePropertyQuantityStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyQuantityStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyQuantityStyle"
+
+
+    // $ANTLR start "rulePropertyQuantityStyle"
+    // InternalTableDSL.g:1413:1: rulePropertyQuantityStyle : ( ( rule__PropertyQuantityStyle__Group__0 ) ) ;
+    public final void rulePropertyQuantityStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1417:2: ( ( ( rule__PropertyQuantityStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1418:2: ( ( rule__PropertyQuantityStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1418:2: ( ( rule__PropertyQuantityStyle__Group__0 ) )
+            // InternalTableDSL.g:1419:3: ( rule__PropertyQuantityStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1420:3: ( rule__PropertyQuantityStyle__Group__0 )
+            // InternalTableDSL.g:1420:4: rule__PropertyQuantityStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyQuantityStyle"
+
+
+    // $ANTLR start "entryRulePropertyPriceStyle"
+    // InternalTableDSL.g:1429:1: entryRulePropertyPriceStyle : rulePropertyPriceStyle EOF ;
+    public final void entryRulePropertyPriceStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1430:1: ( rulePropertyPriceStyle EOF )
+            // InternalTableDSL.g:1431:1: rulePropertyPriceStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyPriceStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyPriceStyle"
+
+
+    // $ANTLR start "rulePropertyPriceStyle"
+    // InternalTableDSL.g:1438:1: rulePropertyPriceStyle : ( ( rule__PropertyPriceStyle__Group__0 ) ) ;
+    public final void rulePropertyPriceStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1442:2: ( ( ( rule__PropertyPriceStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1443:2: ( ( rule__PropertyPriceStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1443:2: ( ( rule__PropertyPriceStyle__Group__0 ) )
+            // InternalTableDSL.g:1444:3: ( rule__PropertyPriceStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1445:3: ( rule__PropertyPriceStyle__Group__0 )
+            // InternalTableDSL.g:1445:4: rule__PropertyPriceStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyPriceStyle"
+
+
+    // $ANTLR start "entryRulePropertyTextStyle"
+    // InternalTableDSL.g:1454:1: entryRulePropertyTextStyle : rulePropertyTextStyle EOF ;
+    public final void entryRulePropertyTextStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1455:1: ( rulePropertyTextStyle EOF )
+            // InternalTableDSL.g:1456:1: rulePropertyTextStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyTextStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyTextStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyTextStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyTextStyle"
+
+
+    // $ANTLR start "rulePropertyTextStyle"
+    // InternalTableDSL.g:1463:1: rulePropertyTextStyle : ( ( rule__PropertyTextStyle__Group__0 ) ) ;
+    public final void rulePropertyTextStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1467:2: ( ( ( rule__PropertyTextStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1468:2: ( ( rule__PropertyTextStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1468:2: ( ( rule__PropertyTextStyle__Group__0 ) )
+            // InternalTableDSL.g:1469:3: ( rule__PropertyTextStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyTextStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1470:3: ( rule__PropertyTextStyle__Group__0 )
+            // InternalTableDSL.g:1470:4: rule__PropertyTextStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyTextStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyTextStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyTextStyle"
+
+
+    // $ANTLR start "entryRulePropertyImageStyle"
+    // InternalTableDSL.g:1479:1: entryRulePropertyImageStyle : rulePropertyImageStyle EOF ;
+    public final void entryRulePropertyImageStyle() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1480:1: ( rulePropertyImageStyle EOF )
+            // InternalTableDSL.g:1481:1: rulePropertyImageStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            rulePropertyImageStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePropertyImageStyle"
+
+
+    // $ANTLR start "rulePropertyImageStyle"
+    // InternalTableDSL.g:1488:1: rulePropertyImageStyle : ( ( rule__PropertyImageStyle__Group__0 ) ) ;
+    public final void rulePropertyImageStyle() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1492:2: ( ( ( rule__PropertyImageStyle__Group__0 ) ) )
+            // InternalTableDSL.g:1493:2: ( ( rule__PropertyImageStyle__Group__0 ) )
+            {
+            // InternalTableDSL.g:1493:2: ( ( rule__PropertyImageStyle__Group__0 ) )
+            // InternalTableDSL.g:1494:3: ( rule__PropertyImageStyle__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1495:3: ( rule__PropertyImageStyle__Group__0 )
+            // InternalTableDSL.g:1495:4: rule__PropertyImageStyle__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyImageStyle__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePropertyImageStyle"
+
+
+    // $ANTLR start "entryRuleStyleConfig"
+    // InternalTableDSL.g:1504:1: entryRuleStyleConfig : ruleStyleConfig EOF ;
+    public final void entryRuleStyleConfig() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1505:1: ( ruleStyleConfig EOF )
+            // InternalTableDSL.g:1506:1: ruleStyleConfig EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStyleConfigRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleStyleConfig();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStyleConfigRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStyleConfig"
+
+
+    // $ANTLR start "ruleStyleConfig"
+    // InternalTableDSL.g:1513:1: ruleStyleConfig : ( ( rule__StyleConfig__Alternatives ) ) ;
+    public final void ruleStyleConfig() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1517:2: ( ( ( rule__StyleConfig__Alternatives ) ) )
+            // InternalTableDSL.g:1518:2: ( ( rule__StyleConfig__Alternatives ) )
+            {
+            // InternalTableDSL.g:1518:2: ( ( rule__StyleConfig__Alternatives ) )
+            // InternalTableDSL.g:1519:3: ( rule__StyleConfig__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStyleConfigAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:1520:3: ( rule__StyleConfig__Alternatives )
+            // InternalTableDSL.g:1520:4: rule__StyleConfig__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__StyleConfig__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStyleConfigAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStyleConfig"
+
+
+    // $ANTLR start "entryRuleNumericToResourceStyleConfig"
+    // InternalTableDSL.g:1529:1: entryRuleNumericToResourceStyleConfig : ruleNumericToResourceStyleConfig EOF ;
+    public final void entryRuleNumericToResourceStyleConfig() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1530:1: ( ruleNumericToResourceStyleConfig EOF )
+            // InternalTableDSL.g:1531:1: ruleNumericToResourceStyleConfig EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumericToResourceStyleConfigRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleNumericToResourceStyleConfig();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumericToResourceStyleConfigRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNumericToResourceStyleConfig"
+
+
+    // $ANTLR start "ruleNumericToResourceStyleConfig"
+    // InternalTableDSL.g:1538:1: ruleNumericToResourceStyleConfig : ( ( rule__NumericToResourceStyleConfig__Group__0 ) ) ;
+    public final void ruleNumericToResourceStyleConfig() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1542:2: ( ( ( rule__NumericToResourceStyleConfig__Group__0 ) ) )
+            // InternalTableDSL.g:1543:2: ( ( rule__NumericToResourceStyleConfig__Group__0 ) )
+            {
+            // InternalTableDSL.g:1543:2: ( ( rule__NumericToResourceStyleConfig__Group__0 ) )
+            // InternalTableDSL.g:1544:3: ( rule__NumericToResourceStyleConfig__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumericToResourceStyleConfigAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1545:3: ( rule__NumericToResourceStyleConfig__Group__0 )
+            // InternalTableDSL.g:1545:4: rule__NumericToResourceStyleConfig__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__NumericToResourceStyleConfig__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumericToResourceStyleConfigAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNumericToResourceStyleConfig"
+
+
+    // $ANTLR start "entryRuleStringToResourceStyleConfig"
+    // InternalTableDSL.g:1554:1: entryRuleStringToResourceStyleConfig : ruleStringToResourceStyleConfig EOF ;
+    public final void entryRuleStringToResourceStyleConfig() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1555:1: ( ruleStringToResourceStyleConfig EOF )
+            // InternalTableDSL.g:1556:1: ruleStringToResourceStyleConfig EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStringToResourceStyleConfigRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleStringToResourceStyleConfig();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStringToResourceStyleConfigRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStringToResourceStyleConfig"
+
+
+    // $ANTLR start "ruleStringToResourceStyleConfig"
+    // InternalTableDSL.g:1563:1: ruleStringToResourceStyleConfig : ( ( rule__StringToResourceStyleConfig__Group__0 ) ) ;
+    public final void ruleStringToResourceStyleConfig() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1567:2: ( ( ( rule__StringToResourceStyleConfig__Group__0 ) ) )
+            // InternalTableDSL.g:1568:2: ( ( rule__StringToResourceStyleConfig__Group__0 ) )
+            {
+            // InternalTableDSL.g:1568:2: ( ( rule__StringToResourceStyleConfig__Group__0 ) )
+            // InternalTableDSL.g:1569:3: ( rule__StringToResourceStyleConfig__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStringToResourceStyleConfigAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1570:3: ( rule__StringToResourceStyleConfig__Group__0 )
+            // InternalTableDSL.g:1570:4: rule__StringToResourceStyleConfig__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringToResourceStyleConfig__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStringToResourceStyleConfigAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStringToResourceStyleConfig"
+
+
+    // $ANTLR start "entryRuleLInt"
+    // InternalTableDSL.g:1579:1: entryRuleLInt : ruleLInt EOF ;
+    public final void entryRuleLInt() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1580:1: ( ruleLInt EOF )
+            // InternalTableDSL.g:1581:1: ruleLInt EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLIntRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleLInt();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLIntRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleLInt"
+
+
+    // $ANTLR start "ruleLInt"
+    // InternalTableDSL.g:1588:1: ruleLInt : ( ( rule__LInt__Group__0 ) ) ;
+    public final void ruleLInt() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1592:2: ( ( ( rule__LInt__Group__0 ) ) )
+            // InternalTableDSL.g:1593:2: ( ( rule__LInt__Group__0 ) )
+            {
+            // InternalTableDSL.g:1593:2: ( ( rule__LInt__Group__0 ) )
+            // InternalTableDSL.g:1594:3: ( rule__LInt__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLIntAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1595:3: ( rule__LInt__Group__0 )
+            // InternalTableDSL.g:1595:4: rule__LInt__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__LInt__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLIntAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleLInt"
+
+
+    // $ANTLR start "entryRuleLDouble"
+    // InternalTableDSL.g:1604:1: entryRuleLDouble : ruleLDouble EOF ;
+    public final void entryRuleLDouble() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1605:1: ( ruleLDouble EOF )
+            // InternalTableDSL.g:1606:1: ruleLDouble EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLDoubleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleLDouble();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLDoubleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleLDouble"
+
+
+    // $ANTLR start "ruleLDouble"
+    // InternalTableDSL.g:1613:1: ruleLDouble : ( ( rule__LDouble__Group__0 ) ) ;
+    public final void ruleLDouble() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1617:2: ( ( ( rule__LDouble__Group__0 ) ) )
+            // InternalTableDSL.g:1618:2: ( ( rule__LDouble__Group__0 ) )
+            {
+            // InternalTableDSL.g:1618:2: ( ( rule__LDouble__Group__0 ) )
+            // InternalTableDSL.g:1619:3: ( rule__LDouble__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLDoubleAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1620:3: ( rule__LDouble__Group__0 )
+            // InternalTableDSL.g:1620:4: rule__LDouble__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__LDouble__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLDoubleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleLDouble"
+
+
+    // $ANTLR start "entryRuleSignedNumber"
+    // InternalTableDSL.g:1629:1: entryRuleSignedNumber : ruleSignedNumber EOF ;
+    public final void entryRuleSignedNumber() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1630:1: ( ruleSignedNumber EOF )
+            // InternalTableDSL.g:1631:1: ruleSignedNumber EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignedNumberRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleSignedNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignedNumberRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSignedNumber"
+
+
+    // $ANTLR start "ruleSignedNumber"
+    // InternalTableDSL.g:1638:1: ruleSignedNumber : ( ( rule__SignedNumber__Group__0 ) ) ;
+    public final void ruleSignedNumber() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1642:2: ( ( ( rule__SignedNumber__Group__0 ) ) )
+            // InternalTableDSL.g:1643:2: ( ( rule__SignedNumber__Group__0 ) )
+            {
+            // InternalTableDSL.g:1643:2: ( ( rule__SignedNumber__Group__0 ) )
+            // InternalTableDSL.g:1644:3: ( rule__SignedNumber__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignedNumberAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1645:3: ( rule__SignedNumber__Group__0 )
+            // InternalTableDSL.g:1645:4: rule__SignedNumber__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignedNumber__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignedNumberAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSignedNumber"
+
+
+    // $ANTLR start "entryRuleSignedInt"
+    // InternalTableDSL.g:1654:1: entryRuleSignedInt : ruleSignedInt EOF ;
+    public final void entryRuleSignedInt() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1655:1: ( ruleSignedInt EOF )
+            // InternalTableDSL.g:1656:1: ruleSignedInt EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignedIntRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleSignedInt();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignedIntRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSignedInt"
+
+
+    // $ANTLR start "ruleSignedInt"
+    // InternalTableDSL.g:1663:1: ruleSignedInt : ( ( rule__SignedInt__Group__0 ) ) ;
+    public final void ruleSignedInt() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1667:2: ( ( ( rule__SignedInt__Group__0 ) ) )
+            // InternalTableDSL.g:1668:2: ( ( rule__SignedInt__Group__0 ) )
+            {
+            // InternalTableDSL.g:1668:2: ( ( rule__SignedInt__Group__0 ) )
+            // InternalTableDSL.g:1669:3: ( rule__SignedInt__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignedIntAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1670:3: ( rule__SignedInt__Group__0 )
+            // InternalTableDSL.g:1670:4: rule__SignedInt__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignedInt__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignedIntAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSignedInt"
+
+
+    // $ANTLR start "entryRuleTRANSLATABLESTRING"
+    // InternalTableDSL.g:1679:1: entryRuleTRANSLATABLESTRING : ruleTRANSLATABLESTRING EOF ;
+    public final void entryRuleTRANSLATABLESTRING() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1680:1: ( ruleTRANSLATABLESTRING EOF )
+            // InternalTableDSL.g:1681:1: ruleTRANSLATABLESTRING EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTRANSLATABLESTRINGRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTRANSLATABLESTRING();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTRANSLATABLESTRINGRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "ruleTRANSLATABLESTRING"
+    // InternalTableDSL.g:1688:1: ruleTRANSLATABLESTRING : ( RULE_STRING ) ;
+    public final void ruleTRANSLATABLESTRING() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1692:2: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:1693:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:1693:2: ( RULE_STRING )
+            // InternalTableDSL.g:1694:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "entryRuleXImportDeclaration"
+    // InternalTableDSL.g:1704:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
+    public final void entryRuleXImportDeclaration() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1705:1: ( ruleXImportDeclaration EOF )
+            // InternalTableDSL.g:1706:1: ruleXImportDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXImportDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXImportDeclaration"
+
+
+    // $ANTLR start "ruleXImportDeclaration"
+    // InternalTableDSL.g:1713:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
+    public final void ruleXImportDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1717:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
+            // InternalTableDSL.g:1718:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            {
+            // InternalTableDSL.g:1718:2: ( ( rule__XImportDeclaration__Group__0 ) )
+            // InternalTableDSL.g:1719:3: ( rule__XImportDeclaration__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1720:3: ( rule__XImportDeclaration__Group__0 )
+            // InternalTableDSL.g:1720:4: rule__XImportDeclaration__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXImportDeclaration"
+
+
+    // $ANTLR start "entryRuleXAnnotation"
+    // InternalTableDSL.g:1729:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
+    public final void entryRuleXAnnotation() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1730:1: ( ruleXAnnotation EOF )
+            // InternalTableDSL.g:1731:1: ruleXAnnotation EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXAnnotation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotation"
+
+
+    // $ANTLR start "ruleXAnnotation"
+    // InternalTableDSL.g:1738:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
+    public final void ruleXAnnotation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1742:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
+            // InternalTableDSL.g:1743:2: ( ( rule__XAnnotation__Group__0 ) )
+            {
+            // InternalTableDSL.g:1743:2: ( ( rule__XAnnotation__Group__0 ) )
+            // InternalTableDSL.g:1744:3: ( rule__XAnnotation__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1745:3: ( rule__XAnnotation__Group__0 )
+            // InternalTableDSL.g:1745:4: rule__XAnnotation__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotation"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValuePair"
+    // InternalTableDSL.g:1754:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
+    public final void entryRuleXAnnotationElementValuePair() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1755:1: ( ruleXAnnotationElementValuePair EOF )
+            // InternalTableDSL.g:1756:1: ruleXAnnotationElementValuePair EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXAnnotationElementValuePair();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "ruleXAnnotationElementValuePair"
+    // InternalTableDSL.g:1763:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
+    public final void ruleXAnnotationElementValuePair() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1767:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
+            // InternalTableDSL.g:1768:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            {
+            // InternalTableDSL.g:1768:2: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // InternalTableDSL.g:1769:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1770:3: ( rule__XAnnotationElementValuePair__Group__0 )
+            // InternalTableDSL.g:1770:4: rule__XAnnotationElementValuePair__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValuePair__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
+    // InternalTableDSL.g:1779:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
+    public final void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1780:1: ( ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalTableDSL.g:1781:1: ruleXAnnotationElementValueOrCommaList EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXAnnotationElementValueOrCommaList();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
+    // InternalTableDSL.g:1788:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
+    public final void ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1792:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
+            // InternalTableDSL.g:1793:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            {
+            // InternalTableDSL.g:1793:2: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // InternalTableDSL.g:1794:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:1795:3: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // InternalTableDSL.g:1795:4: rule__XAnnotationElementValueOrCommaList__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValue"
+    // InternalTableDSL.g:1804:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
+    public final void entryRuleXAnnotationElementValue() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1805:1: ( ruleXAnnotationElementValue EOF )
+            // InternalTableDSL.g:1806:1: ruleXAnnotationElementValue EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXAnnotationElementValue();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValue"
+
+
+    // $ANTLR start "ruleXAnnotationElementValue"
+    // InternalTableDSL.g:1813:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
+    public final void ruleXAnnotationElementValue() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1817:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
+            // InternalTableDSL.g:1818:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            {
+            // InternalTableDSL.g:1818:2: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // InternalTableDSL.g:1819:3: ( rule__XAnnotationElementValue__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:1820:3: ( rule__XAnnotationElementValue__Alternatives )
+            // InternalTableDSL.g:1820:4: rule__XAnnotationElementValue__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationElementValue"
+
+
+    // $ANTLR start "entryRuleXAnnotationOrExpression"
+    // InternalTableDSL.g:1829:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
+    public final void entryRuleXAnnotationOrExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1830:1: ( ruleXAnnotationOrExpression EOF )
+            // InternalTableDSL.g:1831:1: ruleXAnnotationOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationOrExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationOrExpression"
+
+
+    // $ANTLR start "ruleXAnnotationOrExpression"
+    // InternalTableDSL.g:1838:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
+    public final void ruleXAnnotationOrExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1842:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
+            // InternalTableDSL.g:1843:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            {
+            // InternalTableDSL.g:1843:2: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // InternalTableDSL.g:1844:3: ( rule__XAnnotationOrExpression__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:1845:3: ( rule__XAnnotationOrExpression__Alternatives )
+            // InternalTableDSL.g:1845:4: rule__XAnnotationOrExpression__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationOrExpression__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationOrExpression"
+
+
+    // $ANTLR start "entryRuleXExpression"
+    // InternalTableDSL.g:1854:1: entryRuleXExpression : ruleXExpression EOF ;
+    public final void entryRuleXExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1855:1: ( ruleXExpression EOF )
+            // InternalTableDSL.g:1856:1: ruleXExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXExpression"
+
+
+    // $ANTLR start "ruleXExpression"
+    // InternalTableDSL.g:1863:1: ruleXExpression : ( ruleXAssignment ) ;
+    public final void ruleXExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1867:2: ( ( ruleXAssignment ) )
+            // InternalTableDSL.g:1868:2: ( ruleXAssignment )
+            {
+            // InternalTableDSL.g:1868:2: ( ruleXAssignment )
+            // InternalTableDSL.g:1869:3: ruleXAssignment
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXExpression"
+
+
+    // $ANTLR start "entryRuleXAssignment"
+    // InternalTableDSL.g:1879:1: entryRuleXAssignment : ruleXAssignment EOF ;
+    public final void entryRuleXAssignment() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1880:1: ( ruleXAssignment EOF )
+            // InternalTableDSL.g:1881:1: ruleXAssignment EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAssignment"
+
+
+    // $ANTLR start "ruleXAssignment"
+    // InternalTableDSL.g:1888:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
+    public final void ruleXAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1892:2: ( ( ( rule__XAssignment__Alternatives ) ) )
+            // InternalTableDSL.g:1893:2: ( ( rule__XAssignment__Alternatives ) )
+            {
+            // InternalTableDSL.g:1893:2: ( ( rule__XAssignment__Alternatives ) )
+            // InternalTableDSL.g:1894:3: ( rule__XAssignment__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:1895:3: ( rule__XAssignment__Alternatives )
+            // InternalTableDSL.g:1895:4: rule__XAssignment__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAssignment"
+
+
+    // $ANTLR start "entryRuleOpSingleAssign"
+    // InternalTableDSL.g:1904:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
+    public final void entryRuleOpSingleAssign() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1905:1: ( ruleOpSingleAssign EOF )
+            // InternalTableDSL.g:1906:1: ruleOpSingleAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpSingleAssignRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpSingleAssign();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpSingleAssignRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpSingleAssign"
+
+
+    // $ANTLR start "ruleOpSingleAssign"
+    // InternalTableDSL.g:1913:1: ruleOpSingleAssign : ( '=' ) ;
+    public final void ruleOpSingleAssign() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1917:2: ( ( '=' ) )
+            // InternalTableDSL.g:1918:2: ( '=' )
+            {
+            // InternalTableDSL.g:1918:2: ( '=' )
+            // InternalTableDSL.g:1919:3: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
+            }
+            match(input,15,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpSingleAssign"
+
+
+    // $ANTLR start "entryRuleOpMultiAssign"
+    // InternalTableDSL.g:1929:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
+    public final void entryRuleOpMultiAssign() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1930:1: ( ruleOpMultiAssign EOF )
+            // InternalTableDSL.g:1931:1: ruleOpMultiAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpMultiAssign();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpMultiAssign"
+
+
+    // $ANTLR start "ruleOpMultiAssign"
+    // InternalTableDSL.g:1938:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
+    public final void ruleOpMultiAssign() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1942:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
+            // InternalTableDSL.g:1943:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            {
+            // InternalTableDSL.g:1943:2: ( ( rule__OpMultiAssign__Alternatives ) )
+            // InternalTableDSL.g:1944:3: ( rule__OpMultiAssign__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:1945:3: ( rule__OpMultiAssign__Alternatives )
+            // InternalTableDSL.g:1945:4: rule__OpMultiAssign__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpMultiAssign__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpMultiAssign"
+
+
+    // $ANTLR start "entryRuleXOrExpression"
+    // InternalTableDSL.g:1954:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
+    public final void entryRuleXOrExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1955:1: ( ruleXOrExpression EOF )
+            // InternalTableDSL.g:1956:1: ruleXOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXOrExpression"
+
+
+    // $ANTLR start "ruleXOrExpression"
+    // InternalTableDSL.g:1963:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
+    public final void ruleXOrExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1967:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
+            // InternalTableDSL.g:1968:2: ( ( rule__XOrExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:1968:2: ( ( rule__XOrExpression__Group__0 ) )
+            // InternalTableDSL.g:1969:3: ( rule__XOrExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:1970:3: ( rule__XOrExpression__Group__0 )
+            // InternalTableDSL.g:1970:4: rule__XOrExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXOrExpression"
+
+
+    // $ANTLR start "entryRuleOpOr"
+    // InternalTableDSL.g:1979:1: entryRuleOpOr : ruleOpOr EOF ;
+    public final void entryRuleOpOr() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:1980:1: ( ruleOpOr EOF )
+            // InternalTableDSL.g:1981:1: ruleOpOr EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOrRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpOr();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOrRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpOr"
+
+
+    // $ANTLR start "ruleOpOr"
+    // InternalTableDSL.g:1988:1: ruleOpOr : ( '||' ) ;
+    public final void ruleOpOr() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:1992:2: ( ( '||' ) )
+            // InternalTableDSL.g:1993:2: ( '||' )
+            {
+            // InternalTableDSL.g:1993:2: ( '||' )
+            // InternalTableDSL.g:1994:3: '||'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
+            }
+            match(input,16,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpOr"
+
+
+    // $ANTLR start "entryRuleXAndExpression"
+    // InternalTableDSL.g:2004:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
+    public final void entryRuleXAndExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2005:1: ( ruleXAndExpression EOF )
+            // InternalTableDSL.g:2006:1: ruleXAndExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAndExpression"
+
+
+    // $ANTLR start "ruleXAndExpression"
+    // InternalTableDSL.g:2013:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
+    public final void ruleXAndExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2017:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2018:2: ( ( rule__XAndExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2018:2: ( ( rule__XAndExpression__Group__0 ) )
+            // InternalTableDSL.g:2019:3: ( rule__XAndExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2020:3: ( rule__XAndExpression__Group__0 )
+            // InternalTableDSL.g:2020:4: rule__XAndExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAndExpression"
+
+
+    // $ANTLR start "entryRuleOpAnd"
+    // InternalTableDSL.g:2029:1: entryRuleOpAnd : ruleOpAnd EOF ;
+    public final void entryRuleOpAnd() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2030:1: ( ruleOpAnd EOF )
+            // InternalTableDSL.g:2031:1: ruleOpAnd EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAndRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpAnd();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAndRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpAnd"
+
+
+    // $ANTLR start "ruleOpAnd"
+    // InternalTableDSL.g:2038:1: ruleOpAnd : ( '&&' ) ;
+    public final void ruleOpAnd() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2042:2: ( ( '&&' ) )
+            // InternalTableDSL.g:2043:2: ( '&&' )
+            {
+            // InternalTableDSL.g:2043:2: ( '&&' )
+            // InternalTableDSL.g:2044:3: '&&'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
+            }
+            match(input,17,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpAnd"
+
+
+    // $ANTLR start "entryRuleXEqualityExpression"
+    // InternalTableDSL.g:2054:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
+    public final void entryRuleXEqualityExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2055:1: ( ruleXEqualityExpression EOF )
+            // InternalTableDSL.g:2056:1: ruleXEqualityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXEqualityExpression"
+
+
+    // $ANTLR start "ruleXEqualityExpression"
+    // InternalTableDSL.g:2063:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
+    public final void ruleXEqualityExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2067:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2068:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2068:2: ( ( rule__XEqualityExpression__Group__0 ) )
+            // InternalTableDSL.g:2069:3: ( rule__XEqualityExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2070:3: ( rule__XEqualityExpression__Group__0 )
+            // InternalTableDSL.g:2070:4: rule__XEqualityExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXEqualityExpression"
+
+
+    // $ANTLR start "entryRuleOpEquality"
+    // InternalTableDSL.g:2079:1: entryRuleOpEquality : ruleOpEquality EOF ;
+    public final void entryRuleOpEquality() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2080:1: ( ruleOpEquality EOF )
+            // InternalTableDSL.g:2081:1: ruleOpEquality EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpEqualityRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpEquality();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpEqualityRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpEquality"
+
+
+    // $ANTLR start "ruleOpEquality"
+    // InternalTableDSL.g:2088:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
+    public final void ruleOpEquality() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2092:2: ( ( ( rule__OpEquality__Alternatives ) ) )
+            // InternalTableDSL.g:2093:2: ( ( rule__OpEquality__Alternatives ) )
+            {
+            // InternalTableDSL.g:2093:2: ( ( rule__OpEquality__Alternatives ) )
+            // InternalTableDSL.g:2094:3: ( rule__OpEquality__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2095:3: ( rule__OpEquality__Alternatives )
+            // InternalTableDSL.g:2095:4: rule__OpEquality__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpEquality__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpEqualityAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpEquality"
+
+
+    // $ANTLR start "entryRuleXRelationalExpression"
+    // InternalTableDSL.g:2104:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
+    public final void entryRuleXRelationalExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2105:1: ( ruleXRelationalExpression EOF )
+            // InternalTableDSL.g:2106:1: ruleXRelationalExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXRelationalExpression"
+
+
+    // $ANTLR start "ruleXRelationalExpression"
+    // InternalTableDSL.g:2113:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
+    public final void ruleXRelationalExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2117:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2118:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2118:2: ( ( rule__XRelationalExpression__Group__0 ) )
+            // InternalTableDSL.g:2119:3: ( rule__XRelationalExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2120:3: ( rule__XRelationalExpression__Group__0 )
+            // InternalTableDSL.g:2120:4: rule__XRelationalExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXRelationalExpression"
+
+
+    // $ANTLR start "entryRuleOpCompare"
+    // InternalTableDSL.g:2129:1: entryRuleOpCompare : ruleOpCompare EOF ;
+    public final void entryRuleOpCompare() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2130:1: ( ruleOpCompare EOF )
+            // InternalTableDSL.g:2131:1: ruleOpCompare EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpCompareRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpCompare();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpCompareRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpCompare"
+
+
+    // $ANTLR start "ruleOpCompare"
+    // InternalTableDSL.g:2138:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
+    public final void ruleOpCompare() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2142:2: ( ( ( rule__OpCompare__Alternatives ) ) )
+            // InternalTableDSL.g:2143:2: ( ( rule__OpCompare__Alternatives ) )
+            {
+            // InternalTableDSL.g:2143:2: ( ( rule__OpCompare__Alternatives ) )
+            // InternalTableDSL.g:2144:3: ( rule__OpCompare__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpCompareAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2145:3: ( rule__OpCompare__Alternatives )
+            // InternalTableDSL.g:2145:4: rule__OpCompare__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpCompare__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpCompareAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpCompare"
+
+
+    // $ANTLR start "entryRuleXOtherOperatorExpression"
+    // InternalTableDSL.g:2154:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
+    public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2155:1: ( ruleXOtherOperatorExpression EOF )
+            // InternalTableDSL.g:2156:1: ruleXOtherOperatorExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXOtherOperatorExpression"
+
+
+    // $ANTLR start "ruleXOtherOperatorExpression"
+    // InternalTableDSL.g:2163:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
+    public final void ruleXOtherOperatorExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2167:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2168:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2168:2: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // InternalTableDSL.g:2169:3: ( rule__XOtherOperatorExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2170:3: ( rule__XOtherOperatorExpression__Group__0 )
+            // InternalTableDSL.g:2170:4: rule__XOtherOperatorExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXOtherOperatorExpression"
+
+
+    // $ANTLR start "entryRuleOpOther"
+    // InternalTableDSL.g:2179:1: entryRuleOpOther : ruleOpOther EOF ;
+    public final void entryRuleOpOther() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2180:1: ( ruleOpOther EOF )
+            // InternalTableDSL.g:2181:1: ruleOpOther EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpOther();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpOther"
+
+
+    // $ANTLR start "ruleOpOther"
+    // InternalTableDSL.g:2188:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
+    public final void ruleOpOther() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2192:2: ( ( ( rule__OpOther__Alternatives ) ) )
+            // InternalTableDSL.g:2193:2: ( ( rule__OpOther__Alternatives ) )
+            {
+            // InternalTableDSL.g:2193:2: ( ( rule__OpOther__Alternatives ) )
+            // InternalTableDSL.g:2194:3: ( rule__OpOther__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2195:3: ( rule__OpOther__Alternatives )
+            // InternalTableDSL.g:2195:4: rule__OpOther__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpOther"
+
+
+    // $ANTLR start "entryRuleXAdditiveExpression"
+    // InternalTableDSL.g:2204:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
+    public final void entryRuleXAdditiveExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2205:1: ( ruleXAdditiveExpression EOF )
+            // InternalTableDSL.g:2206:1: ruleXAdditiveExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAdditiveExpression"
+
+
+    // $ANTLR start "ruleXAdditiveExpression"
+    // InternalTableDSL.g:2213:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
+    public final void ruleXAdditiveExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2217:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2218:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2218:2: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // InternalTableDSL.g:2219:3: ( rule__XAdditiveExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2220:3: ( rule__XAdditiveExpression__Group__0 )
+            // InternalTableDSL.g:2220:4: rule__XAdditiveExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAdditiveExpression"
+
+
+    // $ANTLR start "entryRuleOpAdd"
+    // InternalTableDSL.g:2229:1: entryRuleOpAdd : ruleOpAdd EOF ;
+    public final void entryRuleOpAdd() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2230:1: ( ruleOpAdd EOF )
+            // InternalTableDSL.g:2231:1: ruleOpAdd EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAddRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpAdd();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAddRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpAdd"
+
+
+    // $ANTLR start "ruleOpAdd"
+    // InternalTableDSL.g:2238:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
+    public final void ruleOpAdd() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2242:2: ( ( ( rule__OpAdd__Alternatives ) ) )
+            // InternalTableDSL.g:2243:2: ( ( rule__OpAdd__Alternatives ) )
+            {
+            // InternalTableDSL.g:2243:2: ( ( rule__OpAdd__Alternatives ) )
+            // InternalTableDSL.g:2244:3: ( rule__OpAdd__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAddAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2245:3: ( rule__OpAdd__Alternatives )
+            // InternalTableDSL.g:2245:4: rule__OpAdd__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpAdd__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAddAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpAdd"
+
+
+    // $ANTLR start "entryRuleXMultiplicativeExpression"
+    // InternalTableDSL.g:2254:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
+    public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2255:1: ( ruleXMultiplicativeExpression EOF )
+            // InternalTableDSL.g:2256:1: ruleXMultiplicativeExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXMultiplicativeExpression"
+
+
+    // $ANTLR start "ruleXMultiplicativeExpression"
+    // InternalTableDSL.g:2263:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
+    public final void ruleXMultiplicativeExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2267:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2268:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2268:2: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // InternalTableDSL.g:2269:3: ( rule__XMultiplicativeExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2270:3: ( rule__XMultiplicativeExpression__Group__0 )
+            // InternalTableDSL.g:2270:4: rule__XMultiplicativeExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXMultiplicativeExpression"
+
+
+    // $ANTLR start "entryRuleOpMulti"
+    // InternalTableDSL.g:2279:1: entryRuleOpMulti : ruleOpMulti EOF ;
+    public final void entryRuleOpMulti() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2280:1: ( ruleOpMulti EOF )
+            // InternalTableDSL.g:2281:1: ruleOpMulti EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpMulti();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpMulti"
+
+
+    // $ANTLR start "ruleOpMulti"
+    // InternalTableDSL.g:2288:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
+    public final void ruleOpMulti() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2292:2: ( ( ( rule__OpMulti__Alternatives ) ) )
+            // InternalTableDSL.g:2293:2: ( ( rule__OpMulti__Alternatives ) )
+            {
+            // InternalTableDSL.g:2293:2: ( ( rule__OpMulti__Alternatives ) )
+            // InternalTableDSL.g:2294:3: ( rule__OpMulti__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2295:3: ( rule__OpMulti__Alternatives )
+            // InternalTableDSL.g:2295:4: rule__OpMulti__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpMulti__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpMulti"
+
+
+    // $ANTLR start "entryRuleXUnaryOperation"
+    // InternalTableDSL.g:2304:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
+    public final void entryRuleXUnaryOperation() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2305:1: ( ruleXUnaryOperation EOF )
+            // InternalTableDSL.g:2306:1: ruleXUnaryOperation EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXUnaryOperation"
+
+
+    // $ANTLR start "ruleXUnaryOperation"
+    // InternalTableDSL.g:2313:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
+    public final void ruleXUnaryOperation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2317:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
+            // InternalTableDSL.g:2318:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            {
+            // InternalTableDSL.g:2318:2: ( ( rule__XUnaryOperation__Alternatives ) )
+            // InternalTableDSL.g:2319:3: ( rule__XUnaryOperation__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2320:3: ( rule__XUnaryOperation__Alternatives )
+            // InternalTableDSL.g:2320:4: rule__XUnaryOperation__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__XUnaryOperation__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXUnaryOperation"
+
+
+    // $ANTLR start "entryRuleOpUnary"
+    // InternalTableDSL.g:2329:1: entryRuleOpUnary : ruleOpUnary EOF ;
+    public final void entryRuleOpUnary() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2330:1: ( ruleOpUnary EOF )
+            // InternalTableDSL.g:2331:1: ruleOpUnary EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpUnaryRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpUnary();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpUnaryRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpUnary"
+
+
+    // $ANTLR start "ruleOpUnary"
+    // InternalTableDSL.g:2338:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
+    public final void ruleOpUnary() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2342:2: ( ( ( rule__OpUnary__Alternatives ) ) )
+            // InternalTableDSL.g:2343:2: ( ( rule__OpUnary__Alternatives ) )
+            {
+            // InternalTableDSL.g:2343:2: ( ( rule__OpUnary__Alternatives ) )
+            // InternalTableDSL.g:2344:3: ( rule__OpUnary__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2345:3: ( rule__OpUnary__Alternatives )
+            // InternalTableDSL.g:2345:4: rule__OpUnary__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpUnary__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpUnaryAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpUnary"
+
+
+    // $ANTLR start "entryRuleXCastedExpression"
+    // InternalTableDSL.g:2354:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
+    public final void entryRuleXCastedExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2355:1: ( ruleXCastedExpression EOF )
+            // InternalTableDSL.g:2356:1: ruleXCastedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXCastedExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCastedExpression"
+
+
+    // $ANTLR start "ruleXCastedExpression"
+    // InternalTableDSL.g:2363:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
+    public final void ruleXCastedExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2367:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2368:2: ( ( rule__XCastedExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2368:2: ( ( rule__XCastedExpression__Group__0 ) )
+            // InternalTableDSL.g:2369:3: ( rule__XCastedExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2370:3: ( rule__XCastedExpression__Group__0 )
+            // InternalTableDSL.g:2370:4: rule__XCastedExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCastedExpression"
+
+
+    // $ANTLR start "entryRuleXPostfixOperation"
+    // InternalTableDSL.g:2379:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
+    public final void entryRuleXPostfixOperation() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2380:1: ( ruleXPostfixOperation EOF )
+            // InternalTableDSL.g:2381:1: ruleXPostfixOperation EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXPostfixOperation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXPostfixOperation"
+
+
+    // $ANTLR start "ruleXPostfixOperation"
+    // InternalTableDSL.g:2388:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
+    public final void ruleXPostfixOperation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2392:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
+            // InternalTableDSL.g:2393:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            {
+            // InternalTableDSL.g:2393:2: ( ( rule__XPostfixOperation__Group__0 ) )
+            // InternalTableDSL.g:2394:3: ( rule__XPostfixOperation__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2395:3: ( rule__XPostfixOperation__Group__0 )
+            // InternalTableDSL.g:2395:4: rule__XPostfixOperation__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XPostfixOperation__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXPostfixOperation"
+
+
+    // $ANTLR start "entryRuleOpPostfix"
+    // InternalTableDSL.g:2404:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
+    public final void entryRuleOpPostfix() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2405:1: ( ruleOpPostfix EOF )
+            // InternalTableDSL.g:2406:1: ruleOpPostfix EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpPostfixRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleOpPostfix();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpPostfixRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpPostfix"
+
+
+    // $ANTLR start "ruleOpPostfix"
+    // InternalTableDSL.g:2413:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
+    public final void ruleOpPostfix() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2417:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
+            // InternalTableDSL.g:2418:2: ( ( rule__OpPostfix__Alternatives ) )
+            {
+            // InternalTableDSL.g:2418:2: ( ( rule__OpPostfix__Alternatives ) )
+            // InternalTableDSL.g:2419:3: ( rule__OpPostfix__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2420:3: ( rule__OpPostfix__Alternatives )
+            // InternalTableDSL.g:2420:4: rule__OpPostfix__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpPostfix__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpPostfixAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpPostfix"
+
+
+    // $ANTLR start "entryRuleXMemberFeatureCall"
+    // InternalTableDSL.g:2429:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
+    public final void entryRuleXMemberFeatureCall() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2430:1: ( ruleXMemberFeatureCall EOF )
+            // InternalTableDSL.g:2431:1: ruleXMemberFeatureCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXMemberFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXMemberFeatureCall"
+
+
+    // $ANTLR start "ruleXMemberFeatureCall"
+    // InternalTableDSL.g:2438:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
+    public final void ruleXMemberFeatureCall() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2442:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
+            // InternalTableDSL.g:2443:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            {
+            // InternalTableDSL.g:2443:2: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // InternalTableDSL.g:2444:3: ( rule__XMemberFeatureCall__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2445:3: ( rule__XMemberFeatureCall__Group__0 )
+            // InternalTableDSL.g:2445:4: rule__XMemberFeatureCall__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXMemberFeatureCall"
+
+
+    // $ANTLR start "entryRuleXPrimaryExpression"
+    // InternalTableDSL.g:2454:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
+    public final void entryRuleXPrimaryExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2455:1: ( ruleXPrimaryExpression EOF )
+            // InternalTableDSL.g:2456:1: ruleXPrimaryExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPrimaryExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXPrimaryExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPrimaryExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXPrimaryExpression"
+
+
+    // $ANTLR start "ruleXPrimaryExpression"
+    // InternalTableDSL.g:2463:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
+    public final void ruleXPrimaryExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2467:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
+            // InternalTableDSL.g:2468:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            {
+            // InternalTableDSL.g:2468:2: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // InternalTableDSL.g:2469:3: ( rule__XPrimaryExpression__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2470:3: ( rule__XPrimaryExpression__Alternatives )
+            // InternalTableDSL.g:2470:4: rule__XPrimaryExpression__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__XPrimaryExpression__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXPrimaryExpression"
+
+
+    // $ANTLR start "entryRuleXLiteral"
+    // InternalTableDSL.g:2479:1: entryRuleXLiteral : ruleXLiteral EOF ;
+    public final void entryRuleXLiteral() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2480:1: ( ruleXLiteral EOF )
+            // InternalTableDSL.g:2481:1: ruleXLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXLiteral"
+
+
+    // $ANTLR start "ruleXLiteral"
+    // InternalTableDSL.g:2488:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
+    public final void ruleXLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2492:2: ( ( ( rule__XLiteral__Alternatives ) ) )
+            // InternalTableDSL.g:2493:2: ( ( rule__XLiteral__Alternatives ) )
+            {
+            // InternalTableDSL.g:2493:2: ( ( rule__XLiteral__Alternatives ) )
+            // InternalTableDSL.g:2494:3: ( rule__XLiteral__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXLiteralAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2495:3: ( rule__XLiteral__Alternatives )
+            // InternalTableDSL.g:2495:4: rule__XLiteral__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__XLiteral__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXLiteralAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXLiteral"
+
+
+    // $ANTLR start "entryRuleXCollectionLiteral"
+    // InternalTableDSL.g:2504:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
+    public final void entryRuleXCollectionLiteral() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2505:1: ( ruleXCollectionLiteral EOF )
+            // InternalTableDSL.g:2506:1: ruleXCollectionLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCollectionLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXCollectionLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCollectionLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCollectionLiteral"
+
+
+    // $ANTLR start "ruleXCollectionLiteral"
+    // InternalTableDSL.g:2513:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
+    public final void ruleXCollectionLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2517:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
+            // InternalTableDSL.g:2518:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            {
+            // InternalTableDSL.g:2518:2: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // InternalTableDSL.g:2519:3: ( rule__XCollectionLiteral__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2520:3: ( rule__XCollectionLiteral__Alternatives )
+            // InternalTableDSL.g:2520:4: rule__XCollectionLiteral__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCollectionLiteral__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCollectionLiteral"
+
+
+    // $ANTLR start "entryRuleXSetLiteral"
+    // InternalTableDSL.g:2529:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
+    public final void entryRuleXSetLiteral() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2530:1: ( ruleXSetLiteral EOF )
+            // InternalTableDSL.g:2531:1: ruleXSetLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXSetLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXSetLiteral"
+
+
+    // $ANTLR start "ruleXSetLiteral"
+    // InternalTableDSL.g:2538:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
+    public final void ruleXSetLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2542:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
+            // InternalTableDSL.g:2543:2: ( ( rule__XSetLiteral__Group__0 ) )
+            {
+            // InternalTableDSL.g:2543:2: ( ( rule__XSetLiteral__Group__0 ) )
+            // InternalTableDSL.g:2544:3: ( rule__XSetLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2545:3: ( rule__XSetLiteral__Group__0 )
+            // InternalTableDSL.g:2545:4: rule__XSetLiteral__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXSetLiteral"
+
+
+    // $ANTLR start "entryRuleXListLiteral"
+    // InternalTableDSL.g:2554:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
+    public final void entryRuleXListLiteral() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2555:1: ( ruleXListLiteral EOF )
+            // InternalTableDSL.g:2556:1: ruleXListLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXListLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXListLiteral"
+
+
+    // $ANTLR start "ruleXListLiteral"
+    // InternalTableDSL.g:2563:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
+    public final void ruleXListLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2567:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
+            // InternalTableDSL.g:2568:2: ( ( rule__XListLiteral__Group__0 ) )
+            {
+            // InternalTableDSL.g:2568:2: ( ( rule__XListLiteral__Group__0 ) )
+            // InternalTableDSL.g:2569:3: ( rule__XListLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2570:3: ( rule__XListLiteral__Group__0 )
+            // InternalTableDSL.g:2570:4: rule__XListLiteral__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXListLiteral"
+
+
+    // $ANTLR start "entryRuleXClosure"
+    // InternalTableDSL.g:2579:1: entryRuleXClosure : ruleXClosure EOF ;
+    public final void entryRuleXClosure() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2580:1: ( ruleXClosure EOF )
+            // InternalTableDSL.g:2581:1: ruleXClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXClosure"
+
+
+    // $ANTLR start "ruleXClosure"
+    // InternalTableDSL.g:2588:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
+    public final void ruleXClosure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2592:2: ( ( ( rule__XClosure__Group__0 ) ) )
+            // InternalTableDSL.g:2593:2: ( ( rule__XClosure__Group__0 ) )
+            {
+            // InternalTableDSL.g:2593:2: ( ( rule__XClosure__Group__0 ) )
+            // InternalTableDSL.g:2594:3: ( rule__XClosure__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2595:3: ( rule__XClosure__Group__0 )
+            // InternalTableDSL.g:2595:4: rule__XClosure__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXClosure"
+
+
+    // $ANTLR start "entryRuleXExpressionInClosure"
+    // InternalTableDSL.g:2604:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
+    public final void entryRuleXExpressionInClosure() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2605:1: ( ruleXExpressionInClosure EOF )
+            // InternalTableDSL.g:2606:1: ruleXExpressionInClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXExpressionInClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXExpressionInClosure"
+
+
+    // $ANTLR start "ruleXExpressionInClosure"
+    // InternalTableDSL.g:2613:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
+    public final void ruleXExpressionInClosure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2617:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
+            // InternalTableDSL.g:2618:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            {
+            // InternalTableDSL.g:2618:2: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // InternalTableDSL.g:2619:3: ( rule__XExpressionInClosure__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2620:3: ( rule__XExpressionInClosure__Group__0 )
+            // InternalTableDSL.g:2620:4: rule__XExpressionInClosure__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XExpressionInClosure__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXExpressionInClosure"
+
+
+    // $ANTLR start "entryRuleXShortClosure"
+    // InternalTableDSL.g:2629:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
+    public final void entryRuleXShortClosure() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2630:1: ( ruleXShortClosure EOF )
+            // InternalTableDSL.g:2631:1: ruleXShortClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXShortClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXShortClosure"
+
+
+    // $ANTLR start "ruleXShortClosure"
+    // InternalTableDSL.g:2638:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
+    public final void ruleXShortClosure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2642:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
+            // InternalTableDSL.g:2643:2: ( ( rule__XShortClosure__Group__0 ) )
+            {
+            // InternalTableDSL.g:2643:2: ( ( rule__XShortClosure__Group__0 ) )
+            // InternalTableDSL.g:2644:3: ( rule__XShortClosure__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2645:3: ( rule__XShortClosure__Group__0 )
+            // InternalTableDSL.g:2645:4: rule__XShortClosure__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXShortClosure"
+
+
+    // $ANTLR start "entryRuleXParenthesizedExpression"
+    // InternalTableDSL.g:2654:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
+    public final void entryRuleXParenthesizedExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2655:1: ( ruleXParenthesizedExpression EOF )
+            // InternalTableDSL.g:2656:1: ruleXParenthesizedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXParenthesizedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXParenthesizedExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXParenthesizedExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXParenthesizedExpression"
+
+
+    // $ANTLR start "ruleXParenthesizedExpression"
+    // InternalTableDSL.g:2663:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
+    public final void ruleXParenthesizedExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2667:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2668:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2668:2: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // InternalTableDSL.g:2669:3: ( rule__XParenthesizedExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2670:3: ( rule__XParenthesizedExpression__Group__0 )
+            // InternalTableDSL.g:2670:4: rule__XParenthesizedExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XParenthesizedExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXParenthesizedExpression"
+
+
+    // $ANTLR start "entryRuleXIfExpression"
+    // InternalTableDSL.g:2679:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
+    public final void entryRuleXIfExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2680:1: ( ruleXIfExpression EOF )
+            // InternalTableDSL.g:2681:1: ruleXIfExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXIfExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXIfExpression"
+
+
+    // $ANTLR start "ruleXIfExpression"
+    // InternalTableDSL.g:2688:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
+    public final void ruleXIfExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2692:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2693:2: ( ( rule__XIfExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2693:2: ( ( rule__XIfExpression__Group__0 ) )
+            // InternalTableDSL.g:2694:3: ( rule__XIfExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2695:3: ( rule__XIfExpression__Group__0 )
+            // InternalTableDSL.g:2695:4: rule__XIfExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXIfExpression"
+
+
+    // $ANTLR start "entryRuleXSwitchExpression"
+    // InternalTableDSL.g:2704:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
+    public final void entryRuleXSwitchExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2705:1: ( ruleXSwitchExpression EOF )
+            // InternalTableDSL.g:2706:1: ruleXSwitchExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXSwitchExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXSwitchExpression"
+
+
+    // $ANTLR start "ruleXSwitchExpression"
+    // InternalTableDSL.g:2713:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
+    public final void ruleXSwitchExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2717:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2718:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2718:2: ( ( rule__XSwitchExpression__Group__0 ) )
+            // InternalTableDSL.g:2719:3: ( rule__XSwitchExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2720:3: ( rule__XSwitchExpression__Group__0 )
+            // InternalTableDSL.g:2720:4: rule__XSwitchExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXSwitchExpression"
+
+
+    // $ANTLR start "entryRuleXCasePart"
+    // InternalTableDSL.g:2729:1: entryRuleXCasePart : ruleXCasePart EOF ;
+    public final void entryRuleXCasePart() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2730:1: ( ruleXCasePart EOF )
+            // InternalTableDSL.g:2731:1: ruleXCasePart EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXCasePart();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCasePart"
+
+
+    // $ANTLR start "ruleXCasePart"
+    // InternalTableDSL.g:2738:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
+    public final void ruleXCasePart() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2742:2: ( ( ( rule__XCasePart__Group__0 ) ) )
+            // InternalTableDSL.g:2743:2: ( ( rule__XCasePart__Group__0 ) )
+            {
+            // InternalTableDSL.g:2743:2: ( ( rule__XCasePart__Group__0 ) )
+            // InternalTableDSL.g:2744:3: ( rule__XCasePart__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2745:3: ( rule__XCasePart__Group__0 )
+            // InternalTableDSL.g:2745:4: rule__XCasePart__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCasePart"
+
+
+    // $ANTLR start "entryRuleXForLoopExpression"
+    // InternalTableDSL.g:2754:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
+    public final void entryRuleXForLoopExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2755:1: ( ruleXForLoopExpression EOF )
+            // InternalTableDSL.g:2756:1: ruleXForLoopExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXForLoopExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXForLoopExpression"
+
+
+    // $ANTLR start "ruleXForLoopExpression"
+    // InternalTableDSL.g:2763:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
+    public final void ruleXForLoopExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2767:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2768:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2768:2: ( ( rule__XForLoopExpression__Group__0 ) )
+            // InternalTableDSL.g:2769:3: ( rule__XForLoopExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2770:3: ( rule__XForLoopExpression__Group__0 )
+            // InternalTableDSL.g:2770:4: rule__XForLoopExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXForLoopExpression"
+
+
+    // $ANTLR start "entryRuleXBasicForLoopExpression"
+    // InternalTableDSL.g:2779:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
+    public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2780:1: ( ruleXBasicForLoopExpression EOF )
+            // InternalTableDSL.g:2781:1: ruleXBasicForLoopExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXBasicForLoopExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXBasicForLoopExpression"
+
+
+    // $ANTLR start "ruleXBasicForLoopExpression"
+    // InternalTableDSL.g:2788:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
+    public final void ruleXBasicForLoopExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2792:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2793:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2793:2: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // InternalTableDSL.g:2794:3: ( rule__XBasicForLoopExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2795:3: ( rule__XBasicForLoopExpression__Group__0 )
+            // InternalTableDSL.g:2795:4: rule__XBasicForLoopExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXBasicForLoopExpression"
+
+
+    // $ANTLR start "entryRuleXWhileExpression"
+    // InternalTableDSL.g:2804:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
+    public final void entryRuleXWhileExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2805:1: ( ruleXWhileExpression EOF )
+            // InternalTableDSL.g:2806:1: ruleXWhileExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXWhileExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXWhileExpression"
+
+
+    // $ANTLR start "ruleXWhileExpression"
+    // InternalTableDSL.g:2813:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
+    public final void ruleXWhileExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2817:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2818:2: ( ( rule__XWhileExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2818:2: ( ( rule__XWhileExpression__Group__0 ) )
+            // InternalTableDSL.g:2819:3: ( rule__XWhileExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2820:3: ( rule__XWhileExpression__Group__0 )
+            // InternalTableDSL.g:2820:4: rule__XWhileExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XWhileExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXWhileExpression"
+
+
+    // $ANTLR start "entryRuleXDoWhileExpression"
+    // InternalTableDSL.g:2829:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
+    public final void entryRuleXDoWhileExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2830:1: ( ruleXDoWhileExpression EOF )
+            // InternalTableDSL.g:2831:1: ruleXDoWhileExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXDoWhileExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXDoWhileExpression"
+
+
+    // $ANTLR start "ruleXDoWhileExpression"
+    // InternalTableDSL.g:2838:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
+    public final void ruleXDoWhileExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2842:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2843:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2843:2: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // InternalTableDSL.g:2844:3: ( rule__XDoWhileExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2845:3: ( rule__XDoWhileExpression__Group__0 )
+            // InternalTableDSL.g:2845:4: rule__XDoWhileExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XDoWhileExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXDoWhileExpression"
+
+
+    // $ANTLR start "entryRuleXBlockExpression"
+    // InternalTableDSL.g:2854:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
+    public final void entryRuleXBlockExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2855:1: ( ruleXBlockExpression EOF )
+            // InternalTableDSL.g:2856:1: ruleXBlockExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXBlockExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXBlockExpression"
+
+
+    // $ANTLR start "ruleXBlockExpression"
+    // InternalTableDSL.g:2863:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
+    public final void ruleXBlockExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2867:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
+            // InternalTableDSL.g:2868:2: ( ( rule__XBlockExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:2868:2: ( ( rule__XBlockExpression__Group__0 ) )
+            // InternalTableDSL.g:2869:3: ( rule__XBlockExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2870:3: ( rule__XBlockExpression__Group__0 )
+            // InternalTableDSL.g:2870:4: rule__XBlockExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBlockExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXBlockExpression"
+
+
+    // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
+    // InternalTableDSL.g:2879:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
+    public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2880:1: ( ruleXExpressionOrVarDeclaration EOF )
+            // InternalTableDSL.g:2881:1: ruleXExpressionOrVarDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXExpressionOrVarDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionOrVarDeclarationRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXExpressionOrVarDeclaration"
+
+
+    // $ANTLR start "ruleXExpressionOrVarDeclaration"
+    // InternalTableDSL.g:2888:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
+    public final void ruleXExpressionOrVarDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2892:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
+            // InternalTableDSL.g:2893:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            {
+            // InternalTableDSL.g:2893:2: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // InternalTableDSL.g:2894:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:2895:3: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // InternalTableDSL.g:2895:4: rule__XExpressionOrVarDeclaration__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__XExpressionOrVarDeclaration__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXExpressionOrVarDeclaration"
+
+
+    // $ANTLR start "entryRuleXVariableDeclaration"
+    // InternalTableDSL.g:2904:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
+    public final void entryRuleXVariableDeclaration() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2905:1: ( ruleXVariableDeclaration EOF )
+            // InternalTableDSL.g:2906:1: ruleXVariableDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXVariableDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXVariableDeclaration"
+
+
+    // $ANTLR start "ruleXVariableDeclaration"
+    // InternalTableDSL.g:2913:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
+    public final void ruleXVariableDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2917:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
+            // InternalTableDSL.g:2918:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            {
+            // InternalTableDSL.g:2918:2: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // InternalTableDSL.g:2919:3: ( rule__XVariableDeclaration__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2920:3: ( rule__XVariableDeclaration__Group__0 )
+            // InternalTableDSL.g:2920:4: rule__XVariableDeclaration__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleJvmFormalParameter"
+    // InternalTableDSL.g:2929:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
+    public final void entryRuleJvmFormalParameter() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2930:1: ( ruleJvmFormalParameter EOF )
+            // InternalTableDSL.g:2931:1: ruleJvmFormalParameter EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmFormalParameterRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmFormalParameterRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmFormalParameter"
+
+
+    // $ANTLR start "ruleJvmFormalParameter"
+    // InternalTableDSL.g:2938:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
+    public final void ruleJvmFormalParameter() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2942:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
+            // InternalTableDSL.g:2943:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            {
+            // InternalTableDSL.g:2943:2: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // InternalTableDSL.g:2944:3: ( rule__JvmFormalParameter__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2945:3: ( rule__JvmFormalParameter__Group__0 )
+            // InternalTableDSL.g:2945:4: rule__JvmFormalParameter__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmFormalParameter__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmFormalParameter"
+
+
+    // $ANTLR start "entryRuleFullJvmFormalParameter"
+    // InternalTableDSL.g:2954:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
+    public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2955:1: ( ruleFullJvmFormalParameter EOF )
+            // InternalTableDSL.g:2956:1: ruleFullJvmFormalParameter EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFullJvmFormalParameterRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleFullJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFullJvmFormalParameterRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFullJvmFormalParameter"
+
+
+    // $ANTLR start "ruleFullJvmFormalParameter"
+    // InternalTableDSL.g:2963:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
+    public final void ruleFullJvmFormalParameter() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2967:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
+            // InternalTableDSL.g:2968:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            {
+            // InternalTableDSL.g:2968:2: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // InternalTableDSL.g:2969:3: ( rule__FullJvmFormalParameter__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2970:3: ( rule__FullJvmFormalParameter__Group__0 )
+            // InternalTableDSL.g:2970:4: rule__FullJvmFormalParameter__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__FullJvmFormalParameter__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFullJvmFormalParameter"
+
+
+    // $ANTLR start "entryRuleXFeatureCall"
+    // InternalTableDSL.g:2979:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
+    public final void entryRuleXFeatureCall() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:2980:1: ( ruleXFeatureCall EOF )
+            // InternalTableDSL.g:2981:1: ruleXFeatureCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXFeatureCall"
+
+
+    // $ANTLR start "ruleXFeatureCall"
+    // InternalTableDSL.g:2988:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
+    public final void ruleXFeatureCall() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:2992:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
+            // InternalTableDSL.g:2993:2: ( ( rule__XFeatureCall__Group__0 ) )
+            {
+            // InternalTableDSL.g:2993:2: ( ( rule__XFeatureCall__Group__0 ) )
+            // InternalTableDSL.g:2994:3: ( rule__XFeatureCall__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:2995:3: ( rule__XFeatureCall__Group__0 )
+            // InternalTableDSL.g:2995:4: rule__XFeatureCall__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXFeatureCall"
+
+
+    // $ANTLR start "entryRuleFeatureCallID"
+    // InternalTableDSL.g:3004:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
+    public final void entryRuleFeatureCallID() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3005:1: ( ruleFeatureCallID EOF )
+            // InternalTableDSL.g:3006:1: ruleFeatureCallID EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFeatureCallIDRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleFeatureCallID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFeatureCallIDRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFeatureCallID"
+
+
+    // $ANTLR start "ruleFeatureCallID"
+    // InternalTableDSL.g:3013:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
+    public final void ruleFeatureCallID() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3017:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
+            // InternalTableDSL.g:3018:2: ( ( rule__FeatureCallID__Alternatives ) )
+            {
+            // InternalTableDSL.g:3018:2: ( ( rule__FeatureCallID__Alternatives ) )
+            // InternalTableDSL.g:3019:3: ( rule__FeatureCallID__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:3020:3: ( rule__FeatureCallID__Alternatives )
+            // InternalTableDSL.g:3020:4: rule__FeatureCallID__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__FeatureCallID__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFeatureCallID"
+
+
+    // $ANTLR start "entryRuleIdOrSuper"
+    // InternalTableDSL.g:3029:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
+    public final void entryRuleIdOrSuper() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3030:1: ( ruleIdOrSuper EOF )
+            // InternalTableDSL.g:3031:1: ruleIdOrSuper EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getIdOrSuperRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleIdOrSuper();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getIdOrSuperRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleIdOrSuper"
+
+
+    // $ANTLR start "ruleIdOrSuper"
+    // InternalTableDSL.g:3038:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
+    public final void ruleIdOrSuper() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3042:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
+            // InternalTableDSL.g:3043:2: ( ( rule__IdOrSuper__Alternatives ) )
+            {
+            // InternalTableDSL.g:3043:2: ( ( rule__IdOrSuper__Alternatives ) )
+            // InternalTableDSL.g:3044:3: ( rule__IdOrSuper__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:3045:3: ( rule__IdOrSuper__Alternatives )
+            // InternalTableDSL.g:3045:4: rule__IdOrSuper__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__IdOrSuper__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIdOrSuper"
+
+
+    // $ANTLR start "entryRuleXConstructorCall"
+    // InternalTableDSL.g:3054:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
+    public final void entryRuleXConstructorCall() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3055:1: ( ruleXConstructorCall EOF )
+            // InternalTableDSL.g:3056:1: ruleXConstructorCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXConstructorCall();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXConstructorCall"
+
+
+    // $ANTLR start "ruleXConstructorCall"
+    // InternalTableDSL.g:3063:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
+    public final void ruleXConstructorCall() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3067:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
+            // InternalTableDSL.g:3068:2: ( ( rule__XConstructorCall__Group__0 ) )
+            {
+            // InternalTableDSL.g:3068:2: ( ( rule__XConstructorCall__Group__0 ) )
+            // InternalTableDSL.g:3069:3: ( rule__XConstructorCall__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3070:3: ( rule__XConstructorCall__Group__0 )
+            // InternalTableDSL.g:3070:4: rule__XConstructorCall__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXConstructorCall"
+
+
+    // $ANTLR start "entryRuleXBooleanLiteral"
+    // InternalTableDSL.g:3079:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
+    public final void entryRuleXBooleanLiteral() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3080:1: ( ruleXBooleanLiteral EOF )
+            // InternalTableDSL.g:3081:1: ruleXBooleanLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBooleanLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXBooleanLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBooleanLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXBooleanLiteral"
+
+
+    // $ANTLR start "ruleXBooleanLiteral"
+    // InternalTableDSL.g:3088:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
+    public final void ruleXBooleanLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3092:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
+            // InternalTableDSL.g:3093:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            {
+            // InternalTableDSL.g:3093:2: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // InternalTableDSL.g:3094:3: ( rule__XBooleanLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3095:3: ( rule__XBooleanLiteral__Group__0 )
+            // InternalTableDSL.g:3095:4: rule__XBooleanLiteral__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBooleanLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXBooleanLiteral"
+
+
+    // $ANTLR start "entryRuleXNullLiteral"
+    // InternalTableDSL.g:3104:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
+    public final void entryRuleXNullLiteral() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3105:1: ( ruleXNullLiteral EOF )
+            // InternalTableDSL.g:3106:1: ruleXNullLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNullLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXNullLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNullLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXNullLiteral"
+
+
+    // $ANTLR start "ruleXNullLiteral"
+    // InternalTableDSL.g:3113:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
+    public final void ruleXNullLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3117:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
+            // InternalTableDSL.g:3118:2: ( ( rule__XNullLiteral__Group__0 ) )
+            {
+            // InternalTableDSL.g:3118:2: ( ( rule__XNullLiteral__Group__0 ) )
+            // InternalTableDSL.g:3119:3: ( rule__XNullLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNullLiteralAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3120:3: ( rule__XNullLiteral__Group__0 )
+            // InternalTableDSL.g:3120:4: rule__XNullLiteral__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XNullLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNullLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXNullLiteral"
+
+
+    // $ANTLR start "entryRuleXNumberLiteral"
+    // InternalTableDSL.g:3129:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
+    public final void entryRuleXNumberLiteral() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3130:1: ( ruleXNumberLiteral EOF )
+            // InternalTableDSL.g:3131:1: ruleXNumberLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNumberLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXNumberLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNumberLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXNumberLiteral"
+
+
+    // $ANTLR start "ruleXNumberLiteral"
+    // InternalTableDSL.g:3138:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
+    public final void ruleXNumberLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3142:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
+            // InternalTableDSL.g:3143:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            {
+            // InternalTableDSL.g:3143:2: ( ( rule__XNumberLiteral__Group__0 ) )
+            // InternalTableDSL.g:3144:3: ( rule__XNumberLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3145:3: ( rule__XNumberLiteral__Group__0 )
+            // InternalTableDSL.g:3145:4: rule__XNumberLiteral__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XNumberLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNumberLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXNumberLiteral"
+
+
+    // $ANTLR start "entryRuleXStringLiteral"
+    // InternalTableDSL.g:3154:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
+    public final void entryRuleXStringLiteral() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3155:1: ( ruleXStringLiteral EOF )
+            // InternalTableDSL.g:3156:1: ruleXStringLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXStringLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXStringLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXStringLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXStringLiteral"
+
+
+    // $ANTLR start "ruleXStringLiteral"
+    // InternalTableDSL.g:3163:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
+    public final void ruleXStringLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3167:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
+            // InternalTableDSL.g:3168:2: ( ( rule__XStringLiteral__Group__0 ) )
+            {
+            // InternalTableDSL.g:3168:2: ( ( rule__XStringLiteral__Group__0 ) )
+            // InternalTableDSL.g:3169:3: ( rule__XStringLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXStringLiteralAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3170:3: ( rule__XStringLiteral__Group__0 )
+            // InternalTableDSL.g:3170:4: rule__XStringLiteral__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XStringLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXStringLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXStringLiteral"
+
+
+    // $ANTLR start "entryRuleXTypeLiteral"
+    // InternalTableDSL.g:3179:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
+    public final void entryRuleXTypeLiteral() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3180:1: ( ruleXTypeLiteral EOF )
+            // InternalTableDSL.g:3181:1: ruleXTypeLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXTypeLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXTypeLiteral"
+
+
+    // $ANTLR start "ruleXTypeLiteral"
+    // InternalTableDSL.g:3188:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
+    public final void ruleXTypeLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3192:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
+            // InternalTableDSL.g:3193:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            {
+            // InternalTableDSL.g:3193:2: ( ( rule__XTypeLiteral__Group__0 ) )
+            // InternalTableDSL.g:3194:3: ( rule__XTypeLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3195:3: ( rule__XTypeLiteral__Group__0 )
+            // InternalTableDSL.g:3195:4: rule__XTypeLiteral__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTypeLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXTypeLiteral"
+
+
+    // $ANTLR start "entryRuleXThrowExpression"
+    // InternalTableDSL.g:3204:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
+    public final void entryRuleXThrowExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3205:1: ( ruleXThrowExpression EOF )
+            // InternalTableDSL.g:3206:1: ruleXThrowExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXThrowExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXThrowExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXThrowExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXThrowExpression"
+
+
+    // $ANTLR start "ruleXThrowExpression"
+    // InternalTableDSL.g:3213:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
+    public final void ruleXThrowExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3217:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
+            // InternalTableDSL.g:3218:2: ( ( rule__XThrowExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:3218:2: ( ( rule__XThrowExpression__Group__0 ) )
+            // InternalTableDSL.g:3219:3: ( rule__XThrowExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3220:3: ( rule__XThrowExpression__Group__0 )
+            // InternalTableDSL.g:3220:4: rule__XThrowExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XThrowExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXThrowExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXThrowExpression"
+
+
+    // $ANTLR start "entryRuleXReturnExpression"
+    // InternalTableDSL.g:3229:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
+    public final void entryRuleXReturnExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3230:1: ( ruleXReturnExpression EOF )
+            // InternalTableDSL.g:3231:1: ruleXReturnExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXReturnExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXReturnExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXReturnExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXReturnExpression"
+
+
+    // $ANTLR start "ruleXReturnExpression"
+    // InternalTableDSL.g:3238:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
+    public final void ruleXReturnExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3242:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
+            // InternalTableDSL.g:3243:2: ( ( rule__XReturnExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:3243:2: ( ( rule__XReturnExpression__Group__0 ) )
+            // InternalTableDSL.g:3244:3: ( rule__XReturnExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3245:3: ( rule__XReturnExpression__Group__0 )
+            // InternalTableDSL.g:3245:4: rule__XReturnExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XReturnExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXReturnExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXReturnExpression"
+
+
+    // $ANTLR start "entryRuleXTryCatchFinallyExpression"
+    // InternalTableDSL.g:3254:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
+    public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3255:1: ( ruleXTryCatchFinallyExpression EOF )
+            // InternalTableDSL.g:3256:1: ruleXTryCatchFinallyExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXTryCatchFinallyExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXTryCatchFinallyExpression"
+
+
+    // $ANTLR start "ruleXTryCatchFinallyExpression"
+    // InternalTableDSL.g:3263:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
+    public final void ruleXTryCatchFinallyExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3267:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
+            // InternalTableDSL.g:3268:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:3268:2: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // InternalTableDSL.g:3269:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3270:3: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // InternalTableDSL.g:3270:4: rule__XTryCatchFinallyExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXTryCatchFinallyExpression"
+
+
+    // $ANTLR start "entryRuleXSynchronizedExpression"
+    // InternalTableDSL.g:3279:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
+    public final void entryRuleXSynchronizedExpression() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3280:1: ( ruleXSynchronizedExpression EOF )
+            // InternalTableDSL.g:3281:1: ruleXSynchronizedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXSynchronizedExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXSynchronizedExpression"
+
+
+    // $ANTLR start "ruleXSynchronizedExpression"
+    // InternalTableDSL.g:3288:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
+    public final void ruleXSynchronizedExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3292:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
+            // InternalTableDSL.g:3293:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            {
+            // InternalTableDSL.g:3293:2: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // InternalTableDSL.g:3294:3: ( rule__XSynchronizedExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3295:3: ( rule__XSynchronizedExpression__Group__0 )
+            // InternalTableDSL.g:3295:4: rule__XSynchronizedExpression__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXSynchronizedExpression"
+
+
+    // $ANTLR start "entryRuleXCatchClause"
+    // InternalTableDSL.g:3304:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
+    public final void entryRuleXCatchClause() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3305:1: ( ruleXCatchClause EOF )
+            // InternalTableDSL.g:3306:1: ruleXCatchClause EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXCatchClause();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCatchClause"
+
+
+    // $ANTLR start "ruleXCatchClause"
+    // InternalTableDSL.g:3313:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
+    public final void ruleXCatchClause() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3317:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
+            // InternalTableDSL.g:3318:2: ( ( rule__XCatchClause__Group__0 ) )
+            {
+            // InternalTableDSL.g:3318:2: ( ( rule__XCatchClause__Group__0 ) )
+            // InternalTableDSL.g:3319:3: ( rule__XCatchClause__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3320:3: ( rule__XCatchClause__Group__0 )
+            // InternalTableDSL.g:3320:4: rule__XCatchClause__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCatchClause__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCatchClause"
+
+
+    // $ANTLR start "entryRuleQualifiedName"
+    // InternalTableDSL.g:3329:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    public final void entryRuleQualifiedName() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3330:1: ( ruleQualifiedName EOF )
+            // InternalTableDSL.g:3331:1: ruleQualifiedName EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleQualifiedName"
+
+
+    // $ANTLR start "ruleQualifiedName"
+    // InternalTableDSL.g:3338:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    public final void ruleQualifiedName() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3342:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalTableDSL.g:3343:2: ( ( rule__QualifiedName__Group__0 ) )
+            {
+            // InternalTableDSL.g:3343:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalTableDSL.g:3344:3: ( rule__QualifiedName__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3345:3: ( rule__QualifiedName__Group__0 )
+            // InternalTableDSL.g:3345:4: rule__QualifiedName__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__QualifiedName__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleQualifiedName"
+
+
+    // $ANTLR start "entryRuleNumber"
+    // InternalTableDSL.g:3354:1: entryRuleNumber : ruleNumber EOF ;
+    public final void entryRuleNumber() throws RecognitionException {
+         
+        	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+        try {
+            // InternalTableDSL.g:3358:1: ( ruleNumber EOF )
+            // InternalTableDSL.g:3359:1: ruleNumber EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumberRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumberRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	myHiddenTokenState.restore();
+
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNumber"
+
+
+    // $ANTLR start "ruleNumber"
+    // InternalTableDSL.g:3369:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
+    public final void ruleNumber() throws RecognitionException {
+
+        		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3374:2: ( ( ( rule__Number__Alternatives ) ) )
+            // InternalTableDSL.g:3375:2: ( ( rule__Number__Alternatives ) )
+            {
+            // InternalTableDSL.g:3375:2: ( ( rule__Number__Alternatives ) )
+            // InternalTableDSL.g:3376:3: ( rule__Number__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumberAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:3377:3: ( rule__Number__Alternatives )
+            // InternalTableDSL.g:3377:4: rule__Number__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Number__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumberAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+            	myHiddenTokenState.restore();
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNumber"
+
+
+    // $ANTLR start "entryRuleJvmTypeReference"
+    // InternalTableDSL.g:3387:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
+    public final void entryRuleJvmTypeReference() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3388:1: ( ruleJvmTypeReference EOF )
+            // InternalTableDSL.g:3389:1: ruleJvmTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmTypeReference"
+
+
+    // $ANTLR start "ruleJvmTypeReference"
+    // InternalTableDSL.g:3396:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
+    public final void ruleJvmTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3400:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
+            // InternalTableDSL.g:3401:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            {
+            // InternalTableDSL.g:3401:2: ( ( rule__JvmTypeReference__Alternatives ) )
+            // InternalTableDSL.g:3402:3: ( rule__JvmTypeReference__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:3403:3: ( rule__JvmTypeReference__Alternatives )
+            // InternalTableDSL.g:3403:4: rule__JvmTypeReference__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmTypeReference__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmTypeReference"
+
+
+    // $ANTLR start "entryRuleArrayBrackets"
+    // InternalTableDSL.g:3412:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
+    public final void entryRuleArrayBrackets() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3413:1: ( ruleArrayBrackets EOF )
+            // InternalTableDSL.g:3414:1: ruleArrayBrackets EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getArrayBracketsRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleArrayBrackets();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getArrayBracketsRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleArrayBrackets"
+
+
+    // $ANTLR start "ruleArrayBrackets"
+    // InternalTableDSL.g:3421:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
+    public final void ruleArrayBrackets() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3425:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
+            // InternalTableDSL.g:3426:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            {
+            // InternalTableDSL.g:3426:2: ( ( rule__ArrayBrackets__Group__0 ) )
+            // InternalTableDSL.g:3427:3: ( rule__ArrayBrackets__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getArrayBracketsAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3428:3: ( rule__ArrayBrackets__Group__0 )
+            // InternalTableDSL.g:3428:4: rule__ArrayBrackets__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ArrayBrackets__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getArrayBracketsAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleArrayBrackets"
+
+
+    // $ANTLR start "entryRuleXFunctionTypeRef"
+    // InternalTableDSL.g:3437:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
+    public final void entryRuleXFunctionTypeRef() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3438:1: ( ruleXFunctionTypeRef EOF )
+            // InternalTableDSL.g:3439:1: ruleXFunctionTypeRef EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXFunctionTypeRef();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXFunctionTypeRef"
+
+
+    // $ANTLR start "ruleXFunctionTypeRef"
+    // InternalTableDSL.g:3446:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
+    public final void ruleXFunctionTypeRef() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3450:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
+            // InternalTableDSL.g:3451:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            {
+            // InternalTableDSL.g:3451:2: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // InternalTableDSL.g:3452:3: ( rule__XFunctionTypeRef__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3453:3: ( rule__XFunctionTypeRef__Group__0 )
+            // InternalTableDSL.g:3453:4: rule__XFunctionTypeRef__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXFunctionTypeRef"
+
+
+    // $ANTLR start "entryRuleJvmParameterizedTypeReference"
+    // InternalTableDSL.g:3462:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
+    public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3463:1: ( ruleJvmParameterizedTypeReference EOF )
+            // InternalTableDSL.g:3464:1: ruleJvmParameterizedTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleJvmParameterizedTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmParameterizedTypeReference"
+
+
+    // $ANTLR start "ruleJvmParameterizedTypeReference"
+    // InternalTableDSL.g:3471:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
+    public final void ruleJvmParameterizedTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3475:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
+            // InternalTableDSL.g:3476:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            {
+            // InternalTableDSL.g:3476:2: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // InternalTableDSL.g:3477:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3478:3: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // InternalTableDSL.g:3478:4: rule__JvmParameterizedTypeReference__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmParameterizedTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmArgumentTypeReference"
+    // InternalTableDSL.g:3487:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
+    public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3488:1: ( ruleJvmArgumentTypeReference EOF )
+            // InternalTableDSL.g:3489:1: ruleJvmArgumentTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmArgumentTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmArgumentTypeReference"
+
+
+    // $ANTLR start "ruleJvmArgumentTypeReference"
+    // InternalTableDSL.g:3496:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
+    public final void ruleJvmArgumentTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3500:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
+            // InternalTableDSL.g:3501:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            {
+            // InternalTableDSL.g:3501:2: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // InternalTableDSL.g:3502:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:3503:3: ( rule__JvmArgumentTypeReference__Alternatives )
+            // InternalTableDSL.g:3503:4: rule__JvmArgumentTypeReference__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmArgumentTypeReference__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmArgumentTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmWildcardTypeReference"
+    // InternalTableDSL.g:3512:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
+    public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3513:1: ( ruleJvmWildcardTypeReference EOF )
+            // InternalTableDSL.g:3514:1: ruleJvmWildcardTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleJvmWildcardTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmWildcardTypeReference"
+
+
+    // $ANTLR start "ruleJvmWildcardTypeReference"
+    // InternalTableDSL.g:3521:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
+    public final void ruleJvmWildcardTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3525:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
+            // InternalTableDSL.g:3526:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            {
+            // InternalTableDSL.g:3526:2: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // InternalTableDSL.g:3527:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3528:3: ( rule__JvmWildcardTypeReference__Group__0 )
+            // InternalTableDSL.g:3528:4: rule__JvmWildcardTypeReference__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmWildcardTypeReference__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmWildcardTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmUpperBound"
+    // InternalTableDSL.g:3537:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
+    public final void entryRuleJvmUpperBound() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3538:1: ( ruleJvmUpperBound EOF )
+            // InternalTableDSL.g:3539:1: ruleJvmUpperBound EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleJvmUpperBound();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmUpperBound"
+
+
+    // $ANTLR start "ruleJvmUpperBound"
+    // InternalTableDSL.g:3546:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
+    public final void ruleJvmUpperBound() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3550:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
+            // InternalTableDSL.g:3551:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            {
+            // InternalTableDSL.g:3551:2: ( ( rule__JvmUpperBound__Group__0 ) )
+            // InternalTableDSL.g:3552:3: ( rule__JvmUpperBound__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3553:3: ( rule__JvmUpperBound__Group__0 )
+            // InternalTableDSL.g:3553:4: rule__JvmUpperBound__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmUpperBound__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmUpperBound"
+
+
+    // $ANTLR start "entryRuleJvmUpperBoundAnded"
+    // InternalTableDSL.g:3562:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
+    public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3563:1: ( ruleJvmUpperBoundAnded EOF )
+            // InternalTableDSL.g:3564:1: ruleJvmUpperBoundAnded EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAndedRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleJvmUpperBoundAnded();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAndedRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmUpperBoundAnded"
+
+
+    // $ANTLR start "ruleJvmUpperBoundAnded"
+    // InternalTableDSL.g:3571:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
+    public final void ruleJvmUpperBoundAnded() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3575:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
+            // InternalTableDSL.g:3576:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            {
+            // InternalTableDSL.g:3576:2: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // InternalTableDSL.g:3577:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3578:3: ( rule__JvmUpperBoundAnded__Group__0 )
+            // InternalTableDSL.g:3578:4: rule__JvmUpperBoundAnded__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmUpperBoundAnded__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmUpperBoundAnded"
+
+
+    // $ANTLR start "entryRuleJvmLowerBound"
+    // InternalTableDSL.g:3587:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
+    public final void entryRuleJvmLowerBound() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3588:1: ( ruleJvmLowerBound EOF )
+            // InternalTableDSL.g:3589:1: ruleJvmLowerBound EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleJvmLowerBound();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmLowerBound"
+
+
+    // $ANTLR start "ruleJvmLowerBound"
+    // InternalTableDSL.g:3596:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
+    public final void ruleJvmLowerBound() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3600:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
+            // InternalTableDSL.g:3601:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            {
+            // InternalTableDSL.g:3601:2: ( ( rule__JvmLowerBound__Group__0 ) )
+            // InternalTableDSL.g:3602:3: ( rule__JvmLowerBound__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3603:3: ( rule__JvmLowerBound__Group__0 )
+            // InternalTableDSL.g:3603:4: rule__JvmLowerBound__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmLowerBound__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmLowerBound"
+
+
+    // $ANTLR start "entryRuleJvmLowerBoundAnded"
+    // InternalTableDSL.g:3612:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
+    public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3613:1: ( ruleJvmLowerBoundAnded EOF )
+            // InternalTableDSL.g:3614:1: ruleJvmLowerBoundAnded EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAndedRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleJvmLowerBoundAnded();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAndedRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmLowerBoundAnded"
+
+
+    // $ANTLR start "ruleJvmLowerBoundAnded"
+    // InternalTableDSL.g:3621:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
+    public final void ruleJvmLowerBoundAnded() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3625:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
+            // InternalTableDSL.g:3626:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            {
+            // InternalTableDSL.g:3626:2: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // InternalTableDSL.g:3627:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3628:3: ( rule__JvmLowerBoundAnded__Group__0 )
+            // InternalTableDSL.g:3628:4: rule__JvmLowerBoundAnded__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmLowerBoundAnded__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmLowerBoundAnded"
+
+
+    // $ANTLR start "entryRuleQualifiedNameWithWildcard"
+    // InternalTableDSL.g:3637:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
+    public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3638:1: ( ruleQualifiedNameWithWildcard EOF )
+            // InternalTableDSL.g:3639:1: ruleQualifiedNameWithWildcard EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameWithWildcardRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleQualifiedNameWithWildcard();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameWithWildcardRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleQualifiedNameWithWildcard"
+
+
+    // $ANTLR start "ruleQualifiedNameWithWildcard"
+    // InternalTableDSL.g:3646:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
+    public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3650:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
+            // InternalTableDSL.g:3651:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            {
+            // InternalTableDSL.g:3651:2: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // InternalTableDSL.g:3652:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3653:3: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // InternalTableDSL.g:3653:4: rule__QualifiedNameWithWildcard__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__QualifiedNameWithWildcard__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleQualifiedNameWithWildcard"
+
+
+    // $ANTLR start "entryRuleValidID"
+    // InternalTableDSL.g:3662:1: entryRuleValidID : ruleValidID EOF ;
+    public final void entryRuleValidID() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3663:1: ( ruleValidID EOF )
+            // InternalTableDSL.g:3664:1: ruleValidID EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getValidIDRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getValidIDRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleValidID"
+
+
+    // $ANTLR start "ruleValidID"
+    // InternalTableDSL.g:3671:1: ruleValidID : ( RULE_ID ) ;
+    public final void ruleValidID() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3675:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:3676:2: ( RULE_ID )
+            {
+            // InternalTableDSL.g:3676:2: ( RULE_ID )
+            // InternalTableDSL.g:3677:3: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleValidID"
+
+
+    // $ANTLR start "entryRuleXImportSection"
+    // InternalTableDSL.g:3687:1: entryRuleXImportSection : ruleXImportSection EOF ;
+    public final void entryRuleXImportSection() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3688:1: ( ruleXImportSection EOF )
+            // InternalTableDSL.g:3689:1: ruleXImportSection EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportSectionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleXImportSection();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportSectionRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXImportSection"
+
+
+    // $ANTLR start "ruleXImportSection"
+    // InternalTableDSL.g:3696:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
+    public final void ruleXImportSection() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3700:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
+            // InternalTableDSL.g:3701:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            {
+            // InternalTableDSL.g:3701:2: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+            // InternalTableDSL.g:3702:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            {
+            // InternalTableDSL.g:3702:3: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
+            // InternalTableDSL.g:3703:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
+            }
+            // InternalTableDSL.g:3704:4: ( rule__XImportSection__ImportDeclarationsAssignment )
+            // InternalTableDSL.g:3704:5: rule__XImportSection__ImportDeclarationsAssignment
+            {
+            pushFollow(FOLLOW_3);
+            rule__XImportSection__ImportDeclarationsAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
+            }
+
+            }
+
+            // InternalTableDSL.g:3707:3: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+            // InternalTableDSL.g:3708:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
+            }
+            // InternalTableDSL.g:3709:4: ( rule__XImportSection__ImportDeclarationsAssignment )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==50) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // InternalTableDSL.g:3709:5: rule__XImportSection__ImportDeclarationsAssignment
+            	    {
+            	    pushFollow(FOLLOW_3);
+            	    rule__XImportSection__ImportDeclarationsAssignment();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); 
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXImportSection"
+
+
+    // $ANTLR start "entryRuleQualifiedNameInStaticImport"
+    // InternalTableDSL.g:3719:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
+    public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
+        try {
+            // InternalTableDSL.g:3720:1: ( ruleQualifiedNameInStaticImport EOF )
+            // InternalTableDSL.g:3721:1: ruleQualifiedNameInStaticImport EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleQualifiedNameInStaticImport();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleQualifiedNameInStaticImport"
+
+
+    // $ANTLR start "ruleQualifiedNameInStaticImport"
+    // InternalTableDSL.g:3728:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
+    public final void ruleQualifiedNameInStaticImport() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3732:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
+            // InternalTableDSL.g:3733:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            {
+            // InternalTableDSL.g:3733:2: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // InternalTableDSL.g:3734:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            {
+            // InternalTableDSL.g:3734:3: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
+            // InternalTableDSL.g:3735:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3736:4: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // InternalTableDSL.g:3736:5: rule__QualifiedNameInStaticImport__Group__0
+            {
+            pushFollow(FOLLOW_4);
+            rule__QualifiedNameInStaticImport__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+
+            }
+
+            // InternalTableDSL.g:3739:3: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // InternalTableDSL.g:3740:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+            // InternalTableDSL.g:3741:4: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0==RULE_ID) ) {
+                    int LA2_2 = input.LA(2);
+
+                    if ( (LA2_2==46) ) {
+                        alt2=1;
+                    }
+
+
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // InternalTableDSL.g:3741:5: rule__QualifiedNameInStaticImport__Group__0
+            	    {
+            	    pushFollow(FOLLOW_4);
+            	    rule__QualifiedNameInStaticImport__Group__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleQualifiedNameInStaticImport"
+
+
+    // $ANTLR start "ruleStyleCompare"
+    // InternalTableDSL.g:3751:1: ruleStyleCompare : ( ( rule__StyleCompare__Alternatives ) ) ;
+    public final void ruleStyleCompare() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3755:1: ( ( ( rule__StyleCompare__Alternatives ) ) )
+            // InternalTableDSL.g:3756:2: ( ( rule__StyleCompare__Alternatives ) )
+            {
+            // InternalTableDSL.g:3756:2: ( ( rule__StyleCompare__Alternatives ) )
+            // InternalTableDSL.g:3757:3: ( rule__StyleCompare__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStyleCompareAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:3758:3: ( rule__StyleCompare__Alternatives )
+            // InternalTableDSL.g:3758:4: rule__StyleCompare__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__StyleCompare__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStyleCompareAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStyleCompare"
+
+
+    // $ANTLR start "ruleTrendIconEnum"
+    // InternalTableDSL.g:3767:1: ruleTrendIconEnum : ( ( rule__TrendIconEnum__Alternatives ) ) ;
+    public final void ruleTrendIconEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3771:1: ( ( ( rule__TrendIconEnum__Alternatives ) ) )
+            // InternalTableDSL.g:3772:2: ( ( rule__TrendIconEnum__Alternatives ) )
+            {
+            // InternalTableDSL.g:3772:2: ( ( rule__TrendIconEnum__Alternatives ) )
+            // InternalTableDSL.g:3773:3: ( rule__TrendIconEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTrendIconEnumAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:3774:3: ( rule__TrendIconEnum__Alternatives )
+            // InternalTableDSL.g:3774:4: rule__TrendIconEnum__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__TrendIconEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTrendIconEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTrendIconEnum"
+
+
+    // $ANTLR start "ruleRowHeaderMode"
+    // InternalTableDSL.g:3783:1: ruleRowHeaderMode : ( ( rule__RowHeaderMode__Alternatives ) ) ;
+    public final void ruleRowHeaderMode() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3787:1: ( ( ( rule__RowHeaderMode__Alternatives ) ) )
+            // InternalTableDSL.g:3788:2: ( ( rule__RowHeaderMode__Alternatives ) )
+            {
+            // InternalTableDSL.g:3788:2: ( ( rule__RowHeaderMode__Alternatives ) )
+            // InternalTableDSL.g:3789:3: ( rule__RowHeaderMode__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getRowHeaderModeAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:3790:3: ( rule__RowHeaderMode__Alternatives )
+            // InternalTableDSL.g:3790:4: rule__RowHeaderMode__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__RowHeaderMode__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getRowHeaderModeAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleRowHeaderMode"
+
+
+    // $ANTLR start "ruleAxisEnum"
+    // InternalTableDSL.g:3799:1: ruleAxisEnum : ( ( rule__AxisEnum__Alternatives ) ) ;
+    public final void ruleAxisEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3803:1: ( ( ( rule__AxisEnum__Alternatives ) ) )
+            // InternalTableDSL.g:3804:2: ( ( rule__AxisEnum__Alternatives ) )
+            {
+            // InternalTableDSL.g:3804:2: ( ( rule__AxisEnum__Alternatives ) )
+            // InternalTableDSL.g:3805:3: ( rule__AxisEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getAxisEnumAccess().getAlternatives()); 
+            }
+            // InternalTableDSL.g:3806:3: ( rule__AxisEnum__Alternatives )
+            // InternalTableDSL.g:3806:4: rule__AxisEnum__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__AxisEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getAxisEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAxisEnum"
+
+
+    // $ANTLR start "rule__TableOption__Alternatives"
+    // InternalTableDSL.g:3814:1: rule__TableOption__Alternatives : ( ( ruleTableSelection ) | ( ruleTableTable ) | ( ruleTableGrid ) | ( ruleTableBean ) );
+    public final void rule__TableOption__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3818:1: ( ( ruleTableSelection ) | ( ruleTableTable ) | ( ruleTableGrid ) | ( ruleTableBean ) )
+            int alt3=4;
+            switch ( input.LA(1) ) {
+            case 79:
+                {
+                alt3=1;
+                }
+                break;
+            case 77:
+                {
+                alt3=2;
+                }
+                break;
+            case 113:
+                {
+                alt3=3;
+                }
+                break;
+            case 83:
+                {
+                alt3=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 3, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt3) {
+                case 1 :
+                    // InternalTableDSL.g:3819:2: ( ruleTableSelection )
+                    {
+                    // InternalTableDSL.g:3819:2: ( ruleTableSelection )
+                    // InternalTableDSL.g:3820:3: ruleTableSelection
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableOptionAccess().getTableSelectionParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableSelection();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableOptionAccess().getTableSelectionParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:3825:2: ( ruleTableTable )
+                    {
+                    // InternalTableDSL.g:3825:2: ( ruleTableTable )
+                    // InternalTableDSL.g:3826:3: ruleTableTable
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableOptionAccess().getTableTableParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableTable();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableOptionAccess().getTableTableParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:3831:2: ( ruleTableGrid )
+                    {
+                    // InternalTableDSL.g:3831:2: ( ruleTableGrid )
+                    // InternalTableDSL.g:3832:3: ruleTableGrid
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableOptionAccess().getTableGridParserRuleCall_2()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableGrid();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableOptionAccess().getTableGridParserRuleCall_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:3837:2: ( ruleTableBean )
+                    {
+                    // InternalTableDSL.g:3837:2: ( ruleTableBean )
+                    // InternalTableDSL.g:3838:3: ruleTableBean
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableOptionAccess().getTableBeanParserRuleCall_3()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableBean();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableOptionAccess().getTableBeanParserRuleCall_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableOption__Alternatives"
+
+
+    // $ANTLR start "rule__TableSelection__Alternatives_2"
+    // InternalTableDSL.g:3847:1: rule__TableSelection__Alternatives_2 : ( ( ( rule__TableSelection__MultiSelectionAssignment_2_0 ) ) | ( 'single' ) );
+    public final void rule__TableSelection__Alternatives_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3851:1: ( ( ( rule__TableSelection__MultiSelectionAssignment_2_0 ) ) | ( 'single' ) )
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0==166) ) {
+                alt4=1;
+            }
+            else if ( (LA4_0==18) ) {
+                alt4=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 4, 0, input);
+
+                throw nvae;
+            }
+            switch (alt4) {
+                case 1 :
+                    // InternalTableDSL.g:3852:2: ( ( rule__TableSelection__MultiSelectionAssignment_2_0 ) )
+                    {
+                    // InternalTableDSL.g:3852:2: ( ( rule__TableSelection__MultiSelectionAssignment_2_0 ) )
+                    // InternalTableDSL.g:3853:3: ( rule__TableSelection__MultiSelectionAssignment_2_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableSelectionAccess().getMultiSelectionAssignment_2_0()); 
+                    }
+                    // InternalTableDSL.g:3854:3: ( rule__TableSelection__MultiSelectionAssignment_2_0 )
+                    // InternalTableDSL.g:3854:4: rule__TableSelection__MultiSelectionAssignment_2_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__MultiSelectionAssignment_2_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableSelectionAccess().getMultiSelectionAssignment_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:3858:2: ( 'single' )
+                    {
+                    // InternalTableDSL.g:3858:2: ( 'single' )
+                    // InternalTableDSL.g:3859:3: 'single'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableSelectionAccess().getSingleKeyword_2_1()); 
+                    }
+                    match(input,18,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableSelectionAccess().getSingleKeyword_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Alternatives_2"
+
+
+    // $ANTLR start "rule__TableValueElement__Alternatives"
+    // InternalTableDSL.g:3868:1: rule__TableValueElement__Alternatives : ( ( ruleTableMeasure ) | ( ruleTableDerived ) | ( ruleTableHierarchy ) | ( ruleTableAttribute ) | ( ruleTableAggregation ) | ( ruleTableOrdinal ) | ( ruleTableColumn ) | ( ruleTableTask ) | ( ruleTableAllColumns ) );
+    public final void rule__TableValueElement__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3872:1: ( ( ruleTableMeasure ) | ( ruleTableDerived ) | ( ruleTableHierarchy ) | ( ruleTableAttribute ) | ( ruleTableAggregation ) | ( ruleTableOrdinal ) | ( ruleTableColumn ) | ( ruleTableTask ) | ( ruleTableAllColumns ) )
+            int alt5=9;
+            switch ( input.LA(1) ) {
+            case 96:
+                {
+                alt5=1;
+                }
+                break;
+            case 97:
+                {
+                alt5=2;
+                }
+                break;
+            case 98:
+                {
+                alt5=3;
+                }
+                break;
+            case 99:
+                {
+                alt5=4;
+                }
+                break;
+            case 100:
+                {
+                alt5=5;
+                }
+                break;
+            case 94:
+                {
+                alt5=6;
+                }
+                break;
+            case 95:
+                {
+                alt5=7;
+                }
+                break;
+            case 92:
+                {
+                alt5=8;
+                }
+                break;
+            case 93:
+                {
+                alt5=9;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt5) {
+                case 1 :
+                    // InternalTableDSL.g:3873:2: ( ruleTableMeasure )
+                    {
+                    // InternalTableDSL.g:3873:2: ( ruleTableMeasure )
+                    // InternalTableDSL.g:3874:3: ruleTableMeasure
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueElementAccess().getTableMeasureParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableMeasure();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueElementAccess().getTableMeasureParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:3879:2: ( ruleTableDerived )
+                    {
+                    // InternalTableDSL.g:3879:2: ( ruleTableDerived )
+                    // InternalTableDSL.g:3880:3: ruleTableDerived
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueElementAccess().getTableDerivedParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableDerived();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueElementAccess().getTableDerivedParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:3885:2: ( ruleTableHierarchy )
+                    {
+                    // InternalTableDSL.g:3885:2: ( ruleTableHierarchy )
+                    // InternalTableDSL.g:3886:3: ruleTableHierarchy
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueElementAccess().getTableHierarchyParserRuleCall_2()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableHierarchy();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueElementAccess().getTableHierarchyParserRuleCall_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:3891:2: ( ruleTableAttribute )
+                    {
+                    // InternalTableDSL.g:3891:2: ( ruleTableAttribute )
+                    // InternalTableDSL.g:3892:3: ruleTableAttribute
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueElementAccess().getTableAttributeParserRuleCall_3()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableAttribute();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueElementAccess().getTableAttributeParserRuleCall_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:3897:2: ( ruleTableAggregation )
+                    {
+                    // InternalTableDSL.g:3897:2: ( ruleTableAggregation )
+                    // InternalTableDSL.g:3898:3: ruleTableAggregation
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_4()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableAggregation();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:3903:2: ( ruleTableOrdinal )
+                    {
+                    // InternalTableDSL.g:3903:2: ( ruleTableOrdinal )
+                    // InternalTableDSL.g:3904:3: ruleTableOrdinal
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueElementAccess().getTableOrdinalParserRuleCall_5()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableOrdinal();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueElementAccess().getTableOrdinalParserRuleCall_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:3909:2: ( ruleTableColumn )
+                    {
+                    // InternalTableDSL.g:3909:2: ( ruleTableColumn )
+                    // InternalTableDSL.g:3910:3: ruleTableColumn
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueElementAccess().getTableColumnParserRuleCall_6()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableColumn();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueElementAccess().getTableColumnParserRuleCall_6()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTableDSL.g:3915:2: ( ruleTableTask )
+                    {
+                    // InternalTableDSL.g:3915:2: ( ruleTableTask )
+                    // InternalTableDSL.g:3916:3: ruleTableTask
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueElementAccess().getTableTaskParserRuleCall_7()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableTask();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueElementAccess().getTableTaskParserRuleCall_7()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 9 :
+                    // InternalTableDSL.g:3921:2: ( ruleTableAllColumns )
+                    {
+                    // InternalTableDSL.g:3921:2: ( ruleTableAllColumns )
+                    // InternalTableDSL.g:3922:3: ruleTableAllColumns
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueElementAccess().getTableAllColumnsParserRuleCall_8()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableAllColumns();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueElementAccess().getTableAllColumnsParserRuleCall_8()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValueElement__Alternatives"
+
+
+    // $ANTLR start "rule__TableInterval__Alternatives"
+    // InternalTableDSL.g:3931:1: rule__TableInterval__Alternatives : ( ( ruleTableNumberInterval ) | ( ruleTableIntInterval ) | ( ruleTableDateDayInterval ) );
+    public final void rule__TableInterval__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3935:1: ( ( ruleTableNumberInterval ) | ( ruleTableIntInterval ) | ( ruleTableDateDayInterval ) )
+            int alt6=3;
+            switch ( input.LA(1) ) {
+            case 101:
+                {
+                alt6=1;
+                }
+                break;
+            case 102:
+                {
+                alt6=2;
+                }
+                break;
+            case 103:
+                {
+                alt6=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 6, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt6) {
+                case 1 :
+                    // InternalTableDSL.g:3936:2: ( ruleTableNumberInterval )
+                    {
+                    // InternalTableDSL.g:3936:2: ( ruleTableNumberInterval )
+                    // InternalTableDSL.g:3937:3: ruleTableNumberInterval
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableIntervalAccess().getTableNumberIntervalParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableNumberInterval();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableIntervalAccess().getTableNumberIntervalParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:3942:2: ( ruleTableIntInterval )
+                    {
+                    // InternalTableDSL.g:3942:2: ( ruleTableIntInterval )
+                    // InternalTableDSL.g:3943:3: ruleTableIntInterval
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableIntervalAccess().getTableIntIntervalParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableIntInterval();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableIntervalAccess().getTableIntIntervalParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:3948:2: ( ruleTableDateDayInterval )
+                    {
+                    // InternalTableDSL.g:3948:2: ( ruleTableDateDayInterval )
+                    // InternalTableDSL.g:3949:3: ruleTableDateDayInterval
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableIntervalAccess().getTableDateDayIntervalParserRuleCall_2()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableDateDayInterval();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableIntervalAccess().getTableDateDayIntervalParserRuleCall_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableInterval__Alternatives"
+
+
+    // $ANTLR start "rule__TableLookup__Alternatives"
+    // InternalTableDSL.g:3958:1: rule__TableLookup__Alternatives : ( ( ruleTableNumberLookup ) | ( ruleTableIntLookup ) | ( ruleTableStringLookup ) | ( ruleTableDateDayLookup ) );
+    public final void rule__TableLookup__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3962:1: ( ( ruleTableNumberLookup ) | ( ruleTableIntLookup ) | ( ruleTableStringLookup ) | ( ruleTableDateDayLookup ) )
+            int alt7=4;
+            switch ( input.LA(1) ) {
+            case 105:
+                {
+                alt7=1;
+                }
+                break;
+            case 104:
+                {
+                alt7=2;
+                }
+                break;
+            case 106:
+                {
+                alt7=3;
+                }
+                break;
+            case 103:
+                {
+                alt7=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt7) {
+                case 1 :
+                    // InternalTableDSL.g:3963:2: ( ruleTableNumberLookup )
+                    {
+                    // InternalTableDSL.g:3963:2: ( ruleTableNumberLookup )
+                    // InternalTableDSL.g:3964:3: ruleTableNumberLookup
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableLookupAccess().getTableNumberLookupParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableNumberLookup();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableLookupAccess().getTableNumberLookupParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:3969:2: ( ruleTableIntLookup )
+                    {
+                    // InternalTableDSL.g:3969:2: ( ruleTableIntLookup )
+                    // InternalTableDSL.g:3970:3: ruleTableIntLookup
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableLookupAccess().getTableIntLookupParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableIntLookup();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableLookupAccess().getTableIntLookupParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:3975:2: ( ruleTableStringLookup )
+                    {
+                    // InternalTableDSL.g:3975:2: ( ruleTableStringLookup )
+                    // InternalTableDSL.g:3976:3: ruleTableStringLookup
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableLookupAccess().getTableStringLookupParserRuleCall_2()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableStringLookup();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableLookupAccess().getTableStringLookupParserRuleCall_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:3981:2: ( ruleTableDateDayLookup )
+                    {
+                    // InternalTableDSL.g:3981:2: ( ruleTableDateDayLookup )
+                    // InternalTableDSL.g:3982:3: ruleTableDateDayLookup
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableLookupAccess().getTableDateDayLookupParserRuleCall_3()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableDateDayLookup();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableLookupAccess().getTableDateDayLookupParserRuleCall_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableLookup__Alternatives"
+
+
+    // $ANTLR start "rule__TableRangeElement__Alternatives"
+    // InternalTableDSL.g:3991:1: rule__TableRangeElement__Alternatives : ( ( ruleTableTextColor ) | ( ruleTableCellColor ) | ( ruleTableIcon ) | ( ruleTableTrend ) | ( ruleTableTooltip ) );
+    public final void rule__TableRangeElement__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:3995:1: ( ( ruleTableTextColor ) | ( ruleTableCellColor ) | ( ruleTableIcon ) | ( ruleTableTrend ) | ( ruleTableTooltip ) )
+            int alt8=5;
+            switch ( input.LA(1) ) {
+            case 109:
+                {
+                alt8=1;
+                }
+                break;
+            case 110:
+                {
+                alt8=2;
+                }
+                break;
+            case 86:
+                {
+                alt8=3;
+                }
+                break;
+            case 111:
+                {
+                alt8=4;
+                }
+                break;
+            case 112:
+                {
+                alt8=5;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 8, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt8) {
+                case 1 :
+                    // InternalTableDSL.g:3996:2: ( ruleTableTextColor )
+                    {
+                    // InternalTableDSL.g:3996:2: ( ruleTableTextColor )
+                    // InternalTableDSL.g:3997:3: ruleTableTextColor
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableRangeElementAccess().getTableTextColorParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableTextColor();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableRangeElementAccess().getTableTextColorParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4002:2: ( ruleTableCellColor )
+                    {
+                    // InternalTableDSL.g:4002:2: ( ruleTableCellColor )
+                    // InternalTableDSL.g:4003:3: ruleTableCellColor
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableRangeElementAccess().getTableCellColorParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableCellColor();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableRangeElementAccess().getTableCellColorParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4008:2: ( ruleTableIcon )
+                    {
+                    // InternalTableDSL.g:4008:2: ( ruleTableIcon )
+                    // InternalTableDSL.g:4009:3: ruleTableIcon
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableRangeElementAccess().getTableIconParserRuleCall_2()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableIcon();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableRangeElementAccess().getTableIconParserRuleCall_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:4014:2: ( ruleTableTrend )
+                    {
+                    // InternalTableDSL.g:4014:2: ( ruleTableTrend )
+                    // InternalTableDSL.g:4015:3: ruleTableTrend
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableRangeElementAccess().getTableTrendParserRuleCall_3()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableTrend();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableRangeElementAccess().getTableTrendParserRuleCall_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:4020:2: ( ruleTableTooltip )
+                    {
+                    // InternalTableDSL.g:4020:2: ( ruleTableTooltip )
+                    // InternalTableDSL.g:4021:3: ruleTableTooltip
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableRangeElementAccess().getTableTooltipParserRuleCall_4()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleTableTooltip();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableRangeElementAccess().getTableTooltipParserRuleCall_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableRangeElement__Alternatives"
+
+
+    // $ANTLR start "rule__PropertyStyle__Alternatives"
+    // InternalTableDSL.g:4030:1: rule__PropertyStyle__Alternatives : ( ( rulePropertyButtonStyle ) | ( rulePropertyHtmlStyle ) | ( rulePropertyProgressbarStyle ) | ( rulePropertyTextStyle ) | ( rulePropertyBooleanStyle ) | ( rulePropertyDateStyle ) | ( rulePropertyNumberStyle ) | ( rulePropertyImageStyle ) | ( rulePropertyQuantityStyle ) | ( rulePropertyPriceStyle ) | ( ruleGridPropIndicatorStyle ) );
+    public final void rule__PropertyStyle__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4034:1: ( ( rulePropertyButtonStyle ) | ( rulePropertyHtmlStyle ) | ( rulePropertyProgressbarStyle ) | ( rulePropertyTextStyle ) | ( rulePropertyBooleanStyle ) | ( rulePropertyDateStyle ) | ( rulePropertyNumberStyle ) | ( rulePropertyImageStyle ) | ( rulePropertyQuantityStyle ) | ( rulePropertyPriceStyle ) | ( ruleGridPropIndicatorStyle ) )
+            int alt9=11;
+            switch ( input.LA(1) ) {
+            case 118:
+                {
+                alt9=1;
+                }
+                break;
+            case 120:
+                {
+                alt9=2;
+                }
+                break;
+            case 125:
+                {
+                alt9=3;
+                }
+                break;
+            case 136:
+                {
+                alt9=4;
+                }
+                break;
+            case 121:
+                {
+                alt9=5;
+                }
+                break;
+            case 122:
+                {
+                alt9=6;
+                }
+                break;
+            case 124:
+                {
+                alt9=7;
+                }
+                break;
+            case 137:
+                {
+                alt9=8;
+                }
+                break;
+            case 130:
+                {
+                alt9=9;
+                }
+                break;
+            case 134:
+                {
+                alt9=10;
+                }
+                break;
+            case 127:
+                {
+                alt9=11;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 9, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt9) {
+                case 1 :
+                    // InternalTableDSL.g:4035:2: ( rulePropertyButtonStyle )
+                    {
+                    // InternalTableDSL.g:4035:2: ( rulePropertyButtonStyle )
+                    // InternalTableDSL.g:4036:3: rulePropertyButtonStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getPropertyButtonStyleParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    rulePropertyButtonStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getPropertyButtonStyleParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4041:2: ( rulePropertyHtmlStyle )
+                    {
+                    // InternalTableDSL.g:4041:2: ( rulePropertyHtmlStyle )
+                    // InternalTableDSL.g:4042:3: rulePropertyHtmlStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getPropertyHtmlStyleParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    rulePropertyHtmlStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getPropertyHtmlStyleParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4047:2: ( rulePropertyProgressbarStyle )
+                    {
+                    // InternalTableDSL.g:4047:2: ( rulePropertyProgressbarStyle )
+                    // InternalTableDSL.g:4048:3: rulePropertyProgressbarStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getPropertyProgressbarStyleParserRuleCall_2()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    rulePropertyProgressbarStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getPropertyProgressbarStyleParserRuleCall_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:4053:2: ( rulePropertyTextStyle )
+                    {
+                    // InternalTableDSL.g:4053:2: ( rulePropertyTextStyle )
+                    // InternalTableDSL.g:4054:3: rulePropertyTextStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getPropertyTextStyleParserRuleCall_3()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    rulePropertyTextStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getPropertyTextStyleParserRuleCall_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:4059:2: ( rulePropertyBooleanStyle )
+                    {
+                    // InternalTableDSL.g:4059:2: ( rulePropertyBooleanStyle )
+                    // InternalTableDSL.g:4060:3: rulePropertyBooleanStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getPropertyBooleanStyleParserRuleCall_4()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    rulePropertyBooleanStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getPropertyBooleanStyleParserRuleCall_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:4065:2: ( rulePropertyDateStyle )
+                    {
+                    // InternalTableDSL.g:4065:2: ( rulePropertyDateStyle )
+                    // InternalTableDSL.g:4066:3: rulePropertyDateStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getPropertyDateStyleParserRuleCall_5()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    rulePropertyDateStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getPropertyDateStyleParserRuleCall_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:4071:2: ( rulePropertyNumberStyle )
+                    {
+                    // InternalTableDSL.g:4071:2: ( rulePropertyNumberStyle )
+                    // InternalTableDSL.g:4072:3: rulePropertyNumberStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getPropertyNumberStyleParserRuleCall_6()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    rulePropertyNumberStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getPropertyNumberStyleParserRuleCall_6()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTableDSL.g:4077:2: ( rulePropertyImageStyle )
+                    {
+                    // InternalTableDSL.g:4077:2: ( rulePropertyImageStyle )
+                    // InternalTableDSL.g:4078:3: rulePropertyImageStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getPropertyImageStyleParserRuleCall_7()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    rulePropertyImageStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getPropertyImageStyleParserRuleCall_7()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 9 :
+                    // InternalTableDSL.g:4083:2: ( rulePropertyQuantityStyle )
+                    {
+                    // InternalTableDSL.g:4083:2: ( rulePropertyQuantityStyle )
+                    // InternalTableDSL.g:4084:3: rulePropertyQuantityStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getPropertyQuantityStyleParserRuleCall_8()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    rulePropertyQuantityStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getPropertyQuantityStyleParserRuleCall_8()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 10 :
+                    // InternalTableDSL.g:4089:2: ( rulePropertyPriceStyle )
+                    {
+                    // InternalTableDSL.g:4089:2: ( rulePropertyPriceStyle )
+                    // InternalTableDSL.g:4090:3: rulePropertyPriceStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getPropertyPriceStyleParserRuleCall_9()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    rulePropertyPriceStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getPropertyPriceStyleParserRuleCall_9()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 11 :
+                    // InternalTableDSL.g:4095:2: ( ruleGridPropIndicatorStyle )
+                    {
+                    // InternalTableDSL.g:4095:2: ( ruleGridPropIndicatorStyle )
+                    // InternalTableDSL.g:4096:3: ruleGridPropIndicatorStyle
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getPropertyStyleAccess().getGridPropIndicatorStyleParserRuleCall_10()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleGridPropIndicatorStyle();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getPropertyStyleAccess().getGridPropIndicatorStyleParserRuleCall_10()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyStyle__Alternatives"
+
+
+    // $ANTLR start "rule__StyleConfig__Alternatives"
+    // InternalTableDSL.g:4105:1: rule__StyleConfig__Alternatives : ( ( ruleNumericToResourceStyleConfig ) | ( ruleStringToResourceStyleConfig ) );
+    public final void rule__StyleConfig__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4109:1: ( ( ruleNumericToResourceStyleConfig ) | ( ruleStringToResourceStyleConfig ) )
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==105) ) {
+                alt10=1;
+            }
+            else if ( (LA10_0==106) ) {
+                alt10=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 10, 0, input);
+
+                throw nvae;
+            }
+            switch (alt10) {
+                case 1 :
+                    // InternalTableDSL.g:4110:2: ( ruleNumericToResourceStyleConfig )
+                    {
+                    // InternalTableDSL.g:4110:2: ( ruleNumericToResourceStyleConfig )
+                    // InternalTableDSL.g:4111:3: ruleNumericToResourceStyleConfig
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getStyleConfigAccess().getNumericToResourceStyleConfigParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleNumericToResourceStyleConfig();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getStyleConfigAccess().getNumericToResourceStyleConfigParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4116:2: ( ruleStringToResourceStyleConfig )
+                    {
+                    // InternalTableDSL.g:4116:2: ( ruleStringToResourceStyleConfig )
+                    // InternalTableDSL.g:4117:3: ruleStringToResourceStyleConfig
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getStyleConfigAccess().getStringToResourceStyleConfigParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleStringToResourceStyleConfig();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getStyleConfigAccess().getStringToResourceStyleConfigParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StyleConfig__Alternatives"
+
+
+    // $ANTLR start "rule__LInt__Alternatives_0"
+    // InternalTableDSL.g:4126:1: rule__LInt__Alternatives_0 : ( ( '+' ) | ( '-' ) );
+    public final void rule__LInt__Alternatives_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4130:1: ( ( '+' ) | ( '-' ) )
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==19) ) {
+                alt11=1;
+            }
+            else if ( (LA11_0==20) ) {
+                alt11=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 11, 0, input);
+
+                throw nvae;
+            }
+            switch (alt11) {
+                case 1 :
+                    // InternalTableDSL.g:4131:2: ( '+' )
+                    {
+                    // InternalTableDSL.g:4131:2: ( '+' )
+                    // InternalTableDSL.g:4132:3: '+'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getLIntAccess().getPlusSignKeyword_0_0()); 
+                    }
+                    match(input,19,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getLIntAccess().getPlusSignKeyword_0_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4137:2: ( '-' )
+                    {
+                    // InternalTableDSL.g:4137:2: ( '-' )
+                    // InternalTableDSL.g:4138:3: '-'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getLIntAccess().getHyphenMinusKeyword_0_1()); 
+                    }
+                    match(input,20,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getLIntAccess().getHyphenMinusKeyword_0_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LInt__Alternatives_0"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Alternatives_2"
+    // InternalTableDSL.g:4147:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );
+    public final void rule__XImportDeclaration__Alternatives_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4151:1: ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) )
+            int alt12=4;
+            alt12 = dfa12.predict(input);
+            switch (alt12) {
+                case 1 :
+                    // InternalTableDSL.g:4152:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4152:2: ( ( rule__XImportDeclaration__Group_2_0__0 ) )
+                    // InternalTableDSL.g:4153:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXImportDeclarationAccess().getGroup_2_0()); 
+                    }
+                    // InternalTableDSL.g:4154:3: ( rule__XImportDeclaration__Group_2_0__0 )
+                    // InternalTableDSL.g:4154:4: rule__XImportDeclaration__Group_2_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XImportDeclaration__Group_2_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXImportDeclarationAccess().getGroup_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4158:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    {
+                    // InternalTableDSL.g:4158:2: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) )
+                    // InternalTableDSL.g:4159:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1()); 
+                    }
+                    // InternalTableDSL.g:4160:3: ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 )
+                    // InternalTableDSL.g:4160:4: rule__XImportDeclaration__ImportedTypeAssignment_2_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XImportDeclaration__ImportedTypeAssignment_2_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4164:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    {
+                    // InternalTableDSL.g:4164:2: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) )
+                    // InternalTableDSL.g:4165:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2()); 
+                    }
+                    // InternalTableDSL.g:4166:3: ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 )
+                    // InternalTableDSL.g:4166:4: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XImportDeclaration__ImportedNamespaceAssignment_2_2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_2_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:4170:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    {
+                    // InternalTableDSL.g:4170:2: ( ( rule__XImportDeclaration__Group_2_3__0 ) )
+                    // InternalTableDSL.g:4171:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXImportDeclarationAccess().getGroup_2_3()); 
+                    }
+                    // InternalTableDSL.g:4172:3: ( rule__XImportDeclaration__Group_2_3__0 )
+                    // InternalTableDSL.g:4172:4: rule__XImportDeclaration__Group_2_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XImportDeclaration__Group_2_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXImportDeclarationAccess().getGroup_2_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Alternatives_2"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Alternatives_2_0_3"
+    // InternalTableDSL.g:4180:1: rule__XImportDeclaration__Alternatives_2_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) );
+    public final void rule__XImportDeclaration__Alternatives_2_0_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4184:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) ) )
+            int alt13=2;
+            int LA13_0 = input.LA(1);
+
+            if ( (LA13_0==39) ) {
+                alt13=1;
+            }
+            else if ( (LA13_0==RULE_ID) ) {
+                alt13=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 13, 0, input);
+
+                throw nvae;
+            }
+            switch (alt13) {
+                case 1 :
+                    // InternalTableDSL.g:4185:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    {
+                    // InternalTableDSL.g:4185:2: ( ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 ) )
+                    // InternalTableDSL.g:4186:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0()); 
+                    }
+                    // InternalTableDSL.g:4187:3: ( rule__XImportDeclaration__WildcardAssignment_2_0_3_0 )
+                    // InternalTableDSL.g:4187:4: rule__XImportDeclaration__WildcardAssignment_2_0_3_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XImportDeclaration__WildcardAssignment_2_0_3_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_2_0_3_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4191:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    {
+                    // InternalTableDSL.g:4191:2: ( ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 ) )
+                    // InternalTableDSL.g:4192:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1()); 
+                    }
+                    // InternalTableDSL.g:4193:3: ( rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 )
+                    // InternalTableDSL.g:4193:4: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XImportDeclaration__MemberNameAssignment_2_0_3_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_2_0_3_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Alternatives_2_0_3"
+
+
+    // $ANTLR start "rule__XAnnotation__Alternatives_3_1"
+    // InternalTableDSL.g:4201:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
+    public final void rule__XAnnotation__Alternatives_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4205:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
+            int alt14=2;
+            alt14 = dfa14.predict(input);
+            switch (alt14) {
+                case 1 :
+                    // InternalTableDSL.g:4206:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4206:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // InternalTableDSL.g:4207:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
+                    }
+                    // InternalTableDSL.g:4208:3: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // InternalTableDSL.g:4208:4: rule__XAnnotation__Group_3_1_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAnnotation__Group_3_1_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4212:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    {
+                    // InternalTableDSL.g:4212:2: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // InternalTableDSL.g:4213:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
+                    }
+                    // InternalTableDSL.g:4214:3: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // InternalTableDSL.g:4214:4: rule__XAnnotation__ValueAssignment_3_1_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAnnotation__ValueAssignment_3_1_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Alternatives_3_1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Alternatives"
+    // InternalTableDSL.g:4222:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
+    public final void rule__XAnnotationElementValueOrCommaList__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4226:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
+            int alt15=2;
+            alt15 = dfa15.predict(input);
+            switch (alt15) {
+                case 1 :
+                    // InternalTableDSL.g:4227:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4227:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // InternalTableDSL.g:4228:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
+                    }
+                    // InternalTableDSL.g:4229:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // InternalTableDSL.g:4229:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAnnotationElementValueOrCommaList__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4233:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    {
+                    // InternalTableDSL.g:4233:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // InternalTableDSL.g:4234:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
+                    }
+                    // InternalTableDSL.g:4235:3: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // InternalTableDSL.g:4235:4: rule__XAnnotationElementValueOrCommaList__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAnnotationElementValueOrCommaList__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Alternatives"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Alternatives"
+    // InternalTableDSL.g:4243:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
+    public final void rule__XAnnotationElementValue__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4247:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
+            int alt16=2;
+            alt16 = dfa16.predict(input);
+            switch (alt16) {
+                case 1 :
+                    // InternalTableDSL.g:4248:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4248:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // InternalTableDSL.g:4249:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
+                    }
+                    // InternalTableDSL.g:4250:3: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // InternalTableDSL.g:4250:4: rule__XAnnotationElementValue__Group_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAnnotationElementValue__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4254:2: ( ruleXAnnotationOrExpression )
+                    {
+                    // InternalTableDSL.g:4254:2: ( ruleXAnnotationOrExpression )
+                    // InternalTableDSL.g:4255:3: ruleXAnnotationOrExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXAnnotationOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Alternatives"
+
+
+    // $ANTLR start "rule__XAnnotationOrExpression__Alternatives"
+    // InternalTableDSL.g:4264:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
+    public final void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4268:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
+            int alt17=2;
+            int LA17_0 = input.LA(1);
+
+            if ( (LA17_0==140) ) {
+                alt17=1;
+            }
+            else if ( ((LA17_0>=RULE_STRING && LA17_0<=RULE_DECIMAL)||(LA17_0>=19 && LA17_0<=20)||LA17_0==32||LA17_0==43||(LA17_0>=48 && LA17_0<=53)||LA17_0==75||LA17_0==132||(LA17_0>=143 && LA17_0<=144)||LA17_0==146||LA17_0==148||(LA17_0>=151 && LA17_0<=159)||LA17_0==161||LA17_0==188) ) {
+                alt17=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 17, 0, input);
+
+                throw nvae;
+            }
+            switch (alt17) {
+                case 1 :
+                    // InternalTableDSL.g:4269:2: ( ruleXAnnotation )
+                    {
+                    // InternalTableDSL.g:4269:2: ( ruleXAnnotation )
+                    // InternalTableDSL.g:4270:3: ruleXAnnotation
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXAnnotation();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4275:2: ( ruleXExpression )
+                    {
+                    // InternalTableDSL.g:4275:2: ( ruleXExpression )
+                    // InternalTableDSL.g:4276:3: ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationOrExpression__Alternatives"
+
+
+    // $ANTLR start "rule__XAssignment__Alternatives"
+    // InternalTableDSL.g:4285:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
+    public final void rule__XAssignment__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4289:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
+            int alt18=2;
+            switch ( input.LA(1) ) {
+            case RULE_ID:
+                {
+                int LA18_1 = input.LA(2);
+
+                if ( (LA18_1==EOF||(LA18_1>=RULE_STRING && LA18_1<=RULE_DECIMAL)||(LA18_1>=16 && LA18_1<=17)||(LA18_1>=19 && LA18_1<=53)||LA18_1==68||(LA18_1>=75 && LA18_1<=76)||LA18_1==78||(LA18_1>=132 && LA18_1<=133)||LA18_1==139||(LA18_1>=141 && LA18_1<=162)||(LA18_1>=184 && LA18_1<=185)||(LA18_1>=187 && LA18_1<=188)) ) {
+                    alt18=2;
+                }
+                else if ( (LA18_1==15) ) {
+                    alt18=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 18, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 48:
+                {
+                int LA18_2 = input.LA(2);
+
+                if ( (LA18_2==EOF||(LA18_2>=RULE_STRING && LA18_2<=RULE_DECIMAL)||(LA18_2>=16 && LA18_2<=17)||(LA18_2>=19 && LA18_2<=53)||LA18_2==68||(LA18_2>=75 && LA18_2<=76)||LA18_2==78||(LA18_2>=132 && LA18_2<=133)||LA18_2==139||(LA18_2>=141 && LA18_2<=162)||(LA18_2>=184 && LA18_2<=185)||(LA18_2>=187 && LA18_2<=188)) ) {
+                    alt18=2;
+                }
+                else if ( (LA18_2==15) ) {
+                    alt18=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 18, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 49:
+                {
+                int LA18_3 = input.LA(2);
+
+                if ( (LA18_3==15) ) {
+                    alt18=1;
+                }
+                else if ( (LA18_3==EOF||(LA18_3>=RULE_STRING && LA18_3<=RULE_DECIMAL)||(LA18_3>=16 && LA18_3<=17)||(LA18_3>=19 && LA18_3<=53)||LA18_3==68||(LA18_3>=75 && LA18_3<=76)||LA18_3==78||(LA18_3>=132 && LA18_3<=133)||LA18_3==139||(LA18_3>=141 && LA18_3<=162)||(LA18_3>=184 && LA18_3<=185)||(LA18_3>=187 && LA18_3<=188)) ) {
+                    alt18=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 18, 3, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 50:
+                {
+                int LA18_4 = input.LA(2);
+
+                if ( (LA18_4==EOF||(LA18_4>=RULE_STRING && LA18_4<=RULE_DECIMAL)||(LA18_4>=16 && LA18_4<=17)||(LA18_4>=19 && LA18_4<=53)||LA18_4==68||(LA18_4>=75 && LA18_4<=76)||LA18_4==78||(LA18_4>=132 && LA18_4<=133)||LA18_4==139||(LA18_4>=141 && LA18_4<=162)||(LA18_4>=184 && LA18_4<=185)||(LA18_4>=187 && LA18_4<=188)) ) {
+                    alt18=2;
+                }
+                else if ( (LA18_4==15) ) {
+                    alt18=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 18, 4, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 51:
+                {
+                int LA18_5 = input.LA(2);
+
+                if ( (LA18_5==15) ) {
+                    alt18=1;
+                }
+                else if ( (LA18_5==EOF||(LA18_5>=RULE_STRING && LA18_5<=RULE_DECIMAL)||(LA18_5>=16 && LA18_5<=17)||(LA18_5>=19 && LA18_5<=53)||LA18_5==68||(LA18_5>=75 && LA18_5<=76)||LA18_5==78||(LA18_5>=132 && LA18_5<=133)||LA18_5==139||(LA18_5>=141 && LA18_5<=162)||(LA18_5>=184 && LA18_5<=185)||(LA18_5>=187 && LA18_5<=188)) ) {
+                    alt18=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 18, 5, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case RULE_STRING:
+            case RULE_HEX:
+            case RULE_INT:
+            case RULE_DECIMAL:
+            case 19:
+            case 20:
+            case 32:
+            case 43:
+            case 52:
+            case 53:
+            case 75:
+            case 132:
+            case 143:
+            case 144:
+            case 146:
+            case 148:
+            case 151:
+            case 152:
+            case 153:
+            case 154:
+            case 155:
+            case 156:
+            case 157:
+            case 158:
+            case 159:
+            case 161:
+            case 188:
+                {
+                alt18=2;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 18, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt18) {
+                case 1 :
+                    // InternalTableDSL.g:4290:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4290:2: ( ( rule__XAssignment__Group_0__0 ) )
+                    // InternalTableDSL.g:4291:3: ( rule__XAssignment__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
+                    }
+                    // InternalTableDSL.g:4292:3: ( rule__XAssignment__Group_0__0 )
+                    // InternalTableDSL.g:4292:4: rule__XAssignment__Group_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAssignment__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAssignmentAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4296:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    {
+                    // InternalTableDSL.g:4296:2: ( ( rule__XAssignment__Group_1__0 ) )
+                    // InternalTableDSL.g:4297:3: ( rule__XAssignment__Group_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
+                    }
+                    // InternalTableDSL.g:4298:3: ( rule__XAssignment__Group_1__0 )
+                    // InternalTableDSL.g:4298:4: rule__XAssignment__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAssignment__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAssignmentAccess().getGroup_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Alternatives"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Alternatives"
+    // InternalTableDSL.g:4306:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
+    public final void rule__OpMultiAssign__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4310:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
+            int alt19=7;
+            switch ( input.LA(1) ) {
+            case 21:
+                {
+                alt19=1;
+                }
+                break;
+            case 22:
+                {
+                alt19=2;
+                }
+                break;
+            case 23:
+                {
+                alt19=3;
+                }
+                break;
+            case 24:
+                {
+                alt19=4;
+                }
+                break;
+            case 25:
+                {
+                alt19=5;
+                }
+                break;
+            case 32:
+                {
+                alt19=6;
+                }
+                break;
+            case 31:
+                {
+                alt19=7;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 19, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt19) {
+                case 1 :
+                    // InternalTableDSL.g:4311:2: ( '+=' )
+                    {
+                    // InternalTableDSL.g:4311:2: ( '+=' )
+                    // InternalTableDSL.g:4312:3: '+='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
+                    }
+                    match(input,21,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4317:2: ( '-=' )
+                    {
+                    // InternalTableDSL.g:4317:2: ( '-=' )
+                    // InternalTableDSL.g:4318:3: '-='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
+                    }
+                    match(input,22,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4323:2: ( '*=' )
+                    {
+                    // InternalTableDSL.g:4323:2: ( '*=' )
+                    // InternalTableDSL.g:4324:3: '*='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
+                    }
+                    match(input,23,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:4329:2: ( '/=' )
+                    {
+                    // InternalTableDSL.g:4329:2: ( '/=' )
+                    // InternalTableDSL.g:4330:3: '/='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
+                    }
+                    match(input,24,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:4335:2: ( '%=' )
+                    {
+                    // InternalTableDSL.g:4335:2: ( '%=' )
+                    // InternalTableDSL.g:4336:3: '%='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
+                    }
+                    match(input,25,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:4341:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    {
+                    // InternalTableDSL.g:4341:2: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // InternalTableDSL.g:4342:3: ( rule__OpMultiAssign__Group_5__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
+                    }
+                    // InternalTableDSL.g:4343:3: ( rule__OpMultiAssign__Group_5__0 )
+                    // InternalTableDSL.g:4343:4: rule__OpMultiAssign__Group_5__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OpMultiAssign__Group_5__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:4347:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    {
+                    // InternalTableDSL.g:4347:2: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // InternalTableDSL.g:4348:3: ( rule__OpMultiAssign__Group_6__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
+                    }
+                    // InternalTableDSL.g:4349:3: ( rule__OpMultiAssign__Group_6__0 )
+                    // InternalTableDSL.g:4349:4: rule__OpMultiAssign__Group_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OpMultiAssign__Group_6__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Alternatives"
+
+
+    // $ANTLR start "rule__OpEquality__Alternatives"
+    // InternalTableDSL.g:4357:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
+    public final void rule__OpEquality__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4361:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
+            int alt20=4;
+            switch ( input.LA(1) ) {
+            case 26:
+                {
+                alt20=1;
+                }
+                break;
+            case 27:
+                {
+                alt20=2;
+                }
+                break;
+            case 28:
+                {
+                alt20=3;
+                }
+                break;
+            case 29:
+                {
+                alt20=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 20, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt20) {
+                case 1 :
+                    // InternalTableDSL.g:4362:2: ( '==' )
+                    {
+                    // InternalTableDSL.g:4362:2: ( '==' )
+                    // InternalTableDSL.g:4363:3: '=='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
+                    }
+                    match(input,26,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4368:2: ( '!=' )
+                    {
+                    // InternalTableDSL.g:4368:2: ( '!=' )
+                    // InternalTableDSL.g:4369:3: '!='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
+                    }
+                    match(input,27,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4374:2: ( '===' )
+                    {
+                    // InternalTableDSL.g:4374:2: ( '===' )
+                    // InternalTableDSL.g:4375:3: '==='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
+                    }
+                    match(input,28,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:4380:2: ( '!==' )
+                    {
+                    // InternalTableDSL.g:4380:2: ( '!==' )
+                    // InternalTableDSL.g:4381:3: '!=='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
+                    }
+                    match(input,29,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpEquality__Alternatives"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Alternatives_1"
+    // InternalTableDSL.g:4390:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
+    public final void rule__XRelationalExpression__Alternatives_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4394:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+
+            if ( (LA21_0==145) ) {
+                alt21=1;
+            }
+            else if ( ((LA21_0>=30 && LA21_0<=32)) ) {
+                alt21=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 21, 0, input);
+
+                throw nvae;
+            }
+            switch (alt21) {
+                case 1 :
+                    // InternalTableDSL.g:4395:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4395:2: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+                    // InternalTableDSL.g:4396:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
+                    }
+                    // InternalTableDSL.g:4397:3: ( rule__XRelationalExpression__Group_1_0__0 )
+                    // InternalTableDSL.g:4397:4: rule__XRelationalExpression__Group_1_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XRelationalExpression__Group_1_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4401:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    {
+                    // InternalTableDSL.g:4401:2: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+                    // InternalTableDSL.g:4402:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
+                    }
+                    // InternalTableDSL.g:4403:3: ( rule__XRelationalExpression__Group_1_1__0 )
+                    // InternalTableDSL.g:4403:4: rule__XRelationalExpression__Group_1_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XRelationalExpression__Group_1_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Alternatives_1"
+
+
+    // $ANTLR start "rule__OpCompare__Alternatives"
+    // InternalTableDSL.g:4411:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
+    public final void rule__OpCompare__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4415:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
+            int alt22=4;
+            switch ( input.LA(1) ) {
+            case 30:
+                {
+                alt22=1;
+                }
+                break;
+            case 32:
+                {
+                int LA22_2 = input.LA(2);
+
+                if ( (LA22_2==EOF||(LA22_2>=RULE_STRING && LA22_2<=RULE_DECIMAL)||(LA22_2>=19 && LA22_2<=20)||LA22_2==32||LA22_2==43||(LA22_2>=48 && LA22_2<=53)||LA22_2==75||LA22_2==132||(LA22_2>=143 && LA22_2<=144)||LA22_2==146||LA22_2==148||(LA22_2>=151 && LA22_2<=159)||LA22_2==161||LA22_2==188) ) {
+                    alt22=4;
+                }
+                else if ( (LA22_2==15) ) {
+                    alt22=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 22, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 31:
+                {
+                alt22=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 22, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt22) {
+                case 1 :
+                    // InternalTableDSL.g:4416:2: ( '>=' )
+                    {
+                    // InternalTableDSL.g:4416:2: ( '>=' )
+                    // InternalTableDSL.g:4417:3: '>='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
+                    }
+                    match(input,30,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4422:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    {
+                    // InternalTableDSL.g:4422:2: ( ( rule__OpCompare__Group_1__0 ) )
+                    // InternalTableDSL.g:4423:3: ( rule__OpCompare__Group_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpCompareAccess().getGroup_1()); 
+                    }
+                    // InternalTableDSL.g:4424:3: ( rule__OpCompare__Group_1__0 )
+                    // InternalTableDSL.g:4424:4: rule__OpCompare__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OpCompare__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpCompareAccess().getGroup_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4428:2: ( '>' )
+                    {
+                    // InternalTableDSL.g:4428:2: ( '>' )
+                    // InternalTableDSL.g:4429:3: '>'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
+                    }
+                    match(input,31,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:4434:2: ( '<' )
+                    {
+                    // InternalTableDSL.g:4434:2: ( '<' )
+                    // InternalTableDSL.g:4435:3: '<'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
+                    }
+                    match(input,32,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpCompare__Alternatives"
+
+
+    // $ANTLR start "rule__OpOther__Alternatives"
+    // InternalTableDSL.g:4444:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
+    public final void rule__OpOther__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4448:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
+            int alt23=9;
+            alt23 = dfa23.predict(input);
+            switch (alt23) {
+                case 1 :
+                    // InternalTableDSL.g:4449:2: ( '->' )
+                    {
+                    // InternalTableDSL.g:4449:2: ( '->' )
+                    // InternalTableDSL.g:4450:3: '->'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
+                    }
+                    match(input,33,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4455:2: ( '..<' )
+                    {
+                    // InternalTableDSL.g:4455:2: ( '..<' )
+                    // InternalTableDSL.g:4456:3: '..<'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
+                    }
+                    match(input,34,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4461:2: ( ( rule__OpOther__Group_2__0 ) )
+                    {
+                    // InternalTableDSL.g:4461:2: ( ( rule__OpOther__Group_2__0 ) )
+                    // InternalTableDSL.g:4462:3: ( rule__OpOther__Group_2__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getGroup_2()); 
+                    }
+                    // InternalTableDSL.g:4463:3: ( rule__OpOther__Group_2__0 )
+                    // InternalTableDSL.g:4463:4: rule__OpOther__Group_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OpOther__Group_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getGroup_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:4467:2: ( '..' )
+                    {
+                    // InternalTableDSL.g:4467:2: ( '..' )
+                    // InternalTableDSL.g:4468:3: '..'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
+                    }
+                    match(input,35,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:4473:2: ( '=>' )
+                    {
+                    // InternalTableDSL.g:4473:2: ( '=>' )
+                    // InternalTableDSL.g:4474:3: '=>'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
+                    }
+                    match(input,36,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:4479:2: ( ( rule__OpOther__Group_5__0 ) )
+                    {
+                    // InternalTableDSL.g:4479:2: ( ( rule__OpOther__Group_5__0 ) )
+                    // InternalTableDSL.g:4480:3: ( rule__OpOther__Group_5__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getGroup_5()); 
+                    }
+                    // InternalTableDSL.g:4481:3: ( rule__OpOther__Group_5__0 )
+                    // InternalTableDSL.g:4481:4: rule__OpOther__Group_5__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OpOther__Group_5__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getGroup_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:4485:2: ( ( rule__OpOther__Group_6__0 ) )
+                    {
+                    // InternalTableDSL.g:4485:2: ( ( rule__OpOther__Group_6__0 ) )
+                    // InternalTableDSL.g:4486:3: ( rule__OpOther__Group_6__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getGroup_6()); 
+                    }
+                    // InternalTableDSL.g:4487:3: ( rule__OpOther__Group_6__0 )
+                    // InternalTableDSL.g:4487:4: rule__OpOther__Group_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OpOther__Group_6__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getGroup_6()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTableDSL.g:4491:2: ( '<>' )
+                    {
+                    // InternalTableDSL.g:4491:2: ( '<>' )
+                    // InternalTableDSL.g:4492:3: '<>'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
+                    }
+                    match(input,37,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 9 :
+                    // InternalTableDSL.g:4497:2: ( '?:' )
+                    {
+                    // InternalTableDSL.g:4497:2: ( '?:' )
+                    // InternalTableDSL.g:4498:3: '?:'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
+                    }
+                    match(input,38,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Alternatives"
+
+
+    // $ANTLR start "rule__OpOther__Alternatives_5_1"
+    // InternalTableDSL.g:4507:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
+    public final void rule__OpOther__Alternatives_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4511:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==31) ) {
+                int LA24_1 = input.LA(2);
+
+                if ( (LA24_1==31) ) {
+                    alt24=1;
+                }
+                else if ( (LA24_1==EOF||(LA24_1>=RULE_STRING && LA24_1<=RULE_DECIMAL)||(LA24_1>=19 && LA24_1<=20)||LA24_1==32||LA24_1==43||(LA24_1>=48 && LA24_1<=53)||LA24_1==75||LA24_1==132||(LA24_1>=143 && LA24_1<=144)||LA24_1==146||LA24_1==148||(LA24_1>=151 && LA24_1<=159)||LA24_1==161||LA24_1==188) ) {
+                    alt24=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 24, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 24, 0, input);
+
+                throw nvae;
+            }
+            switch (alt24) {
+                case 1 :
+                    // InternalTableDSL.g:4512:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4512:2: ( ( rule__OpOther__Group_5_1_0__0 ) )
+                    // InternalTableDSL.g:4513:3: ( rule__OpOther__Group_5_1_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
+                    }
+                    // InternalTableDSL.g:4514:3: ( rule__OpOther__Group_5_1_0__0 )
+                    // InternalTableDSL.g:4514:4: rule__OpOther__Group_5_1_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OpOther__Group_5_1_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4518:2: ( '>' )
+                    {
+                    // InternalTableDSL.g:4518:2: ( '>' )
+                    // InternalTableDSL.g:4519:3: '>'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
+                    }
+                    match(input,31,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Alternatives_5_1"
+
+
+    // $ANTLR start "rule__OpOther__Alternatives_6_1"
+    // InternalTableDSL.g:4528:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
+    public final void rule__OpOther__Alternatives_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4532:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
+            int alt25=3;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0==32) ) {
+                int LA25_1 = input.LA(2);
+
+                if ( (synpred67_InternalTableDSL()) ) {
+                    alt25=1;
+                }
+                else if ( (synpred68_InternalTableDSL()) ) {
+                    alt25=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 25, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else if ( (LA25_0==36) ) {
+                alt25=3;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 25, 0, input);
+
+                throw nvae;
+            }
+            switch (alt25) {
+                case 1 :
+                    // InternalTableDSL.g:4533:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4533:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+                    // InternalTableDSL.g:4534:3: ( rule__OpOther__Group_6_1_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
+                    }
+                    // InternalTableDSL.g:4535:3: ( rule__OpOther__Group_6_1_0__0 )
+                    // InternalTableDSL.g:4535:4: rule__OpOther__Group_6_1_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__OpOther__Group_6_1_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4539:2: ( '<' )
+                    {
+                    // InternalTableDSL.g:4539:2: ( '<' )
+                    // InternalTableDSL.g:4540:3: '<'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
+                    }
+                    match(input,32,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4545:2: ( '=>' )
+                    {
+                    // InternalTableDSL.g:4545:2: ( '=>' )
+                    // InternalTableDSL.g:4546:3: '=>'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
+                    }
+                    match(input,36,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Alternatives_6_1"
+
+
+    // $ANTLR start "rule__OpAdd__Alternatives"
+    // InternalTableDSL.g:4555:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
+    public final void rule__OpAdd__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4559:1: ( ( '+' ) | ( '-' ) )
+            int alt26=2;
+            int LA26_0 = input.LA(1);
+
+            if ( (LA26_0==19) ) {
+                alt26=1;
+            }
+            else if ( (LA26_0==20) ) {
+                alt26=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 26, 0, input);
+
+                throw nvae;
+            }
+            switch (alt26) {
+                case 1 :
+                    // InternalTableDSL.g:4560:2: ( '+' )
+                    {
+                    // InternalTableDSL.g:4560:2: ( '+' )
+                    // InternalTableDSL.g:4561:3: '+'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
+                    }
+                    match(input,19,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4566:2: ( '-' )
+                    {
+                    // InternalTableDSL.g:4566:2: ( '-' )
+                    // InternalTableDSL.g:4567:3: '-'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
+                    }
+                    match(input,20,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpAdd__Alternatives"
+
+
+    // $ANTLR start "rule__OpMulti__Alternatives"
+    // InternalTableDSL.g:4576:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
+    public final void rule__OpMulti__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4580:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
+            int alt27=4;
+            switch ( input.LA(1) ) {
+            case 39:
+                {
+                alt27=1;
+                }
+                break;
+            case 40:
+                {
+                alt27=2;
+                }
+                break;
+            case 41:
+                {
+                alt27=3;
+                }
+                break;
+            case 42:
+                {
+                alt27=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 27, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt27) {
+                case 1 :
+                    // InternalTableDSL.g:4581:2: ( '*' )
+                    {
+                    // InternalTableDSL.g:4581:2: ( '*' )
+                    // InternalTableDSL.g:4582:3: '*'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
+                    }
+                    match(input,39,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4587:2: ( '**' )
+                    {
+                    // InternalTableDSL.g:4587:2: ( '**' )
+                    // InternalTableDSL.g:4588:3: '**'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
+                    }
+                    match(input,40,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4593:2: ( '/' )
+                    {
+                    // InternalTableDSL.g:4593:2: ( '/' )
+                    // InternalTableDSL.g:4594:3: '/'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
+                    }
+                    match(input,41,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:4599:2: ( '%' )
+                    {
+                    // InternalTableDSL.g:4599:2: ( '%' )
+                    // InternalTableDSL.g:4600:3: '%'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
+                    }
+                    match(input,42,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMulti__Alternatives"
+
+
+    // $ANTLR start "rule__XUnaryOperation__Alternatives"
+    // InternalTableDSL.g:4609:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
+    public final void rule__XUnaryOperation__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4613:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( ((LA28_0>=19 && LA28_0<=20)||LA28_0==43) ) {
+                alt28=1;
+            }
+            else if ( ((LA28_0>=RULE_STRING && LA28_0<=RULE_DECIMAL)||LA28_0==32||(LA28_0>=48 && LA28_0<=53)||LA28_0==75||LA28_0==132||(LA28_0>=143 && LA28_0<=144)||LA28_0==146||LA28_0==148||(LA28_0>=151 && LA28_0<=159)||LA28_0==161||LA28_0==188) ) {
+                alt28=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 28, 0, input);
+
+                throw nvae;
+            }
+            switch (alt28) {
+                case 1 :
+                    // InternalTableDSL.g:4614:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4614:2: ( ( rule__XUnaryOperation__Group_0__0 ) )
+                    // InternalTableDSL.g:4615:3: ( rule__XUnaryOperation__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
+                    }
+                    // InternalTableDSL.g:4616:3: ( rule__XUnaryOperation__Group_0__0 )
+                    // InternalTableDSL.g:4616:4: rule__XUnaryOperation__Group_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XUnaryOperation__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4620:2: ( ruleXCastedExpression )
+                    {
+                    // InternalTableDSL.g:4620:2: ( ruleXCastedExpression )
+                    // InternalTableDSL.g:4621:3: ruleXCastedExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXCastedExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XUnaryOperation__Alternatives"
+
+
+    // $ANTLR start "rule__OpUnary__Alternatives"
+    // InternalTableDSL.g:4630:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
+    public final void rule__OpUnary__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4634:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
+            int alt29=3;
+            switch ( input.LA(1) ) {
+            case 43:
+                {
+                alt29=1;
+                }
+                break;
+            case 20:
+                {
+                alt29=2;
+                }
+                break;
+            case 19:
+                {
+                alt29=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 29, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt29) {
+                case 1 :
+                    // InternalTableDSL.g:4635:2: ( '!' )
+                    {
+                    // InternalTableDSL.g:4635:2: ( '!' )
+                    // InternalTableDSL.g:4636:3: '!'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
+                    }
+                    match(input,43,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4641:2: ( '-' )
+                    {
+                    // InternalTableDSL.g:4641:2: ( '-' )
+                    // InternalTableDSL.g:4642:3: '-'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
+                    }
+                    match(input,20,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4647:2: ( '+' )
+                    {
+                    // InternalTableDSL.g:4647:2: ( '+' )
+                    // InternalTableDSL.g:4648:3: '+'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
+                    }
+                    match(input,19,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpUnary__Alternatives"
+
+
+    // $ANTLR start "rule__OpPostfix__Alternatives"
+    // InternalTableDSL.g:4657:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
+    public final void rule__OpPostfix__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4661:1: ( ( '++' ) | ( '--' ) )
+            int alt30=2;
+            int LA30_0 = input.LA(1);
+
+            if ( (LA30_0==44) ) {
+                alt30=1;
+            }
+            else if ( (LA30_0==45) ) {
+                alt30=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 30, 0, input);
+
+                throw nvae;
+            }
+            switch (alt30) {
+                case 1 :
+                    // InternalTableDSL.g:4662:2: ( '++' )
+                    {
+                    // InternalTableDSL.g:4662:2: ( '++' )
+                    // InternalTableDSL.g:4663:3: '++'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
+                    }
+                    match(input,44,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4668:2: ( '--' )
+                    {
+                    // InternalTableDSL.g:4668:2: ( '--' )
+                    // InternalTableDSL.g:4669:3: '--'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
+                    }
+                    match(input,45,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpPostfix__Alternatives"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1"
+    // InternalTableDSL.g:4678:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
+    public final void rule__XMemberFeatureCall__Alternatives_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4682:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
+            int alt31=2;
+            alt31 = dfa31.predict(input);
+            switch (alt31) {
+                case 1 :
+                    // InternalTableDSL.g:4683:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4683:2: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+                    // InternalTableDSL.g:4684:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
+                    }
+                    // InternalTableDSL.g:4685:3: ( rule__XMemberFeatureCall__Group_1_0__0 )
+                    // InternalTableDSL.g:4685:4: rule__XMemberFeatureCall__Group_1_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__Group_1_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4689:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    {
+                    // InternalTableDSL.g:4689:2: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+                    // InternalTableDSL.g:4690:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
+                    }
+                    // InternalTableDSL.g:4691:3: ( rule__XMemberFeatureCall__Group_1_1__0 )
+                    // InternalTableDSL.g:4691:4: rule__XMemberFeatureCall__Group_1_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__Group_1_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
+    // InternalTableDSL.g:4699:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
+    public final void rule__XMemberFeatureCall__Alternatives_1_0_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4703:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
+            int alt32=2;
+            int LA32_0 = input.LA(1);
+
+            if ( (LA32_0==46) ) {
+                alt32=1;
+            }
+            else if ( (LA32_0==184) ) {
+                alt32=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 32, 0, input);
+
+                throw nvae;
+            }
+            switch (alt32) {
+                case 1 :
+                    // InternalTableDSL.g:4704:2: ( '.' )
+                    {
+                    // InternalTableDSL.g:4704:2: ( '.' )
+                    // InternalTableDSL.g:4705:3: '.'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
+                    }
+                    match(input,46,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4710:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    {
+                    // InternalTableDSL.g:4710:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+                    // InternalTableDSL.g:4711:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); 
+                    }
+                    // InternalTableDSL.g:4712:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+                    // InternalTableDSL.g:4712:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
+    // InternalTableDSL.g:4720:1: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) );
+    public final void rule__XMemberFeatureCall__Alternatives_1_1_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4724:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
+            int alt33=3;
+            switch ( input.LA(1) ) {
+            case 46:
+                {
+                alt33=1;
+                }
+                break;
+            case 185:
+                {
+                alt33=2;
+                }
+                break;
+            case 184:
+                {
+                alt33=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 33, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt33) {
+                case 1 :
+                    // InternalTableDSL.g:4725:2: ( '.' )
+                    {
+                    // InternalTableDSL.g:4725:2: ( '.' )
+                    // InternalTableDSL.g:4726:3: '.'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
+                    }
+                    match(input,46,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4731:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    {
+                    // InternalTableDSL.g:4731:2: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+                    // InternalTableDSL.g:4732:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); 
+                    }
+                    // InternalTableDSL.g:4733:3: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+                    // InternalTableDSL.g:4733:4: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4737:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    {
+                    // InternalTableDSL.g:4737:2: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+                    // InternalTableDSL.g:4738:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); 
+                    }
+                    // InternalTableDSL.g:4739:3: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+                    // InternalTableDSL.g:4739:4: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
+    // InternalTableDSL.g:4747:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );
+    public final void rule__XMemberFeatureCall__Alternatives_1_1_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4751:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
+            int alt34=2;
+            alt34 = dfa34.predict(input);
+            switch (alt34) {
+                case 1 :
+                    // InternalTableDSL.g:4752:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    {
+                    // InternalTableDSL.g:4752:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+                    // InternalTableDSL.g:4753:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
+                    }
+                    // InternalTableDSL.g:4754:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+                    // InternalTableDSL.g:4754:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4758:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    {
+                    // InternalTableDSL.g:4758:2: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+                    // InternalTableDSL.g:4759:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); 
+                    }
+                    // InternalTableDSL.g:4760:3: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+                    // InternalTableDSL.g:4760:4: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__Group_1_1_3_1_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
+
+
+    // $ANTLR start "rule__XPrimaryExpression__Alternatives"
+    // InternalTableDSL.g:4768:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
+    public final void rule__XPrimaryExpression__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4772:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
+            int alt35=15;
+            alt35 = dfa35.predict(input);
+            switch (alt35) {
+                case 1 :
+                    // InternalTableDSL.g:4773:2: ( ruleXConstructorCall )
+                    {
+                    // InternalTableDSL.g:4773:2: ( ruleXConstructorCall )
+                    // InternalTableDSL.g:4774:3: ruleXConstructorCall
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXConstructorCall();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4779:2: ( ruleXBlockExpression )
+                    {
+                    // InternalTableDSL.g:4779:2: ( ruleXBlockExpression )
+                    // InternalTableDSL.g:4780:3: ruleXBlockExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXBlockExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4785:2: ( ruleXSwitchExpression )
+                    {
+                    // InternalTableDSL.g:4785:2: ( ruleXSwitchExpression )
+                    // InternalTableDSL.g:4786:3: ruleXSwitchExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXSwitchExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:4791:2: ( ( ruleXSynchronizedExpression ) )
+                    {
+                    // InternalTableDSL.g:4791:2: ( ( ruleXSynchronizedExpression ) )
+                    // InternalTableDSL.g:4792:3: ( ruleXSynchronizedExpression )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
+                    }
+                    // InternalTableDSL.g:4793:3: ( ruleXSynchronizedExpression )
+                    // InternalTableDSL.g:4793:4: ruleXSynchronizedExpression
+                    {
+                    pushFollow(FOLLOW_2);
+                    ruleXSynchronizedExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:4797:2: ( ruleXFeatureCall )
+                    {
+                    // InternalTableDSL.g:4797:2: ( ruleXFeatureCall )
+                    // InternalTableDSL.g:4798:3: ruleXFeatureCall
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXFeatureCall();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:4803:2: ( ruleXLiteral )
+                    {
+                    // InternalTableDSL.g:4803:2: ( ruleXLiteral )
+                    // InternalTableDSL.g:4804:3: ruleXLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:4809:2: ( ruleXIfExpression )
+                    {
+                    // InternalTableDSL.g:4809:2: ( ruleXIfExpression )
+                    // InternalTableDSL.g:4810:3: ruleXIfExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXIfExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTableDSL.g:4815:2: ( ( ruleXForLoopExpression ) )
+                    {
+                    // InternalTableDSL.g:4815:2: ( ( ruleXForLoopExpression ) )
+                    // InternalTableDSL.g:4816:3: ( ruleXForLoopExpression )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
+                    }
+                    // InternalTableDSL.g:4817:3: ( ruleXForLoopExpression )
+                    // InternalTableDSL.g:4817:4: ruleXForLoopExpression
+                    {
+                    pushFollow(FOLLOW_2);
+                    ruleXForLoopExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 9 :
+                    // InternalTableDSL.g:4821:2: ( ruleXBasicForLoopExpression )
+                    {
+                    // InternalTableDSL.g:4821:2: ( ruleXBasicForLoopExpression )
+                    // InternalTableDSL.g:4822:3: ruleXBasicForLoopExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXBasicForLoopExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 10 :
+                    // InternalTableDSL.g:4827:2: ( ruleXWhileExpression )
+                    {
+                    // InternalTableDSL.g:4827:2: ( ruleXWhileExpression )
+                    // InternalTableDSL.g:4828:3: ruleXWhileExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXWhileExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 11 :
+                    // InternalTableDSL.g:4833:2: ( ruleXDoWhileExpression )
+                    {
+                    // InternalTableDSL.g:4833:2: ( ruleXDoWhileExpression )
+                    // InternalTableDSL.g:4834:3: ruleXDoWhileExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXDoWhileExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 12 :
+                    // InternalTableDSL.g:4839:2: ( ruleXThrowExpression )
+                    {
+                    // InternalTableDSL.g:4839:2: ( ruleXThrowExpression )
+                    // InternalTableDSL.g:4840:3: ruleXThrowExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXThrowExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 13 :
+                    // InternalTableDSL.g:4845:2: ( ruleXReturnExpression )
+                    {
+                    // InternalTableDSL.g:4845:2: ( ruleXReturnExpression )
+                    // InternalTableDSL.g:4846:3: ruleXReturnExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXReturnExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 14 :
+                    // InternalTableDSL.g:4851:2: ( ruleXTryCatchFinallyExpression )
+                    {
+                    // InternalTableDSL.g:4851:2: ( ruleXTryCatchFinallyExpression )
+                    // InternalTableDSL.g:4852:3: ruleXTryCatchFinallyExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXTryCatchFinallyExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 15 :
+                    // InternalTableDSL.g:4857:2: ( ruleXParenthesizedExpression )
+                    {
+                    // InternalTableDSL.g:4857:2: ( ruleXParenthesizedExpression )
+                    // InternalTableDSL.g:4858:3: ruleXParenthesizedExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXParenthesizedExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPrimaryExpression__Alternatives"
+
+
+    // $ANTLR start "rule__XLiteral__Alternatives"
+    // InternalTableDSL.g:4867:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
+    public final void rule__XLiteral__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4871:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
+            int alt36=7;
+            switch ( input.LA(1) ) {
+            case 143:
+                {
+                alt36=1;
+                }
+                break;
+            case 144:
+                {
+                alt36=2;
+                }
+                break;
+            case 53:
+            case 188:
+                {
+                alt36=3;
+                }
+                break;
+            case RULE_HEX:
+            case RULE_INT:
+            case RULE_DECIMAL:
+                {
+                alt36=4;
+                }
+                break;
+            case 155:
+                {
+                alt36=5;
+                }
+                break;
+            case RULE_STRING:
+                {
+                alt36=6;
+                }
+                break;
+            case 156:
+                {
+                alt36=7;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 36, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt36) {
+                case 1 :
+                    // InternalTableDSL.g:4872:2: ( ruleXCollectionLiteral )
+                    {
+                    // InternalTableDSL.g:4872:2: ( ruleXCollectionLiteral )
+                    // InternalTableDSL.g:4873:3: ruleXCollectionLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXCollectionLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4878:2: ( ( ruleXClosure ) )
+                    {
+                    // InternalTableDSL.g:4878:2: ( ( ruleXClosure ) )
+                    // InternalTableDSL.g:4879:3: ( ruleXClosure )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
+                    }
+                    // InternalTableDSL.g:4880:3: ( ruleXClosure )
+                    // InternalTableDSL.g:4880:4: ruleXClosure
+                    {
+                    pushFollow(FOLLOW_2);
+                    ruleXClosure();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:4884:2: ( ruleXBooleanLiteral )
+                    {
+                    // InternalTableDSL.g:4884:2: ( ruleXBooleanLiteral )
+                    // InternalTableDSL.g:4885:3: ruleXBooleanLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXBooleanLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:4890:2: ( ruleXNumberLiteral )
+                    {
+                    // InternalTableDSL.g:4890:2: ( ruleXNumberLiteral )
+                    // InternalTableDSL.g:4891:3: ruleXNumberLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXNumberLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:4896:2: ( ruleXNullLiteral )
+                    {
+                    // InternalTableDSL.g:4896:2: ( ruleXNullLiteral )
+                    // InternalTableDSL.g:4897:3: ruleXNullLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXNullLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:4902:2: ( ruleXStringLiteral )
+                    {
+                    // InternalTableDSL.g:4902:2: ( ruleXStringLiteral )
+                    // InternalTableDSL.g:4903:3: ruleXStringLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXStringLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:4908:2: ( ruleXTypeLiteral )
+                    {
+                    // InternalTableDSL.g:4908:2: ( ruleXTypeLiteral )
+                    // InternalTableDSL.g:4909:3: ruleXTypeLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXTypeLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XLiteral__Alternatives"
+
+
+    // $ANTLR start "rule__XCollectionLiteral__Alternatives"
+    // InternalTableDSL.g:4918:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
+    public final void rule__XCollectionLiteral__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4922:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
+            int alt37=2;
+            int LA37_0 = input.LA(1);
+
+            if ( (LA37_0==143) ) {
+                int LA37_1 = input.LA(2);
+
+                if ( (LA37_1==75) ) {
+                    alt37=1;
+                }
+                else if ( (LA37_1==144) ) {
+                    alt37=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 37, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 37, 0, input);
+
+                throw nvae;
+            }
+            switch (alt37) {
+                case 1 :
+                    // InternalTableDSL.g:4923:2: ( ruleXSetLiteral )
+                    {
+                    // InternalTableDSL.g:4923:2: ( ruleXSetLiteral )
+                    // InternalTableDSL.g:4924:3: ruleXSetLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXSetLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4929:2: ( ruleXListLiteral )
+                    {
+                    // InternalTableDSL.g:4929:2: ( ruleXListLiteral )
+                    // InternalTableDSL.g:4930:3: ruleXListLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXListLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCollectionLiteral__Alternatives"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Alternatives_2"
+    // InternalTableDSL.g:4939:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
+    public final void rule__XSwitchExpression__Alternatives_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4943:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
+            int alt38=2;
+            alt38 = dfa38.predict(input);
+            switch (alt38) {
+                case 1 :
+                    // InternalTableDSL.g:4944:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4944:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+                    // InternalTableDSL.g:4945:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
+                    }
+                    // InternalTableDSL.g:4946:3: ( rule__XSwitchExpression__Group_2_0__0 )
+                    // InternalTableDSL.g:4946:4: rule__XSwitchExpression__Group_2_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XSwitchExpression__Group_2_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4950:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    {
+                    // InternalTableDSL.g:4950:2: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+                    // InternalTableDSL.g:4951:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
+                    }
+                    // InternalTableDSL.g:4952:3: ( rule__XSwitchExpression__Group_2_1__0 )
+                    // InternalTableDSL.g:4952:4: rule__XSwitchExpression__Group_2_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XSwitchExpression__Group_2_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Alternatives_2"
+
+
+    // $ANTLR start "rule__XCasePart__Alternatives_3"
+    // InternalTableDSL.g:4960:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
+    public final void rule__XCasePart__Alternatives_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4964:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
+            int alt39=2;
+            int LA39_0 = input.LA(1);
+
+            if ( (LA39_0==149) ) {
+                alt39=1;
+            }
+            else if ( (LA39_0==141) ) {
+                alt39=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 39, 0, input);
+
+                throw nvae;
+            }
+            switch (alt39) {
+                case 1 :
+                    // InternalTableDSL.g:4965:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    {
+                    // InternalTableDSL.g:4965:2: ( ( rule__XCasePart__Group_3_0__0 ) )
+                    // InternalTableDSL.g:4966:3: ( rule__XCasePart__Group_3_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
+                    }
+                    // InternalTableDSL.g:4967:3: ( rule__XCasePart__Group_3_0__0 )
+                    // InternalTableDSL.g:4967:4: rule__XCasePart__Group_3_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XCasePart__Group_3_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4971:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    {
+                    // InternalTableDSL.g:4971:2: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
+                    // InternalTableDSL.g:4972:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
+                    }
+                    // InternalTableDSL.g:4973:3: ( rule__XCasePart__FallThroughAssignment_3_1 )
+                    // InternalTableDSL.g:4973:4: rule__XCasePart__FallThroughAssignment_3_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XCasePart__FallThroughAssignment_3_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Alternatives_3"
+
+
+    // $ANTLR start "rule__XExpressionOrVarDeclaration__Alternatives"
+    // InternalTableDSL.g:4981:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
+    public final void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:4985:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
+            int alt40=2;
+            int LA40_0 = input.LA(1);
+
+            if ( (LA40_0==47||LA40_0==187) ) {
+                alt40=1;
+            }
+            else if ( ((LA40_0>=RULE_STRING && LA40_0<=RULE_DECIMAL)||(LA40_0>=19 && LA40_0<=20)||LA40_0==32||LA40_0==43||(LA40_0>=48 && LA40_0<=53)||LA40_0==75||LA40_0==132||(LA40_0>=143 && LA40_0<=144)||LA40_0==146||LA40_0==148||(LA40_0>=151 && LA40_0<=159)||LA40_0==161||LA40_0==188) ) {
+                alt40=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 40, 0, input);
+
+                throw nvae;
+            }
+            switch (alt40) {
+                case 1 :
+                    // InternalTableDSL.g:4986:2: ( ruleXVariableDeclaration )
+                    {
+                    // InternalTableDSL.g:4986:2: ( ruleXVariableDeclaration )
+                    // InternalTableDSL.g:4987:3: ruleXVariableDeclaration
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXVariableDeclaration();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4992:2: ( ruleXExpression )
+                    {
+                    // InternalTableDSL.g:4992:2: ( ruleXExpression )
+                    // InternalTableDSL.g:4993:3: ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XExpressionOrVarDeclaration__Alternatives"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Alternatives_1"
+    // InternalTableDSL.g:5002:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
+    public final void rule__XVariableDeclaration__Alternatives_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5006:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
+            int alt41=2;
+            int LA41_0 = input.LA(1);
+
+            if ( (LA41_0==187) ) {
+                alt41=1;
+            }
+            else if ( (LA41_0==47) ) {
+                alt41=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 41, 0, input);
+
+                throw nvae;
+            }
+            switch (alt41) {
+                case 1 :
+                    // InternalTableDSL.g:5007:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    {
+                    // InternalTableDSL.g:5007:2: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+                    // InternalTableDSL.g:5008:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
+                    }
+                    // InternalTableDSL.g:5009:3: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+                    // InternalTableDSL.g:5009:4: rule__XVariableDeclaration__WriteableAssignment_1_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XVariableDeclaration__WriteableAssignment_1_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5013:2: ( 'val' )
+                    {
+                    // InternalTableDSL.g:5013:2: ( 'val' )
+                    // InternalTableDSL.g:5014:3: 'val'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
+                    }
+                    match(input,47,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Alternatives_1"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Alternatives_2"
+    // InternalTableDSL.g:5023:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
+    public final void rule__XVariableDeclaration__Alternatives_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5027:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
+            int alt42=2;
+            int LA42_0 = input.LA(1);
+
+            if ( (LA42_0==RULE_ID) ) {
+                int LA42_1 = input.LA(2);
+
+                if ( (synpred107_InternalTableDSL()) ) {
+                    alt42=1;
+                }
+                else if ( (true) ) {
+                    alt42=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 42, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else if ( (LA42_0==36||LA42_0==132) ) {
+                alt42=1;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 42, 0, input);
+
+                throw nvae;
+            }
+            switch (alt42) {
+                case 1 :
+                    // InternalTableDSL.g:5028:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    {
+                    // InternalTableDSL.g:5028:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+                    // InternalTableDSL.g:5029:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
+                    }
+                    // InternalTableDSL.g:5030:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+                    // InternalTableDSL.g:5030:4: rule__XVariableDeclaration__Group_2_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XVariableDeclaration__Group_2_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5034:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    {
+                    // InternalTableDSL.g:5034:2: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+                    // InternalTableDSL.g:5035:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
+                    }
+                    // InternalTableDSL.g:5036:3: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+                    // InternalTableDSL.g:5036:4: rule__XVariableDeclaration__NameAssignment_2_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XVariableDeclaration__NameAssignment_2_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Alternatives_2"
+
+
+    // $ANTLR start "rule__XFeatureCall__Alternatives_3_1"
+    // InternalTableDSL.g:5044:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
+    public final void rule__XFeatureCall__Alternatives_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5048:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
+            int alt43=2;
+            alt43 = dfa43.predict(input);
+            switch (alt43) {
+                case 1 :
+                    // InternalTableDSL.g:5049:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    {
+                    // InternalTableDSL.g:5049:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+                    // InternalTableDSL.g:5050:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
+                    }
+                    // InternalTableDSL.g:5051:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+                    // InternalTableDSL.g:5051:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5055:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    {
+                    // InternalTableDSL.g:5055:2: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+                    // InternalTableDSL.g:5056:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
+                    }
+                    // InternalTableDSL.g:5057:3: ( rule__XFeatureCall__Group_3_1_1__0 )
+                    // InternalTableDSL.g:5057:4: rule__XFeatureCall__Group_3_1_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XFeatureCall__Group_3_1_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Alternatives_3_1"
+
+
+    // $ANTLR start "rule__FeatureCallID__Alternatives"
+    // InternalTableDSL.g:5065:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
+    public final void rule__FeatureCallID__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5069:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
+            int alt44=5;
+            switch ( input.LA(1) ) {
+            case RULE_ID:
+                {
+                alt44=1;
+                }
+                break;
+            case 48:
+                {
+                alt44=2;
+                }
+                break;
+            case 49:
+                {
+                alt44=3;
+                }
+                break;
+            case 50:
+                {
+                alt44=4;
+                }
+                break;
+            case 51:
+                {
+                alt44=5;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 44, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt44) {
+                case 1 :
+                    // InternalTableDSL.g:5070:2: ( ruleValidID )
+                    {
+                    // InternalTableDSL.g:5070:2: ( ruleValidID )
+                    // InternalTableDSL.g:5071:3: ruleValidID
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleValidID();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5076:2: ( 'extends' )
+                    {
+                    // InternalTableDSL.g:5076:2: ( 'extends' )
+                    // InternalTableDSL.g:5077:3: 'extends'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
+                    }
+                    match(input,48,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:5082:2: ( 'static' )
+                    {
+                    // InternalTableDSL.g:5082:2: ( 'static' )
+                    // InternalTableDSL.g:5083:3: 'static'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
+                    }
+                    match(input,49,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:5088:2: ( 'import' )
+                    {
+                    // InternalTableDSL.g:5088:2: ( 'import' )
+                    // InternalTableDSL.g:5089:3: 'import'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
+                    }
+                    match(input,50,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:5094:2: ( 'extension' )
+                    {
+                    // InternalTableDSL.g:5094:2: ( 'extension' )
+                    // InternalTableDSL.g:5095:3: 'extension'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
+                    }
+                    match(input,51,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FeatureCallID__Alternatives"
+
+
+    // $ANTLR start "rule__IdOrSuper__Alternatives"
+    // InternalTableDSL.g:5104:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
+    public final void rule__IdOrSuper__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5108:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
+            int alt45=2;
+            int LA45_0 = input.LA(1);
+
+            if ( (LA45_0==RULE_ID||(LA45_0>=48 && LA45_0<=51)) ) {
+                alt45=1;
+            }
+            else if ( (LA45_0==52) ) {
+                alt45=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 45, 0, input);
+
+                throw nvae;
+            }
+            switch (alt45) {
+                case 1 :
+                    // InternalTableDSL.g:5109:2: ( ruleFeatureCallID )
+                    {
+                    // InternalTableDSL.g:5109:2: ( ruleFeatureCallID )
+                    // InternalTableDSL.g:5110:3: ruleFeatureCallID
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleFeatureCallID();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5115:2: ( 'super' )
+                    {
+                    // InternalTableDSL.g:5115:2: ( 'super' )
+                    // InternalTableDSL.g:5116:3: 'super'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
+                    }
+                    match(input,52,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IdOrSuper__Alternatives"
+
+
+    // $ANTLR start "rule__XConstructorCall__Alternatives_4_1"
+    // InternalTableDSL.g:5125:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
+    public final void rule__XConstructorCall__Alternatives_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5129:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
+            int alt46=2;
+            alt46 = dfa46.predict(input);
+            switch (alt46) {
+                case 1 :
+                    // InternalTableDSL.g:5130:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    {
+                    // InternalTableDSL.g:5130:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+                    // InternalTableDSL.g:5131:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
+                    }
+                    // InternalTableDSL.g:5132:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+                    // InternalTableDSL.g:5132:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XConstructorCall__ArgumentsAssignment_4_1_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5136:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    {
+                    // InternalTableDSL.g:5136:2: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+                    // InternalTableDSL.g:5137:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
+                    }
+                    // InternalTableDSL.g:5138:3: ( rule__XConstructorCall__Group_4_1_1__0 )
+                    // InternalTableDSL.g:5138:4: rule__XConstructorCall__Group_4_1_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XConstructorCall__Group_4_1_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Alternatives_4_1"
+
+
+    // $ANTLR start "rule__XBooleanLiteral__Alternatives_1"
+    // InternalTableDSL.g:5146:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
+    public final void rule__XBooleanLiteral__Alternatives_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5150:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
+            int alt47=2;
+            int LA47_0 = input.LA(1);
+
+            if ( (LA47_0==53) ) {
+                alt47=1;
+            }
+            else if ( (LA47_0==188) ) {
+                alt47=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 47, 0, input);
+
+                throw nvae;
+            }
+            switch (alt47) {
+                case 1 :
+                    // InternalTableDSL.g:5151:2: ( 'false' )
+                    {
+                    // InternalTableDSL.g:5151:2: ( 'false' )
+                    // InternalTableDSL.g:5152:3: 'false'
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
+                    }
+                    match(input,53,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5157:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    {
+                    // InternalTableDSL.g:5157:2: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+                    // InternalTableDSL.g:5158:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
+                    }
+                    // InternalTableDSL.g:5159:3: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+                    // InternalTableDSL.g:5159:4: rule__XBooleanLiteral__IsTrueAssignment_1_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XBooleanLiteral__IsTrueAssignment_1_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBooleanLiteral__Alternatives_1"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Alternatives_3"
+    // InternalTableDSL.g:5167:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
+    public final void rule__XTryCatchFinallyExpression__Alternatives_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5171:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
+            int alt48=2;
+            int LA48_0 = input.LA(1);
+
+            if ( (LA48_0==162) ) {
+                alt48=1;
+            }
+            else if ( (LA48_0==160) ) {
+                alt48=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 48, 0, input);
+
+                throw nvae;
+            }
+            switch (alt48) {
+                case 1 :
+                    // InternalTableDSL.g:5172:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    {
+                    // InternalTableDSL.g:5172:2: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+                    // InternalTableDSL.g:5173:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
+                    }
+                    // InternalTableDSL.g:5174:3: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+                    // InternalTableDSL.g:5174:4: rule__XTryCatchFinallyExpression__Group_3_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XTryCatchFinallyExpression__Group_3_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5178:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    {
+                    // InternalTableDSL.g:5178:2: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+                    // InternalTableDSL.g:5179:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
+                    }
+                    // InternalTableDSL.g:5180:3: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+                    // InternalTableDSL.g:5180:4: rule__XTryCatchFinallyExpression__Group_3_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XTryCatchFinallyExpression__Group_3_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Alternatives_3"
+
+
+    // $ANTLR start "rule__Number__Alternatives"
+    // InternalTableDSL.g:5188:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
+    public final void rule__Number__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5192:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
+            int alt49=2;
+            int LA49_0 = input.LA(1);
+
+            if ( (LA49_0==RULE_HEX) ) {
+                alt49=1;
+            }
+            else if ( ((LA49_0>=RULE_INT && LA49_0<=RULE_DECIMAL)) ) {
+                alt49=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 49, 0, input);
+
+                throw nvae;
+            }
+            switch (alt49) {
+                case 1 :
+                    // InternalTableDSL.g:5193:2: ( RULE_HEX )
+                    {
+                    // InternalTableDSL.g:5193:2: ( RULE_HEX )
+                    // InternalTableDSL.g:5194:3: RULE_HEX
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
+                    }
+                    match(input,RULE_HEX,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5199:2: ( ( rule__Number__Group_1__0 ) )
+                    {
+                    // InternalTableDSL.g:5199:2: ( ( rule__Number__Group_1__0 ) )
+                    // InternalTableDSL.g:5200:3: ( rule__Number__Group_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getNumberAccess().getGroup_1()); 
+                    }
+                    // InternalTableDSL.g:5201:3: ( rule__Number__Group_1__0 )
+                    // InternalTableDSL.g:5201:4: rule__Number__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Number__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getNumberAccess().getGroup_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Alternatives"
+
+
+    // $ANTLR start "rule__Number__Alternatives_1_0"
+    // InternalTableDSL.g:5209:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    public final void rule__Number__Alternatives_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5213:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            int alt50=2;
+            int LA50_0 = input.LA(1);
+
+            if ( (LA50_0==RULE_INT) ) {
+                alt50=1;
+            }
+            else if ( (LA50_0==RULE_DECIMAL) ) {
+                alt50=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 50, 0, input);
+
+                throw nvae;
+            }
+            switch (alt50) {
+                case 1 :
+                    // InternalTableDSL.g:5214:2: ( RULE_INT )
+                    {
+                    // InternalTableDSL.g:5214:2: ( RULE_INT )
+                    // InternalTableDSL.g:5215:3: RULE_INT
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
+                    }
+                    match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5220:2: ( RULE_DECIMAL )
+                    {
+                    // InternalTableDSL.g:5220:2: ( RULE_DECIMAL )
+                    // InternalTableDSL.g:5221:3: RULE_DECIMAL
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
+                    }
+                    match(input,RULE_DECIMAL,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Alternatives_1_0"
+
+
+    // $ANTLR start "rule__Number__Alternatives_1_1_1"
+    // InternalTableDSL.g:5230:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+    public final void rule__Number__Alternatives_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5234:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+            int alt51=2;
+            int LA51_0 = input.LA(1);
+
+            if ( (LA51_0==RULE_INT) ) {
+                alt51=1;
+            }
+            else if ( (LA51_0==RULE_DECIMAL) ) {
+                alt51=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 51, 0, input);
+
+                throw nvae;
+            }
+            switch (alt51) {
+                case 1 :
+                    // InternalTableDSL.g:5235:2: ( RULE_INT )
+                    {
+                    // InternalTableDSL.g:5235:2: ( RULE_INT )
+                    // InternalTableDSL.g:5236:3: RULE_INT
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
+                    }
+                    match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5241:2: ( RULE_DECIMAL )
+                    {
+                    // InternalTableDSL.g:5241:2: ( RULE_DECIMAL )
+                    // InternalTableDSL.g:5242:3: RULE_DECIMAL
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
+                    }
+                    match(input,RULE_DECIMAL,FOLLOW_2); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Alternatives_1_1_1"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Alternatives"
+    // InternalTableDSL.g:5251:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
+    public final void rule__JvmTypeReference__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5255:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
+            int alt52=2;
+            int LA52_0 = input.LA(1);
+
+            if ( (LA52_0==RULE_ID) ) {
+                alt52=1;
+            }
+            else if ( (LA52_0==36||LA52_0==132) ) {
+                alt52=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 52, 0, input);
+
+                throw nvae;
+            }
+            switch (alt52) {
+                case 1 :
+                    // InternalTableDSL.g:5256:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    {
+                    // InternalTableDSL.g:5256:2: ( ( rule__JvmTypeReference__Group_0__0 ) )
+                    // InternalTableDSL.g:5257:3: ( rule__JvmTypeReference__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
+                    }
+                    // InternalTableDSL.g:5258:3: ( rule__JvmTypeReference__Group_0__0 )
+                    // InternalTableDSL.g:5258:4: rule__JvmTypeReference__Group_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__JvmTypeReference__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5262:2: ( ruleXFunctionTypeRef )
+                    {
+                    // InternalTableDSL.g:5262:2: ( ruleXFunctionTypeRef )
+                    // InternalTableDSL.g:5263:3: ruleXFunctionTypeRef
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleXFunctionTypeRef();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Alternatives"
+
+
+    // $ANTLR start "rule__JvmArgumentTypeReference__Alternatives"
+    // InternalTableDSL.g:5272:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
+    public final void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5276:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
+            int alt53=2;
+            int LA53_0 = input.LA(1);
+
+            if ( (LA53_0==RULE_ID||LA53_0==36||LA53_0==132) ) {
+                alt53=1;
+            }
+            else if ( (LA53_0==163) ) {
+                alt53=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 53, 0, input);
+
+                throw nvae;
+            }
+            switch (alt53) {
+                case 1 :
+                    // InternalTableDSL.g:5277:2: ( ruleJvmTypeReference )
+                    {
+                    // InternalTableDSL.g:5277:2: ( ruleJvmTypeReference )
+                    // InternalTableDSL.g:5278:3: ruleJvmTypeReference
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleJvmTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5283:2: ( ruleJvmWildcardTypeReference )
+                    {
+                    // InternalTableDSL.g:5283:2: ( ruleJvmWildcardTypeReference )
+                    // InternalTableDSL.g:5284:3: ruleJvmWildcardTypeReference
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleJvmWildcardTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmArgumentTypeReference__Alternatives"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Alternatives_2"
+    // InternalTableDSL.g:5293:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
+    public final void rule__JvmWildcardTypeReference__Alternatives_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5297:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
+            int alt54=2;
+            int LA54_0 = input.LA(1);
+
+            if ( (LA54_0==48) ) {
+                alt54=1;
+            }
+            else if ( (LA54_0==52) ) {
+                alt54=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 54, 0, input);
+
+                throw nvae;
+            }
+            switch (alt54) {
+                case 1 :
+                    // InternalTableDSL.g:5298:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    {
+                    // InternalTableDSL.g:5298:2: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
+                    // InternalTableDSL.g:5299:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
+                    }
+                    // InternalTableDSL.g:5300:3: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
+                    // InternalTableDSL.g:5300:4: rule__JvmWildcardTypeReference__Group_2_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__JvmWildcardTypeReference__Group_2_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5304:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    {
+                    // InternalTableDSL.g:5304:2: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
+                    // InternalTableDSL.g:5305:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
+                    }
+                    // InternalTableDSL.g:5306:3: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
+                    // InternalTableDSL.g:5306:4: rule__JvmWildcardTypeReference__Group_2_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__JvmWildcardTypeReference__Group_2_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Alternatives_2"
+
+
+    // $ANTLR start "rule__StyleCompare__Alternatives"
+    // InternalTableDSL.g:5314:1: rule__StyleCompare__Alternatives : ( ( ( 'equal' ) ) | ( ( 'greater equal' ) ) | ( ( 'greater than' ) ) | ( ( 'lower equal' ) ) | ( ( 'lower than' ) ) | ( ( 'not equal' ) ) );
+    public final void rule__StyleCompare__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5318:1: ( ( ( 'equal' ) ) | ( ( 'greater equal' ) ) | ( ( 'greater than' ) ) | ( ( 'lower equal' ) ) | ( ( 'lower than' ) ) | ( ( 'not equal' ) ) )
+            int alt55=6;
+            switch ( input.LA(1) ) {
+            case 54:
+                {
+                alt55=1;
+                }
+                break;
+            case 55:
+                {
+                alt55=2;
+                }
+                break;
+            case 56:
+                {
+                alt55=3;
+                }
+                break;
+            case 57:
+                {
+                alt55=4;
+                }
+                break;
+            case 58:
+                {
+                alt55=5;
+                }
+                break;
+            case 59:
+                {
+                alt55=6;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 55, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt55) {
+                case 1 :
+                    // InternalTableDSL.g:5319:2: ( ( 'equal' ) )
+                    {
+                    // InternalTableDSL.g:5319:2: ( ( 'equal' ) )
+                    // InternalTableDSL.g:5320:3: ( 'equal' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getStyleCompareAccess().getEqualEnumLiteralDeclaration_0()); 
+                    }
+                    // InternalTableDSL.g:5321:3: ( 'equal' )
+                    // InternalTableDSL.g:5321:4: 'equal'
+                    {
+                    match(input,54,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getStyleCompareAccess().getEqualEnumLiteralDeclaration_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5325:2: ( ( 'greater equal' ) )
+                    {
+                    // InternalTableDSL.g:5325:2: ( ( 'greater equal' ) )
+                    // InternalTableDSL.g:5326:3: ( 'greater equal' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getStyleCompareAccess().getGreaterEqualEnumLiteralDeclaration_1()); 
+                    }
+                    // InternalTableDSL.g:5327:3: ( 'greater equal' )
+                    // InternalTableDSL.g:5327:4: 'greater equal'
+                    {
+                    match(input,55,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getStyleCompareAccess().getGreaterEqualEnumLiteralDeclaration_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:5331:2: ( ( 'greater than' ) )
+                    {
+                    // InternalTableDSL.g:5331:2: ( ( 'greater than' ) )
+                    // InternalTableDSL.g:5332:3: ( 'greater than' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getStyleCompareAccess().getGreaterThanEnumLiteralDeclaration_2()); 
+                    }
+                    // InternalTableDSL.g:5333:3: ( 'greater than' )
+                    // InternalTableDSL.g:5333:4: 'greater than'
+                    {
+                    match(input,56,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getStyleCompareAccess().getGreaterThanEnumLiteralDeclaration_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:5337:2: ( ( 'lower equal' ) )
+                    {
+                    // InternalTableDSL.g:5337:2: ( ( 'lower equal' ) )
+                    // InternalTableDSL.g:5338:3: ( 'lower equal' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getStyleCompareAccess().getLowerEqualEnumLiteralDeclaration_3()); 
+                    }
+                    // InternalTableDSL.g:5339:3: ( 'lower equal' )
+                    // InternalTableDSL.g:5339:4: 'lower equal'
+                    {
+                    match(input,57,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getStyleCompareAccess().getLowerEqualEnumLiteralDeclaration_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:5343:2: ( ( 'lower than' ) )
+                    {
+                    // InternalTableDSL.g:5343:2: ( ( 'lower than' ) )
+                    // InternalTableDSL.g:5344:3: ( 'lower than' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getStyleCompareAccess().getLowerThanEnumLiteralDeclaration_4()); 
+                    }
+                    // InternalTableDSL.g:5345:3: ( 'lower than' )
+                    // InternalTableDSL.g:5345:4: 'lower than'
+                    {
+                    match(input,58,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getStyleCompareAccess().getLowerThanEnumLiteralDeclaration_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:5349:2: ( ( 'not equal' ) )
+                    {
+                    // InternalTableDSL.g:5349:2: ( ( 'not equal' ) )
+                    // InternalTableDSL.g:5350:3: ( 'not equal' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getStyleCompareAccess().getNotEqualEnumLiteralDeclaration_5()); 
+                    }
+                    // InternalTableDSL.g:5351:3: ( 'not equal' )
+                    // InternalTableDSL.g:5351:4: 'not equal'
+                    {
+                    match(input,59,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getStyleCompareAccess().getNotEqualEnumLiteralDeclaration_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StyleCompare__Alternatives"
+
+
+    // $ANTLR start "rule__TrendIconEnum__Alternatives"
+    // InternalTableDSL.g:5359:1: rule__TrendIconEnum__Alternatives : ( ( ( 'rising' ) ) | ( ( 'bad-rising' ) ) | ( ( 'sloping' ) ) | ( ( 'good-sloping' ) ) | ( ( 'stagnating' ) ) );
+    public final void rule__TrendIconEnum__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5363:1: ( ( ( 'rising' ) ) | ( ( 'bad-rising' ) ) | ( ( 'sloping' ) ) | ( ( 'good-sloping' ) ) | ( ( 'stagnating' ) ) )
+            int alt56=5;
+            switch ( input.LA(1) ) {
+            case 60:
+                {
+                alt56=1;
+                }
+                break;
+            case 61:
+                {
+                alt56=2;
+                }
+                break;
+            case 62:
+                {
+                alt56=3;
+                }
+                break;
+            case 63:
+                {
+                alt56=4;
+                }
+                break;
+            case 64:
+                {
+                alt56=5;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 56, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt56) {
+                case 1 :
+                    // InternalTableDSL.g:5364:2: ( ( 'rising' ) )
+                    {
+                    // InternalTableDSL.g:5364:2: ( ( 'rising' ) )
+                    // InternalTableDSL.g:5365:3: ( 'rising' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTrendIconEnumAccess().getRISINGEnumLiteralDeclaration_0()); 
+                    }
+                    // InternalTableDSL.g:5366:3: ( 'rising' )
+                    // InternalTableDSL.g:5366:4: 'rising'
+                    {
+                    match(input,60,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTrendIconEnumAccess().getRISINGEnumLiteralDeclaration_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5370:2: ( ( 'bad-rising' ) )
+                    {
+                    // InternalTableDSL.g:5370:2: ( ( 'bad-rising' ) )
+                    // InternalTableDSL.g:5371:3: ( 'bad-rising' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTrendIconEnumAccess().getBADRISINGEnumLiteralDeclaration_1()); 
+                    }
+                    // InternalTableDSL.g:5372:3: ( 'bad-rising' )
+                    // InternalTableDSL.g:5372:4: 'bad-rising'
+                    {
+                    match(input,61,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTrendIconEnumAccess().getBADRISINGEnumLiteralDeclaration_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:5376:2: ( ( 'sloping' ) )
+                    {
+                    // InternalTableDSL.g:5376:2: ( ( 'sloping' ) )
+                    // InternalTableDSL.g:5377:3: ( 'sloping' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTrendIconEnumAccess().getSLOPINGEnumLiteralDeclaration_2()); 
+                    }
+                    // InternalTableDSL.g:5378:3: ( 'sloping' )
+                    // InternalTableDSL.g:5378:4: 'sloping'
+                    {
+                    match(input,62,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTrendIconEnumAccess().getSLOPINGEnumLiteralDeclaration_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:5382:2: ( ( 'good-sloping' ) )
+                    {
+                    // InternalTableDSL.g:5382:2: ( ( 'good-sloping' ) )
+                    // InternalTableDSL.g:5383:3: ( 'good-sloping' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTrendIconEnumAccess().getGOODSLOPINGEnumLiteralDeclaration_3()); 
+                    }
+                    // InternalTableDSL.g:5384:3: ( 'good-sloping' )
+                    // InternalTableDSL.g:5384:4: 'good-sloping'
+                    {
+                    match(input,63,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTrendIconEnumAccess().getGOODSLOPINGEnumLiteralDeclaration_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:5388:2: ( ( 'stagnating' ) )
+                    {
+                    // InternalTableDSL.g:5388:2: ( ( 'stagnating' ) )
+                    // InternalTableDSL.g:5389:3: ( 'stagnating' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTrendIconEnumAccess().getSTAGNATINGEnumLiteralDeclaration_4()); 
+                    }
+                    // InternalTableDSL.g:5390:3: ( 'stagnating' )
+                    // InternalTableDSL.g:5390:4: 'stagnating'
+                    {
+                    match(input,64,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTrendIconEnumAccess().getSTAGNATINGEnumLiteralDeclaration_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrendIconEnum__Alternatives"
+
+
+    // $ANTLR start "rule__RowHeaderMode__Alternatives"
+    // InternalTableDSL.g:5398:1: rule__RowHeaderMode__Alternatives : ( ( ( 'hidden' ) ) | ( ( 'explicit' ) ) | ( ( 'indexed' ) ) );
+    public final void rule__RowHeaderMode__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5402:1: ( ( ( 'hidden' ) ) | ( ( 'explicit' ) ) | ( ( 'indexed' ) ) )
+            int alt57=3;
+            switch ( input.LA(1) ) {
+            case 65:
+                {
+                alt57=1;
+                }
+                break;
+            case 66:
+                {
+                alt57=2;
+                }
+                break;
+            case 67:
+                {
+                alt57=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 57, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt57) {
+                case 1 :
+                    // InternalTableDSL.g:5403:2: ( ( 'hidden' ) )
+                    {
+                    // InternalTableDSL.g:5403:2: ( ( 'hidden' ) )
+                    // InternalTableDSL.g:5404:3: ( 'hidden' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getRowHeaderModeAccess().getHIDDENEnumLiteralDeclaration_0()); 
+                    }
+                    // InternalTableDSL.g:5405:3: ( 'hidden' )
+                    // InternalTableDSL.g:5405:4: 'hidden'
+                    {
+                    match(input,65,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getRowHeaderModeAccess().getHIDDENEnumLiteralDeclaration_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5409:2: ( ( 'explicit' ) )
+                    {
+                    // InternalTableDSL.g:5409:2: ( ( 'explicit' ) )
+                    // InternalTableDSL.g:5410:3: ( 'explicit' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getRowHeaderModeAccess().getEXPLICIT_DEFAULTS_IDEnumLiteralDeclaration_1()); 
+                    }
+                    // InternalTableDSL.g:5411:3: ( 'explicit' )
+                    // InternalTableDSL.g:5411:4: 'explicit'
+                    {
+                    match(input,66,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getRowHeaderModeAccess().getEXPLICIT_DEFAULTS_IDEnumLiteralDeclaration_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:5415:2: ( ( 'indexed' ) )
+                    {
+                    // InternalTableDSL.g:5415:2: ( ( 'indexed' ) )
+                    // InternalTableDSL.g:5416:3: ( 'indexed' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getRowHeaderModeAccess().getINDEXEnumLiteralDeclaration_2()); 
+                    }
+                    // InternalTableDSL.g:5417:3: ( 'indexed' )
+                    // InternalTableDSL.g:5417:4: 'indexed'
+                    {
+                    match(input,67,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getRowHeaderModeAccess().getINDEXEnumLiteralDeclaration_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RowHeaderMode__Alternatives"
+
+
+    // $ANTLR start "rule__AxisEnum__Alternatives"
+    // InternalTableDSL.g:5425:1: rule__AxisEnum__Alternatives : ( ( ( 'default' ) ) | ( ( 'columns' ) ) | ( ( 'rows' ) ) | ( ( 'pages' ) ) | ( ( 'sections' ) ) | ( ( 'chapters' ) ) );
+    public final void rule__AxisEnum__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5429:1: ( ( ( 'default' ) ) | ( ( 'columns' ) ) | ( ( 'rows' ) ) | ( ( 'pages' ) ) | ( ( 'sections' ) ) | ( ( 'chapters' ) ) )
+            int alt58=6;
+            switch ( input.LA(1) ) {
+            case 68:
+                {
+                alt58=1;
+                }
+                break;
+            case 69:
+                {
+                alt58=2;
+                }
+                break;
+            case 70:
+                {
+                alt58=3;
+                }
+                break;
+            case 71:
+                {
+                alt58=4;
+                }
+                break;
+            case 72:
+                {
+                alt58=5;
+                }
+                break;
+            case 73:
+                {
+                alt58=6;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 58, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt58) {
+                case 1 :
+                    // InternalTableDSL.g:5430:2: ( ( 'default' ) )
+                    {
+                    // InternalTableDSL.g:5430:2: ( ( 'default' ) )
+                    // InternalTableDSL.g:5431:3: ( 'default' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAxisEnumAccess().getDEFAULTEnumLiteralDeclaration_0()); 
+                    }
+                    // InternalTableDSL.g:5432:3: ( 'default' )
+                    // InternalTableDSL.g:5432:4: 'default'
+                    {
+                    match(input,68,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAxisEnumAccess().getDEFAULTEnumLiteralDeclaration_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5436:2: ( ( 'columns' ) )
+                    {
+                    // InternalTableDSL.g:5436:2: ( ( 'columns' ) )
+                    // InternalTableDSL.g:5437:3: ( 'columns' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAxisEnumAccess().getCOLUMNSEnumLiteralDeclaration_1()); 
+                    }
+                    // InternalTableDSL.g:5438:3: ( 'columns' )
+                    // InternalTableDSL.g:5438:4: 'columns'
+                    {
+                    match(input,69,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAxisEnumAccess().getCOLUMNSEnumLiteralDeclaration_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:5442:2: ( ( 'rows' ) )
+                    {
+                    // InternalTableDSL.g:5442:2: ( ( 'rows' ) )
+                    // InternalTableDSL.g:5443:3: ( 'rows' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAxisEnumAccess().getROWSEnumLiteralDeclaration_2()); 
+                    }
+                    // InternalTableDSL.g:5444:3: ( 'rows' )
+                    // InternalTableDSL.g:5444:4: 'rows'
+                    {
+                    match(input,70,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAxisEnumAccess().getROWSEnumLiteralDeclaration_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:5448:2: ( ( 'pages' ) )
+                    {
+                    // InternalTableDSL.g:5448:2: ( ( 'pages' ) )
+                    // InternalTableDSL.g:5449:3: ( 'pages' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAxisEnumAccess().getPAGESEnumLiteralDeclaration_3()); 
+                    }
+                    // InternalTableDSL.g:5450:3: ( 'pages' )
+                    // InternalTableDSL.g:5450:4: 'pages'
+                    {
+                    match(input,71,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAxisEnumAccess().getPAGESEnumLiteralDeclaration_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:5454:2: ( ( 'sections' ) )
+                    {
+                    // InternalTableDSL.g:5454:2: ( ( 'sections' ) )
+                    // InternalTableDSL.g:5455:3: ( 'sections' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAxisEnumAccess().getSECTIONSEnumLiteralDeclaration_4()); 
+                    }
+                    // InternalTableDSL.g:5456:3: ( 'sections' )
+                    // InternalTableDSL.g:5456:4: 'sections'
+                    {
+                    match(input,72,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAxisEnumAccess().getSECTIONSEnumLiteralDeclaration_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:5460:2: ( ( 'chapters' ) )
+                    {
+                    // InternalTableDSL.g:5460:2: ( ( 'chapters' ) )
+                    // InternalTableDSL.g:5461:3: ( 'chapters' )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getAxisEnumAccess().getCHAPTERSEnumLiteralDeclaration_5()); 
+                    }
+                    // InternalTableDSL.g:5462:3: ( 'chapters' )
+                    // InternalTableDSL.g:5462:4: 'chapters'
+                    {
+                    match(input,73,FOLLOW_2); if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getAxisEnumAccess().getCHAPTERSEnumLiteralDeclaration_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AxisEnum__Alternatives"
+
+
+    // $ANTLR start "rule__TableModel__Group__0"
+    // InternalTableDSL.g:5470:1: rule__TableModel__Group__0 : rule__TableModel__Group__0__Impl rule__TableModel__Group__1 ;
+    public final void rule__TableModel__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5474:1: ( rule__TableModel__Group__0__Impl rule__TableModel__Group__1 )
+            // InternalTableDSL.g:5475:2: rule__TableModel__Group__0__Impl rule__TableModel__Group__1
+            {
+            pushFollow(FOLLOW_5);
+            rule__TableModel__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableModel__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableModel__Group__0"
+
+
+    // $ANTLR start "rule__TableModel__Group__0__Impl"
+    // InternalTableDSL.g:5482:1: rule__TableModel__Group__0__Impl : ( ( rule__TableModel__ImportSectionAssignment_0 )? ) ;
+    public final void rule__TableModel__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5486:1: ( ( ( rule__TableModel__ImportSectionAssignment_0 )? ) )
+            // InternalTableDSL.g:5487:1: ( ( rule__TableModel__ImportSectionAssignment_0 )? )
+            {
+            // InternalTableDSL.g:5487:1: ( ( rule__TableModel__ImportSectionAssignment_0 )? )
+            // InternalTableDSL.g:5488:2: ( rule__TableModel__ImportSectionAssignment_0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableModelAccess().getImportSectionAssignment_0()); 
+            }
+            // InternalTableDSL.g:5489:2: ( rule__TableModel__ImportSectionAssignment_0 )?
+            int alt59=2;
+            int LA59_0 = input.LA(1);
+
+            if ( (LA59_0==50) ) {
+                alt59=1;
+            }
+            switch (alt59) {
+                case 1 :
+                    // InternalTableDSL.g:5489:3: rule__TableModel__ImportSectionAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableModel__ImportSectionAssignment_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableModelAccess().getImportSectionAssignment_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableModel__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableModel__Group__1"
+    // InternalTableDSL.g:5497:1: rule__TableModel__Group__1 : rule__TableModel__Group__1__Impl ;
+    public final void rule__TableModel__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5501:1: ( rule__TableModel__Group__1__Impl )
+            // InternalTableDSL.g:5502:2: rule__TableModel__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableModel__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableModel__Group__1"
+
+
+    // $ANTLR start "rule__TableModel__Group__1__Impl"
+    // InternalTableDSL.g:5508:1: rule__TableModel__Group__1__Impl : ( ( rule__TableModel__PackagesAssignment_1 )* ) ;
+    public final void rule__TableModel__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5512:1: ( ( ( rule__TableModel__PackagesAssignment_1 )* ) )
+            // InternalTableDSL.g:5513:1: ( ( rule__TableModel__PackagesAssignment_1 )* )
+            {
+            // InternalTableDSL.g:5513:1: ( ( rule__TableModel__PackagesAssignment_1 )* )
+            // InternalTableDSL.g:5514:2: ( rule__TableModel__PackagesAssignment_1 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableModelAccess().getPackagesAssignment_1()); 
+            }
+            // InternalTableDSL.g:5515:2: ( rule__TableModel__PackagesAssignment_1 )*
+            loop60:
+            do {
+                int alt60=2;
+                int LA60_0 = input.LA(1);
+
+                if ( (LA60_0==74) ) {
+                    alt60=1;
+                }
+
+
+                switch (alt60) {
+            	case 1 :
+            	    // InternalTableDSL.g:5515:3: rule__TableModel__PackagesAssignment_1
+            	    {
+            	    pushFollow(FOLLOW_6);
+            	    rule__TableModel__PackagesAssignment_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop60;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableModelAccess().getPackagesAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableModel__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TablePackage__Group__0"
+    // InternalTableDSL.g:5524:1: rule__TablePackage__Group__0 : rule__TablePackage__Group__0__Impl rule__TablePackage__Group__1 ;
+    public final void rule__TablePackage__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5528:1: ( rule__TablePackage__Group__0__Impl rule__TablePackage__Group__1 )
+            // InternalTableDSL.g:5529:2: rule__TablePackage__Group__0__Impl rule__TablePackage__Group__1
+            {
+            pushFollow(FOLLOW_5);
+            rule__TablePackage__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TablePackage__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group__0"
+
+
+    // $ANTLR start "rule__TablePackage__Group__0__Impl"
+    // InternalTableDSL.g:5536:1: rule__TablePackage__Group__0__Impl : ( () ) ;
+    public final void rule__TablePackage__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5540:1: ( ( () ) )
+            // InternalTableDSL.g:5541:1: ( () )
+            {
+            // InternalTableDSL.g:5541:1: ( () )
+            // InternalTableDSL.g:5542:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageAccess().getTablePackageAction_0()); 
+            }
+            // InternalTableDSL.g:5543:2: ()
+            // InternalTableDSL.g:5543:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageAccess().getTablePackageAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TablePackage__Group__1"
+    // InternalTableDSL.g:5551:1: rule__TablePackage__Group__1 : rule__TablePackage__Group__1__Impl rule__TablePackage__Group__2 ;
+    public final void rule__TablePackage__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5555:1: ( rule__TablePackage__Group__1__Impl rule__TablePackage__Group__2 )
+            // InternalTableDSL.g:5556:2: rule__TablePackage__Group__1__Impl rule__TablePackage__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__TablePackage__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TablePackage__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group__1"
+
+
+    // $ANTLR start "rule__TablePackage__Group__1__Impl"
+    // InternalTableDSL.g:5563:1: rule__TablePackage__Group__1__Impl : ( 'package' ) ;
+    public final void rule__TablePackage__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5567:1: ( ( 'package' ) )
+            // InternalTableDSL.g:5568:1: ( 'package' )
+            {
+            // InternalTableDSL.g:5568:1: ( 'package' )
+            // InternalTableDSL.g:5569:2: 'package'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageAccess().getPackageKeyword_1()); 
+            }
+            match(input,74,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageAccess().getPackageKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TablePackage__Group__2"
+    // InternalTableDSL.g:5578:1: rule__TablePackage__Group__2 : rule__TablePackage__Group__2__Impl rule__TablePackage__Group__3 ;
+    public final void rule__TablePackage__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5582:1: ( rule__TablePackage__Group__2__Impl rule__TablePackage__Group__3 )
+            // InternalTableDSL.g:5583:2: rule__TablePackage__Group__2__Impl rule__TablePackage__Group__3
+            {
+            pushFollow(FOLLOW_8);
+            rule__TablePackage__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TablePackage__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group__2"
+
+
+    // $ANTLR start "rule__TablePackage__Group__2__Impl"
+    // InternalTableDSL.g:5590:1: rule__TablePackage__Group__2__Impl : ( ( rule__TablePackage__NameAssignment_2 ) ) ;
+    public final void rule__TablePackage__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5594:1: ( ( ( rule__TablePackage__NameAssignment_2 ) ) )
+            // InternalTableDSL.g:5595:1: ( ( rule__TablePackage__NameAssignment_2 ) )
+            {
+            // InternalTableDSL.g:5595:1: ( ( rule__TablePackage__NameAssignment_2 ) )
+            // InternalTableDSL.g:5596:2: ( rule__TablePackage__NameAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageAccess().getNameAssignment_2()); 
+            }
+            // InternalTableDSL.g:5597:2: ( rule__TablePackage__NameAssignment_2 )
+            // InternalTableDSL.g:5597:3: rule__TablePackage__NameAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TablePackage__NameAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageAccess().getNameAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TablePackage__Group__3"
+    // InternalTableDSL.g:5605:1: rule__TablePackage__Group__3 : rule__TablePackage__Group__3__Impl ;
+    public final void rule__TablePackage__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5609:1: ( rule__TablePackage__Group__3__Impl )
+            // InternalTableDSL.g:5610:2: rule__TablePackage__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TablePackage__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group__3"
+
+
+    // $ANTLR start "rule__TablePackage__Group__3__Impl"
+    // InternalTableDSL.g:5616:1: rule__TablePackage__Group__3__Impl : ( ( rule__TablePackage__Group_3__0 )? ) ;
+    public final void rule__TablePackage__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5620:1: ( ( ( rule__TablePackage__Group_3__0 )? ) )
+            // InternalTableDSL.g:5621:1: ( ( rule__TablePackage__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:5621:1: ( ( rule__TablePackage__Group_3__0 )? )
+            // InternalTableDSL.g:5622:2: ( rule__TablePackage__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:5623:2: ( rule__TablePackage__Group_3__0 )?
+            int alt61=2;
+            int LA61_0 = input.LA(1);
+
+            if ( (LA61_0==75) ) {
+                alt61=1;
+            }
+            switch (alt61) {
+                case 1 :
+                    // InternalTableDSL.g:5623:3: rule__TablePackage__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TablePackage__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TablePackage__Group_3__0"
+    // InternalTableDSL.g:5632:1: rule__TablePackage__Group_3__0 : rule__TablePackage__Group_3__0__Impl rule__TablePackage__Group_3__1 ;
+    public final void rule__TablePackage__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5636:1: ( rule__TablePackage__Group_3__0__Impl rule__TablePackage__Group_3__1 )
+            // InternalTableDSL.g:5637:2: rule__TablePackage__Group_3__0__Impl rule__TablePackage__Group_3__1
+            {
+            pushFollow(FOLLOW_9);
+            rule__TablePackage__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TablePackage__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group_3__0"
+
+
+    // $ANTLR start "rule__TablePackage__Group_3__0__Impl"
+    // InternalTableDSL.g:5644:1: rule__TablePackage__Group_3__0__Impl : ( '{' ) ;
+    public final void rule__TablePackage__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5648:1: ( ( '{' ) )
+            // InternalTableDSL.g:5649:1: ( '{' )
+            {
+            // InternalTableDSL.g:5649:1: ( '{' )
+            // InternalTableDSL.g:5650:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageAccess().getLeftCurlyBracketKeyword_3_0()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageAccess().getLeftCurlyBracketKeyword_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__TablePackage__Group_3__1"
+    // InternalTableDSL.g:5659:1: rule__TablePackage__Group_3__1 : rule__TablePackage__Group_3__1__Impl rule__TablePackage__Group_3__2 ;
+    public final void rule__TablePackage__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5663:1: ( rule__TablePackage__Group_3__1__Impl rule__TablePackage__Group_3__2 )
+            // InternalTableDSL.g:5664:2: rule__TablePackage__Group_3__1__Impl rule__TablePackage__Group_3__2
+            {
+            pushFollow(FOLLOW_9);
+            rule__TablePackage__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TablePackage__Group_3__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group_3__1"
+
+
+    // $ANTLR start "rule__TablePackage__Group_3__1__Impl"
+    // InternalTableDSL.g:5671:1: rule__TablePackage__Group_3__1__Impl : ( ( rule__TablePackage__TablesAssignment_3_1 )* ) ;
+    public final void rule__TablePackage__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5675:1: ( ( ( rule__TablePackage__TablesAssignment_3_1 )* ) )
+            // InternalTableDSL.g:5676:1: ( ( rule__TablePackage__TablesAssignment_3_1 )* )
+            {
+            // InternalTableDSL.g:5676:1: ( ( rule__TablePackage__TablesAssignment_3_1 )* )
+            // InternalTableDSL.g:5677:2: ( rule__TablePackage__TablesAssignment_3_1 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageAccess().getTablesAssignment_3_1()); 
+            }
+            // InternalTableDSL.g:5678:2: ( rule__TablePackage__TablesAssignment_3_1 )*
+            loop62:
+            do {
+                int alt62=2;
+                int LA62_0 = input.LA(1);
+
+                if ( (LA62_0==77) ) {
+                    alt62=1;
+                }
+
+
+                switch (alt62) {
+            	case 1 :
+            	    // InternalTableDSL.g:5678:3: rule__TablePackage__TablesAssignment_3_1
+            	    {
+            	    pushFollow(FOLLOW_10);
+            	    rule__TablePackage__TablesAssignment_3_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop62;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageAccess().getTablesAssignment_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__TablePackage__Group_3__2"
+    // InternalTableDSL.g:5686:1: rule__TablePackage__Group_3__2 : rule__TablePackage__Group_3__2__Impl ;
+    public final void rule__TablePackage__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5690:1: ( rule__TablePackage__Group_3__2__Impl )
+            // InternalTableDSL.g:5691:2: rule__TablePackage__Group_3__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TablePackage__Group_3__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group_3__2"
+
+
+    // $ANTLR start "rule__TablePackage__Group_3__2__Impl"
+    // InternalTableDSL.g:5697:1: rule__TablePackage__Group_3__2__Impl : ( '}' ) ;
+    public final void rule__TablePackage__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5701:1: ( ( '}' ) )
+            // InternalTableDSL.g:5702:1: ( '}' )
+            {
+            // InternalTableDSL.g:5702:1: ( '}' )
+            // InternalTableDSL.g:5703:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageAccess().getRightCurlyBracketKeyword_3_2()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageAccess().getRightCurlyBracketKeyword_3_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__Table__Group__0"
+    // InternalTableDSL.g:5713:1: rule__Table__Group__0 : rule__Table__Group__0__Impl rule__Table__Group__1 ;
+    public final void rule__Table__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5717:1: ( rule__Table__Group__0__Impl rule__Table__Group__1 )
+            // InternalTableDSL.g:5718:2: rule__Table__Group__0__Impl rule__Table__Group__1
+            {
+            pushFollow(FOLLOW_11);
+            rule__Table__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Table__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__0"
+
+
+    // $ANTLR start "rule__Table__Group__0__Impl"
+    // InternalTableDSL.g:5725:1: rule__Table__Group__0__Impl : ( () ) ;
+    public final void rule__Table__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5729:1: ( ( () ) )
+            // InternalTableDSL.g:5730:1: ( () )
+            {
+            // InternalTableDSL.g:5730:1: ( () )
+            // InternalTableDSL.g:5731:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getTableAction_0()); 
+            }
+            // InternalTableDSL.g:5732:2: ()
+            // InternalTableDSL.g:5732:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getTableAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Table__Group__1"
+    // InternalTableDSL.g:5740:1: rule__Table__Group__1 : rule__Table__Group__1__Impl rule__Table__Group__2 ;
+    public final void rule__Table__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5744:1: ( rule__Table__Group__1__Impl rule__Table__Group__2 )
+            // InternalTableDSL.g:5745:2: rule__Table__Group__1__Impl rule__Table__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__Table__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Table__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__1"
+
+
+    // $ANTLR start "rule__Table__Group__1__Impl"
+    // InternalTableDSL.g:5752:1: rule__Table__Group__1__Impl : ( 'table' ) ;
+    public final void rule__Table__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5756:1: ( ( 'table' ) )
+            // InternalTableDSL.g:5757:1: ( 'table' )
+            {
+            // InternalTableDSL.g:5757:1: ( 'table' )
+            // InternalTableDSL.g:5758:2: 'table'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getTableKeyword_1()); 
+            }
+            match(input,77,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getTableKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Table__Group__2"
+    // InternalTableDSL.g:5767:1: rule__Table__Group__2 : rule__Table__Group__2__Impl rule__Table__Group__3 ;
+    public final void rule__Table__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5771:1: ( rule__Table__Group__2__Impl rule__Table__Group__3 )
+            // InternalTableDSL.g:5772:2: rule__Table__Group__2__Impl rule__Table__Group__3
+            {
+            pushFollow(FOLLOW_12);
+            rule__Table__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Table__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__2"
+
+
+    // $ANTLR start "rule__Table__Group__2__Impl"
+    // InternalTableDSL.g:5779:1: rule__Table__Group__2__Impl : ( ( rule__Table__NameAssignment_2 ) ) ;
+    public final void rule__Table__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5783:1: ( ( ( rule__Table__NameAssignment_2 ) ) )
+            // InternalTableDSL.g:5784:1: ( ( rule__Table__NameAssignment_2 ) )
+            {
+            // InternalTableDSL.g:5784:1: ( ( rule__Table__NameAssignment_2 ) )
+            // InternalTableDSL.g:5785:2: ( rule__Table__NameAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getNameAssignment_2()); 
+            }
+            // InternalTableDSL.g:5786:2: ( rule__Table__NameAssignment_2 )
+            // InternalTableDSL.g:5786:3: rule__Table__NameAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__Table__NameAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getNameAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Table__Group__3"
+    // InternalTableDSL.g:5794:1: rule__Table__Group__3 : rule__Table__Group__3__Impl rule__Table__Group__4 ;
+    public final void rule__Table__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5798:1: ( rule__Table__Group__3__Impl rule__Table__Group__4 )
+            // InternalTableDSL.g:5799:2: rule__Table__Group__3__Impl rule__Table__Group__4
+            {
+            pushFollow(FOLLOW_12);
+            rule__Table__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Table__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__3"
+
+
+    // $ANTLR start "rule__Table__Group__3__Impl"
+    // InternalTableDSL.g:5806:1: rule__Table__Group__3__Impl : ( ( rule__Table__Group_3__0 )? ) ;
+    public final void rule__Table__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5810:1: ( ( ( rule__Table__Group_3__0 )? ) )
+            // InternalTableDSL.g:5811:1: ( ( rule__Table__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:5811:1: ( ( rule__Table__Group_3__0 )? )
+            // InternalTableDSL.g:5812:2: ( rule__Table__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:5813:2: ( rule__Table__Group_3__0 )?
+            int alt63=2;
+            int LA63_0 = input.LA(1);
+
+            if ( (LA63_0==165) ) {
+                alt63=1;
+            }
+            switch (alt63) {
+                case 1 :
+                    // InternalTableDSL.g:5813:3: rule__Table__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Table__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Table__Group__4"
+    // InternalTableDSL.g:5821:1: rule__Table__Group__4 : rule__Table__Group__4__Impl rule__Table__Group__5 ;
+    public final void rule__Table__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5825:1: ( rule__Table__Group__4__Impl rule__Table__Group__5 )
+            // InternalTableDSL.g:5826:2: rule__Table__Group__4__Impl rule__Table__Group__5
+            {
+            pushFollow(FOLLOW_13);
+            rule__Table__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Table__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__4"
+
+
+    // $ANTLR start "rule__Table__Group__4__Impl"
+    // InternalTableDSL.g:5833:1: rule__Table__Group__4__Impl : ( 'as' ) ;
+    public final void rule__Table__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5837:1: ( ( 'as' ) )
+            // InternalTableDSL.g:5838:1: ( 'as' )
+            {
+            // InternalTableDSL.g:5838:1: ( 'as' )
+            // InternalTableDSL.g:5839:2: 'as'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getAsKeyword_4()); 
+            }
+            match(input,78,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getAsKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Table__Group__5"
+    // InternalTableDSL.g:5848:1: rule__Table__Group__5 : rule__Table__Group__5__Impl ;
+    public final void rule__Table__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5852:1: ( rule__Table__Group__5__Impl )
+            // InternalTableDSL.g:5853:2: rule__Table__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Table__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__5"
+
+
+    // $ANTLR start "rule__Table__Group__5__Impl"
+    // InternalTableDSL.g:5859:1: rule__Table__Group__5__Impl : ( ( rule__Table__TabletypeAssignment_5 ) ) ;
+    public final void rule__Table__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5863:1: ( ( ( rule__Table__TabletypeAssignment_5 ) ) )
+            // InternalTableDSL.g:5864:1: ( ( rule__Table__TabletypeAssignment_5 ) )
+            {
+            // InternalTableDSL.g:5864:1: ( ( rule__Table__TabletypeAssignment_5 ) )
+            // InternalTableDSL.g:5865:2: ( rule__Table__TabletypeAssignment_5 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getTabletypeAssignment_5()); 
+            }
+            // InternalTableDSL.g:5866:2: ( rule__Table__TabletypeAssignment_5 )
+            // InternalTableDSL.g:5866:3: rule__Table__TabletypeAssignment_5
+            {
+            pushFollow(FOLLOW_2);
+            rule__Table__TabletypeAssignment_5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getTabletypeAssignment_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Table__Group_3__0"
+    // InternalTableDSL.g:5875:1: rule__Table__Group_3__0 : rule__Table__Group_3__0__Impl rule__Table__Group_3__1 ;
+    public final void rule__Table__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5879:1: ( rule__Table__Group_3__0__Impl rule__Table__Group_3__1 )
+            // InternalTableDSL.g:5880:2: rule__Table__Group_3__0__Impl rule__Table__Group_3__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__Table__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Table__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group_3__0"
+
+
+    // $ANTLR start "rule__Table__Group_3__0__Impl"
+    // InternalTableDSL.g:5887:1: rule__Table__Group_3__0__Impl : ( ( rule__Table__DescriptionAssignment_3_0 ) ) ;
+    public final void rule__Table__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5891:1: ( ( ( rule__Table__DescriptionAssignment_3_0 ) ) )
+            // InternalTableDSL.g:5892:1: ( ( rule__Table__DescriptionAssignment_3_0 ) )
+            {
+            // InternalTableDSL.g:5892:1: ( ( rule__Table__DescriptionAssignment_3_0 ) )
+            // InternalTableDSL.g:5893:2: ( rule__Table__DescriptionAssignment_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getDescriptionAssignment_3_0()); 
+            }
+            // InternalTableDSL.g:5894:2: ( rule__Table__DescriptionAssignment_3_0 )
+            // InternalTableDSL.g:5894:3: rule__Table__DescriptionAssignment_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Table__DescriptionAssignment_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getDescriptionAssignment_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__Table__Group_3__1"
+    // InternalTableDSL.g:5902:1: rule__Table__Group_3__1 : rule__Table__Group_3__1__Impl ;
+    public final void rule__Table__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5906:1: ( rule__Table__Group_3__1__Impl )
+            // InternalTableDSL.g:5907:2: rule__Table__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Table__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group_3__1"
+
+
+    // $ANTLR start "rule__Table__Group_3__1__Impl"
+    // InternalTableDSL.g:5913:1: rule__Table__Group_3__1__Impl : ( ( rule__Table__DescriptionValueAssignment_3_1 ) ) ;
+    public final void rule__Table__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5917:1: ( ( ( rule__Table__DescriptionValueAssignment_3_1 ) ) )
+            // InternalTableDSL.g:5918:1: ( ( rule__Table__DescriptionValueAssignment_3_1 ) )
+            {
+            // InternalTableDSL.g:5918:1: ( ( rule__Table__DescriptionValueAssignment_3_1 ) )
+            // InternalTableDSL.g:5919:2: ( rule__Table__DescriptionValueAssignment_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getDescriptionValueAssignment_3_1()); 
+            }
+            // InternalTableDSL.g:5920:2: ( rule__Table__DescriptionValueAssignment_3_1 )
+            // InternalTableDSL.g:5920:3: rule__Table__DescriptionValueAssignment_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Table__DescriptionValueAssignment_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getDescriptionValueAssignment_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group__0"
+    // InternalTableDSL.g:5929:1: rule__TableSelection__Group__0 : rule__TableSelection__Group__0__Impl rule__TableSelection__Group__1 ;
+    public final void rule__TableSelection__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5933:1: ( rule__TableSelection__Group__0__Impl rule__TableSelection__Group__1 )
+            // InternalTableDSL.g:5934:2: rule__TableSelection__Group__0__Impl rule__TableSelection__Group__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__TableSelection__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group__0"
+
+
+    // $ANTLR start "rule__TableSelection__Group__0__Impl"
+    // InternalTableDSL.g:5941:1: rule__TableSelection__Group__0__Impl : ( () ) ;
+    public final void rule__TableSelection__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5945:1: ( ( () ) )
+            // InternalTableDSL.g:5946:1: ( () )
+            {
+            // InternalTableDSL.g:5946:1: ( () )
+            // InternalTableDSL.g:5947:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getTableSelectionAction_0()); 
+            }
+            // InternalTableDSL.g:5948:2: ()
+            // InternalTableDSL.g:5948:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getTableSelectionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group__1"
+    // InternalTableDSL.g:5956:1: rule__TableSelection__Group__1 : rule__TableSelection__Group__1__Impl rule__TableSelection__Group__2 ;
+    public final void rule__TableSelection__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5960:1: ( rule__TableSelection__Group__1__Impl rule__TableSelection__Group__2 )
+            // InternalTableDSL.g:5961:2: rule__TableSelection__Group__1__Impl rule__TableSelection__Group__2
+            {
+            pushFollow(FOLLOW_16);
+            rule__TableSelection__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group__1"
+
+
+    // $ANTLR start "rule__TableSelection__Group__1__Impl"
+    // InternalTableDSL.g:5968:1: rule__TableSelection__Group__1__Impl : ( 'selection' ) ;
+    public final void rule__TableSelection__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5972:1: ( ( 'selection' ) )
+            // InternalTableDSL.g:5973:1: ( 'selection' )
+            {
+            // InternalTableDSL.g:5973:1: ( 'selection' )
+            // InternalTableDSL.g:5974:2: 'selection'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getSelectionKeyword_1()); 
+            }
+            match(input,79,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getSelectionKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group__2"
+    // InternalTableDSL.g:5983:1: rule__TableSelection__Group__2 : rule__TableSelection__Group__2__Impl rule__TableSelection__Group__3 ;
+    public final void rule__TableSelection__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5987:1: ( rule__TableSelection__Group__2__Impl rule__TableSelection__Group__3 )
+            // InternalTableDSL.g:5988:2: rule__TableSelection__Group__2__Impl rule__TableSelection__Group__3
+            {
+            pushFollow(FOLLOW_17);
+            rule__TableSelection__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group__2"
+
+
+    // $ANTLR start "rule__TableSelection__Group__2__Impl"
+    // InternalTableDSL.g:5995:1: rule__TableSelection__Group__2__Impl : ( ( rule__TableSelection__Alternatives_2 ) ) ;
+    public final void rule__TableSelection__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:5999:1: ( ( ( rule__TableSelection__Alternatives_2 ) ) )
+            // InternalTableDSL.g:6000:1: ( ( rule__TableSelection__Alternatives_2 ) )
+            {
+            // InternalTableDSL.g:6000:1: ( ( rule__TableSelection__Alternatives_2 ) )
+            // InternalTableDSL.g:6001:2: ( rule__TableSelection__Alternatives_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getAlternatives_2()); 
+            }
+            // InternalTableDSL.g:6002:2: ( rule__TableSelection__Alternatives_2 )
+            // InternalTableDSL.g:6002:3: rule__TableSelection__Alternatives_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Alternatives_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getAlternatives_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group__3"
+    // InternalTableDSL.g:6010:1: rule__TableSelection__Group__3 : rule__TableSelection__Group__3__Impl rule__TableSelection__Group__4 ;
+    public final void rule__TableSelection__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6014:1: ( rule__TableSelection__Group__3__Impl rule__TableSelection__Group__4 )
+            // InternalTableDSL.g:6015:2: rule__TableSelection__Group__3__Impl rule__TableSelection__Group__4
+            {
+            pushFollow(FOLLOW_18);
+            rule__TableSelection__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group__3"
+
+
+    // $ANTLR start "rule__TableSelection__Group__3__Impl"
+    // InternalTableDSL.g:6022:1: rule__TableSelection__Group__3__Impl : ( ( rule__TableSelection__UnorderedGroup_3 ) ) ;
+    public final void rule__TableSelection__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6026:1: ( ( ( rule__TableSelection__UnorderedGroup_3 ) ) )
+            // InternalTableDSL.g:6027:1: ( ( rule__TableSelection__UnorderedGroup_3 ) )
+            {
+            // InternalTableDSL.g:6027:1: ( ( rule__TableSelection__UnorderedGroup_3 ) )
+            // InternalTableDSL.g:6028:2: ( rule__TableSelection__UnorderedGroup_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3()); 
+            }
+            // InternalTableDSL.g:6029:2: ( rule__TableSelection__UnorderedGroup_3 )
+            // InternalTableDSL.g:6029:3: rule__TableSelection__UnorderedGroup_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__UnorderedGroup_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group__4"
+    // InternalTableDSL.g:6037:1: rule__TableSelection__Group__4 : rule__TableSelection__Group__4__Impl ;
+    public final void rule__TableSelection__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6041:1: ( rule__TableSelection__Group__4__Impl )
+            // InternalTableDSL.g:6042:2: rule__TableSelection__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group__4"
+
+
+    // $ANTLR start "rule__TableSelection__Group__4__Impl"
+    // InternalTableDSL.g:6048:1: rule__TableSelection__Group__4__Impl : ( ( rule__TableSelection__Group_4__0 )? ) ;
+    public final void rule__TableSelection__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6052:1: ( ( ( rule__TableSelection__Group_4__0 )? ) )
+            // InternalTableDSL.g:6053:1: ( ( rule__TableSelection__Group_4__0 )? )
+            {
+            // InternalTableDSL.g:6053:1: ( ( rule__TableSelection__Group_4__0 )? )
+            // InternalTableDSL.g:6054:2: ( rule__TableSelection__Group_4__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getGroup_4()); 
+            }
+            // InternalTableDSL.g:6055:2: ( rule__TableSelection__Group_4__0 )?
+            int alt64=2;
+            int LA64_0 = input.LA(1);
+
+            if ( (LA64_0==82) ) {
+                alt64=1;
+            }
+            switch (alt64) {
+                case 1 :
+                    // InternalTableDSL.g:6055:3: rule__TableSelection__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__Group_4__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getGroup_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_1__0"
+    // InternalTableDSL.g:6064:1: rule__TableSelection__Group_3_1__0 : rule__TableSelection__Group_3_1__0__Impl rule__TableSelection__Group_3_1__1 ;
+    public final void rule__TableSelection__Group_3_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6068:1: ( rule__TableSelection__Group_3_1__0__Impl rule__TableSelection__Group_3_1__1 )
+            // InternalTableDSL.g:6069:2: rule__TableSelection__Group_3_1__0__Impl rule__TableSelection__Group_3_1__1
+            {
+            pushFollow(FOLLOW_19);
+            rule__TableSelection__Group_3_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group_3_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_1__0"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_1__0__Impl"
+    // InternalTableDSL.g:6076:1: rule__TableSelection__Group_3_1__0__Impl : ( 'rowHeader' ) ;
+    public final void rule__TableSelection__Group_3_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6080:1: ( ( 'rowHeader' ) )
+            // InternalTableDSL.g:6081:1: ( 'rowHeader' )
+            {
+            // InternalTableDSL.g:6081:1: ( 'rowHeader' )
+            // InternalTableDSL.g:6082:2: 'rowHeader'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getRowHeaderKeyword_3_1_0()); 
+            }
+            match(input,80,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getRowHeaderKeyword_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_1__0__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_1__1"
+    // InternalTableDSL.g:6091:1: rule__TableSelection__Group_3_1__1 : rule__TableSelection__Group_3_1__1__Impl ;
+    public final void rule__TableSelection__Group_3_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6095:1: ( rule__TableSelection__Group_3_1__1__Impl )
+            // InternalTableDSL.g:6096:2: rule__TableSelection__Group_3_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group_3_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_1__1"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_1__1__Impl"
+    // InternalTableDSL.g:6102:1: rule__TableSelection__Group_3_1__1__Impl : ( ( rule__TableSelection__HeaderModeAssignment_3_1_1 ) ) ;
+    public final void rule__TableSelection__Group_3_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6106:1: ( ( ( rule__TableSelection__HeaderModeAssignment_3_1_1 ) ) )
+            // InternalTableDSL.g:6107:1: ( ( rule__TableSelection__HeaderModeAssignment_3_1_1 ) )
+            {
+            // InternalTableDSL.g:6107:1: ( ( rule__TableSelection__HeaderModeAssignment_3_1_1 ) )
+            // InternalTableDSL.g:6108:2: ( rule__TableSelection__HeaderModeAssignment_3_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getHeaderModeAssignment_3_1_1()); 
+            }
+            // InternalTableDSL.g:6109:2: ( rule__TableSelection__HeaderModeAssignment_3_1_1 )
+            // InternalTableDSL.g:6109:3: rule__TableSelection__HeaderModeAssignment_3_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__HeaderModeAssignment_3_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getHeaderModeAssignment_3_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_1__1__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_2__0"
+    // InternalTableDSL.g:6118:1: rule__TableSelection__Group_3_2__0 : rule__TableSelection__Group_3_2__0__Impl rule__TableSelection__Group_3_2__1 ;
+    public final void rule__TableSelection__Group_3_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6122:1: ( rule__TableSelection__Group_3_2__0__Impl rule__TableSelection__Group_3_2__1 )
+            // InternalTableDSL.g:6123:2: rule__TableSelection__Group_3_2__0__Impl rule__TableSelection__Group_3_2__1
+            {
+            pushFollow(FOLLOW_20);
+            rule__TableSelection__Group_3_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group_3_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_2__0"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_2__0__Impl"
+    // InternalTableDSL.g:6130:1: rule__TableSelection__Group_3_2__0__Impl : ( ( rule__TableSelection__PollingAssignment_3_2_0 ) ) ;
+    public final void rule__TableSelection__Group_3_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6134:1: ( ( ( rule__TableSelection__PollingAssignment_3_2_0 ) ) )
+            // InternalTableDSL.g:6135:1: ( ( rule__TableSelection__PollingAssignment_3_2_0 ) )
+            {
+            // InternalTableDSL.g:6135:1: ( ( rule__TableSelection__PollingAssignment_3_2_0 ) )
+            // InternalTableDSL.g:6136:2: ( rule__TableSelection__PollingAssignment_3_2_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getPollingAssignment_3_2_0()); 
+            }
+            // InternalTableDSL.g:6137:2: ( rule__TableSelection__PollingAssignment_3_2_0 )
+            // InternalTableDSL.g:6137:3: rule__TableSelection__PollingAssignment_3_2_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__PollingAssignment_3_2_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getPollingAssignment_3_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_2__0__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_2__1"
+    // InternalTableDSL.g:6145:1: rule__TableSelection__Group_3_2__1 : rule__TableSelection__Group_3_2__1__Impl ;
+    public final void rule__TableSelection__Group_3_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6149:1: ( rule__TableSelection__Group_3_2__1__Impl )
+            // InternalTableDSL.g:6150:2: rule__TableSelection__Group_3_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group_3_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_2__1"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_2__1__Impl"
+    // InternalTableDSL.g:6156:1: rule__TableSelection__Group_3_2__1__Impl : ( ( rule__TableSelection__PollingTimeAssignment_3_2_1 ) ) ;
+    public final void rule__TableSelection__Group_3_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6160:1: ( ( ( rule__TableSelection__PollingTimeAssignment_3_2_1 ) ) )
+            // InternalTableDSL.g:6161:1: ( ( rule__TableSelection__PollingTimeAssignment_3_2_1 ) )
+            {
+            // InternalTableDSL.g:6161:1: ( ( rule__TableSelection__PollingTimeAssignment_3_2_1 ) )
+            // InternalTableDSL.g:6162:2: ( rule__TableSelection__PollingTimeAssignment_3_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getPollingTimeAssignment_3_2_1()); 
+            }
+            // InternalTableDSL.g:6163:2: ( rule__TableSelection__PollingTimeAssignment_3_2_1 )
+            // InternalTableDSL.g:6163:3: rule__TableSelection__PollingTimeAssignment_3_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__PollingTimeAssignment_3_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getPollingTimeAssignment_3_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_2__1__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_5__0"
+    // InternalTableDSL.g:6172:1: rule__TableSelection__Group_3_5__0 : rule__TableSelection__Group_3_5__0__Impl rule__TableSelection__Group_3_5__1 ;
+    public final void rule__TableSelection__Group_3_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6176:1: ( rule__TableSelection__Group_3_5__0__Impl rule__TableSelection__Group_3_5__1 )
+            // InternalTableDSL.g:6177:2: rule__TableSelection__Group_3_5__0__Impl rule__TableSelection__Group_3_5__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableSelection__Group_3_5__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group_3_5__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_5__0"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_5__0__Impl"
+    // InternalTableDSL.g:6184:1: rule__TableSelection__Group_3_5__0__Impl : ( 'toolbar' ) ;
+    public final void rule__TableSelection__Group_3_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6188:1: ( ( 'toolbar' ) )
+            // InternalTableDSL.g:6189:1: ( 'toolbar' )
+            {
+            // InternalTableDSL.g:6189:1: ( 'toolbar' )
+            // InternalTableDSL.g:6190:2: 'toolbar'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getToolbarKeyword_3_5_0()); 
+            }
+            match(input,81,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getToolbarKeyword_3_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_5__0__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_5__1"
+    // InternalTableDSL.g:6199:1: rule__TableSelection__Group_3_5__1 : rule__TableSelection__Group_3_5__1__Impl ;
+    public final void rule__TableSelection__Group_3_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6203:1: ( rule__TableSelection__Group_3_5__1__Impl )
+            // InternalTableDSL.g:6204:2: rule__TableSelection__Group_3_5__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group_3_5__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_5__1"
+
+
+    // $ANTLR start "rule__TableSelection__Group_3_5__1__Impl"
+    // InternalTableDSL.g:6210:1: rule__TableSelection__Group_3_5__1__Impl : ( ( rule__TableSelection__ToolbarAssignment_3_5_1 ) ) ;
+    public final void rule__TableSelection__Group_3_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6214:1: ( ( ( rule__TableSelection__ToolbarAssignment_3_5_1 ) ) )
+            // InternalTableDSL.g:6215:1: ( ( rule__TableSelection__ToolbarAssignment_3_5_1 ) )
+            {
+            // InternalTableDSL.g:6215:1: ( ( rule__TableSelection__ToolbarAssignment_3_5_1 ) )
+            // InternalTableDSL.g:6216:2: ( rule__TableSelection__ToolbarAssignment_3_5_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getToolbarAssignment_3_5_1()); 
+            }
+            // InternalTableDSL.g:6217:2: ( rule__TableSelection__ToolbarAssignment_3_5_1 )
+            // InternalTableDSL.g:6217:3: rule__TableSelection__ToolbarAssignment_3_5_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__ToolbarAssignment_3_5_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getToolbarAssignment_3_5_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_3_5__1__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group_4__0"
+    // InternalTableDSL.g:6226:1: rule__TableSelection__Group_4__0 : rule__TableSelection__Group_4__0__Impl rule__TableSelection__Group_4__1 ;
+    public final void rule__TableSelection__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6230:1: ( rule__TableSelection__Group_4__0__Impl rule__TableSelection__Group_4__1 )
+            // InternalTableDSL.g:6231:2: rule__TableSelection__Group_4__0__Impl rule__TableSelection__Group_4__1
+            {
+            pushFollow(FOLLOW_21);
+            rule__TableSelection__Group_4__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group_4__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_4__0"
+
+
+    // $ANTLR start "rule__TableSelection__Group_4__0__Impl"
+    // InternalTableDSL.g:6238:1: rule__TableSelection__Group_4__0__Impl : ( 'using' ) ;
+    public final void rule__TableSelection__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6242:1: ( ( 'using' ) )
+            // InternalTableDSL.g:6243:1: ( 'using' )
+            {
+            // InternalTableDSL.g:6243:1: ( 'using' )
+            // InternalTableDSL.g:6244:2: 'using'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getUsingKeyword_4_0()); 
+            }
+            match(input,82,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getUsingKeyword_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__Group_4__1"
+    // InternalTableDSL.g:6253:1: rule__TableSelection__Group_4__1 : rule__TableSelection__Group_4__1__Impl ;
+    public final void rule__TableSelection__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6257:1: ( rule__TableSelection__Group_4__1__Impl )
+            // InternalTableDSL.g:6258:2: rule__TableSelection__Group_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__Group_4__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_4__1"
+
+
+    // $ANTLR start "rule__TableSelection__Group_4__1__Impl"
+    // InternalTableDSL.g:6264:1: rule__TableSelection__Group_4__1__Impl : ( ( rule__TableSelection__SourceAssignment_4_1 ) ) ;
+    public final void rule__TableSelection__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6268:1: ( ( ( rule__TableSelection__SourceAssignment_4_1 ) ) )
+            // InternalTableDSL.g:6269:1: ( ( rule__TableSelection__SourceAssignment_4_1 ) )
+            {
+            // InternalTableDSL.g:6269:1: ( ( rule__TableSelection__SourceAssignment_4_1 ) )
+            // InternalTableDSL.g:6270:2: ( rule__TableSelection__SourceAssignment_4_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getSourceAssignment_4_1()); 
+            }
+            // InternalTableDSL.g:6271:2: ( rule__TableSelection__SourceAssignment_4_1 )
+            // InternalTableDSL.g:6271:3: rule__TableSelection__SourceAssignment_4_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__SourceAssignment_4_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getSourceAssignment_4_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group__0"
+    // InternalTableDSL.g:6280:1: rule__TableTable__Group__0 : rule__TableTable__Group__0__Impl rule__TableTable__Group__1 ;
+    public final void rule__TableTable__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6284:1: ( rule__TableTable__Group__0__Impl rule__TableTable__Group__1 )
+            // InternalTableDSL.g:6285:2: rule__TableTable__Group__0__Impl rule__TableTable__Group__1
+            {
+            pushFollow(FOLLOW_11);
+            rule__TableTable__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group__0"
+
+
+    // $ANTLR start "rule__TableTable__Group__0__Impl"
+    // InternalTableDSL.g:6292:1: rule__TableTable__Group__0__Impl : ( () ) ;
+    public final void rule__TableTable__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6296:1: ( ( () ) )
+            // InternalTableDSL.g:6297:1: ( () )
+            {
+            // InternalTableDSL.g:6297:1: ( () )
+            // InternalTableDSL.g:6298:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getTableTableAction_0()); 
+            }
+            // InternalTableDSL.g:6299:2: ()
+            // InternalTableDSL.g:6299:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getTableTableAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group__1"
+    // InternalTableDSL.g:6307:1: rule__TableTable__Group__1 : rule__TableTable__Group__1__Impl rule__TableTable__Group__2 ;
+    public final void rule__TableTable__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6311:1: ( rule__TableTable__Group__1__Impl rule__TableTable__Group__2 )
+            // InternalTableDSL.g:6312:2: rule__TableTable__Group__1__Impl rule__TableTable__Group__2
+            {
+            pushFollow(FOLLOW_22);
+            rule__TableTable__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group__1"
+
+
+    // $ANTLR start "rule__TableTable__Group__1__Impl"
+    // InternalTableDSL.g:6319:1: rule__TableTable__Group__1__Impl : ( 'table' ) ;
+    public final void rule__TableTable__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6323:1: ( ( 'table' ) )
+            // InternalTableDSL.g:6324:1: ( 'table' )
+            {
+            // InternalTableDSL.g:6324:1: ( 'table' )
+            // InternalTableDSL.g:6325:2: 'table'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getTableKeyword_1()); 
+            }
+            match(input,77,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getTableKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group__2"
+    // InternalTableDSL.g:6334:1: rule__TableTable__Group__2 : rule__TableTable__Group__2__Impl rule__TableTable__Group__3 ;
+    public final void rule__TableTable__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6338:1: ( rule__TableTable__Group__2__Impl rule__TableTable__Group__3 )
+            // InternalTableDSL.g:6339:2: rule__TableTable__Group__2__Impl rule__TableTable__Group__3
+            {
+            pushFollow(FOLLOW_18);
+            rule__TableTable__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group__2"
+
+
+    // $ANTLR start "rule__TableTable__Group__2__Impl"
+    // InternalTableDSL.g:6346:1: rule__TableTable__Group__2__Impl : ( ( rule__TableTable__UnorderedGroup_2 ) ) ;
+    public final void rule__TableTable__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6350:1: ( ( ( rule__TableTable__UnorderedGroup_2 ) ) )
+            // InternalTableDSL.g:6351:1: ( ( rule__TableTable__UnorderedGroup_2 ) )
+            {
+            // InternalTableDSL.g:6351:1: ( ( rule__TableTable__UnorderedGroup_2 ) )
+            // InternalTableDSL.g:6352:2: ( rule__TableTable__UnorderedGroup_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getUnorderedGroup_2()); 
+            }
+            // InternalTableDSL.g:6353:2: ( rule__TableTable__UnorderedGroup_2 )
+            // InternalTableDSL.g:6353:3: rule__TableTable__UnorderedGroup_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__UnorderedGroup_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getUnorderedGroup_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group__3"
+    // InternalTableDSL.g:6361:1: rule__TableTable__Group__3 : rule__TableTable__Group__3__Impl ;
+    public final void rule__TableTable__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6365:1: ( rule__TableTable__Group__3__Impl )
+            // InternalTableDSL.g:6366:2: rule__TableTable__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group__3"
+
+
+    // $ANTLR start "rule__TableTable__Group__3__Impl"
+    // InternalTableDSL.g:6372:1: rule__TableTable__Group__3__Impl : ( ( rule__TableTable__Group_3__0 )? ) ;
+    public final void rule__TableTable__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6376:1: ( ( ( rule__TableTable__Group_3__0 )? ) )
+            // InternalTableDSL.g:6377:1: ( ( rule__TableTable__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:6377:1: ( ( rule__TableTable__Group_3__0 )? )
+            // InternalTableDSL.g:6378:2: ( rule__TableTable__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:6379:2: ( rule__TableTable__Group_3__0 )?
+            int alt65=2;
+            int LA65_0 = input.LA(1);
+
+            if ( (LA65_0==82) ) {
+                alt65=1;
+            }
+            switch (alt65) {
+                case 1 :
+                    // InternalTableDSL.g:6379:3: rule__TableTable__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_2__0"
+    // InternalTableDSL.g:6388:1: rule__TableTable__Group_2_2__0 : rule__TableTable__Group_2_2__0__Impl rule__TableTable__Group_2_2__1 ;
+    public final void rule__TableTable__Group_2_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6392:1: ( rule__TableTable__Group_2_2__0__Impl rule__TableTable__Group_2_2__1 )
+            // InternalTableDSL.g:6393:2: rule__TableTable__Group_2_2__0__Impl rule__TableTable__Group_2_2__1
+            {
+            pushFollow(FOLLOW_19);
+            rule__TableTable__Group_2_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group_2_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_2__0"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_2__0__Impl"
+    // InternalTableDSL.g:6400:1: rule__TableTable__Group_2_2__0__Impl : ( 'rowHeader' ) ;
+    public final void rule__TableTable__Group_2_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6404:1: ( ( 'rowHeader' ) )
+            // InternalTableDSL.g:6405:1: ( 'rowHeader' )
+            {
+            // InternalTableDSL.g:6405:1: ( 'rowHeader' )
+            // InternalTableDSL.g:6406:2: 'rowHeader'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getRowHeaderKeyword_2_2_0()); 
+            }
+            match(input,80,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getRowHeaderKeyword_2_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_2__0__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_2__1"
+    // InternalTableDSL.g:6415:1: rule__TableTable__Group_2_2__1 : rule__TableTable__Group_2_2__1__Impl ;
+    public final void rule__TableTable__Group_2_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6419:1: ( rule__TableTable__Group_2_2__1__Impl )
+            // InternalTableDSL.g:6420:2: rule__TableTable__Group_2_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group_2_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_2__1"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_2__1__Impl"
+    // InternalTableDSL.g:6426:1: rule__TableTable__Group_2_2__1__Impl : ( ( rule__TableTable__HeaderModeAssignment_2_2_1 ) ) ;
+    public final void rule__TableTable__Group_2_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6430:1: ( ( ( rule__TableTable__HeaderModeAssignment_2_2_1 ) ) )
+            // InternalTableDSL.g:6431:1: ( ( rule__TableTable__HeaderModeAssignment_2_2_1 ) )
+            {
+            // InternalTableDSL.g:6431:1: ( ( rule__TableTable__HeaderModeAssignment_2_2_1 ) )
+            // InternalTableDSL.g:6432:2: ( rule__TableTable__HeaderModeAssignment_2_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getHeaderModeAssignment_2_2_1()); 
+            }
+            // InternalTableDSL.g:6433:2: ( rule__TableTable__HeaderModeAssignment_2_2_1 )
+            // InternalTableDSL.g:6433:3: rule__TableTable__HeaderModeAssignment_2_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__HeaderModeAssignment_2_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getHeaderModeAssignment_2_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_2__1__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_3__0"
+    // InternalTableDSL.g:6442:1: rule__TableTable__Group_2_3__0 : rule__TableTable__Group_2_3__0__Impl rule__TableTable__Group_2_3__1 ;
+    public final void rule__TableTable__Group_2_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6446:1: ( rule__TableTable__Group_2_3__0__Impl rule__TableTable__Group_2_3__1 )
+            // InternalTableDSL.g:6447:2: rule__TableTable__Group_2_3__0__Impl rule__TableTable__Group_2_3__1
+            {
+            pushFollow(FOLLOW_20);
+            rule__TableTable__Group_2_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group_2_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_3__0"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_3__0__Impl"
+    // InternalTableDSL.g:6454:1: rule__TableTable__Group_2_3__0__Impl : ( ( rule__TableTable__PollingAssignment_2_3_0 ) ) ;
+    public final void rule__TableTable__Group_2_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6458:1: ( ( ( rule__TableTable__PollingAssignment_2_3_0 ) ) )
+            // InternalTableDSL.g:6459:1: ( ( rule__TableTable__PollingAssignment_2_3_0 ) )
+            {
+            // InternalTableDSL.g:6459:1: ( ( rule__TableTable__PollingAssignment_2_3_0 ) )
+            // InternalTableDSL.g:6460:2: ( rule__TableTable__PollingAssignment_2_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getPollingAssignment_2_3_0()); 
+            }
+            // InternalTableDSL.g:6461:2: ( rule__TableTable__PollingAssignment_2_3_0 )
+            // InternalTableDSL.g:6461:3: rule__TableTable__PollingAssignment_2_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__PollingAssignment_2_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getPollingAssignment_2_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_3__0__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_3__1"
+    // InternalTableDSL.g:6469:1: rule__TableTable__Group_2_3__1 : rule__TableTable__Group_2_3__1__Impl ;
+    public final void rule__TableTable__Group_2_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6473:1: ( rule__TableTable__Group_2_3__1__Impl )
+            // InternalTableDSL.g:6474:2: rule__TableTable__Group_2_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group_2_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_3__1"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_3__1__Impl"
+    // InternalTableDSL.g:6480:1: rule__TableTable__Group_2_3__1__Impl : ( ( rule__TableTable__PollingTimeAssignment_2_3_1 ) ) ;
+    public final void rule__TableTable__Group_2_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6484:1: ( ( ( rule__TableTable__PollingTimeAssignment_2_3_1 ) ) )
+            // InternalTableDSL.g:6485:1: ( ( rule__TableTable__PollingTimeAssignment_2_3_1 ) )
+            {
+            // InternalTableDSL.g:6485:1: ( ( rule__TableTable__PollingTimeAssignment_2_3_1 ) )
+            // InternalTableDSL.g:6486:2: ( rule__TableTable__PollingTimeAssignment_2_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getPollingTimeAssignment_2_3_1()); 
+            }
+            // InternalTableDSL.g:6487:2: ( rule__TableTable__PollingTimeAssignment_2_3_1 )
+            // InternalTableDSL.g:6487:3: rule__TableTable__PollingTimeAssignment_2_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__PollingTimeAssignment_2_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getPollingTimeAssignment_2_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_3__1__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_6__0"
+    // InternalTableDSL.g:6496:1: rule__TableTable__Group_2_6__0 : rule__TableTable__Group_2_6__0__Impl rule__TableTable__Group_2_6__1 ;
+    public final void rule__TableTable__Group_2_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6500:1: ( rule__TableTable__Group_2_6__0__Impl rule__TableTable__Group_2_6__1 )
+            // InternalTableDSL.g:6501:2: rule__TableTable__Group_2_6__0__Impl rule__TableTable__Group_2_6__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableTable__Group_2_6__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group_2_6__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_6__0"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_6__0__Impl"
+    // InternalTableDSL.g:6508:1: rule__TableTable__Group_2_6__0__Impl : ( 'toolbar' ) ;
+    public final void rule__TableTable__Group_2_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6512:1: ( ( 'toolbar' ) )
+            // InternalTableDSL.g:6513:1: ( 'toolbar' )
+            {
+            // InternalTableDSL.g:6513:1: ( 'toolbar' )
+            // InternalTableDSL.g:6514:2: 'toolbar'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getToolbarKeyword_2_6_0()); 
+            }
+            match(input,81,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getToolbarKeyword_2_6_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_6__0__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_6__1"
+    // InternalTableDSL.g:6523:1: rule__TableTable__Group_2_6__1 : rule__TableTable__Group_2_6__1__Impl ;
+    public final void rule__TableTable__Group_2_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6527:1: ( rule__TableTable__Group_2_6__1__Impl )
+            // InternalTableDSL.g:6528:2: rule__TableTable__Group_2_6__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group_2_6__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_6__1"
+
+
+    // $ANTLR start "rule__TableTable__Group_2_6__1__Impl"
+    // InternalTableDSL.g:6534:1: rule__TableTable__Group_2_6__1__Impl : ( ( rule__TableTable__ToolbarAssignment_2_6_1 ) ) ;
+    public final void rule__TableTable__Group_2_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6538:1: ( ( ( rule__TableTable__ToolbarAssignment_2_6_1 ) ) )
+            // InternalTableDSL.g:6539:1: ( ( rule__TableTable__ToolbarAssignment_2_6_1 ) )
+            {
+            // InternalTableDSL.g:6539:1: ( ( rule__TableTable__ToolbarAssignment_2_6_1 ) )
+            // InternalTableDSL.g:6540:2: ( rule__TableTable__ToolbarAssignment_2_6_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getToolbarAssignment_2_6_1()); 
+            }
+            // InternalTableDSL.g:6541:2: ( rule__TableTable__ToolbarAssignment_2_6_1 )
+            // InternalTableDSL.g:6541:3: rule__TableTable__ToolbarAssignment_2_6_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__ToolbarAssignment_2_6_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getToolbarAssignment_2_6_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_2_6__1__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group_3__0"
+    // InternalTableDSL.g:6550:1: rule__TableTable__Group_3__0 : rule__TableTable__Group_3__0__Impl rule__TableTable__Group_3__1 ;
+    public final void rule__TableTable__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6554:1: ( rule__TableTable__Group_3__0__Impl rule__TableTable__Group_3__1 )
+            // InternalTableDSL.g:6555:2: rule__TableTable__Group_3__0__Impl rule__TableTable__Group_3__1
+            {
+            pushFollow(FOLLOW_21);
+            rule__TableTable__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_3__0"
+
+
+    // $ANTLR start "rule__TableTable__Group_3__0__Impl"
+    // InternalTableDSL.g:6562:1: rule__TableTable__Group_3__0__Impl : ( 'using' ) ;
+    public final void rule__TableTable__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6566:1: ( ( 'using' ) )
+            // InternalTableDSL.g:6567:1: ( 'using' )
+            {
+            // InternalTableDSL.g:6567:1: ( 'using' )
+            // InternalTableDSL.g:6568:2: 'using'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getUsingKeyword_3_0()); 
+            }
+            match(input,82,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getUsingKeyword_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__TableTable__Group_3__1"
+    // InternalTableDSL.g:6577:1: rule__TableTable__Group_3__1 : rule__TableTable__Group_3__1__Impl ;
+    public final void rule__TableTable__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6581:1: ( rule__TableTable__Group_3__1__Impl )
+            // InternalTableDSL.g:6582:2: rule__TableTable__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_3__1"
+
+
+    // $ANTLR start "rule__TableTable__Group_3__1__Impl"
+    // InternalTableDSL.g:6588:1: rule__TableTable__Group_3__1__Impl : ( ( rule__TableTable__SourceAssignment_3_1 ) ) ;
+    public final void rule__TableTable__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6592:1: ( ( ( rule__TableTable__SourceAssignment_3_1 ) ) )
+            // InternalTableDSL.g:6593:1: ( ( rule__TableTable__SourceAssignment_3_1 ) )
+            {
+            // InternalTableDSL.g:6593:1: ( ( rule__TableTable__SourceAssignment_3_1 ) )
+            // InternalTableDSL.g:6594:2: ( rule__TableTable__SourceAssignment_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getSourceAssignment_3_1()); 
+            }
+            // InternalTableDSL.g:6595:2: ( rule__TableTable__SourceAssignment_3_1 )
+            // InternalTableDSL.g:6595:3: rule__TableTable__SourceAssignment_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__SourceAssignment_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getSourceAssignment_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group__0"
+    // InternalTableDSL.g:6604:1: rule__TableBean__Group__0 : rule__TableBean__Group__0__Impl rule__TableBean__Group__1 ;
+    public final void rule__TableBean__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6608:1: ( rule__TableBean__Group__0__Impl rule__TableBean__Group__1 )
+            // InternalTableDSL.g:6609:2: rule__TableBean__Group__0__Impl rule__TableBean__Group__1
+            {
+            pushFollow(FOLLOW_13);
+            rule__TableBean__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group__0"
+
+
+    // $ANTLR start "rule__TableBean__Group__0__Impl"
+    // InternalTableDSL.g:6616:1: rule__TableBean__Group__0__Impl : ( () ) ;
+    public final void rule__TableBean__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6620:1: ( ( () ) )
+            // InternalTableDSL.g:6621:1: ( () )
+            {
+            // InternalTableDSL.g:6621:1: ( () )
+            // InternalTableDSL.g:6622:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getTableBeanAction_0()); 
+            }
+            // InternalTableDSL.g:6623:2: ()
+            // InternalTableDSL.g:6623:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getTableBeanAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group__1"
+    // InternalTableDSL.g:6631:1: rule__TableBean__Group__1 : rule__TableBean__Group__1__Impl rule__TableBean__Group__2 ;
+    public final void rule__TableBean__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6635:1: ( rule__TableBean__Group__1__Impl rule__TableBean__Group__2 )
+            // InternalTableDSL.g:6636:2: rule__TableBean__Group__1__Impl rule__TableBean__Group__2
+            {
+            pushFollow(FOLLOW_22);
+            rule__TableBean__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group__1"
+
+
+    // $ANTLR start "rule__TableBean__Group__1__Impl"
+    // InternalTableDSL.g:6643:1: rule__TableBean__Group__1__Impl : ( 'bean' ) ;
+    public final void rule__TableBean__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6647:1: ( ( 'bean' ) )
+            // InternalTableDSL.g:6648:1: ( 'bean' )
+            {
+            // InternalTableDSL.g:6648:1: ( 'bean' )
+            // InternalTableDSL.g:6649:2: 'bean'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getBeanKeyword_1()); 
+            }
+            match(input,83,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getBeanKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group__2"
+    // InternalTableDSL.g:6658:1: rule__TableBean__Group__2 : rule__TableBean__Group__2__Impl rule__TableBean__Group__3 ;
+    public final void rule__TableBean__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6662:1: ( rule__TableBean__Group__2__Impl rule__TableBean__Group__3 )
+            // InternalTableDSL.g:6663:2: rule__TableBean__Group__2__Impl rule__TableBean__Group__3
+            {
+            pushFollow(FOLLOW_18);
+            rule__TableBean__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group__2"
+
+
+    // $ANTLR start "rule__TableBean__Group__2__Impl"
+    // InternalTableDSL.g:6670:1: rule__TableBean__Group__2__Impl : ( ( rule__TableBean__UnorderedGroup_2 ) ) ;
+    public final void rule__TableBean__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6674:1: ( ( ( rule__TableBean__UnorderedGroup_2 ) ) )
+            // InternalTableDSL.g:6675:1: ( ( rule__TableBean__UnorderedGroup_2 ) )
+            {
+            // InternalTableDSL.g:6675:1: ( ( rule__TableBean__UnorderedGroup_2 ) )
+            // InternalTableDSL.g:6676:2: ( rule__TableBean__UnorderedGroup_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getUnorderedGroup_2()); 
+            }
+            // InternalTableDSL.g:6677:2: ( rule__TableBean__UnorderedGroup_2 )
+            // InternalTableDSL.g:6677:3: rule__TableBean__UnorderedGroup_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__UnorderedGroup_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getUnorderedGroup_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group__3"
+    // InternalTableDSL.g:6685:1: rule__TableBean__Group__3 : rule__TableBean__Group__3__Impl ;
+    public final void rule__TableBean__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6689:1: ( rule__TableBean__Group__3__Impl )
+            // InternalTableDSL.g:6690:2: rule__TableBean__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group__3"
+
+
+    // $ANTLR start "rule__TableBean__Group__3__Impl"
+    // InternalTableDSL.g:6696:1: rule__TableBean__Group__3__Impl : ( ( rule__TableBean__Group_3__0 )? ) ;
+    public final void rule__TableBean__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6700:1: ( ( ( rule__TableBean__Group_3__0 )? ) )
+            // InternalTableDSL.g:6701:1: ( ( rule__TableBean__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:6701:1: ( ( rule__TableBean__Group_3__0 )? )
+            // InternalTableDSL.g:6702:2: ( rule__TableBean__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:6703:2: ( rule__TableBean__Group_3__0 )?
+            int alt66=2;
+            int LA66_0 = input.LA(1);
+
+            if ( (LA66_0==82) ) {
+                alt66=1;
+            }
+            switch (alt66) {
+                case 1 :
+                    // InternalTableDSL.g:6703:3: rule__TableBean__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_2__0"
+    // InternalTableDSL.g:6712:1: rule__TableBean__Group_2_2__0 : rule__TableBean__Group_2_2__0__Impl rule__TableBean__Group_2_2__1 ;
+    public final void rule__TableBean__Group_2_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6716:1: ( rule__TableBean__Group_2_2__0__Impl rule__TableBean__Group_2_2__1 )
+            // InternalTableDSL.g:6717:2: rule__TableBean__Group_2_2__0__Impl rule__TableBean__Group_2_2__1
+            {
+            pushFollow(FOLLOW_19);
+            rule__TableBean__Group_2_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group_2_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_2__0"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_2__0__Impl"
+    // InternalTableDSL.g:6724:1: rule__TableBean__Group_2_2__0__Impl : ( 'rowHeader' ) ;
+    public final void rule__TableBean__Group_2_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6728:1: ( ( 'rowHeader' ) )
+            // InternalTableDSL.g:6729:1: ( 'rowHeader' )
+            {
+            // InternalTableDSL.g:6729:1: ( 'rowHeader' )
+            // InternalTableDSL.g:6730:2: 'rowHeader'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getRowHeaderKeyword_2_2_0()); 
+            }
+            match(input,80,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getRowHeaderKeyword_2_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_2__0__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_2__1"
+    // InternalTableDSL.g:6739:1: rule__TableBean__Group_2_2__1 : rule__TableBean__Group_2_2__1__Impl ;
+    public final void rule__TableBean__Group_2_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6743:1: ( rule__TableBean__Group_2_2__1__Impl )
+            // InternalTableDSL.g:6744:2: rule__TableBean__Group_2_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group_2_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_2__1"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_2__1__Impl"
+    // InternalTableDSL.g:6750:1: rule__TableBean__Group_2_2__1__Impl : ( ( rule__TableBean__HeaderModeAssignment_2_2_1 ) ) ;
+    public final void rule__TableBean__Group_2_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6754:1: ( ( ( rule__TableBean__HeaderModeAssignment_2_2_1 ) ) )
+            // InternalTableDSL.g:6755:1: ( ( rule__TableBean__HeaderModeAssignment_2_2_1 ) )
+            {
+            // InternalTableDSL.g:6755:1: ( ( rule__TableBean__HeaderModeAssignment_2_2_1 ) )
+            // InternalTableDSL.g:6756:2: ( rule__TableBean__HeaderModeAssignment_2_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getHeaderModeAssignment_2_2_1()); 
+            }
+            // InternalTableDSL.g:6757:2: ( rule__TableBean__HeaderModeAssignment_2_2_1 )
+            // InternalTableDSL.g:6757:3: rule__TableBean__HeaderModeAssignment_2_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__HeaderModeAssignment_2_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getHeaderModeAssignment_2_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_2__1__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_3__0"
+    // InternalTableDSL.g:6766:1: rule__TableBean__Group_2_3__0 : rule__TableBean__Group_2_3__0__Impl rule__TableBean__Group_2_3__1 ;
+    public final void rule__TableBean__Group_2_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6770:1: ( rule__TableBean__Group_2_3__0__Impl rule__TableBean__Group_2_3__1 )
+            // InternalTableDSL.g:6771:2: rule__TableBean__Group_2_3__0__Impl rule__TableBean__Group_2_3__1
+            {
+            pushFollow(FOLLOW_20);
+            rule__TableBean__Group_2_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group_2_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_3__0"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_3__0__Impl"
+    // InternalTableDSL.g:6778:1: rule__TableBean__Group_2_3__0__Impl : ( ( rule__TableBean__PollingAssignment_2_3_0 ) ) ;
+    public final void rule__TableBean__Group_2_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6782:1: ( ( ( rule__TableBean__PollingAssignment_2_3_0 ) ) )
+            // InternalTableDSL.g:6783:1: ( ( rule__TableBean__PollingAssignment_2_3_0 ) )
+            {
+            // InternalTableDSL.g:6783:1: ( ( rule__TableBean__PollingAssignment_2_3_0 ) )
+            // InternalTableDSL.g:6784:2: ( rule__TableBean__PollingAssignment_2_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getPollingAssignment_2_3_0()); 
+            }
+            // InternalTableDSL.g:6785:2: ( rule__TableBean__PollingAssignment_2_3_0 )
+            // InternalTableDSL.g:6785:3: rule__TableBean__PollingAssignment_2_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__PollingAssignment_2_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getPollingAssignment_2_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_3__0__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_3__1"
+    // InternalTableDSL.g:6793:1: rule__TableBean__Group_2_3__1 : rule__TableBean__Group_2_3__1__Impl ;
+    public final void rule__TableBean__Group_2_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6797:1: ( rule__TableBean__Group_2_3__1__Impl )
+            // InternalTableDSL.g:6798:2: rule__TableBean__Group_2_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group_2_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_3__1"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_3__1__Impl"
+    // InternalTableDSL.g:6804:1: rule__TableBean__Group_2_3__1__Impl : ( ( rule__TableBean__PollingTimeAssignment_2_3_1 ) ) ;
+    public final void rule__TableBean__Group_2_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6808:1: ( ( ( rule__TableBean__PollingTimeAssignment_2_3_1 ) ) )
+            // InternalTableDSL.g:6809:1: ( ( rule__TableBean__PollingTimeAssignment_2_3_1 ) )
+            {
+            // InternalTableDSL.g:6809:1: ( ( rule__TableBean__PollingTimeAssignment_2_3_1 ) )
+            // InternalTableDSL.g:6810:2: ( rule__TableBean__PollingTimeAssignment_2_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getPollingTimeAssignment_2_3_1()); 
+            }
+            // InternalTableDSL.g:6811:2: ( rule__TableBean__PollingTimeAssignment_2_3_1 )
+            // InternalTableDSL.g:6811:3: rule__TableBean__PollingTimeAssignment_2_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__PollingTimeAssignment_2_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getPollingTimeAssignment_2_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_3__1__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_6__0"
+    // InternalTableDSL.g:6820:1: rule__TableBean__Group_2_6__0 : rule__TableBean__Group_2_6__0__Impl rule__TableBean__Group_2_6__1 ;
+    public final void rule__TableBean__Group_2_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6824:1: ( rule__TableBean__Group_2_6__0__Impl rule__TableBean__Group_2_6__1 )
+            // InternalTableDSL.g:6825:2: rule__TableBean__Group_2_6__0__Impl rule__TableBean__Group_2_6__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableBean__Group_2_6__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group_2_6__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_6__0"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_6__0__Impl"
+    // InternalTableDSL.g:6832:1: rule__TableBean__Group_2_6__0__Impl : ( 'toolbar' ) ;
+    public final void rule__TableBean__Group_2_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6836:1: ( ( 'toolbar' ) )
+            // InternalTableDSL.g:6837:1: ( 'toolbar' )
+            {
+            // InternalTableDSL.g:6837:1: ( 'toolbar' )
+            // InternalTableDSL.g:6838:2: 'toolbar'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getToolbarKeyword_2_6_0()); 
+            }
+            match(input,81,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getToolbarKeyword_2_6_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_6__0__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_6__1"
+    // InternalTableDSL.g:6847:1: rule__TableBean__Group_2_6__1 : rule__TableBean__Group_2_6__1__Impl ;
+    public final void rule__TableBean__Group_2_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6851:1: ( rule__TableBean__Group_2_6__1__Impl )
+            // InternalTableDSL.g:6852:2: rule__TableBean__Group_2_6__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group_2_6__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_6__1"
+
+
+    // $ANTLR start "rule__TableBean__Group_2_6__1__Impl"
+    // InternalTableDSL.g:6858:1: rule__TableBean__Group_2_6__1__Impl : ( ( rule__TableBean__ToolbarAssignment_2_6_1 ) ) ;
+    public final void rule__TableBean__Group_2_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6862:1: ( ( ( rule__TableBean__ToolbarAssignment_2_6_1 ) ) )
+            // InternalTableDSL.g:6863:1: ( ( rule__TableBean__ToolbarAssignment_2_6_1 ) )
+            {
+            // InternalTableDSL.g:6863:1: ( ( rule__TableBean__ToolbarAssignment_2_6_1 ) )
+            // InternalTableDSL.g:6864:2: ( rule__TableBean__ToolbarAssignment_2_6_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getToolbarAssignment_2_6_1()); 
+            }
+            // InternalTableDSL.g:6865:2: ( rule__TableBean__ToolbarAssignment_2_6_1 )
+            // InternalTableDSL.g:6865:3: rule__TableBean__ToolbarAssignment_2_6_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__ToolbarAssignment_2_6_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getToolbarAssignment_2_6_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_2_6__1__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group_3__0"
+    // InternalTableDSL.g:6874:1: rule__TableBean__Group_3__0 : rule__TableBean__Group_3__0__Impl rule__TableBean__Group_3__1 ;
+    public final void rule__TableBean__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6878:1: ( rule__TableBean__Group_3__0__Impl rule__TableBean__Group_3__1 )
+            // InternalTableDSL.g:6879:2: rule__TableBean__Group_3__0__Impl rule__TableBean__Group_3__1
+            {
+            pushFollow(FOLLOW_21);
+            rule__TableBean__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_3__0"
+
+
+    // $ANTLR start "rule__TableBean__Group_3__0__Impl"
+    // InternalTableDSL.g:6886:1: rule__TableBean__Group_3__0__Impl : ( 'using' ) ;
+    public final void rule__TableBean__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6890:1: ( ( 'using' ) )
+            // InternalTableDSL.g:6891:1: ( 'using' )
+            {
+            // InternalTableDSL.g:6891:1: ( 'using' )
+            // InternalTableDSL.g:6892:2: 'using'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getUsingKeyword_3_0()); 
+            }
+            match(input,82,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getUsingKeyword_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__TableBean__Group_3__1"
+    // InternalTableDSL.g:6901:1: rule__TableBean__Group_3__1 : rule__TableBean__Group_3__1__Impl ;
+    public final void rule__TableBean__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6905:1: ( rule__TableBean__Group_3__1__Impl )
+            // InternalTableDSL.g:6906:2: rule__TableBean__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_3__1"
+
+
+    // $ANTLR start "rule__TableBean__Group_3__1__Impl"
+    // InternalTableDSL.g:6912:1: rule__TableBean__Group_3__1__Impl : ( ( rule__TableBean__SourceAssignment_3_1 ) ) ;
+    public final void rule__TableBean__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6916:1: ( ( ( rule__TableBean__SourceAssignment_3_1 ) ) )
+            // InternalTableDSL.g:6917:1: ( ( rule__TableBean__SourceAssignment_3_1 ) )
+            {
+            // InternalTableDSL.g:6917:1: ( ( rule__TableBean__SourceAssignment_3_1 ) )
+            // InternalTableDSL.g:6918:2: ( rule__TableBean__SourceAssignment_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getSourceAssignment_3_1()); 
+            }
+            // InternalTableDSL.g:6919:2: ( rule__TableBean__SourceAssignment_3_1 )
+            // InternalTableDSL.g:6919:3: rule__TableBean__SourceAssignment_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__SourceAssignment_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getSourceAssignment_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__TablePreorder__Group__0"
+    // InternalTableDSL.g:6928:1: rule__TablePreorder__Group__0 : rule__TablePreorder__Group__0__Impl rule__TablePreorder__Group__1 ;
+    public final void rule__TablePreorder__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6932:1: ( rule__TablePreorder__Group__0__Impl rule__TablePreorder__Group__1 )
+            // InternalTableDSL.g:6933:2: rule__TablePreorder__Group__0__Impl rule__TablePreorder__Group__1
+            {
+            pushFollow(FOLLOW_23);
+            rule__TablePreorder__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TablePreorder__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePreorder__Group__0"
+
+
+    // $ANTLR start "rule__TablePreorder__Group__0__Impl"
+    // InternalTableDSL.g:6940:1: rule__TablePreorder__Group__0__Impl : ( () ) ;
+    public final void rule__TablePreorder__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6944:1: ( ( () ) )
+            // InternalTableDSL.g:6945:1: ( () )
+            {
+            // InternalTableDSL.g:6945:1: ( () )
+            // InternalTableDSL.g:6946:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePreorderAccess().getTablePreorderAction_0()); 
+            }
+            // InternalTableDSL.g:6947:2: ()
+            // InternalTableDSL.g:6947:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePreorderAccess().getTablePreorderAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePreorder__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TablePreorder__Group__1"
+    // InternalTableDSL.g:6955:1: rule__TablePreorder__Group__1 : rule__TablePreorder__Group__1__Impl rule__TablePreorder__Group__2 ;
+    public final void rule__TablePreorder__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6959:1: ( rule__TablePreorder__Group__1__Impl rule__TablePreorder__Group__2 )
+            // InternalTableDSL.g:6960:2: rule__TablePreorder__Group__1__Impl rule__TablePreorder__Group__2
+            {
+            pushFollow(FOLLOW_24);
+            rule__TablePreorder__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TablePreorder__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePreorder__Group__1"
+
+
+    // $ANTLR start "rule__TablePreorder__Group__1__Impl"
+    // InternalTableDSL.g:6967:1: rule__TablePreorder__Group__1__Impl : ( 'preorder' ) ;
+    public final void rule__TablePreorder__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6971:1: ( ( 'preorder' ) )
+            // InternalTableDSL.g:6972:1: ( 'preorder' )
+            {
+            // InternalTableDSL.g:6972:1: ( 'preorder' )
+            // InternalTableDSL.g:6973:2: 'preorder'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePreorderAccess().getPreorderKeyword_1()); 
+            }
+            match(input,84,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePreorderAccess().getPreorderKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePreorder__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TablePreorder__Group__2"
+    // InternalTableDSL.g:6982:1: rule__TablePreorder__Group__2 : rule__TablePreorder__Group__2__Impl rule__TablePreorder__Group__3 ;
+    public final void rule__TablePreorder__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6986:1: ( rule__TablePreorder__Group__2__Impl rule__TablePreorder__Group__3 )
+            // InternalTableDSL.g:6987:2: rule__TablePreorder__Group__2__Impl rule__TablePreorder__Group__3
+            {
+            pushFollow(FOLLOW_25);
+            rule__TablePreorder__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TablePreorder__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePreorder__Group__2"
+
+
+    // $ANTLR start "rule__TablePreorder__Group__2__Impl"
+    // InternalTableDSL.g:6994:1: rule__TablePreorder__Group__2__Impl : ( ( rule__TablePreorder__ColumnAssignment_2 ) ) ;
+    public final void rule__TablePreorder__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:6998:1: ( ( ( rule__TablePreorder__ColumnAssignment_2 ) ) )
+            // InternalTableDSL.g:6999:1: ( ( rule__TablePreorder__ColumnAssignment_2 ) )
+            {
+            // InternalTableDSL.g:6999:1: ( ( rule__TablePreorder__ColumnAssignment_2 ) )
+            // InternalTableDSL.g:7000:2: ( rule__TablePreorder__ColumnAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePreorderAccess().getColumnAssignment_2()); 
+            }
+            // InternalTableDSL.g:7001:2: ( rule__TablePreorder__ColumnAssignment_2 )
+            // InternalTableDSL.g:7001:3: rule__TablePreorder__ColumnAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TablePreorder__ColumnAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePreorderAccess().getColumnAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePreorder__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TablePreorder__Group__3"
+    // InternalTableDSL.g:7009:1: rule__TablePreorder__Group__3 : rule__TablePreorder__Group__3__Impl ;
+    public final void rule__TablePreorder__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7013:1: ( rule__TablePreorder__Group__3__Impl )
+            // InternalTableDSL.g:7014:2: rule__TablePreorder__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TablePreorder__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePreorder__Group__3"
+
+
+    // $ANTLR start "rule__TablePreorder__Group__3__Impl"
+    // InternalTableDSL.g:7020:1: rule__TablePreorder__Group__3__Impl : ( ( rule__TablePreorder__AscendingAssignment_3 )? ) ;
+    public final void rule__TablePreorder__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7024:1: ( ( ( rule__TablePreorder__AscendingAssignment_3 )? ) )
+            // InternalTableDSL.g:7025:1: ( ( rule__TablePreorder__AscendingAssignment_3 )? )
+            {
+            // InternalTableDSL.g:7025:1: ( ( rule__TablePreorder__AscendingAssignment_3 )? )
+            // InternalTableDSL.g:7026:2: ( rule__TablePreorder__AscendingAssignment_3 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePreorderAccess().getAscendingAssignment_3()); 
+            }
+            // InternalTableDSL.g:7027:2: ( rule__TablePreorder__AscendingAssignment_3 )?
+            int alt67=2;
+            int LA67_0 = input.LA(1);
+
+            if ( (LA67_0==172) ) {
+                alt67=1;
+            }
+            switch (alt67) {
+                case 1 :
+                    // InternalTableDSL.g:7027:3: rule__TablePreorder__AscendingAssignment_3
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TablePreorder__AscendingAssignment_3();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePreorderAccess().getAscendingAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePreorder__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group__0"
+    // InternalTableDSL.g:7036:1: rule__TableValue__Group__0 : rule__TableValue__Group__0__Impl rule__TableValue__Group__1 ;
+    public final void rule__TableValue__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7040:1: ( rule__TableValue__Group__0__Impl rule__TableValue__Group__1 )
+            // InternalTableDSL.g:7041:2: rule__TableValue__Group__0__Impl rule__TableValue__Group__1
+            {
+            pushFollow(FOLLOW_26);
+            rule__TableValue__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group__0"
+
+
+    // $ANTLR start "rule__TableValue__Group__0__Impl"
+    // InternalTableDSL.g:7048:1: rule__TableValue__Group__0__Impl : ( () ) ;
+    public final void rule__TableValue__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7052:1: ( ( () ) )
+            // InternalTableDSL.g:7053:1: ( () )
+            {
+            // InternalTableDSL.g:7053:1: ( () )
+            // InternalTableDSL.g:7054:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getTableValueAction_0()); 
+            }
+            // InternalTableDSL.g:7055:2: ()
+            // InternalTableDSL.g:7055:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getTableValueAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group__1"
+    // InternalTableDSL.g:7063:1: rule__TableValue__Group__1 : rule__TableValue__Group__1__Impl rule__TableValue__Group__2 ;
+    public final void rule__TableValue__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7067:1: ( rule__TableValue__Group__1__Impl rule__TableValue__Group__2 )
+            // InternalTableDSL.g:7068:2: rule__TableValue__Group__1__Impl rule__TableValue__Group__2
+            {
+            pushFollow(FOLLOW_24);
+            rule__TableValue__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group__1"
+
+
+    // $ANTLR start "rule__TableValue__Group__1__Impl"
+    // InternalTableDSL.g:7075:1: rule__TableValue__Group__1__Impl : ( 'value' ) ;
+    public final void rule__TableValue__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7079:1: ( ( 'value' ) )
+            // InternalTableDSL.g:7080:1: ( 'value' )
+            {
+            // InternalTableDSL.g:7080:1: ( 'value' )
+            // InternalTableDSL.g:7081:2: 'value'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getValueKeyword_1()); 
+            }
+            match(input,85,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getValueKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group__2"
+    // InternalTableDSL.g:7090:1: rule__TableValue__Group__2 : rule__TableValue__Group__2__Impl rule__TableValue__Group__3 ;
+    public final void rule__TableValue__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7094:1: ( rule__TableValue__Group__2__Impl rule__TableValue__Group__3 )
+            // InternalTableDSL.g:7095:2: rule__TableValue__Group__2__Impl rule__TableValue__Group__3
+            {
+            pushFollow(FOLLOW_27);
+            rule__TableValue__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group__2"
+
+
+    // $ANTLR start "rule__TableValue__Group__2__Impl"
+    // InternalTableDSL.g:7102:1: rule__TableValue__Group__2__Impl : ( ( rule__TableValue__ColumnAssignment_2 ) ) ;
+    public final void rule__TableValue__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7106:1: ( ( ( rule__TableValue__ColumnAssignment_2 ) ) )
+            // InternalTableDSL.g:7107:1: ( ( rule__TableValue__ColumnAssignment_2 ) )
+            {
+            // InternalTableDSL.g:7107:1: ( ( rule__TableValue__ColumnAssignment_2 ) )
+            // InternalTableDSL.g:7108:2: ( rule__TableValue__ColumnAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getColumnAssignment_2()); 
+            }
+            // InternalTableDSL.g:7109:2: ( rule__TableValue__ColumnAssignment_2 )
+            // InternalTableDSL.g:7109:3: rule__TableValue__ColumnAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__ColumnAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getColumnAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group__3"
+    // InternalTableDSL.g:7117:1: rule__TableValue__Group__3 : rule__TableValue__Group__3__Impl rule__TableValue__Group__4 ;
+    public final void rule__TableValue__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7121:1: ( rule__TableValue__Group__3__Impl rule__TableValue__Group__4 )
+            // InternalTableDSL.g:7122:2: rule__TableValue__Group__3__Impl rule__TableValue__Group__4
+            {
+            pushFollow(FOLLOW_28);
+            rule__TableValue__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group__3"
+
+
+    // $ANTLR start "rule__TableValue__Group__3__Impl"
+    // InternalTableDSL.g:7129:1: rule__TableValue__Group__3__Impl : ( ( rule__TableValue__UnorderedGroup_3 ) ) ;
+    public final void rule__TableValue__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7133:1: ( ( ( rule__TableValue__UnorderedGroup_3 ) ) )
+            // InternalTableDSL.g:7134:1: ( ( rule__TableValue__UnorderedGroup_3 ) )
+            {
+            // InternalTableDSL.g:7134:1: ( ( rule__TableValue__UnorderedGroup_3 ) )
+            // InternalTableDSL.g:7135:2: ( rule__TableValue__UnorderedGroup_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getUnorderedGroup_3()); 
+            }
+            // InternalTableDSL.g:7136:2: ( rule__TableValue__UnorderedGroup_3 )
+            // InternalTableDSL.g:7136:3: rule__TableValue__UnorderedGroup_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__UnorderedGroup_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getUnorderedGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group__4"
+    // InternalTableDSL.g:7144:1: rule__TableValue__Group__4 : rule__TableValue__Group__4__Impl ;
+    public final void rule__TableValue__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7148:1: ( rule__TableValue__Group__4__Impl )
+            // InternalTableDSL.g:7149:2: rule__TableValue__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group__4"
+
+
+    // $ANTLR start "rule__TableValue__Group__4__Impl"
+    // InternalTableDSL.g:7155:1: rule__TableValue__Group__4__Impl : ( ( rule__TableValue__UnorderedGroup_4 ) ) ;
+    public final void rule__TableValue__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7159:1: ( ( ( rule__TableValue__UnorderedGroup_4 ) ) )
+            // InternalTableDSL.g:7160:1: ( ( rule__TableValue__UnorderedGroup_4 ) )
+            {
+            // InternalTableDSL.g:7160:1: ( ( rule__TableValue__UnorderedGroup_4 ) )
+            // InternalTableDSL.g:7161:2: ( rule__TableValue__UnorderedGroup_4 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getUnorderedGroup_4()); 
+            }
+            // InternalTableDSL.g:7162:2: ( rule__TableValue__UnorderedGroup_4 )
+            // InternalTableDSL.g:7162:3: rule__TableValue__UnorderedGroup_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__UnorderedGroup_4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getUnorderedGroup_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_3_1__0"
+    // InternalTableDSL.g:7171:1: rule__TableValue__Group_3_1__0 : rule__TableValue__Group_3_1__0__Impl rule__TableValue__Group_3_1__1 ;
+    public final void rule__TableValue__Group_3_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7175:1: ( rule__TableValue__Group_3_1__0__Impl rule__TableValue__Group_3_1__1 )
+            // InternalTableDSL.g:7176:2: rule__TableValue__Group_3_1__0__Impl rule__TableValue__Group_3_1__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__TableValue__Group_3_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_3_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_3_1__0"
+
+
+    // $ANTLR start "rule__TableValue__Group_3_1__0__Impl"
+    // InternalTableDSL.g:7183:1: rule__TableValue__Group_3_1__0__Impl : ( 'icon' ) ;
+    public final void rule__TableValue__Group_3_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7187:1: ( ( 'icon' ) )
+            // InternalTableDSL.g:7188:1: ( 'icon' )
+            {
+            // InternalTableDSL.g:7188:1: ( 'icon' )
+            // InternalTableDSL.g:7189:2: 'icon'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getIconKeyword_3_1_0()); 
+            }
+            match(input,86,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getIconKeyword_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_3_1__0__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_3_1__1"
+    // InternalTableDSL.g:7198:1: rule__TableValue__Group_3_1__1 : rule__TableValue__Group_3_1__1__Impl ;
+    public final void rule__TableValue__Group_3_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7202:1: ( rule__TableValue__Group_3_1__1__Impl )
+            // InternalTableDSL.g:7203:2: rule__TableValue__Group_3_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_3_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_3_1__1"
+
+
+    // $ANTLR start "rule__TableValue__Group_3_1__1__Impl"
+    // InternalTableDSL.g:7209:1: rule__TableValue__Group_3_1__1__Impl : ( ( rule__TableValue__IconNameAssignment_3_1_1 ) ) ;
+    public final void rule__TableValue__Group_3_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7213:1: ( ( ( rule__TableValue__IconNameAssignment_3_1_1 ) ) )
+            // InternalTableDSL.g:7214:1: ( ( rule__TableValue__IconNameAssignment_3_1_1 ) )
+            {
+            // InternalTableDSL.g:7214:1: ( ( rule__TableValue__IconNameAssignment_3_1_1 ) )
+            // InternalTableDSL.g:7215:2: ( rule__TableValue__IconNameAssignment_3_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getIconNameAssignment_3_1_1()); 
+            }
+            // InternalTableDSL.g:7216:2: ( rule__TableValue__IconNameAssignment_3_1_1 )
+            // InternalTableDSL.g:7216:3: rule__TableValue__IconNameAssignment_3_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__IconNameAssignment_3_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getIconNameAssignment_3_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_3_1__1__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_3_3__0"
+    // InternalTableDSL.g:7225:1: rule__TableValue__Group_3_3__0 : rule__TableValue__Group_3_3__0__Impl rule__TableValue__Group_3_3__1 ;
+    public final void rule__TableValue__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7229:1: ( rule__TableValue__Group_3_3__0__Impl rule__TableValue__Group_3_3__1 )
+            // InternalTableDSL.g:7230:2: rule__TableValue__Group_3_3__0__Impl rule__TableValue__Group_3_3__1
+            {
+            pushFollow(FOLLOW_29);
+            rule__TableValue__Group_3_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_3_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_3_3__0"
+
+
+    // $ANTLR start "rule__TableValue__Group_3_3__0__Impl"
+    // InternalTableDSL.g:7237:1: rule__TableValue__Group_3_3__0__Impl : ( ( rule__TableValue__HasImageAssignment_3_3_0 ) ) ;
+    public final void rule__TableValue__Group_3_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7241:1: ( ( ( rule__TableValue__HasImageAssignment_3_3_0 ) ) )
+            // InternalTableDSL.g:7242:1: ( ( rule__TableValue__HasImageAssignment_3_3_0 ) )
+            {
+            // InternalTableDSL.g:7242:1: ( ( rule__TableValue__HasImageAssignment_3_3_0 ) )
+            // InternalTableDSL.g:7243:2: ( rule__TableValue__HasImageAssignment_3_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getHasImageAssignment_3_3_0()); 
+            }
+            // InternalTableDSL.g:7244:2: ( rule__TableValue__HasImageAssignment_3_3_0 )
+            // InternalTableDSL.g:7244:3: rule__TableValue__HasImageAssignment_3_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__HasImageAssignment_3_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getHasImageAssignment_3_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_3_3__1"
+    // InternalTableDSL.g:7252:1: rule__TableValue__Group_3_3__1 : rule__TableValue__Group_3_3__1__Impl ;
+    public final void rule__TableValue__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7256:1: ( rule__TableValue__Group_3_3__1__Impl )
+            // InternalTableDSL.g:7257:2: rule__TableValue__Group_3_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_3_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_3_3__1"
+
+
+    // $ANTLR start "rule__TableValue__Group_3_3__1__Impl"
+    // InternalTableDSL.g:7263:1: rule__TableValue__Group_3_3__1__Impl : ( ( rule__TableValue__ImageAssignment_3_3_1 ) ) ;
+    public final void rule__TableValue__Group_3_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7267:1: ( ( ( rule__TableValue__ImageAssignment_3_3_1 ) ) )
+            // InternalTableDSL.g:7268:1: ( ( rule__TableValue__ImageAssignment_3_3_1 ) )
+            {
+            // InternalTableDSL.g:7268:1: ( ( rule__TableValue__ImageAssignment_3_3_1 ) )
+            // InternalTableDSL.g:7269:2: ( rule__TableValue__ImageAssignment_3_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getImageAssignment_3_3_1()); 
+            }
+            // InternalTableDSL.g:7270:2: ( rule__TableValue__ImageAssignment_3_3_1 )
+            // InternalTableDSL.g:7270:3: rule__TableValue__ImageAssignment_3_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__ImageAssignment_3_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getImageAssignment_3_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_3_3__1__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_0__0"
+    // InternalTableDSL.g:7279:1: rule__TableValue__Group_4_0__0 : rule__TableValue__Group_4_0__0__Impl rule__TableValue__Group_4_0__1 ;
+    public final void rule__TableValue__Group_4_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7283:1: ( rule__TableValue__Group_4_0__0__Impl rule__TableValue__Group_4_0__1 )
+            // InternalTableDSL.g:7284:2: rule__TableValue__Group_4_0__0__Impl rule__TableValue__Group_4_0__1
+            {
+            pushFollow(FOLLOW_30);
+            rule__TableValue__Group_4_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_4_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_0__0"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_0__0__Impl"
+    // InternalTableDSL.g:7291:1: rule__TableValue__Group_4_0__0__Impl : ( 'intervals' ) ;
+    public final void rule__TableValue__Group_4_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7295:1: ( ( 'intervals' ) )
+            // InternalTableDSL.g:7296:1: ( 'intervals' )
+            {
+            // InternalTableDSL.g:7296:1: ( 'intervals' )
+            // InternalTableDSL.g:7297:2: 'intervals'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()); 
+            }
+            match(input,87,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_0__0__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_0__1"
+    // InternalTableDSL.g:7306:1: rule__TableValue__Group_4_0__1 : rule__TableValue__Group_4_0__1__Impl rule__TableValue__Group_4_0__2 ;
+    public final void rule__TableValue__Group_4_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7310:1: ( rule__TableValue__Group_4_0__1__Impl rule__TableValue__Group_4_0__2 )
+            // InternalTableDSL.g:7311:2: rule__TableValue__Group_4_0__1__Impl rule__TableValue__Group_4_0__2
+            {
+            pushFollow(FOLLOW_30);
+            rule__TableValue__Group_4_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_4_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_0__1"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_0__1__Impl"
+    // InternalTableDSL.g:7318:1: rule__TableValue__Group_4_0__1__Impl : ( ( rule__TableValue__HideLabelIntervalAssignment_4_0_1 )? ) ;
+    public final void rule__TableValue__Group_4_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7322:1: ( ( ( rule__TableValue__HideLabelIntervalAssignment_4_0_1 )? ) )
+            // InternalTableDSL.g:7323:1: ( ( rule__TableValue__HideLabelIntervalAssignment_4_0_1 )? )
+            {
+            // InternalTableDSL.g:7323:1: ( ( rule__TableValue__HideLabelIntervalAssignment_4_0_1 )? )
+            // InternalTableDSL.g:7324:2: ( rule__TableValue__HideLabelIntervalAssignment_4_0_1 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getHideLabelIntervalAssignment_4_0_1()); 
+            }
+            // InternalTableDSL.g:7325:2: ( rule__TableValue__HideLabelIntervalAssignment_4_0_1 )?
+            int alt68=2;
+            int LA68_0 = input.LA(1);
+
+            if ( (LA68_0==175) ) {
+                alt68=1;
+            }
+            switch (alt68) {
+                case 1 :
+                    // InternalTableDSL.g:7325:3: rule__TableValue__HideLabelIntervalAssignment_4_0_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__HideLabelIntervalAssignment_4_0_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getHideLabelIntervalAssignment_4_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_0__1__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_0__2"
+    // InternalTableDSL.g:7333:1: rule__TableValue__Group_4_0__2 : rule__TableValue__Group_4_0__2__Impl rule__TableValue__Group_4_0__3 ;
+    public final void rule__TableValue__Group_4_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7337:1: ( rule__TableValue__Group_4_0__2__Impl rule__TableValue__Group_4_0__3 )
+            // InternalTableDSL.g:7338:2: rule__TableValue__Group_4_0__2__Impl rule__TableValue__Group_4_0__3
+            {
+            pushFollow(FOLLOW_31);
+            rule__TableValue__Group_4_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_4_0__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_0__2"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_0__2__Impl"
+    // InternalTableDSL.g:7345:1: rule__TableValue__Group_4_0__2__Impl : ( '{' ) ;
+    public final void rule__TableValue__Group_4_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7349:1: ( ( '{' ) )
+            // InternalTableDSL.g:7350:1: ( '{' )
+            {
+            // InternalTableDSL.g:7350:1: ( '{' )
+            // InternalTableDSL.g:7351:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_0__2__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_0__3"
+    // InternalTableDSL.g:7360:1: rule__TableValue__Group_4_0__3 : rule__TableValue__Group_4_0__3__Impl rule__TableValue__Group_4_0__4 ;
+    public final void rule__TableValue__Group_4_0__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7364:1: ( rule__TableValue__Group_4_0__3__Impl rule__TableValue__Group_4_0__4 )
+            // InternalTableDSL.g:7365:2: rule__TableValue__Group_4_0__3__Impl rule__TableValue__Group_4_0__4
+            {
+            pushFollow(FOLLOW_31);
+            rule__TableValue__Group_4_0__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_4_0__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_0__3"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_0__3__Impl"
+    // InternalTableDSL.g:7372:1: rule__TableValue__Group_4_0__3__Impl : ( ( rule__TableValue__IntervalsAssignment_4_0_3 )* ) ;
+    public final void rule__TableValue__Group_4_0__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7376:1: ( ( ( rule__TableValue__IntervalsAssignment_4_0_3 )* ) )
+            // InternalTableDSL.g:7377:1: ( ( rule__TableValue__IntervalsAssignment_4_0_3 )* )
+            {
+            // InternalTableDSL.g:7377:1: ( ( rule__TableValue__IntervalsAssignment_4_0_3 )* )
+            // InternalTableDSL.g:7378:2: ( rule__TableValue__IntervalsAssignment_4_0_3 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getIntervalsAssignment_4_0_3()); 
+            }
+            // InternalTableDSL.g:7379:2: ( rule__TableValue__IntervalsAssignment_4_0_3 )*
+            loop69:
+            do {
+                int alt69=2;
+                int LA69_0 = input.LA(1);
+
+                if ( ((LA69_0>=101 && LA69_0<=103)) ) {
+                    alt69=1;
+                }
+
+
+                switch (alt69) {
+            	case 1 :
+            	    // InternalTableDSL.g:7379:3: rule__TableValue__IntervalsAssignment_4_0_3
+            	    {
+            	    pushFollow(FOLLOW_32);
+            	    rule__TableValue__IntervalsAssignment_4_0_3();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop69;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getIntervalsAssignment_4_0_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_0__3__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_0__4"
+    // InternalTableDSL.g:7387:1: rule__TableValue__Group_4_0__4 : rule__TableValue__Group_4_0__4__Impl ;
+    public final void rule__TableValue__Group_4_0__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7391:1: ( rule__TableValue__Group_4_0__4__Impl )
+            // InternalTableDSL.g:7392:2: rule__TableValue__Group_4_0__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_4_0__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_0__4"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_0__4__Impl"
+    // InternalTableDSL.g:7398:1: rule__TableValue__Group_4_0__4__Impl : ( '}' ) ;
+    public final void rule__TableValue__Group_4_0__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7402:1: ( ( '}' ) )
+            // InternalTableDSL.g:7403:1: ( '}' )
+            {
+            // InternalTableDSL.g:7403:1: ( '}' )
+            // InternalTableDSL.g:7404:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_0__4__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_1__0"
+    // InternalTableDSL.g:7414:1: rule__TableValue__Group_4_1__0 : rule__TableValue__Group_4_1__0__Impl rule__TableValue__Group_4_1__1 ;
+    public final void rule__TableValue__Group_4_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7418:1: ( rule__TableValue__Group_4_1__0__Impl rule__TableValue__Group_4_1__1 )
+            // InternalTableDSL.g:7419:2: rule__TableValue__Group_4_1__0__Impl rule__TableValue__Group_4_1__1
+            {
+            pushFollow(FOLLOW_30);
+            rule__TableValue__Group_4_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_4_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_1__0"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_1__0__Impl"
+    // InternalTableDSL.g:7426:1: rule__TableValue__Group_4_1__0__Impl : ( 'lookups' ) ;
+    public final void rule__TableValue__Group_4_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7430:1: ( ( 'lookups' ) )
+            // InternalTableDSL.g:7431:1: ( 'lookups' )
+            {
+            // InternalTableDSL.g:7431:1: ( 'lookups' )
+            // InternalTableDSL.g:7432:2: 'lookups'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()); 
+            }
+            match(input,88,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_1__0__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_1__1"
+    // InternalTableDSL.g:7441:1: rule__TableValue__Group_4_1__1 : rule__TableValue__Group_4_1__1__Impl rule__TableValue__Group_4_1__2 ;
+    public final void rule__TableValue__Group_4_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7445:1: ( rule__TableValue__Group_4_1__1__Impl rule__TableValue__Group_4_1__2 )
+            // InternalTableDSL.g:7446:2: rule__TableValue__Group_4_1__1__Impl rule__TableValue__Group_4_1__2
+            {
+            pushFollow(FOLLOW_30);
+            rule__TableValue__Group_4_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_4_1__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_1__1"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_1__1__Impl"
+    // InternalTableDSL.g:7453:1: rule__TableValue__Group_4_1__1__Impl : ( ( rule__TableValue__HideLabelLookupAssignment_4_1_1 )? ) ;
+    public final void rule__TableValue__Group_4_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7457:1: ( ( ( rule__TableValue__HideLabelLookupAssignment_4_1_1 )? ) )
+            // InternalTableDSL.g:7458:1: ( ( rule__TableValue__HideLabelLookupAssignment_4_1_1 )? )
+            {
+            // InternalTableDSL.g:7458:1: ( ( rule__TableValue__HideLabelLookupAssignment_4_1_1 )? )
+            // InternalTableDSL.g:7459:2: ( rule__TableValue__HideLabelLookupAssignment_4_1_1 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getHideLabelLookupAssignment_4_1_1()); 
+            }
+            // InternalTableDSL.g:7460:2: ( rule__TableValue__HideLabelLookupAssignment_4_1_1 )?
+            int alt70=2;
+            int LA70_0 = input.LA(1);
+
+            if ( (LA70_0==175) ) {
+                alt70=1;
+            }
+            switch (alt70) {
+                case 1 :
+                    // InternalTableDSL.g:7460:3: rule__TableValue__HideLabelLookupAssignment_4_1_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__HideLabelLookupAssignment_4_1_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getHideLabelLookupAssignment_4_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_1__1__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_1__2"
+    // InternalTableDSL.g:7468:1: rule__TableValue__Group_4_1__2 : rule__TableValue__Group_4_1__2__Impl rule__TableValue__Group_4_1__3 ;
+    public final void rule__TableValue__Group_4_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7472:1: ( rule__TableValue__Group_4_1__2__Impl rule__TableValue__Group_4_1__3 )
+            // InternalTableDSL.g:7473:2: rule__TableValue__Group_4_1__2__Impl rule__TableValue__Group_4_1__3
+            {
+            pushFollow(FOLLOW_33);
+            rule__TableValue__Group_4_1__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_4_1__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_1__2"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_1__2__Impl"
+    // InternalTableDSL.g:7480:1: rule__TableValue__Group_4_1__2__Impl : ( '{' ) ;
+    public final void rule__TableValue__Group_4_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7484:1: ( ( '{' ) )
+            // InternalTableDSL.g:7485:1: ( '{' )
+            {
+            // InternalTableDSL.g:7485:1: ( '{' )
+            // InternalTableDSL.g:7486:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_1__2__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_1__3"
+    // InternalTableDSL.g:7495:1: rule__TableValue__Group_4_1__3 : rule__TableValue__Group_4_1__3__Impl rule__TableValue__Group_4_1__4 ;
+    public final void rule__TableValue__Group_4_1__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7499:1: ( rule__TableValue__Group_4_1__3__Impl rule__TableValue__Group_4_1__4 )
+            // InternalTableDSL.g:7500:2: rule__TableValue__Group_4_1__3__Impl rule__TableValue__Group_4_1__4
+            {
+            pushFollow(FOLLOW_33);
+            rule__TableValue__Group_4_1__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_4_1__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_1__3"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_1__3__Impl"
+    // InternalTableDSL.g:7507:1: rule__TableValue__Group_4_1__3__Impl : ( ( rule__TableValue__LookupsAssignment_4_1_3 )* ) ;
+    public final void rule__TableValue__Group_4_1__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7511:1: ( ( ( rule__TableValue__LookupsAssignment_4_1_3 )* ) )
+            // InternalTableDSL.g:7512:1: ( ( rule__TableValue__LookupsAssignment_4_1_3 )* )
+            {
+            // InternalTableDSL.g:7512:1: ( ( rule__TableValue__LookupsAssignment_4_1_3 )* )
+            // InternalTableDSL.g:7513:2: ( rule__TableValue__LookupsAssignment_4_1_3 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getLookupsAssignment_4_1_3()); 
+            }
+            // InternalTableDSL.g:7514:2: ( rule__TableValue__LookupsAssignment_4_1_3 )*
+            loop71:
+            do {
+                int alt71=2;
+                int LA71_0 = input.LA(1);
+
+                if ( ((LA71_0>=103 && LA71_0<=106)) ) {
+                    alt71=1;
+                }
+
+
+                switch (alt71) {
+            	case 1 :
+            	    // InternalTableDSL.g:7514:3: rule__TableValue__LookupsAssignment_4_1_3
+            	    {
+            	    pushFollow(FOLLOW_34);
+            	    rule__TableValue__LookupsAssignment_4_1_3();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop71;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getLookupsAssignment_4_1_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_1__3__Impl"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_1__4"
+    // InternalTableDSL.g:7522:1: rule__TableValue__Group_4_1__4 : rule__TableValue__Group_4_1__4__Impl ;
+    public final void rule__TableValue__Group_4_1__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7526:1: ( rule__TableValue__Group_4_1__4__Impl )
+            // InternalTableDSL.g:7527:2: rule__TableValue__Group_4_1__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__Group_4_1__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_1__4"
+
+
+    // $ANTLR start "rule__TableValue__Group_4_1__4__Impl"
+    // InternalTableDSL.g:7533:1: rule__TableValue__Group_4_1__4__Impl : ( '}' ) ;
+    public final void rule__TableValue__Group_4_1__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7537:1: ( ( '}' ) )
+            // InternalTableDSL.g:7538:1: ( '}' )
+            {
+            // InternalTableDSL.g:7538:1: ( '}' )
+            // InternalTableDSL.g:7539:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__Group_4_1__4__Impl"
+
+
+    // $ANTLR start "rule__TableFormatter__Group__0"
+    // InternalTableDSL.g:7549:1: rule__TableFormatter__Group__0 : rule__TableFormatter__Group__0__Impl rule__TableFormatter__Group__1 ;
+    public final void rule__TableFormatter__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7553:1: ( rule__TableFormatter__Group__0__Impl rule__TableFormatter__Group__1 )
+            // InternalTableDSL.g:7554:2: rule__TableFormatter__Group__0__Impl rule__TableFormatter__Group__1
+            {
+            pushFollow(FOLLOW_35);
+            rule__TableFormatter__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableFormatter__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableFormatter__Group__0"
+
+
+    // $ANTLR start "rule__TableFormatter__Group__0__Impl"
+    // InternalTableDSL.g:7561:1: rule__TableFormatter__Group__0__Impl : ( () ) ;
+    public final void rule__TableFormatter__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7565:1: ( ( () ) )
+            // InternalTableDSL.g:7566:1: ( () )
+            {
+            // InternalTableDSL.g:7566:1: ( () )
+            // InternalTableDSL.g:7567:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableFormatterAccess().getTableFormatterAction_0()); 
+            }
+            // InternalTableDSL.g:7568:2: ()
+            // InternalTableDSL.g:7568:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableFormatterAccess().getTableFormatterAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableFormatter__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableFormatter__Group__1"
+    // InternalTableDSL.g:7576:1: rule__TableFormatter__Group__1 : rule__TableFormatter__Group__1__Impl rule__TableFormatter__Group__2 ;
+    public final void rule__TableFormatter__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7580:1: ( rule__TableFormatter__Group__1__Impl rule__TableFormatter__Group__2 )
+            // InternalTableDSL.g:7581:2: rule__TableFormatter__Group__1__Impl rule__TableFormatter__Group__2
+            {
+            pushFollow(FOLLOW_14);
+            rule__TableFormatter__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableFormatter__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableFormatter__Group__1"
+
+
+    // $ANTLR start "rule__TableFormatter__Group__1__Impl"
+    // InternalTableDSL.g:7588:1: rule__TableFormatter__Group__1__Impl : ( 'formatter' ) ;
+    public final void rule__TableFormatter__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7592:1: ( ( 'formatter' ) )
+            // InternalTableDSL.g:7593:1: ( 'formatter' )
+            {
+            // InternalTableDSL.g:7593:1: ( 'formatter' )
+            // InternalTableDSL.g:7594:2: 'formatter'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableFormatterAccess().getFormatterKeyword_1()); 
+            }
+            match(input,89,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableFormatterAccess().getFormatterKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableFormatter__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableFormatter__Group__2"
+    // InternalTableDSL.g:7603:1: rule__TableFormatter__Group__2 : rule__TableFormatter__Group__2__Impl ;
+    public final void rule__TableFormatter__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7607:1: ( rule__TableFormatter__Group__2__Impl )
+            // InternalTableDSL.g:7608:2: rule__TableFormatter__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableFormatter__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableFormatter__Group__2"
+
+
+    // $ANTLR start "rule__TableFormatter__Group__2__Impl"
+    // InternalTableDSL.g:7614:1: rule__TableFormatter__Group__2__Impl : ( ( rule__TableFormatter__FormatAssignment_2 ) ) ;
+    public final void rule__TableFormatter__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7618:1: ( ( ( rule__TableFormatter__FormatAssignment_2 ) ) )
+            // InternalTableDSL.g:7619:1: ( ( rule__TableFormatter__FormatAssignment_2 ) )
+            {
+            // InternalTableDSL.g:7619:1: ( ( rule__TableFormatter__FormatAssignment_2 ) )
+            // InternalTableDSL.g:7620:2: ( rule__TableFormatter__FormatAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableFormatterAccess().getFormatAssignment_2()); 
+            }
+            // InternalTableDSL.g:7621:2: ( rule__TableFormatter__FormatAssignment_2 )
+            // InternalTableDSL.g:7621:3: rule__TableFormatter__FormatAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableFormatter__FormatAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableFormatterAccess().getFormatAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableFormatter__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableImage__Group__0"
+    // InternalTableDSL.g:7630:1: rule__TableImage__Group__0 : rule__TableImage__Group__0__Impl rule__TableImage__Group__1 ;
+    public final void rule__TableImage__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7634:1: ( rule__TableImage__Group__0__Impl rule__TableImage__Group__1 )
+            // InternalTableDSL.g:7635:2: rule__TableImage__Group__0__Impl rule__TableImage__Group__1
+            {
+            pushFollow(FOLLOW_29);
+            rule__TableImage__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableImage__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group__0"
+
+
+    // $ANTLR start "rule__TableImage__Group__0__Impl"
+    // InternalTableDSL.g:7642:1: rule__TableImage__Group__0__Impl : ( () ) ;
+    public final void rule__TableImage__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7646:1: ( ( () ) )
+            // InternalTableDSL.g:7647:1: ( () )
+            {
+            // InternalTableDSL.g:7647:1: ( () )
+            // InternalTableDSL.g:7648:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getTableImageAction_0()); 
+            }
+            // InternalTableDSL.g:7649:2: ()
+            // InternalTableDSL.g:7649:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getTableImageAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableImage__Group__1"
+    // InternalTableDSL.g:7657:1: rule__TableImage__Group__1 : rule__TableImage__Group__1__Impl rule__TableImage__Group__2 ;
+    public final void rule__TableImage__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7661:1: ( rule__TableImage__Group__1__Impl rule__TableImage__Group__2 )
+            // InternalTableDSL.g:7662:2: rule__TableImage__Group__1__Impl rule__TableImage__Group__2
+            {
+            pushFollow(FOLLOW_14);
+            rule__TableImage__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableImage__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group__1"
+
+
+    // $ANTLR start "rule__TableImage__Group__1__Impl"
+    // InternalTableDSL.g:7669:1: rule__TableImage__Group__1__Impl : ( 'path' ) ;
+    public final void rule__TableImage__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7673:1: ( ( 'path' ) )
+            // InternalTableDSL.g:7674:1: ( 'path' )
+            {
+            // InternalTableDSL.g:7674:1: ( 'path' )
+            // InternalTableDSL.g:7675:2: 'path'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getPathKeyword_1()); 
+            }
+            match(input,90,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getPathKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableImage__Group__2"
+    // InternalTableDSL.g:7684:1: rule__TableImage__Group__2 : rule__TableImage__Group__2__Impl rule__TableImage__Group__3 ;
+    public final void rule__TableImage__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7688:1: ( rule__TableImage__Group__2__Impl rule__TableImage__Group__3 )
+            // InternalTableDSL.g:7689:2: rule__TableImage__Group__2__Impl rule__TableImage__Group__3
+            {
+            pushFollow(FOLLOW_36);
+            rule__TableImage__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableImage__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group__2"
+
+
+    // $ANTLR start "rule__TableImage__Group__2__Impl"
+    // InternalTableDSL.g:7696:1: rule__TableImage__Group__2__Impl : ( ( rule__TableImage__ImagePathPatternAssignment_2 ) ) ;
+    public final void rule__TableImage__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7700:1: ( ( ( rule__TableImage__ImagePathPatternAssignment_2 ) ) )
+            // InternalTableDSL.g:7701:1: ( ( rule__TableImage__ImagePathPatternAssignment_2 ) )
+            {
+            // InternalTableDSL.g:7701:1: ( ( rule__TableImage__ImagePathPatternAssignment_2 ) )
+            // InternalTableDSL.g:7702:2: ( rule__TableImage__ImagePathPatternAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getImagePathPatternAssignment_2()); 
+            }
+            // InternalTableDSL.g:7703:2: ( rule__TableImage__ImagePathPatternAssignment_2 )
+            // InternalTableDSL.g:7703:3: rule__TableImage__ImagePathPatternAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableImage__ImagePathPatternAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getImagePathPatternAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableImage__Group__3"
+    // InternalTableDSL.g:7711:1: rule__TableImage__Group__3 : rule__TableImage__Group__3__Impl ;
+    public final void rule__TableImage__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7715:1: ( rule__TableImage__Group__3__Impl )
+            // InternalTableDSL.g:7716:2: rule__TableImage__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableImage__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group__3"
+
+
+    // $ANTLR start "rule__TableImage__Group__3__Impl"
+    // InternalTableDSL.g:7722:1: rule__TableImage__Group__3__Impl : ( ( rule__TableImage__UnorderedGroup_3 ) ) ;
+    public final void rule__TableImage__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7726:1: ( ( ( rule__TableImage__UnorderedGroup_3 ) ) )
+            // InternalTableDSL.g:7727:1: ( ( rule__TableImage__UnorderedGroup_3 ) )
+            {
+            // InternalTableDSL.g:7727:1: ( ( rule__TableImage__UnorderedGroup_3 ) )
+            // InternalTableDSL.g:7728:2: ( rule__TableImage__UnorderedGroup_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getUnorderedGroup_3()); 
+            }
+            // InternalTableDSL.g:7729:2: ( rule__TableImage__UnorderedGroup_3 )
+            // InternalTableDSL.g:7729:3: rule__TableImage__UnorderedGroup_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableImage__UnorderedGroup_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getUnorderedGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableImage__Group_3_2__0"
+    // InternalTableDSL.g:7738:1: rule__TableImage__Group_3_2__0 : rule__TableImage__Group_3_2__0__Impl rule__TableImage__Group_3_2__1 ;
+    public final void rule__TableImage__Group_3_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7742:1: ( rule__TableImage__Group_3_2__0__Impl rule__TableImage__Group_3_2__1 )
+            // InternalTableDSL.g:7743:2: rule__TableImage__Group_3_2__0__Impl rule__TableImage__Group_3_2__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__TableImage__Group_3_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableImage__Group_3_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group_3_2__0"
+
+
+    // $ANTLR start "rule__TableImage__Group_3_2__0__Impl"
+    // InternalTableDSL.g:7750:1: rule__TableImage__Group_3_2__0__Impl : ( ( rule__TableImage__ResizeAssignment_3_2_0 ) ) ;
+    public final void rule__TableImage__Group_3_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7754:1: ( ( ( rule__TableImage__ResizeAssignment_3_2_0 ) ) )
+            // InternalTableDSL.g:7755:1: ( ( rule__TableImage__ResizeAssignment_3_2_0 ) )
+            {
+            // InternalTableDSL.g:7755:1: ( ( rule__TableImage__ResizeAssignment_3_2_0 ) )
+            // InternalTableDSL.g:7756:2: ( rule__TableImage__ResizeAssignment_3_2_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getResizeAssignment_3_2_0()); 
+            }
+            // InternalTableDSL.g:7757:2: ( rule__TableImage__ResizeAssignment_3_2_0 )
+            // InternalTableDSL.g:7757:3: rule__TableImage__ResizeAssignment_3_2_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableImage__ResizeAssignment_3_2_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getResizeAssignment_3_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group_3_2__0__Impl"
+
+
+    // $ANTLR start "rule__TableImage__Group_3_2__1"
+    // InternalTableDSL.g:7765:1: rule__TableImage__Group_3_2__1 : rule__TableImage__Group_3_2__1__Impl ;
+    public final void rule__TableImage__Group_3_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7769:1: ( rule__TableImage__Group_3_2__1__Impl )
+            // InternalTableDSL.g:7770:2: rule__TableImage__Group_3_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableImage__Group_3_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group_3_2__1"
+
+
+    // $ANTLR start "rule__TableImage__Group_3_2__1__Impl"
+    // InternalTableDSL.g:7776:1: rule__TableImage__Group_3_2__1__Impl : ( ( rule__TableImage__ResizeStringAssignment_3_2_1 ) ) ;
+    public final void rule__TableImage__Group_3_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7780:1: ( ( ( rule__TableImage__ResizeStringAssignment_3_2_1 ) ) )
+            // InternalTableDSL.g:7781:1: ( ( rule__TableImage__ResizeStringAssignment_3_2_1 ) )
+            {
+            // InternalTableDSL.g:7781:1: ( ( rule__TableImage__ResizeStringAssignment_3_2_1 ) )
+            // InternalTableDSL.g:7782:2: ( rule__TableImage__ResizeStringAssignment_3_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getResizeStringAssignment_3_2_1()); 
+            }
+            // InternalTableDSL.g:7783:2: ( rule__TableImage__ResizeStringAssignment_3_2_1 )
+            // InternalTableDSL.g:7783:3: rule__TableImage__ResizeStringAssignment_3_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableImage__ResizeStringAssignment_3_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getResizeStringAssignment_3_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__Group_3_2__1__Impl"
+
+
+    // $ANTLR start "rule__TableTooltipPattern__Group__0"
+    // InternalTableDSL.g:7792:1: rule__TableTooltipPattern__Group__0 : rule__TableTooltipPattern__Group__0__Impl rule__TableTooltipPattern__Group__1 ;
+    public final void rule__TableTooltipPattern__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7796:1: ( rule__TableTooltipPattern__Group__0__Impl rule__TableTooltipPattern__Group__1 )
+            // InternalTableDSL.g:7797:2: rule__TableTooltipPattern__Group__0__Impl rule__TableTooltipPattern__Group__1
+            {
+            pushFollow(FOLLOW_27);
+            rule__TableTooltipPattern__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTooltipPattern__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltipPattern__Group__0"
+
+
+    // $ANTLR start "rule__TableTooltipPattern__Group__0__Impl"
+    // InternalTableDSL.g:7804:1: rule__TableTooltipPattern__Group__0__Impl : ( () ) ;
+    public final void rule__TableTooltipPattern__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7808:1: ( ( () ) )
+            // InternalTableDSL.g:7809:1: ( () )
+            {
+            // InternalTableDSL.g:7809:1: ( () )
+            // InternalTableDSL.g:7810:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipPatternAccess().getTableTooltipPatternAction_0()); 
+            }
+            // InternalTableDSL.g:7811:2: ()
+            // InternalTableDSL.g:7811:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipPatternAccess().getTableTooltipPatternAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltipPattern__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableTooltipPattern__Group__1"
+    // InternalTableDSL.g:7819:1: rule__TableTooltipPattern__Group__1 : rule__TableTooltipPattern__Group__1__Impl rule__TableTooltipPattern__Group__2 ;
+    public final void rule__TableTooltipPattern__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7823:1: ( rule__TableTooltipPattern__Group__1__Impl rule__TableTooltipPattern__Group__2 )
+            // InternalTableDSL.g:7824:2: rule__TableTooltipPattern__Group__1__Impl rule__TableTooltipPattern__Group__2
+            {
+            pushFollow(FOLLOW_14);
+            rule__TableTooltipPattern__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTooltipPattern__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltipPattern__Group__1"
+
+
+    // $ANTLR start "rule__TableTooltipPattern__Group__1__Impl"
+    // InternalTableDSL.g:7831:1: rule__TableTooltipPattern__Group__1__Impl : ( 'tooltipPattern' ) ;
+    public final void rule__TableTooltipPattern__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7835:1: ( ( 'tooltipPattern' ) )
+            // InternalTableDSL.g:7836:1: ( 'tooltipPattern' )
+            {
+            // InternalTableDSL.g:7836:1: ( 'tooltipPattern' )
+            // InternalTableDSL.g:7837:2: 'tooltipPattern'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternKeyword_1()); 
+            }
+            match(input,91,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltipPattern__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableTooltipPattern__Group__2"
+    // InternalTableDSL.g:7846:1: rule__TableTooltipPattern__Group__2 : rule__TableTooltipPattern__Group__2__Impl ;
+    public final void rule__TableTooltipPattern__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7850:1: ( rule__TableTooltipPattern__Group__2__Impl )
+            // InternalTableDSL.g:7851:2: rule__TableTooltipPattern__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTooltipPattern__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltipPattern__Group__2"
+
+
+    // $ANTLR start "rule__TableTooltipPattern__Group__2__Impl"
+    // InternalTableDSL.g:7857:1: rule__TableTooltipPattern__Group__2__Impl : ( ( rule__TableTooltipPattern__TooltipPatternAssignment_2 ) ) ;
+    public final void rule__TableTooltipPattern__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7861:1: ( ( ( rule__TableTooltipPattern__TooltipPatternAssignment_2 ) ) )
+            // InternalTableDSL.g:7862:1: ( ( rule__TableTooltipPattern__TooltipPatternAssignment_2 ) )
+            {
+            // InternalTableDSL.g:7862:1: ( ( rule__TableTooltipPattern__TooltipPatternAssignment_2 ) )
+            // InternalTableDSL.g:7863:2: ( rule__TableTooltipPattern__TooltipPatternAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternAssignment_2()); 
+            }
+            // InternalTableDSL.g:7864:2: ( rule__TableTooltipPattern__TooltipPatternAssignment_2 )
+            // InternalTableDSL.g:7864:3: rule__TableTooltipPattern__TooltipPatternAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTooltipPattern__TooltipPatternAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltipPattern__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableTask__Group__0"
+    // InternalTableDSL.g:7873:1: rule__TableTask__Group__0 : rule__TableTask__Group__0__Impl rule__TableTask__Group__1 ;
+    public final void rule__TableTask__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7877:1: ( rule__TableTask__Group__0__Impl rule__TableTask__Group__1 )
+            // InternalTableDSL.g:7878:2: rule__TableTask__Group__0__Impl rule__TableTask__Group__1
+            {
+            pushFollow(FOLLOW_37);
+            rule__TableTask__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTask__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTask__Group__0"
+
+
+    // $ANTLR start "rule__TableTask__Group__0__Impl"
+    // InternalTableDSL.g:7885:1: rule__TableTask__Group__0__Impl : ( () ) ;
+    public final void rule__TableTask__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7889:1: ( ( () ) )
+            // InternalTableDSL.g:7890:1: ( () )
+            {
+            // InternalTableDSL.g:7890:1: ( () )
+            // InternalTableDSL.g:7891:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTaskAccess().getTableTaskAction_0()); 
+            }
+            // InternalTableDSL.g:7892:2: ()
+            // InternalTableDSL.g:7892:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTaskAccess().getTableTaskAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTask__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableTask__Group__1"
+    // InternalTableDSL.g:7900:1: rule__TableTask__Group__1 : rule__TableTask__Group__1__Impl ;
+    public final void rule__TableTask__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7904:1: ( rule__TableTask__Group__1__Impl )
+            // InternalTableDSL.g:7905:2: rule__TableTask__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTask__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTask__Group__1"
+
+
+    // $ANTLR start "rule__TableTask__Group__1__Impl"
+    // InternalTableDSL.g:7911:1: rule__TableTask__Group__1__Impl : ( 'taskId' ) ;
+    public final void rule__TableTask__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7915:1: ( ( 'taskId' ) )
+            // InternalTableDSL.g:7916:1: ( 'taskId' )
+            {
+            // InternalTableDSL.g:7916:1: ( 'taskId' )
+            // InternalTableDSL.g:7917:2: 'taskId'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTaskAccess().getTaskIdKeyword_1()); 
+            }
+            match(input,92,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTaskAccess().getTaskIdKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTask__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableAllColumns__Group__0"
+    // InternalTableDSL.g:7927:1: rule__TableAllColumns__Group__0 : rule__TableAllColumns__Group__0__Impl rule__TableAllColumns__Group__1 ;
+    public final void rule__TableAllColumns__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7931:1: ( rule__TableAllColumns__Group__0__Impl rule__TableAllColumns__Group__1 )
+            // InternalTableDSL.g:7932:2: rule__TableAllColumns__Group__0__Impl rule__TableAllColumns__Group__1
+            {
+            pushFollow(FOLLOW_24);
+            rule__TableAllColumns__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAllColumns__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAllColumns__Group__0"
+
+
+    // $ANTLR start "rule__TableAllColumns__Group__0__Impl"
+    // InternalTableDSL.g:7939:1: rule__TableAllColumns__Group__0__Impl : ( () ) ;
+    public final void rule__TableAllColumns__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7943:1: ( ( () ) )
+            // InternalTableDSL.g:7944:1: ( () )
+            {
+            // InternalTableDSL.g:7944:1: ( () )
+            // InternalTableDSL.g:7945:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAllColumnsAccess().getTableAllColumnsAction_0()); 
+            }
+            // InternalTableDSL.g:7946:2: ()
+            // InternalTableDSL.g:7946:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAllColumnsAccess().getTableAllColumnsAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAllColumns__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableAllColumns__Group__1"
+    // InternalTableDSL.g:7954:1: rule__TableAllColumns__Group__1 : rule__TableAllColumns__Group__1__Impl ;
+    public final void rule__TableAllColumns__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7958:1: ( rule__TableAllColumns__Group__1__Impl )
+            // InternalTableDSL.g:7959:2: rule__TableAllColumns__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAllColumns__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAllColumns__Group__1"
+
+
+    // $ANTLR start "rule__TableAllColumns__Group__1__Impl"
+    // InternalTableDSL.g:7965:1: rule__TableAllColumns__Group__1__Impl : ( 'allColumns' ) ;
+    public final void rule__TableAllColumns__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7969:1: ( ( 'allColumns' ) )
+            // InternalTableDSL.g:7970:1: ( 'allColumns' )
+            {
+            // InternalTableDSL.g:7970:1: ( 'allColumns' )
+            // InternalTableDSL.g:7971:2: 'allColumns'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAllColumnsAccess().getAllColumnsKeyword_1()); 
+            }
+            match(input,93,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAllColumnsAccess().getAllColumnsKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAllColumns__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableOrdinal__Group__0"
+    // InternalTableDSL.g:7981:1: rule__TableOrdinal__Group__0 : rule__TableOrdinal__Group__0__Impl rule__TableOrdinal__Group__1 ;
+    public final void rule__TableOrdinal__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7985:1: ( rule__TableOrdinal__Group__0__Impl rule__TableOrdinal__Group__1 )
+            // InternalTableDSL.g:7986:2: rule__TableOrdinal__Group__0__Impl rule__TableOrdinal__Group__1
+            {
+            pushFollow(FOLLOW_20);
+            rule__TableOrdinal__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableOrdinal__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableOrdinal__Group__0"
+
+
+    // $ANTLR start "rule__TableOrdinal__Group__0__Impl"
+    // InternalTableDSL.g:7993:1: rule__TableOrdinal__Group__0__Impl : ( 'ordinal' ) ;
+    public final void rule__TableOrdinal__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:7997:1: ( ( 'ordinal' ) )
+            // InternalTableDSL.g:7998:1: ( 'ordinal' )
+            {
+            // InternalTableDSL.g:7998:1: ( 'ordinal' )
+            // InternalTableDSL.g:7999:2: 'ordinal'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableOrdinalAccess().getOrdinalKeyword_0()); 
+            }
+            match(input,94,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableOrdinalAccess().getOrdinalKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableOrdinal__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableOrdinal__Group__1"
+    // InternalTableDSL.g:8008:1: rule__TableOrdinal__Group__1 : rule__TableOrdinal__Group__1__Impl ;
+    public final void rule__TableOrdinal__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8012:1: ( rule__TableOrdinal__Group__1__Impl )
+            // InternalTableDSL.g:8013:2: rule__TableOrdinal__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableOrdinal__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableOrdinal__Group__1"
+
+
+    // $ANTLR start "rule__TableOrdinal__Group__1__Impl"
+    // InternalTableDSL.g:8019:1: rule__TableOrdinal__Group__1__Impl : ( ( rule__TableOrdinal__ValueRefAssignment_1 ) ) ;
+    public final void rule__TableOrdinal__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8023:1: ( ( ( rule__TableOrdinal__ValueRefAssignment_1 ) ) )
+            // InternalTableDSL.g:8024:1: ( ( rule__TableOrdinal__ValueRefAssignment_1 ) )
+            {
+            // InternalTableDSL.g:8024:1: ( ( rule__TableOrdinal__ValueRefAssignment_1 ) )
+            // InternalTableDSL.g:8025:2: ( rule__TableOrdinal__ValueRefAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableOrdinalAccess().getValueRefAssignment_1()); 
+            }
+            // InternalTableDSL.g:8026:2: ( rule__TableOrdinal__ValueRefAssignment_1 )
+            // InternalTableDSL.g:8026:3: rule__TableOrdinal__ValueRefAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableOrdinal__ValueRefAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableOrdinalAccess().getValueRefAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableOrdinal__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableColumn__Group__0"
+    // InternalTableDSL.g:8035:1: rule__TableColumn__Group__0 : rule__TableColumn__Group__0__Impl rule__TableColumn__Group__1 ;
+    public final void rule__TableColumn__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8039:1: ( rule__TableColumn__Group__0__Impl rule__TableColumn__Group__1 )
+            // InternalTableDSL.g:8040:2: rule__TableColumn__Group__0__Impl rule__TableColumn__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableColumn__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableColumn__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableColumn__Group__0"
+
+
+    // $ANTLR start "rule__TableColumn__Group__0__Impl"
+    // InternalTableDSL.g:8047:1: rule__TableColumn__Group__0__Impl : ( 'column' ) ;
+    public final void rule__TableColumn__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8051:1: ( ( 'column' ) )
+            // InternalTableDSL.g:8052:1: ( 'column' )
+            {
+            // InternalTableDSL.g:8052:1: ( 'column' )
+            // InternalTableDSL.g:8053:2: 'column'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableColumnAccess().getColumnKeyword_0()); 
+            }
+            match(input,95,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableColumnAccess().getColumnKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableColumn__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableColumn__Group__1"
+    // InternalTableDSL.g:8062:1: rule__TableColumn__Group__1 : rule__TableColumn__Group__1__Impl ;
+    public final void rule__TableColumn__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8066:1: ( rule__TableColumn__Group__1__Impl )
+            // InternalTableDSL.g:8067:2: rule__TableColumn__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableColumn__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableColumn__Group__1"
+
+
+    // $ANTLR start "rule__TableColumn__Group__1__Impl"
+    // InternalTableDSL.g:8073:1: rule__TableColumn__Group__1__Impl : ( ( rule__TableColumn__ValueRefAssignment_1 ) ) ;
+    public final void rule__TableColumn__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8077:1: ( ( ( rule__TableColumn__ValueRefAssignment_1 ) ) )
+            // InternalTableDSL.g:8078:1: ( ( rule__TableColumn__ValueRefAssignment_1 ) )
+            {
+            // InternalTableDSL.g:8078:1: ( ( rule__TableColumn__ValueRefAssignment_1 ) )
+            // InternalTableDSL.g:8079:2: ( rule__TableColumn__ValueRefAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableColumnAccess().getValueRefAssignment_1()); 
+            }
+            // InternalTableDSL.g:8080:2: ( rule__TableColumn__ValueRefAssignment_1 )
+            // InternalTableDSL.g:8080:3: rule__TableColumn__ValueRefAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableColumn__ValueRefAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableColumnAccess().getValueRefAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableColumn__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableMeasure__Group__0"
+    // InternalTableDSL.g:8089:1: rule__TableMeasure__Group__0 : rule__TableMeasure__Group__0__Impl rule__TableMeasure__Group__1 ;
+    public final void rule__TableMeasure__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8093:1: ( rule__TableMeasure__Group__0__Impl rule__TableMeasure__Group__1 )
+            // InternalTableDSL.g:8094:2: rule__TableMeasure__Group__0__Impl rule__TableMeasure__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableMeasure__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableMeasure__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableMeasure__Group__0"
+
+
+    // $ANTLR start "rule__TableMeasure__Group__0__Impl"
+    // InternalTableDSL.g:8101:1: rule__TableMeasure__Group__0__Impl : ( 'measure' ) ;
+    public final void rule__TableMeasure__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8105:1: ( ( 'measure' ) )
+            // InternalTableDSL.g:8106:1: ( 'measure' )
+            {
+            // InternalTableDSL.g:8106:1: ( 'measure' )
+            // InternalTableDSL.g:8107:2: 'measure'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableMeasureAccess().getMeasureKeyword_0()); 
+            }
+            match(input,96,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableMeasureAccess().getMeasureKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableMeasure__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableMeasure__Group__1"
+    // InternalTableDSL.g:8116:1: rule__TableMeasure__Group__1 : rule__TableMeasure__Group__1__Impl ;
+    public final void rule__TableMeasure__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8120:1: ( rule__TableMeasure__Group__1__Impl )
+            // InternalTableDSL.g:8121:2: rule__TableMeasure__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableMeasure__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableMeasure__Group__1"
+
+
+    // $ANTLR start "rule__TableMeasure__Group__1__Impl"
+    // InternalTableDSL.g:8127:1: rule__TableMeasure__Group__1__Impl : ( ( rule__TableMeasure__ValueRefAssignment_1 ) ) ;
+    public final void rule__TableMeasure__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8131:1: ( ( ( rule__TableMeasure__ValueRefAssignment_1 ) ) )
+            // InternalTableDSL.g:8132:1: ( ( rule__TableMeasure__ValueRefAssignment_1 ) )
+            {
+            // InternalTableDSL.g:8132:1: ( ( rule__TableMeasure__ValueRefAssignment_1 ) )
+            // InternalTableDSL.g:8133:2: ( rule__TableMeasure__ValueRefAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableMeasureAccess().getValueRefAssignment_1()); 
+            }
+            // InternalTableDSL.g:8134:2: ( rule__TableMeasure__ValueRefAssignment_1 )
+            // InternalTableDSL.g:8134:3: rule__TableMeasure__ValueRefAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableMeasure__ValueRefAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableMeasureAccess().getValueRefAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableMeasure__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableDerived__Group__0"
+    // InternalTableDSL.g:8143:1: rule__TableDerived__Group__0 : rule__TableDerived__Group__0__Impl rule__TableDerived__Group__1 ;
+    public final void rule__TableDerived__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8147:1: ( rule__TableDerived__Group__0__Impl rule__TableDerived__Group__1 )
+            // InternalTableDSL.g:8148:2: rule__TableDerived__Group__0__Impl rule__TableDerived__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableDerived__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDerived__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDerived__Group__0"
+
+
+    // $ANTLR start "rule__TableDerived__Group__0__Impl"
+    // InternalTableDSL.g:8155:1: rule__TableDerived__Group__0__Impl : ( 'derived' ) ;
+    public final void rule__TableDerived__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8159:1: ( ( 'derived' ) )
+            // InternalTableDSL.g:8160:1: ( 'derived' )
+            {
+            // InternalTableDSL.g:8160:1: ( 'derived' )
+            // InternalTableDSL.g:8161:2: 'derived'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDerivedAccess().getDerivedKeyword_0()); 
+            }
+            match(input,97,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDerivedAccess().getDerivedKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDerived__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableDerived__Group__1"
+    // InternalTableDSL.g:8170:1: rule__TableDerived__Group__1 : rule__TableDerived__Group__1__Impl ;
+    public final void rule__TableDerived__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8174:1: ( rule__TableDerived__Group__1__Impl )
+            // InternalTableDSL.g:8175:2: rule__TableDerived__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDerived__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDerived__Group__1"
+
+
+    // $ANTLR start "rule__TableDerived__Group__1__Impl"
+    // InternalTableDSL.g:8181:1: rule__TableDerived__Group__1__Impl : ( ( rule__TableDerived__ValueRefAssignment_1 ) ) ;
+    public final void rule__TableDerived__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8185:1: ( ( ( rule__TableDerived__ValueRefAssignment_1 ) ) )
+            // InternalTableDSL.g:8186:1: ( ( rule__TableDerived__ValueRefAssignment_1 ) )
+            {
+            // InternalTableDSL.g:8186:1: ( ( rule__TableDerived__ValueRefAssignment_1 ) )
+            // InternalTableDSL.g:8187:2: ( rule__TableDerived__ValueRefAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDerivedAccess().getValueRefAssignment_1()); 
+            }
+            // InternalTableDSL.g:8188:2: ( rule__TableDerived__ValueRefAssignment_1 )
+            // InternalTableDSL.g:8188:3: rule__TableDerived__ValueRefAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDerived__ValueRefAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDerivedAccess().getValueRefAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDerived__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableHierarchy__Group__0"
+    // InternalTableDSL.g:8197:1: rule__TableHierarchy__Group__0 : rule__TableHierarchy__Group__0__Impl rule__TableHierarchy__Group__1 ;
+    public final void rule__TableHierarchy__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8201:1: ( rule__TableHierarchy__Group__0__Impl rule__TableHierarchy__Group__1 )
+            // InternalTableDSL.g:8202:2: rule__TableHierarchy__Group__0__Impl rule__TableHierarchy__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableHierarchy__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableHierarchy__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableHierarchy__Group__0"
+
+
+    // $ANTLR start "rule__TableHierarchy__Group__0__Impl"
+    // InternalTableDSL.g:8209:1: rule__TableHierarchy__Group__0__Impl : ( 'level' ) ;
+    public final void rule__TableHierarchy__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8213:1: ( ( 'level' ) )
+            // InternalTableDSL.g:8214:1: ( 'level' )
+            {
+            // InternalTableDSL.g:8214:1: ( 'level' )
+            // InternalTableDSL.g:8215:2: 'level'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableHierarchyAccess().getLevelKeyword_0()); 
+            }
+            match(input,98,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableHierarchyAccess().getLevelKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableHierarchy__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableHierarchy__Group__1"
+    // InternalTableDSL.g:8224:1: rule__TableHierarchy__Group__1 : rule__TableHierarchy__Group__1__Impl ;
+    public final void rule__TableHierarchy__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8228:1: ( rule__TableHierarchy__Group__1__Impl )
+            // InternalTableDSL.g:8229:2: rule__TableHierarchy__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableHierarchy__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableHierarchy__Group__1"
+
+
+    // $ANTLR start "rule__TableHierarchy__Group__1__Impl"
+    // InternalTableDSL.g:8235:1: rule__TableHierarchy__Group__1__Impl : ( ( rule__TableHierarchy__ValueRefAssignment_1 ) ) ;
+    public final void rule__TableHierarchy__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8239:1: ( ( ( rule__TableHierarchy__ValueRefAssignment_1 ) ) )
+            // InternalTableDSL.g:8240:1: ( ( rule__TableHierarchy__ValueRefAssignment_1 ) )
+            {
+            // InternalTableDSL.g:8240:1: ( ( rule__TableHierarchy__ValueRefAssignment_1 ) )
+            // InternalTableDSL.g:8241:2: ( rule__TableHierarchy__ValueRefAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableHierarchyAccess().getValueRefAssignment_1()); 
+            }
+            // InternalTableDSL.g:8242:2: ( rule__TableHierarchy__ValueRefAssignment_1 )
+            // InternalTableDSL.g:8242:3: rule__TableHierarchy__ValueRefAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableHierarchy__ValueRefAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableHierarchyAccess().getValueRefAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableHierarchy__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableAttribute__Group__0"
+    // InternalTableDSL.g:8251:1: rule__TableAttribute__Group__0 : rule__TableAttribute__Group__0__Impl rule__TableAttribute__Group__1 ;
+    public final void rule__TableAttribute__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8255:1: ( rule__TableAttribute__Group__0__Impl rule__TableAttribute__Group__1 )
+            // InternalTableDSL.g:8256:2: rule__TableAttribute__Group__0__Impl rule__TableAttribute__Group__1
+            {
+            pushFollow(FOLLOW_38);
+            rule__TableAttribute__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAttribute__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAttribute__Group__0"
+
+
+    // $ANTLR start "rule__TableAttribute__Group__0__Impl"
+    // InternalTableDSL.g:8263:1: rule__TableAttribute__Group__0__Impl : ( () ) ;
+    public final void rule__TableAttribute__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8267:1: ( ( () ) )
+            // InternalTableDSL.g:8268:1: ( () )
+            {
+            // InternalTableDSL.g:8268:1: ( () )
+            // InternalTableDSL.g:8269:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAttributeAccess().getTableAttributeAction_0()); 
+            }
+            // InternalTableDSL.g:8270:2: ()
+            // InternalTableDSL.g:8270:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAttributeAccess().getTableAttributeAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAttribute__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableAttribute__Group__1"
+    // InternalTableDSL.g:8278:1: rule__TableAttribute__Group__1 : rule__TableAttribute__Group__1__Impl rule__TableAttribute__Group__2 ;
+    public final void rule__TableAttribute__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8282:1: ( rule__TableAttribute__Group__1__Impl rule__TableAttribute__Group__2 )
+            // InternalTableDSL.g:8283:2: rule__TableAttribute__Group__1__Impl rule__TableAttribute__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableAttribute__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAttribute__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAttribute__Group__1"
+
+
+    // $ANTLR start "rule__TableAttribute__Group__1__Impl"
+    // InternalTableDSL.g:8290:1: rule__TableAttribute__Group__1__Impl : ( 'property' ) ;
+    public final void rule__TableAttribute__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8294:1: ( ( 'property' ) )
+            // InternalTableDSL.g:8295:1: ( 'property' )
+            {
+            // InternalTableDSL.g:8295:1: ( 'property' )
+            // InternalTableDSL.g:8296:2: 'property'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAttributeAccess().getPropertyKeyword_1()); 
+            }
+            match(input,99,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAttributeAccess().getPropertyKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAttribute__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableAttribute__Group__2"
+    // InternalTableDSL.g:8305:1: rule__TableAttribute__Group__2 : rule__TableAttribute__Group__2__Impl ;
+    public final void rule__TableAttribute__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8309:1: ( rule__TableAttribute__Group__2__Impl )
+            // InternalTableDSL.g:8310:2: rule__TableAttribute__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAttribute__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAttribute__Group__2"
+
+
+    // $ANTLR start "rule__TableAttribute__Group__2__Impl"
+    // InternalTableDSL.g:8316:1: rule__TableAttribute__Group__2__Impl : ( ( rule__TableAttribute__ValueRefAssignment_2 ) ) ;
+    public final void rule__TableAttribute__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8320:1: ( ( ( rule__TableAttribute__ValueRefAssignment_2 ) ) )
+            // InternalTableDSL.g:8321:1: ( ( rule__TableAttribute__ValueRefAssignment_2 ) )
+            {
+            // InternalTableDSL.g:8321:1: ( ( rule__TableAttribute__ValueRefAssignment_2 ) )
+            // InternalTableDSL.g:8322:2: ( rule__TableAttribute__ValueRefAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAttributeAccess().getValueRefAssignment_2()); 
+            }
+            // InternalTableDSL.g:8323:2: ( rule__TableAttribute__ValueRefAssignment_2 )
+            // InternalTableDSL.g:8323:3: rule__TableAttribute__ValueRefAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAttribute__ValueRefAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAttributeAccess().getValueRefAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAttribute__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableAggregation__Group__0"
+    // InternalTableDSL.g:8332:1: rule__TableAggregation__Group__0 : rule__TableAggregation__Group__0__Impl rule__TableAggregation__Group__1 ;
+    public final void rule__TableAggregation__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8336:1: ( rule__TableAggregation__Group__0__Impl rule__TableAggregation__Group__1 )
+            // InternalTableDSL.g:8337:2: rule__TableAggregation__Group__0__Impl rule__TableAggregation__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableAggregation__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAggregation__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAggregation__Group__0"
+
+
+    // $ANTLR start "rule__TableAggregation__Group__0__Impl"
+    // InternalTableDSL.g:8344:1: rule__TableAggregation__Group__0__Impl : ( 'aggregation' ) ;
+    public final void rule__TableAggregation__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8348:1: ( ( 'aggregation' ) )
+            // InternalTableDSL.g:8349:1: ( 'aggregation' )
+            {
+            // InternalTableDSL.g:8349:1: ( 'aggregation' )
+            // InternalTableDSL.g:8350:2: 'aggregation'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAggregationAccess().getAggregationKeyword_0()); 
+            }
+            match(input,100,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAggregationAccess().getAggregationKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAggregation__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableAggregation__Group__1"
+    // InternalTableDSL.g:8359:1: rule__TableAggregation__Group__1 : rule__TableAggregation__Group__1__Impl ;
+    public final void rule__TableAggregation__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8363:1: ( rule__TableAggregation__Group__1__Impl )
+            // InternalTableDSL.g:8364:2: rule__TableAggregation__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAggregation__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAggregation__Group__1"
+
+
+    // $ANTLR start "rule__TableAggregation__Group__1__Impl"
+    // InternalTableDSL.g:8370:1: rule__TableAggregation__Group__1__Impl : ( ( rule__TableAggregation__ValueRefAssignment_1 ) ) ;
+    public final void rule__TableAggregation__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8374:1: ( ( ( rule__TableAggregation__ValueRefAssignment_1 ) ) )
+            // InternalTableDSL.g:8375:1: ( ( rule__TableAggregation__ValueRefAssignment_1 ) )
+            {
+            // InternalTableDSL.g:8375:1: ( ( rule__TableAggregation__ValueRefAssignment_1 ) )
+            // InternalTableDSL.g:8376:2: ( rule__TableAggregation__ValueRefAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAggregationAccess().getValueRefAssignment_1()); 
+            }
+            // InternalTableDSL.g:8377:2: ( rule__TableAggregation__ValueRefAssignment_1 )
+            // InternalTableDSL.g:8377:3: rule__TableAggregation__ValueRefAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAggregation__ValueRefAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAggregationAccess().getValueRefAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAggregation__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableNumberInterval__Group__0"
+    // InternalTableDSL.g:8386:1: rule__TableNumberInterval__Group__0 : rule__TableNumberInterval__Group__0__Impl rule__TableNumberInterval__Group__1 ;
+    public final void rule__TableNumberInterval__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8390:1: ( rule__TableNumberInterval__Group__0__Impl rule__TableNumberInterval__Group__1 )
+            // InternalTableDSL.g:8391:2: rule__TableNumberInterval__Group__0__Impl rule__TableNumberInterval__Group__1
+            {
+            pushFollow(FOLLOW_39);
+            rule__TableNumberInterval__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableNumberInterval__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberInterval__Group__0"
+
+
+    // $ANTLR start "rule__TableNumberInterval__Group__0__Impl"
+    // InternalTableDSL.g:8398:1: rule__TableNumberInterval__Group__0__Impl : ( () ) ;
+    public final void rule__TableNumberInterval__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8402:1: ( ( () ) )
+            // InternalTableDSL.g:8403:1: ( () )
+            {
+            // InternalTableDSL.g:8403:1: ( () )
+            // InternalTableDSL.g:8404:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberIntervalAccess().getTableNumberIntervalAction_0()); 
+            }
+            // InternalTableDSL.g:8405:2: ()
+            // InternalTableDSL.g:8405:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberIntervalAccess().getTableNumberIntervalAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberInterval__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableNumberInterval__Group__1"
+    // InternalTableDSL.g:8413:1: rule__TableNumberInterval__Group__1 : rule__TableNumberInterval__Group__1__Impl rule__TableNumberInterval__Group__2 ;
+    public final void rule__TableNumberInterval__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8417:1: ( rule__TableNumberInterval__Group__1__Impl rule__TableNumberInterval__Group__2 )
+            // InternalTableDSL.g:8418:2: rule__TableNumberInterval__Group__1__Impl rule__TableNumberInterval__Group__2
+            {
+            pushFollow(FOLLOW_40);
+            rule__TableNumberInterval__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableNumberInterval__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberInterval__Group__1"
+
+
+    // $ANTLR start "rule__TableNumberInterval__Group__1__Impl"
+    // InternalTableDSL.g:8425:1: rule__TableNumberInterval__Group__1__Impl : ( 'upToNumber' ) ;
+    public final void rule__TableNumberInterval__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8429:1: ( ( 'upToNumber' ) )
+            // InternalTableDSL.g:8430:1: ( 'upToNumber' )
+            {
+            // InternalTableDSL.g:8430:1: ( 'upToNumber' )
+            // InternalTableDSL.g:8431:2: 'upToNumber'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberIntervalAccess().getUpToNumberKeyword_1()); 
+            }
+            match(input,101,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberIntervalAccess().getUpToNumberKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberInterval__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableNumberInterval__Group__2"
+    // InternalTableDSL.g:8440:1: rule__TableNumberInterval__Group__2 : rule__TableNumberInterval__Group__2__Impl rule__TableNumberInterval__Group__3 ;
+    public final void rule__TableNumberInterval__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8444:1: ( rule__TableNumberInterval__Group__2__Impl rule__TableNumberInterval__Group__3 )
+            // InternalTableDSL.g:8445:2: rule__TableNumberInterval__Group__2__Impl rule__TableNumberInterval__Group__3
+            {
+            pushFollow(FOLLOW_41);
+            rule__TableNumberInterval__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableNumberInterval__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberInterval__Group__2"
+
+
+    // $ANTLR start "rule__TableNumberInterval__Group__2__Impl"
+    // InternalTableDSL.g:8452:1: rule__TableNumberInterval__Group__2__Impl : ( ( rule__TableNumberInterval__NumberIntervalValueAssignment_2 ) ) ;
+    public final void rule__TableNumberInterval__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8456:1: ( ( ( rule__TableNumberInterval__NumberIntervalValueAssignment_2 ) ) )
+            // InternalTableDSL.g:8457:1: ( ( rule__TableNumberInterval__NumberIntervalValueAssignment_2 ) )
+            {
+            // InternalTableDSL.g:8457:1: ( ( rule__TableNumberInterval__NumberIntervalValueAssignment_2 ) )
+            // InternalTableDSL.g:8458:2: ( rule__TableNumberInterval__NumberIntervalValueAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueAssignment_2()); 
+            }
+            // InternalTableDSL.g:8459:2: ( rule__TableNumberInterval__NumberIntervalValueAssignment_2 )
+            // InternalTableDSL.g:8459:3: rule__TableNumberInterval__NumberIntervalValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableNumberInterval__NumberIntervalValueAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberInterval__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableNumberInterval__Group__3"
+    // InternalTableDSL.g:8467:1: rule__TableNumberInterval__Group__3 : rule__TableNumberInterval__Group__3__Impl ;
+    public final void rule__TableNumberInterval__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8471:1: ( rule__TableNumberInterval__Group__3__Impl )
+            // InternalTableDSL.g:8472:2: rule__TableNumberInterval__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableNumberInterval__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberInterval__Group__3"
+
+
+    // $ANTLR start "rule__TableNumberInterval__Group__3__Impl"
+    // InternalTableDSL.g:8478:1: rule__TableNumberInterval__Group__3__Impl : ( ( rule__TableNumberInterval__NumberRangeAssignment_3 ) ) ;
+    public final void rule__TableNumberInterval__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8482:1: ( ( ( rule__TableNumberInterval__NumberRangeAssignment_3 ) ) )
+            // InternalTableDSL.g:8483:1: ( ( rule__TableNumberInterval__NumberRangeAssignment_3 ) )
+            {
+            // InternalTableDSL.g:8483:1: ( ( rule__TableNumberInterval__NumberRangeAssignment_3 ) )
+            // InternalTableDSL.g:8484:2: ( rule__TableNumberInterval__NumberRangeAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberIntervalAccess().getNumberRangeAssignment_3()); 
+            }
+            // InternalTableDSL.g:8485:2: ( rule__TableNumberInterval__NumberRangeAssignment_3 )
+            // InternalTableDSL.g:8485:3: rule__TableNumberInterval__NumberRangeAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableNumberInterval__NumberRangeAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberIntervalAccess().getNumberRangeAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberInterval__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableIntInterval__Group__0"
+    // InternalTableDSL.g:8494:1: rule__TableIntInterval__Group__0 : rule__TableIntInterval__Group__0__Impl rule__TableIntInterval__Group__1 ;
+    public final void rule__TableIntInterval__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8498:1: ( rule__TableIntInterval__Group__0__Impl rule__TableIntInterval__Group__1 )
+            // InternalTableDSL.g:8499:2: rule__TableIntInterval__Group__0__Impl rule__TableIntInterval__Group__1
+            {
+            pushFollow(FOLLOW_42);
+            rule__TableIntInterval__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableIntInterval__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntInterval__Group__0"
+
+
+    // $ANTLR start "rule__TableIntInterval__Group__0__Impl"
+    // InternalTableDSL.g:8506:1: rule__TableIntInterval__Group__0__Impl : ( () ) ;
+    public final void rule__TableIntInterval__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8510:1: ( ( () ) )
+            // InternalTableDSL.g:8511:1: ( () )
+            {
+            // InternalTableDSL.g:8511:1: ( () )
+            // InternalTableDSL.g:8512:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntIntervalAccess().getTableIntIntervalAction_0()); 
+            }
+            // InternalTableDSL.g:8513:2: ()
+            // InternalTableDSL.g:8513:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntIntervalAccess().getTableIntIntervalAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntInterval__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableIntInterval__Group__1"
+    // InternalTableDSL.g:8521:1: rule__TableIntInterval__Group__1 : rule__TableIntInterval__Group__1__Impl rule__TableIntInterval__Group__2 ;
+    public final void rule__TableIntInterval__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8525:1: ( rule__TableIntInterval__Group__1__Impl rule__TableIntInterval__Group__2 )
+            // InternalTableDSL.g:8526:2: rule__TableIntInterval__Group__1__Impl rule__TableIntInterval__Group__2
+            {
+            pushFollow(FOLLOW_43);
+            rule__TableIntInterval__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableIntInterval__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntInterval__Group__1"
+
+
+    // $ANTLR start "rule__TableIntInterval__Group__1__Impl"
+    // InternalTableDSL.g:8533:1: rule__TableIntInterval__Group__1__Impl : ( 'upToInteger' ) ;
+    public final void rule__TableIntInterval__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8537:1: ( ( 'upToInteger' ) )
+            // InternalTableDSL.g:8538:1: ( 'upToInteger' )
+            {
+            // InternalTableDSL.g:8538:1: ( 'upToInteger' )
+            // InternalTableDSL.g:8539:2: 'upToInteger'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntIntervalAccess().getUpToIntegerKeyword_1()); 
+            }
+            match(input,102,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntIntervalAccess().getUpToIntegerKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntInterval__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableIntInterval__Group__2"
+    // InternalTableDSL.g:8548:1: rule__TableIntInterval__Group__2 : rule__TableIntInterval__Group__2__Impl rule__TableIntInterval__Group__3 ;
+    public final void rule__TableIntInterval__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8552:1: ( rule__TableIntInterval__Group__2__Impl rule__TableIntInterval__Group__3 )
+            // InternalTableDSL.g:8553:2: rule__TableIntInterval__Group__2__Impl rule__TableIntInterval__Group__3
+            {
+            pushFollow(FOLLOW_41);
+            rule__TableIntInterval__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableIntInterval__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntInterval__Group__2"
+
+
+    // $ANTLR start "rule__TableIntInterval__Group__2__Impl"
+    // InternalTableDSL.g:8560:1: rule__TableIntInterval__Group__2__Impl : ( ( rule__TableIntInterval__IntIntervalValueAssignment_2 ) ) ;
+    public final void rule__TableIntInterval__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8564:1: ( ( ( rule__TableIntInterval__IntIntervalValueAssignment_2 ) ) )
+            // InternalTableDSL.g:8565:1: ( ( rule__TableIntInterval__IntIntervalValueAssignment_2 ) )
+            {
+            // InternalTableDSL.g:8565:1: ( ( rule__TableIntInterval__IntIntervalValueAssignment_2 ) )
+            // InternalTableDSL.g:8566:2: ( rule__TableIntInterval__IntIntervalValueAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueAssignment_2()); 
+            }
+            // InternalTableDSL.g:8567:2: ( rule__TableIntInterval__IntIntervalValueAssignment_2 )
+            // InternalTableDSL.g:8567:3: rule__TableIntInterval__IntIntervalValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIntInterval__IntIntervalValueAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntInterval__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableIntInterval__Group__3"
+    // InternalTableDSL.g:8575:1: rule__TableIntInterval__Group__3 : rule__TableIntInterval__Group__3__Impl ;
+    public final void rule__TableIntInterval__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8579:1: ( rule__TableIntInterval__Group__3__Impl )
+            // InternalTableDSL.g:8580:2: rule__TableIntInterval__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIntInterval__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntInterval__Group__3"
+
+
+    // $ANTLR start "rule__TableIntInterval__Group__3__Impl"
+    // InternalTableDSL.g:8586:1: rule__TableIntInterval__Group__3__Impl : ( ( rule__TableIntInterval__IntRangeAssignment_3 ) ) ;
+    public final void rule__TableIntInterval__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8590:1: ( ( ( rule__TableIntInterval__IntRangeAssignment_3 ) ) )
+            // InternalTableDSL.g:8591:1: ( ( rule__TableIntInterval__IntRangeAssignment_3 ) )
+            {
+            // InternalTableDSL.g:8591:1: ( ( rule__TableIntInterval__IntRangeAssignment_3 ) )
+            // InternalTableDSL.g:8592:2: ( rule__TableIntInterval__IntRangeAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntIntervalAccess().getIntRangeAssignment_3()); 
+            }
+            // InternalTableDSL.g:8593:2: ( rule__TableIntInterval__IntRangeAssignment_3 )
+            // InternalTableDSL.g:8593:3: rule__TableIntInterval__IntRangeAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIntInterval__IntRangeAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntIntervalAccess().getIntRangeAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntInterval__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableDateDayInterval__Group__0"
+    // InternalTableDSL.g:8602:1: rule__TableDateDayInterval__Group__0 : rule__TableDateDayInterval__Group__0__Impl rule__TableDateDayInterval__Group__1 ;
+    public final void rule__TableDateDayInterval__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8606:1: ( rule__TableDateDayInterval__Group__0__Impl rule__TableDateDayInterval__Group__1 )
+            // InternalTableDSL.g:8607:2: rule__TableDateDayInterval__Group__0__Impl rule__TableDateDayInterval__Group__1
+            {
+            pushFollow(FOLLOW_44);
+            rule__TableDateDayInterval__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayInterval__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayInterval__Group__0"
+
+
+    // $ANTLR start "rule__TableDateDayInterval__Group__0__Impl"
+    // InternalTableDSL.g:8614:1: rule__TableDateDayInterval__Group__0__Impl : ( () ) ;
+    public final void rule__TableDateDayInterval__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8618:1: ( ( () ) )
+            // InternalTableDSL.g:8619:1: ( () )
+            {
+            // InternalTableDSL.g:8619:1: ( () )
+            // InternalTableDSL.g:8620:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayIntervalAccess().getTableDateDayIntervalAction_0()); 
+            }
+            // InternalTableDSL.g:8621:2: ()
+            // InternalTableDSL.g:8621:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayIntervalAccess().getTableDateDayIntervalAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayInterval__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableDateDayInterval__Group__1"
+    // InternalTableDSL.g:8629:1: rule__TableDateDayInterval__Group__1 : rule__TableDateDayInterval__Group__1__Impl rule__TableDateDayInterval__Group__2 ;
+    public final void rule__TableDateDayInterval__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8633:1: ( rule__TableDateDayInterval__Group__1__Impl rule__TableDateDayInterval__Group__2 )
+            // InternalTableDSL.g:8634:2: rule__TableDateDayInterval__Group__1__Impl rule__TableDateDayInterval__Group__2
+            {
+            pushFollow(FOLLOW_43);
+            rule__TableDateDayInterval__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayInterval__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayInterval__Group__1"
+
+
+    // $ANTLR start "rule__TableDateDayInterval__Group__1__Impl"
+    // InternalTableDSL.g:8641:1: rule__TableDateDayInterval__Group__1__Impl : ( 'daysInPast' ) ;
+    public final void rule__TableDateDayInterval__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8645:1: ( ( 'daysInPast' ) )
+            // InternalTableDSL.g:8646:1: ( 'daysInPast' )
+            {
+            // InternalTableDSL.g:8646:1: ( 'daysInPast' )
+            // InternalTableDSL.g:8647:2: 'daysInPast'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayIntervalAccess().getDaysInPastKeyword_1()); 
+            }
+            match(input,103,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayIntervalAccess().getDaysInPastKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayInterval__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableDateDayInterval__Group__2"
+    // InternalTableDSL.g:8656:1: rule__TableDateDayInterval__Group__2 : rule__TableDateDayInterval__Group__2__Impl rule__TableDateDayInterval__Group__3 ;
+    public final void rule__TableDateDayInterval__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8660:1: ( rule__TableDateDayInterval__Group__2__Impl rule__TableDateDayInterval__Group__3 )
+            // InternalTableDSL.g:8661:2: rule__TableDateDayInterval__Group__2__Impl rule__TableDateDayInterval__Group__3
+            {
+            pushFollow(FOLLOW_41);
+            rule__TableDateDayInterval__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayInterval__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayInterval__Group__2"
+
+
+    // $ANTLR start "rule__TableDateDayInterval__Group__2__Impl"
+    // InternalTableDSL.g:8668:1: rule__TableDateDayInterval__Group__2__Impl : ( ( rule__TableDateDayInterval__DateIntervalValueAssignment_2 ) ) ;
+    public final void rule__TableDateDayInterval__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8672:1: ( ( ( rule__TableDateDayInterval__DateIntervalValueAssignment_2 ) ) )
+            // InternalTableDSL.g:8673:1: ( ( rule__TableDateDayInterval__DateIntervalValueAssignment_2 ) )
+            {
+            // InternalTableDSL.g:8673:1: ( ( rule__TableDateDayInterval__DateIntervalValueAssignment_2 ) )
+            // InternalTableDSL.g:8674:2: ( rule__TableDateDayInterval__DateIntervalValueAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueAssignment_2()); 
+            }
+            // InternalTableDSL.g:8675:2: ( rule__TableDateDayInterval__DateIntervalValueAssignment_2 )
+            // InternalTableDSL.g:8675:3: rule__TableDateDayInterval__DateIntervalValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayInterval__DateIntervalValueAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayInterval__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableDateDayInterval__Group__3"
+    // InternalTableDSL.g:8683:1: rule__TableDateDayInterval__Group__3 : rule__TableDateDayInterval__Group__3__Impl ;
+    public final void rule__TableDateDayInterval__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8687:1: ( rule__TableDateDayInterval__Group__3__Impl )
+            // InternalTableDSL.g:8688:2: rule__TableDateDayInterval__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayInterval__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayInterval__Group__3"
+
+
+    // $ANTLR start "rule__TableDateDayInterval__Group__3__Impl"
+    // InternalTableDSL.g:8694:1: rule__TableDateDayInterval__Group__3__Impl : ( ( rule__TableDateDayInterval__DateRangeAssignment_3 ) ) ;
+    public final void rule__TableDateDayInterval__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8698:1: ( ( ( rule__TableDateDayInterval__DateRangeAssignment_3 ) ) )
+            // InternalTableDSL.g:8699:1: ( ( rule__TableDateDayInterval__DateRangeAssignment_3 ) )
+            {
+            // InternalTableDSL.g:8699:1: ( ( rule__TableDateDayInterval__DateRangeAssignment_3 ) )
+            // InternalTableDSL.g:8700:2: ( rule__TableDateDayInterval__DateRangeAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayIntervalAccess().getDateRangeAssignment_3()); 
+            }
+            // InternalTableDSL.g:8701:2: ( rule__TableDateDayInterval__DateRangeAssignment_3 )
+            // InternalTableDSL.g:8701:3: rule__TableDateDayInterval__DateRangeAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayInterval__DateRangeAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayIntervalAccess().getDateRangeAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayInterval__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableIntLookup__Group__0"
+    // InternalTableDSL.g:8710:1: rule__TableIntLookup__Group__0 : rule__TableIntLookup__Group__0__Impl rule__TableIntLookup__Group__1 ;
+    public final void rule__TableIntLookup__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8714:1: ( rule__TableIntLookup__Group__0__Impl rule__TableIntLookup__Group__1 )
+            // InternalTableDSL.g:8715:2: rule__TableIntLookup__Group__0__Impl rule__TableIntLookup__Group__1
+            {
+            pushFollow(FOLLOW_45);
+            rule__TableIntLookup__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableIntLookup__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntLookup__Group__0"
+
+
+    // $ANTLR start "rule__TableIntLookup__Group__0__Impl"
+    // InternalTableDSL.g:8722:1: rule__TableIntLookup__Group__0__Impl : ( () ) ;
+    public final void rule__TableIntLookup__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8726:1: ( ( () ) )
+            // InternalTableDSL.g:8727:1: ( () )
+            {
+            // InternalTableDSL.g:8727:1: ( () )
+            // InternalTableDSL.g:8728:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntLookupAccess().getTableIntLookupAction_0()); 
+            }
+            // InternalTableDSL.g:8729:2: ()
+            // InternalTableDSL.g:8729:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntLookupAccess().getTableIntLookupAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntLookup__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableIntLookup__Group__1"
+    // InternalTableDSL.g:8737:1: rule__TableIntLookup__Group__1 : rule__TableIntLookup__Group__1__Impl rule__TableIntLookup__Group__2 ;
+    public final void rule__TableIntLookup__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8741:1: ( rule__TableIntLookup__Group__1__Impl rule__TableIntLookup__Group__2 )
+            // InternalTableDSL.g:8742:2: rule__TableIntLookup__Group__1__Impl rule__TableIntLookup__Group__2
+            {
+            pushFollow(FOLLOW_43);
+            rule__TableIntLookup__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableIntLookup__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntLookup__Group__1"
+
+
+    // $ANTLR start "rule__TableIntLookup__Group__1__Impl"
+    // InternalTableDSL.g:8749:1: rule__TableIntLookup__Group__1__Impl : ( 'integer' ) ;
+    public final void rule__TableIntLookup__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8753:1: ( ( 'integer' ) )
+            // InternalTableDSL.g:8754:1: ( 'integer' )
+            {
+            // InternalTableDSL.g:8754:1: ( 'integer' )
+            // InternalTableDSL.g:8755:2: 'integer'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntLookupAccess().getIntegerKeyword_1()); 
+            }
+            match(input,104,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntLookupAccess().getIntegerKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntLookup__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableIntLookup__Group__2"
+    // InternalTableDSL.g:8764:1: rule__TableIntLookup__Group__2 : rule__TableIntLookup__Group__2__Impl rule__TableIntLookup__Group__3 ;
+    public final void rule__TableIntLookup__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8768:1: ( rule__TableIntLookup__Group__2__Impl rule__TableIntLookup__Group__3 )
+            // InternalTableDSL.g:8769:2: rule__TableIntLookup__Group__2__Impl rule__TableIntLookup__Group__3
+            {
+            pushFollow(FOLLOW_41);
+            rule__TableIntLookup__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableIntLookup__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntLookup__Group__2"
+
+
+    // $ANTLR start "rule__TableIntLookup__Group__2__Impl"
+    // InternalTableDSL.g:8776:1: rule__TableIntLookup__Group__2__Impl : ( ( rule__TableIntLookup__LookupValueAssignment_2 ) ) ;
+    public final void rule__TableIntLookup__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8780:1: ( ( ( rule__TableIntLookup__LookupValueAssignment_2 ) ) )
+            // InternalTableDSL.g:8781:1: ( ( rule__TableIntLookup__LookupValueAssignment_2 ) )
+            {
+            // InternalTableDSL.g:8781:1: ( ( rule__TableIntLookup__LookupValueAssignment_2 ) )
+            // InternalTableDSL.g:8782:2: ( rule__TableIntLookup__LookupValueAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntLookupAccess().getLookupValueAssignment_2()); 
+            }
+            // InternalTableDSL.g:8783:2: ( rule__TableIntLookup__LookupValueAssignment_2 )
+            // InternalTableDSL.g:8783:3: rule__TableIntLookup__LookupValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIntLookup__LookupValueAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntLookupAccess().getLookupValueAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntLookup__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableIntLookup__Group__3"
+    // InternalTableDSL.g:8791:1: rule__TableIntLookup__Group__3 : rule__TableIntLookup__Group__3__Impl ;
+    public final void rule__TableIntLookup__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8795:1: ( rule__TableIntLookup__Group__3__Impl )
+            // InternalTableDSL.g:8796:2: rule__TableIntLookup__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIntLookup__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntLookup__Group__3"
+
+
+    // $ANTLR start "rule__TableIntLookup__Group__3__Impl"
+    // InternalTableDSL.g:8802:1: rule__TableIntLookup__Group__3__Impl : ( ( rule__TableIntLookup__DiscreteAssignment_3 ) ) ;
+    public final void rule__TableIntLookup__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8806:1: ( ( ( rule__TableIntLookup__DiscreteAssignment_3 ) ) )
+            // InternalTableDSL.g:8807:1: ( ( rule__TableIntLookup__DiscreteAssignment_3 ) )
+            {
+            // InternalTableDSL.g:8807:1: ( ( rule__TableIntLookup__DiscreteAssignment_3 ) )
+            // InternalTableDSL.g:8808:2: ( rule__TableIntLookup__DiscreteAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntLookupAccess().getDiscreteAssignment_3()); 
+            }
+            // InternalTableDSL.g:8809:2: ( rule__TableIntLookup__DiscreteAssignment_3 )
+            // InternalTableDSL.g:8809:3: rule__TableIntLookup__DiscreteAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIntLookup__DiscreteAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntLookupAccess().getDiscreteAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntLookup__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableNumberLookup__Group__0"
+    // InternalTableDSL.g:8818:1: rule__TableNumberLookup__Group__0 : rule__TableNumberLookup__Group__0__Impl rule__TableNumberLookup__Group__1 ;
+    public final void rule__TableNumberLookup__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8822:1: ( rule__TableNumberLookup__Group__0__Impl rule__TableNumberLookup__Group__1 )
+            // InternalTableDSL.g:8823:2: rule__TableNumberLookup__Group__0__Impl rule__TableNumberLookup__Group__1
+            {
+            pushFollow(FOLLOW_46);
+            rule__TableNumberLookup__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableNumberLookup__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberLookup__Group__0"
+
+
+    // $ANTLR start "rule__TableNumberLookup__Group__0__Impl"
+    // InternalTableDSL.g:8830:1: rule__TableNumberLookup__Group__0__Impl : ( () ) ;
+    public final void rule__TableNumberLookup__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8834:1: ( ( () ) )
+            // InternalTableDSL.g:8835:1: ( () )
+            {
+            // InternalTableDSL.g:8835:1: ( () )
+            // InternalTableDSL.g:8836:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberLookupAccess().getTableNumberLookupAction_0()); 
+            }
+            // InternalTableDSL.g:8837:2: ()
+            // InternalTableDSL.g:8837:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberLookupAccess().getTableNumberLookupAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberLookup__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableNumberLookup__Group__1"
+    // InternalTableDSL.g:8845:1: rule__TableNumberLookup__Group__1 : rule__TableNumberLookup__Group__1__Impl rule__TableNumberLookup__Group__2 ;
+    public final void rule__TableNumberLookup__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8849:1: ( rule__TableNumberLookup__Group__1__Impl rule__TableNumberLookup__Group__2 )
+            // InternalTableDSL.g:8850:2: rule__TableNumberLookup__Group__1__Impl rule__TableNumberLookup__Group__2
+            {
+            pushFollow(FOLLOW_40);
+            rule__TableNumberLookup__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableNumberLookup__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberLookup__Group__1"
+
+
+    // $ANTLR start "rule__TableNumberLookup__Group__1__Impl"
+    // InternalTableDSL.g:8857:1: rule__TableNumberLookup__Group__1__Impl : ( 'number' ) ;
+    public final void rule__TableNumberLookup__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8861:1: ( ( 'number' ) )
+            // InternalTableDSL.g:8862:1: ( 'number' )
+            {
+            // InternalTableDSL.g:8862:1: ( 'number' )
+            // InternalTableDSL.g:8863:2: 'number'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberLookupAccess().getNumberKeyword_1()); 
+            }
+            match(input,105,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberLookupAccess().getNumberKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberLookup__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableNumberLookup__Group__2"
+    // InternalTableDSL.g:8872:1: rule__TableNumberLookup__Group__2 : rule__TableNumberLookup__Group__2__Impl rule__TableNumberLookup__Group__3 ;
+    public final void rule__TableNumberLookup__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8876:1: ( rule__TableNumberLookup__Group__2__Impl rule__TableNumberLookup__Group__3 )
+            // InternalTableDSL.g:8877:2: rule__TableNumberLookup__Group__2__Impl rule__TableNumberLookup__Group__3
+            {
+            pushFollow(FOLLOW_41);
+            rule__TableNumberLookup__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableNumberLookup__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberLookup__Group__2"
+
+
+    // $ANTLR start "rule__TableNumberLookup__Group__2__Impl"
+    // InternalTableDSL.g:8884:1: rule__TableNumberLookup__Group__2__Impl : ( ( rule__TableNumberLookup__LookupValueAssignment_2 ) ) ;
+    public final void rule__TableNumberLookup__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8888:1: ( ( ( rule__TableNumberLookup__LookupValueAssignment_2 ) ) )
+            // InternalTableDSL.g:8889:1: ( ( rule__TableNumberLookup__LookupValueAssignment_2 ) )
+            {
+            // InternalTableDSL.g:8889:1: ( ( rule__TableNumberLookup__LookupValueAssignment_2 ) )
+            // InternalTableDSL.g:8890:2: ( rule__TableNumberLookup__LookupValueAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberLookupAccess().getLookupValueAssignment_2()); 
+            }
+            // InternalTableDSL.g:8891:2: ( rule__TableNumberLookup__LookupValueAssignment_2 )
+            // InternalTableDSL.g:8891:3: rule__TableNumberLookup__LookupValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableNumberLookup__LookupValueAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberLookupAccess().getLookupValueAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberLookup__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableNumberLookup__Group__3"
+    // InternalTableDSL.g:8899:1: rule__TableNumberLookup__Group__3 : rule__TableNumberLookup__Group__3__Impl ;
+    public final void rule__TableNumberLookup__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8903:1: ( rule__TableNumberLookup__Group__3__Impl )
+            // InternalTableDSL.g:8904:2: rule__TableNumberLookup__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableNumberLookup__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberLookup__Group__3"
+
+
+    // $ANTLR start "rule__TableNumberLookup__Group__3__Impl"
+    // InternalTableDSL.g:8910:1: rule__TableNumberLookup__Group__3__Impl : ( ( rule__TableNumberLookup__DiscreteAssignment_3 ) ) ;
+    public final void rule__TableNumberLookup__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8914:1: ( ( ( rule__TableNumberLookup__DiscreteAssignment_3 ) ) )
+            // InternalTableDSL.g:8915:1: ( ( rule__TableNumberLookup__DiscreteAssignment_3 ) )
+            {
+            // InternalTableDSL.g:8915:1: ( ( rule__TableNumberLookup__DiscreteAssignment_3 ) )
+            // InternalTableDSL.g:8916:2: ( rule__TableNumberLookup__DiscreteAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberLookupAccess().getDiscreteAssignment_3()); 
+            }
+            // InternalTableDSL.g:8917:2: ( rule__TableNumberLookup__DiscreteAssignment_3 )
+            // InternalTableDSL.g:8917:3: rule__TableNumberLookup__DiscreteAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableNumberLookup__DiscreteAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberLookupAccess().getDiscreteAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberLookup__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableStringLookup__Group__0"
+    // InternalTableDSL.g:8926:1: rule__TableStringLookup__Group__0 : rule__TableStringLookup__Group__0__Impl rule__TableStringLookup__Group__1 ;
+    public final void rule__TableStringLookup__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8930:1: ( rule__TableStringLookup__Group__0__Impl rule__TableStringLookup__Group__1 )
+            // InternalTableDSL.g:8931:2: rule__TableStringLookup__Group__0__Impl rule__TableStringLookup__Group__1
+            {
+            pushFollow(FOLLOW_47);
+            rule__TableStringLookup__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableStringLookup__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableStringLookup__Group__0"
+
+
+    // $ANTLR start "rule__TableStringLookup__Group__0__Impl"
+    // InternalTableDSL.g:8938:1: rule__TableStringLookup__Group__0__Impl : ( () ) ;
+    public final void rule__TableStringLookup__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8942:1: ( ( () ) )
+            // InternalTableDSL.g:8943:1: ( () )
+            {
+            // InternalTableDSL.g:8943:1: ( () )
+            // InternalTableDSL.g:8944:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableStringLookupAccess().getTableStringLookupAction_0()); 
+            }
+            // InternalTableDSL.g:8945:2: ()
+            // InternalTableDSL.g:8945:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableStringLookupAccess().getTableStringLookupAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableStringLookup__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableStringLookup__Group__1"
+    // InternalTableDSL.g:8953:1: rule__TableStringLookup__Group__1 : rule__TableStringLookup__Group__1__Impl rule__TableStringLookup__Group__2 ;
+    public final void rule__TableStringLookup__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8957:1: ( rule__TableStringLookup__Group__1__Impl rule__TableStringLookup__Group__2 )
+            // InternalTableDSL.g:8958:2: rule__TableStringLookup__Group__1__Impl rule__TableStringLookup__Group__2
+            {
+            pushFollow(FOLLOW_14);
+            rule__TableStringLookup__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableStringLookup__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableStringLookup__Group__1"
+
+
+    // $ANTLR start "rule__TableStringLookup__Group__1__Impl"
+    // InternalTableDSL.g:8965:1: rule__TableStringLookup__Group__1__Impl : ( 'string' ) ;
+    public final void rule__TableStringLookup__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8969:1: ( ( 'string' ) )
+            // InternalTableDSL.g:8970:1: ( 'string' )
+            {
+            // InternalTableDSL.g:8970:1: ( 'string' )
+            // InternalTableDSL.g:8971:2: 'string'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableStringLookupAccess().getStringKeyword_1()); 
+            }
+            match(input,106,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableStringLookupAccess().getStringKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableStringLookup__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableStringLookup__Group__2"
+    // InternalTableDSL.g:8980:1: rule__TableStringLookup__Group__2 : rule__TableStringLookup__Group__2__Impl rule__TableStringLookup__Group__3 ;
+    public final void rule__TableStringLookup__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8984:1: ( rule__TableStringLookup__Group__2__Impl rule__TableStringLookup__Group__3 )
+            // InternalTableDSL.g:8985:2: rule__TableStringLookup__Group__2__Impl rule__TableStringLookup__Group__3
+            {
+            pushFollow(FOLLOW_41);
+            rule__TableStringLookup__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableStringLookup__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableStringLookup__Group__2"
+
+
+    // $ANTLR start "rule__TableStringLookup__Group__2__Impl"
+    // InternalTableDSL.g:8992:1: rule__TableStringLookup__Group__2__Impl : ( ( rule__TableStringLookup__LookupValueAssignment_2 ) ) ;
+    public final void rule__TableStringLookup__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:8996:1: ( ( ( rule__TableStringLookup__LookupValueAssignment_2 ) ) )
+            // InternalTableDSL.g:8997:1: ( ( rule__TableStringLookup__LookupValueAssignment_2 ) )
+            {
+            // InternalTableDSL.g:8997:1: ( ( rule__TableStringLookup__LookupValueAssignment_2 ) )
+            // InternalTableDSL.g:8998:2: ( rule__TableStringLookup__LookupValueAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableStringLookupAccess().getLookupValueAssignment_2()); 
+            }
+            // InternalTableDSL.g:8999:2: ( rule__TableStringLookup__LookupValueAssignment_2 )
+            // InternalTableDSL.g:8999:3: rule__TableStringLookup__LookupValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableStringLookup__LookupValueAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableStringLookupAccess().getLookupValueAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableStringLookup__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableStringLookup__Group__3"
+    // InternalTableDSL.g:9007:1: rule__TableStringLookup__Group__3 : rule__TableStringLookup__Group__3__Impl ;
+    public final void rule__TableStringLookup__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9011:1: ( rule__TableStringLookup__Group__3__Impl )
+            // InternalTableDSL.g:9012:2: rule__TableStringLookup__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableStringLookup__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableStringLookup__Group__3"
+
+
+    // $ANTLR start "rule__TableStringLookup__Group__3__Impl"
+    // InternalTableDSL.g:9018:1: rule__TableStringLookup__Group__3__Impl : ( ( rule__TableStringLookup__DiscreteAssignment_3 ) ) ;
+    public final void rule__TableStringLookup__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9022:1: ( ( ( rule__TableStringLookup__DiscreteAssignment_3 ) ) )
+            // InternalTableDSL.g:9023:1: ( ( rule__TableStringLookup__DiscreteAssignment_3 ) )
+            {
+            // InternalTableDSL.g:9023:1: ( ( rule__TableStringLookup__DiscreteAssignment_3 ) )
+            // InternalTableDSL.g:9024:2: ( rule__TableStringLookup__DiscreteAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableStringLookupAccess().getDiscreteAssignment_3()); 
+            }
+            // InternalTableDSL.g:9025:2: ( rule__TableStringLookup__DiscreteAssignment_3 )
+            // InternalTableDSL.g:9025:3: rule__TableStringLookup__DiscreteAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableStringLookup__DiscreteAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableStringLookupAccess().getDiscreteAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableStringLookup__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableDateDayLookup__Group__0"
+    // InternalTableDSL.g:9034:1: rule__TableDateDayLookup__Group__0 : rule__TableDateDayLookup__Group__0__Impl rule__TableDateDayLookup__Group__1 ;
+    public final void rule__TableDateDayLookup__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9038:1: ( rule__TableDateDayLookup__Group__0__Impl rule__TableDateDayLookup__Group__1 )
+            // InternalTableDSL.g:9039:2: rule__TableDateDayLookup__Group__0__Impl rule__TableDateDayLookup__Group__1
+            {
+            pushFollow(FOLLOW_48);
+            rule__TableDateDayLookup__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayLookup__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayLookup__Group__0"
+
+
+    // $ANTLR start "rule__TableDateDayLookup__Group__0__Impl"
+    // InternalTableDSL.g:9046:1: rule__TableDateDayLookup__Group__0__Impl : ( () ) ;
+    public final void rule__TableDateDayLookup__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9050:1: ( ( () ) )
+            // InternalTableDSL.g:9051:1: ( () )
+            {
+            // InternalTableDSL.g:9051:1: ( () )
+            // InternalTableDSL.g:9052:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayLookupAccess().getTableDateDayLookupAction_0()); 
+            }
+            // InternalTableDSL.g:9053:2: ()
+            // InternalTableDSL.g:9053:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayLookupAccess().getTableDateDayLookupAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayLookup__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableDateDayLookup__Group__1"
+    // InternalTableDSL.g:9061:1: rule__TableDateDayLookup__Group__1 : rule__TableDateDayLookup__Group__1__Impl rule__TableDateDayLookup__Group__2 ;
+    public final void rule__TableDateDayLookup__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9065:1: ( rule__TableDateDayLookup__Group__1__Impl rule__TableDateDayLookup__Group__2 )
+            // InternalTableDSL.g:9066:2: rule__TableDateDayLookup__Group__1__Impl rule__TableDateDayLookup__Group__2
+            {
+            pushFollow(FOLLOW_43);
+            rule__TableDateDayLookup__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayLookup__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayLookup__Group__1"
+
+
+    // $ANTLR start "rule__TableDateDayLookup__Group__1__Impl"
+    // InternalTableDSL.g:9073:1: rule__TableDateDayLookup__Group__1__Impl : ( 'daysInPast' ) ;
+    public final void rule__TableDateDayLookup__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9077:1: ( ( 'daysInPast' ) )
+            // InternalTableDSL.g:9078:1: ( 'daysInPast' )
+            {
+            // InternalTableDSL.g:9078:1: ( 'daysInPast' )
+            // InternalTableDSL.g:9079:2: 'daysInPast'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayLookupAccess().getDaysInPastKeyword_1()); 
+            }
+            match(input,103,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayLookupAccess().getDaysInPastKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayLookup__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableDateDayLookup__Group__2"
+    // InternalTableDSL.g:9088:1: rule__TableDateDayLookup__Group__2 : rule__TableDateDayLookup__Group__2__Impl rule__TableDateDayLookup__Group__3 ;
+    public final void rule__TableDateDayLookup__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9092:1: ( rule__TableDateDayLookup__Group__2__Impl rule__TableDateDayLookup__Group__3 )
+            // InternalTableDSL.g:9093:2: rule__TableDateDayLookup__Group__2__Impl rule__TableDateDayLookup__Group__3
+            {
+            pushFollow(FOLLOW_41);
+            rule__TableDateDayLookup__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayLookup__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayLookup__Group__2"
+
+
+    // $ANTLR start "rule__TableDateDayLookup__Group__2__Impl"
+    // InternalTableDSL.g:9100:1: rule__TableDateDayLookup__Group__2__Impl : ( ( rule__TableDateDayLookup__LookupValueAssignment_2 ) ) ;
+    public final void rule__TableDateDayLookup__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9104:1: ( ( ( rule__TableDateDayLookup__LookupValueAssignment_2 ) ) )
+            // InternalTableDSL.g:9105:1: ( ( rule__TableDateDayLookup__LookupValueAssignment_2 ) )
+            {
+            // InternalTableDSL.g:9105:1: ( ( rule__TableDateDayLookup__LookupValueAssignment_2 ) )
+            // InternalTableDSL.g:9106:2: ( rule__TableDateDayLookup__LookupValueAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayLookupAccess().getLookupValueAssignment_2()); 
+            }
+            // InternalTableDSL.g:9107:2: ( rule__TableDateDayLookup__LookupValueAssignment_2 )
+            // InternalTableDSL.g:9107:3: rule__TableDateDayLookup__LookupValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayLookup__LookupValueAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayLookupAccess().getLookupValueAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayLookup__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableDateDayLookup__Group__3"
+    // InternalTableDSL.g:9115:1: rule__TableDateDayLookup__Group__3 : rule__TableDateDayLookup__Group__3__Impl ;
+    public final void rule__TableDateDayLookup__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9119:1: ( rule__TableDateDayLookup__Group__3__Impl )
+            // InternalTableDSL.g:9120:2: rule__TableDateDayLookup__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayLookup__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayLookup__Group__3"
+
+
+    // $ANTLR start "rule__TableDateDayLookup__Group__3__Impl"
+    // InternalTableDSL.g:9126:1: rule__TableDateDayLookup__Group__3__Impl : ( ( rule__TableDateDayLookup__DiscreteAssignment_3 ) ) ;
+    public final void rule__TableDateDayLookup__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9130:1: ( ( ( rule__TableDateDayLookup__DiscreteAssignment_3 ) ) )
+            // InternalTableDSL.g:9131:1: ( ( rule__TableDateDayLookup__DiscreteAssignment_3 ) )
+            {
+            // InternalTableDSL.g:9131:1: ( ( rule__TableDateDayLookup__DiscreteAssignment_3 ) )
+            // InternalTableDSL.g:9132:2: ( rule__TableDateDayLookup__DiscreteAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayLookupAccess().getDiscreteAssignment_3()); 
+            }
+            // InternalTableDSL.g:9133:2: ( rule__TableDateDayLookup__DiscreteAssignment_3 )
+            // InternalTableDSL.g:9133:3: rule__TableDateDayLookup__DiscreteAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDateDayLookup__DiscreteAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayLookupAccess().getDiscreteAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayLookup__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableDatamart__Group__0"
+    // InternalTableDSL.g:9142:1: rule__TableDatamart__Group__0 : rule__TableDatamart__Group__0__Impl rule__TableDatamart__Group__1 ;
+    public final void rule__TableDatamart__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9146:1: ( rule__TableDatamart__Group__0__Impl rule__TableDatamart__Group__1 )
+            // InternalTableDSL.g:9147:2: rule__TableDatamart__Group__0__Impl rule__TableDatamart__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableDatamart__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDatamart__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group__0"
+
+
+    // $ANTLR start "rule__TableDatamart__Group__0__Impl"
+    // InternalTableDSL.g:9154:1: rule__TableDatamart__Group__0__Impl : ( 'datamart' ) ;
+    public final void rule__TableDatamart__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9158:1: ( ( 'datamart' ) )
+            // InternalTableDSL.g:9159:1: ( 'datamart' )
+            {
+            // InternalTableDSL.g:9159:1: ( 'datamart' )
+            // InternalTableDSL.g:9160:2: 'datamart'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartAccess().getDatamartKeyword_0()); 
+            }
+            match(input,107,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartAccess().getDatamartKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableDatamart__Group__1"
+    // InternalTableDSL.g:9169:1: rule__TableDatamart__Group__1 : rule__TableDatamart__Group__1__Impl rule__TableDatamart__Group__2 ;
+    public final void rule__TableDatamart__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9173:1: ( rule__TableDatamart__Group__1__Impl rule__TableDatamart__Group__2 )
+            // InternalTableDSL.g:9174:2: rule__TableDatamart__Group__1__Impl rule__TableDatamart__Group__2
+            {
+            pushFollow(FOLLOW_8);
+            rule__TableDatamart__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDatamart__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group__1"
+
+
+    // $ANTLR start "rule__TableDatamart__Group__1__Impl"
+    // InternalTableDSL.g:9181:1: rule__TableDatamart__Group__1__Impl : ( ( rule__TableDatamart__DatamartRefAssignment_1 ) ) ;
+    public final void rule__TableDatamart__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9185:1: ( ( ( rule__TableDatamart__DatamartRefAssignment_1 ) ) )
+            // InternalTableDSL.g:9186:1: ( ( rule__TableDatamart__DatamartRefAssignment_1 ) )
+            {
+            // InternalTableDSL.g:9186:1: ( ( rule__TableDatamart__DatamartRefAssignment_1 ) )
+            // InternalTableDSL.g:9187:2: ( rule__TableDatamart__DatamartRefAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartAccess().getDatamartRefAssignment_1()); 
+            }
+            // InternalTableDSL.g:9188:2: ( rule__TableDatamart__DatamartRefAssignment_1 )
+            // InternalTableDSL.g:9188:3: rule__TableDatamart__DatamartRefAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDatamart__DatamartRefAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartAccess().getDatamartRefAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableDatamart__Group__2"
+    // InternalTableDSL.g:9196:1: rule__TableDatamart__Group__2 : rule__TableDatamart__Group__2__Impl ;
+    public final void rule__TableDatamart__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9200:1: ( rule__TableDatamart__Group__2__Impl )
+            // InternalTableDSL.g:9201:2: rule__TableDatamart__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDatamart__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group__2"
+
+
+    // $ANTLR start "rule__TableDatamart__Group__2__Impl"
+    // InternalTableDSL.g:9207:1: rule__TableDatamart__Group__2__Impl : ( ( rule__TableDatamart__Group_2__0 )? ) ;
+    public final void rule__TableDatamart__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9211:1: ( ( ( rule__TableDatamart__Group_2__0 )? ) )
+            // InternalTableDSL.g:9212:1: ( ( rule__TableDatamart__Group_2__0 )? )
+            {
+            // InternalTableDSL.g:9212:1: ( ( rule__TableDatamart__Group_2__0 )? )
+            // InternalTableDSL.g:9213:2: ( rule__TableDatamart__Group_2__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartAccess().getGroup_2()); 
+            }
+            // InternalTableDSL.g:9214:2: ( rule__TableDatamart__Group_2__0 )?
+            int alt72=2;
+            int LA72_0 = input.LA(1);
+
+            if ( (LA72_0==75) ) {
+                alt72=1;
+            }
+            switch (alt72) {
+                case 1 :
+                    // InternalTableDSL.g:9214:3: rule__TableDatamart__Group_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableDatamart__Group_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartAccess().getGroup_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableDatamart__Group_2__0"
+    // InternalTableDSL.g:9223:1: rule__TableDatamart__Group_2__0 : rule__TableDatamart__Group_2__0__Impl rule__TableDatamart__Group_2__1 ;
+    public final void rule__TableDatamart__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9227:1: ( rule__TableDatamart__Group_2__0__Impl rule__TableDatamart__Group_2__1 )
+            // InternalTableDSL.g:9228:2: rule__TableDatamart__Group_2__0__Impl rule__TableDatamart__Group_2__1
+            {
+            pushFollow(FOLLOW_49);
+            rule__TableDatamart__Group_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDatamart__Group_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group_2__0"
+
+
+    // $ANTLR start "rule__TableDatamart__Group_2__0__Impl"
+    // InternalTableDSL.g:9235:1: rule__TableDatamart__Group_2__0__Impl : ( '{' ) ;
+    public final void rule__TableDatamart__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9239:1: ( ( '{' ) )
+            // InternalTableDSL.g:9240:1: ( '{' )
+            {
+            // InternalTableDSL.g:9240:1: ( '{' )
+            // InternalTableDSL.g:9241:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartAccess().getLeftCurlyBracketKeyword_2_0()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartAccess().getLeftCurlyBracketKeyword_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__TableDatamart__Group_2__1"
+    // InternalTableDSL.g:9250:1: rule__TableDatamart__Group_2__1 : rule__TableDatamart__Group_2__1__Impl rule__TableDatamart__Group_2__2 ;
+    public final void rule__TableDatamart__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9254:1: ( rule__TableDatamart__Group_2__1__Impl rule__TableDatamart__Group_2__2 )
+            // InternalTableDSL.g:9255:2: rule__TableDatamart__Group_2__1__Impl rule__TableDatamart__Group_2__2
+            {
+            pushFollow(FOLLOW_49);
+            rule__TableDatamart__Group_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDatamart__Group_2__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group_2__1"
+
+
+    // $ANTLR start "rule__TableDatamart__Group_2__1__Impl"
+    // InternalTableDSL.g:9262:1: rule__TableDatamart__Group_2__1__Impl : ( ( rule__TableDatamart__ElementsAssignment_2_1 )* ) ;
+    public final void rule__TableDatamart__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9266:1: ( ( ( rule__TableDatamart__ElementsAssignment_2_1 )* ) )
+            // InternalTableDSL.g:9267:1: ( ( rule__TableDatamart__ElementsAssignment_2_1 )* )
+            {
+            // InternalTableDSL.g:9267:1: ( ( rule__TableDatamart__ElementsAssignment_2_1 )* )
+            // InternalTableDSL.g:9268:2: ( rule__TableDatamart__ElementsAssignment_2_1 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartAccess().getElementsAssignment_2_1()); 
+            }
+            // InternalTableDSL.g:9269:2: ( rule__TableDatamart__ElementsAssignment_2_1 )*
+            loop73:
+            do {
+                int alt73=2;
+                int LA73_0 = input.LA(1);
+
+                if ( (LA73_0==108) ) {
+                    alt73=1;
+                }
+
+
+                switch (alt73) {
+            	case 1 :
+            	    // InternalTableDSL.g:9269:3: rule__TableDatamart__ElementsAssignment_2_1
+            	    {
+            	    pushFollow(FOLLOW_50);
+            	    rule__TableDatamart__ElementsAssignment_2_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop73;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartAccess().getElementsAssignment_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__TableDatamart__Group_2__2"
+    // InternalTableDSL.g:9277:1: rule__TableDatamart__Group_2__2 : rule__TableDatamart__Group_2__2__Impl ;
+    public final void rule__TableDatamart__Group_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9281:1: ( rule__TableDatamart__Group_2__2__Impl )
+            // InternalTableDSL.g:9282:2: rule__TableDatamart__Group_2__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDatamart__Group_2__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group_2__2"
+
+
+    // $ANTLR start "rule__TableDatamart__Group_2__2__Impl"
+    // InternalTableDSL.g:9288:1: rule__TableDatamart__Group_2__2__Impl : ( '}' ) ;
+    public final void rule__TableDatamart__Group_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9292:1: ( ( '}' ) )
+            // InternalTableDSL.g:9293:1: ( '}' )
+            {
+            // InternalTableDSL.g:9293:1: ( '}' )
+            // InternalTableDSL.g:9294:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartAccess().getRightCurlyBracketKeyword_2_2()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartAccess().getRightCurlyBracketKeyword_2_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__Group_2__2__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group__0"
+    // InternalTableDSL.g:9304:1: rule__TableAxis__Group__0 : rule__TableAxis__Group__0__Impl rule__TableAxis__Group__1 ;
+    public final void rule__TableAxis__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9308:1: ( rule__TableAxis__Group__0__Impl rule__TableAxis__Group__1 )
+            // InternalTableDSL.g:9309:2: rule__TableAxis__Group__0__Impl rule__TableAxis__Group__1
+            {
+            pushFollow(FOLLOW_51);
+            rule__TableAxis__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group__0"
+
+
+    // $ANTLR start "rule__TableAxis__Group__0__Impl"
+    // InternalTableDSL.g:9316:1: rule__TableAxis__Group__0__Impl : ( 'axis' ) ;
+    public final void rule__TableAxis__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9320:1: ( ( 'axis' ) )
+            // InternalTableDSL.g:9321:1: ( 'axis' )
+            {
+            // InternalTableDSL.g:9321:1: ( 'axis' )
+            // InternalTableDSL.g:9322:2: 'axis'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getAxisKeyword_0()); 
+            }
+            match(input,108,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getAxisKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group__1"
+    // InternalTableDSL.g:9331:1: rule__TableAxis__Group__1 : rule__TableAxis__Group__1__Impl rule__TableAxis__Group__2 ;
+    public final void rule__TableAxis__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9335:1: ( rule__TableAxis__Group__1__Impl rule__TableAxis__Group__2 )
+            // InternalTableDSL.g:9336:2: rule__TableAxis__Group__1__Impl rule__TableAxis__Group__2
+            {
+            pushFollow(FOLLOW_52);
+            rule__TableAxis__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group__1"
+
+
+    // $ANTLR start "rule__TableAxis__Group__1__Impl"
+    // InternalTableDSL.g:9343:1: rule__TableAxis__Group__1__Impl : ( ( rule__TableAxis__AxisAssignment_1 ) ) ;
+    public final void rule__TableAxis__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9347:1: ( ( ( rule__TableAxis__AxisAssignment_1 ) ) )
+            // InternalTableDSL.g:9348:1: ( ( rule__TableAxis__AxisAssignment_1 ) )
+            {
+            // InternalTableDSL.g:9348:1: ( ( rule__TableAxis__AxisAssignment_1 ) )
+            // InternalTableDSL.g:9349:2: ( rule__TableAxis__AxisAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getAxisAssignment_1()); 
+            }
+            // InternalTableDSL.g:9350:2: ( rule__TableAxis__AxisAssignment_1 )
+            // InternalTableDSL.g:9350:3: rule__TableAxis__AxisAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__AxisAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getAxisAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group__2"
+    // InternalTableDSL.g:9358:1: rule__TableAxis__Group__2 : rule__TableAxis__Group__2__Impl rule__TableAxis__Group__3 ;
+    public final void rule__TableAxis__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9362:1: ( rule__TableAxis__Group__2__Impl rule__TableAxis__Group__3 )
+            // InternalTableDSL.g:9363:2: rule__TableAxis__Group__2__Impl rule__TableAxis__Group__3
+            {
+            pushFollow(FOLLOW_53);
+            rule__TableAxis__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group__2"
+
+
+    // $ANTLR start "rule__TableAxis__Group__2__Impl"
+    // InternalTableDSL.g:9370:1: rule__TableAxis__Group__2__Impl : ( ( rule__TableAxis__UnorderedGroup_2 ) ) ;
+    public final void rule__TableAxis__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9374:1: ( ( ( rule__TableAxis__UnorderedGroup_2 ) ) )
+            // InternalTableDSL.g:9375:1: ( ( rule__TableAxis__UnorderedGroup_2 ) )
+            {
+            // InternalTableDSL.g:9375:1: ( ( rule__TableAxis__UnorderedGroup_2 ) )
+            // InternalTableDSL.g:9376:2: ( rule__TableAxis__UnorderedGroup_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getUnorderedGroup_2()); 
+            }
+            // InternalTableDSL.g:9377:2: ( rule__TableAxis__UnorderedGroup_2 )
+            // InternalTableDSL.g:9377:3: rule__TableAxis__UnorderedGroup_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__UnorderedGroup_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getUnorderedGroup_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group__3"
+    // InternalTableDSL.g:9385:1: rule__TableAxis__Group__3 : rule__TableAxis__Group__3__Impl rule__TableAxis__Group__4 ;
+    public final void rule__TableAxis__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9389:1: ( rule__TableAxis__Group__3__Impl rule__TableAxis__Group__4 )
+            // InternalTableDSL.g:9390:2: rule__TableAxis__Group__3__Impl rule__TableAxis__Group__4
+            {
+            pushFollow(FOLLOW_53);
+            rule__TableAxis__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group__3"
+
+
+    // $ANTLR start "rule__TableAxis__Group__3__Impl"
+    // InternalTableDSL.g:9397:1: rule__TableAxis__Group__3__Impl : ( ( rule__TableAxis__Group_3__0 )? ) ;
+    public final void rule__TableAxis__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9401:1: ( ( ( rule__TableAxis__Group_3__0 )? ) )
+            // InternalTableDSL.g:9402:1: ( ( rule__TableAxis__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:9402:1: ( ( rule__TableAxis__Group_3__0 )? )
+            // InternalTableDSL.g:9403:2: ( rule__TableAxis__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:9404:2: ( rule__TableAxis__Group_3__0 )?
+            int alt74=2;
+            int LA74_0 = input.LA(1);
+
+            if ( (LA74_0==179) ) {
+                alt74=1;
+            }
+            switch (alt74) {
+                case 1 :
+                    // InternalTableDSL.g:9404:3: rule__TableAxis__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableAxis__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group__4"
+    // InternalTableDSL.g:9412:1: rule__TableAxis__Group__4 : rule__TableAxis__Group__4__Impl ;
+    public final void rule__TableAxis__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9416:1: ( rule__TableAxis__Group__4__Impl )
+            // InternalTableDSL.g:9417:2: rule__TableAxis__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group__4"
+
+
+    // $ANTLR start "rule__TableAxis__Group__4__Impl"
+    // InternalTableDSL.g:9423:1: rule__TableAxis__Group__4__Impl : ( ( rule__TableAxis__Group_4__0 )? ) ;
+    public final void rule__TableAxis__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9427:1: ( ( ( rule__TableAxis__Group_4__0 )? ) )
+            // InternalTableDSL.g:9428:1: ( ( rule__TableAxis__Group_4__0 )? )
+            {
+            // InternalTableDSL.g:9428:1: ( ( rule__TableAxis__Group_4__0 )? )
+            // InternalTableDSL.g:9429:2: ( rule__TableAxis__Group_4__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getGroup_4()); 
+            }
+            // InternalTableDSL.g:9430:2: ( rule__TableAxis__Group_4__0 )?
+            int alt75=2;
+            int LA75_0 = input.LA(1);
+
+            if ( (LA75_0==180) ) {
+                alt75=1;
+            }
+            switch (alt75) {
+                case 1 :
+                    // InternalTableDSL.g:9430:3: rule__TableAxis__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableAxis__Group_4__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getGroup_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group_2_0__0"
+    // InternalTableDSL.g:9439:1: rule__TableAxis__Group_2_0__0 : rule__TableAxis__Group_2_0__0__Impl rule__TableAxis__Group_2_0__1 ;
+    public final void rule__TableAxis__Group_2_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9443:1: ( rule__TableAxis__Group_2_0__0__Impl rule__TableAxis__Group_2_0__1 )
+            // InternalTableDSL.g:9444:2: rule__TableAxis__Group_2_0__0__Impl rule__TableAxis__Group_2_0__1
+            {
+            pushFollow(FOLLOW_20);
+            rule__TableAxis__Group_2_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group_2_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_2_0__0"
+
+
+    // $ANTLR start "rule__TableAxis__Group_2_0__0__Impl"
+    // InternalTableDSL.g:9451:1: rule__TableAxis__Group_2_0__0__Impl : ( ( rule__TableAxis__HasRowHeightAssignment_2_0_0 ) ) ;
+    public final void rule__TableAxis__Group_2_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9455:1: ( ( ( rule__TableAxis__HasRowHeightAssignment_2_0_0 ) ) )
+            // InternalTableDSL.g:9456:1: ( ( rule__TableAxis__HasRowHeightAssignment_2_0_0 ) )
+            {
+            // InternalTableDSL.g:9456:1: ( ( rule__TableAxis__HasRowHeightAssignment_2_0_0 ) )
+            // InternalTableDSL.g:9457:2: ( rule__TableAxis__HasRowHeightAssignment_2_0_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getHasRowHeightAssignment_2_0_0()); 
+            }
+            // InternalTableDSL.g:9458:2: ( rule__TableAxis__HasRowHeightAssignment_2_0_0 )
+            // InternalTableDSL.g:9458:3: rule__TableAxis__HasRowHeightAssignment_2_0_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__HasRowHeightAssignment_2_0_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getHasRowHeightAssignment_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_2_0__0__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group_2_0__1"
+    // InternalTableDSL.g:9466:1: rule__TableAxis__Group_2_0__1 : rule__TableAxis__Group_2_0__1__Impl ;
+    public final void rule__TableAxis__Group_2_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9470:1: ( rule__TableAxis__Group_2_0__1__Impl )
+            // InternalTableDSL.g:9471:2: rule__TableAxis__Group_2_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group_2_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_2_0__1"
+
+
+    // $ANTLR start "rule__TableAxis__Group_2_0__1__Impl"
+    // InternalTableDSL.g:9477:1: rule__TableAxis__Group_2_0__1__Impl : ( ( rule__TableAxis__RowHeightAssignment_2_0_1 ) ) ;
+    public final void rule__TableAxis__Group_2_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9481:1: ( ( ( rule__TableAxis__RowHeightAssignment_2_0_1 ) ) )
+            // InternalTableDSL.g:9482:1: ( ( rule__TableAxis__RowHeightAssignment_2_0_1 ) )
+            {
+            // InternalTableDSL.g:9482:1: ( ( rule__TableAxis__RowHeightAssignment_2_0_1 ) )
+            // InternalTableDSL.g:9483:2: ( rule__TableAxis__RowHeightAssignment_2_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getRowHeightAssignment_2_0_1()); 
+            }
+            // InternalTableDSL.g:9484:2: ( rule__TableAxis__RowHeightAssignment_2_0_1 )
+            // InternalTableDSL.g:9484:3: rule__TableAxis__RowHeightAssignment_2_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__RowHeightAssignment_2_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getRowHeightAssignment_2_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_2_0__1__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group_3__0"
+    // InternalTableDSL.g:9493:1: rule__TableAxis__Group_3__0 : rule__TableAxis__Group_3__0__Impl rule__TableAxis__Group_3__1 ;
+    public final void rule__TableAxis__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9497:1: ( rule__TableAxis__Group_3__0__Impl rule__TableAxis__Group_3__1 )
+            // InternalTableDSL.g:9498:2: rule__TableAxis__Group_3__0__Impl rule__TableAxis__Group_3__1
+            {
+            pushFollow(FOLLOW_8);
+            rule__TableAxis__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_3__0"
+
+
+    // $ANTLR start "rule__TableAxis__Group_3__0__Impl"
+    // InternalTableDSL.g:9505:1: rule__TableAxis__Group_3__0__Impl : ( ( rule__TableAxis__HasDetailsAssignment_3_0 ) ) ;
+    public final void rule__TableAxis__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9509:1: ( ( ( rule__TableAxis__HasDetailsAssignment_3_0 ) ) )
+            // InternalTableDSL.g:9510:1: ( ( rule__TableAxis__HasDetailsAssignment_3_0 ) )
+            {
+            // InternalTableDSL.g:9510:1: ( ( rule__TableAxis__HasDetailsAssignment_3_0 ) )
+            // InternalTableDSL.g:9511:2: ( rule__TableAxis__HasDetailsAssignment_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getHasDetailsAssignment_3_0()); 
+            }
+            // InternalTableDSL.g:9512:2: ( rule__TableAxis__HasDetailsAssignment_3_0 )
+            // InternalTableDSL.g:9512:3: rule__TableAxis__HasDetailsAssignment_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__HasDetailsAssignment_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getHasDetailsAssignment_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group_3__1"
+    // InternalTableDSL.g:9520:1: rule__TableAxis__Group_3__1 : rule__TableAxis__Group_3__1__Impl rule__TableAxis__Group_3__2 ;
+    public final void rule__TableAxis__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9524:1: ( rule__TableAxis__Group_3__1__Impl rule__TableAxis__Group_3__2 )
+            // InternalTableDSL.g:9525:2: rule__TableAxis__Group_3__1__Impl rule__TableAxis__Group_3__2
+            {
+            pushFollow(FOLLOW_54);
+            rule__TableAxis__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group_3__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_3__1"
+
+
+    // $ANTLR start "rule__TableAxis__Group_3__1__Impl"
+    // InternalTableDSL.g:9532:1: rule__TableAxis__Group_3__1__Impl : ( '{' ) ;
+    public final void rule__TableAxis__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9536:1: ( ( '{' ) )
+            // InternalTableDSL.g:9537:1: ( '{' )
+            {
+            // InternalTableDSL.g:9537:1: ( '{' )
+            // InternalTableDSL.g:9538:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_3_1()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group_3__2"
+    // InternalTableDSL.g:9547:1: rule__TableAxis__Group_3__2 : rule__TableAxis__Group_3__2__Impl rule__TableAxis__Group_3__3 ;
+    public final void rule__TableAxis__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9551:1: ( rule__TableAxis__Group_3__2__Impl rule__TableAxis__Group_3__3 )
+            // InternalTableDSL.g:9552:2: rule__TableAxis__Group_3__2__Impl rule__TableAxis__Group_3__3
+            {
+            pushFollow(FOLLOW_54);
+            rule__TableAxis__Group_3__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group_3__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_3__2"
+
+
+    // $ANTLR start "rule__TableAxis__Group_3__2__Impl"
+    // InternalTableDSL.g:9559:1: rule__TableAxis__Group_3__2__Impl : ( ( rule__TableAxis__ValuesAssignment_3_2 )* ) ;
+    public final void rule__TableAxis__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9563:1: ( ( ( rule__TableAxis__ValuesAssignment_3_2 )* ) )
+            // InternalTableDSL.g:9564:1: ( ( rule__TableAxis__ValuesAssignment_3_2 )* )
+            {
+            // InternalTableDSL.g:9564:1: ( ( rule__TableAxis__ValuesAssignment_3_2 )* )
+            // InternalTableDSL.g:9565:2: ( rule__TableAxis__ValuesAssignment_3_2 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getValuesAssignment_3_2()); 
+            }
+            // InternalTableDSL.g:9566:2: ( rule__TableAxis__ValuesAssignment_3_2 )*
+            loop76:
+            do {
+                int alt76=2;
+                int LA76_0 = input.LA(1);
+
+                if ( (LA76_0==85) ) {
+                    alt76=1;
+                }
+
+
+                switch (alt76) {
+            	case 1 :
+            	    // InternalTableDSL.g:9566:3: rule__TableAxis__ValuesAssignment_3_2
+            	    {
+            	    pushFollow(FOLLOW_55);
+            	    rule__TableAxis__ValuesAssignment_3_2();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop76;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getValuesAssignment_3_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group_3__3"
+    // InternalTableDSL.g:9574:1: rule__TableAxis__Group_3__3 : rule__TableAxis__Group_3__3__Impl ;
+    public final void rule__TableAxis__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9578:1: ( rule__TableAxis__Group_3__3__Impl )
+            // InternalTableDSL.g:9579:2: rule__TableAxis__Group_3__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group_3__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_3__3"
+
+
+    // $ANTLR start "rule__TableAxis__Group_3__3__Impl"
+    // InternalTableDSL.g:9585:1: rule__TableAxis__Group_3__3__Impl : ( '}' ) ;
+    public final void rule__TableAxis__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9589:1: ( ( '}' ) )
+            // InternalTableDSL.g:9590:1: ( '}' )
+            {
+            // InternalTableDSL.g:9590:1: ( '}' )
+            // InternalTableDSL.g:9591:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_3_3()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_3_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group_4__0"
+    // InternalTableDSL.g:9601:1: rule__TableAxis__Group_4__0 : rule__TableAxis__Group_4__0__Impl rule__TableAxis__Group_4__1 ;
+    public final void rule__TableAxis__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9605:1: ( rule__TableAxis__Group_4__0__Impl rule__TableAxis__Group_4__1 )
+            // InternalTableDSL.g:9606:2: rule__TableAxis__Group_4__0__Impl rule__TableAxis__Group_4__1
+            {
+            pushFollow(FOLLOW_8);
+            rule__TableAxis__Group_4__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group_4__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_4__0"
+
+
+    // $ANTLR start "rule__TableAxis__Group_4__0__Impl"
+    // InternalTableDSL.g:9613:1: rule__TableAxis__Group_4__0__Impl : ( ( rule__TableAxis__HasEventsAssignment_4_0 ) ) ;
+    public final void rule__TableAxis__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9617:1: ( ( ( rule__TableAxis__HasEventsAssignment_4_0 ) ) )
+            // InternalTableDSL.g:9618:1: ( ( rule__TableAxis__HasEventsAssignment_4_0 ) )
+            {
+            // InternalTableDSL.g:9618:1: ( ( rule__TableAxis__HasEventsAssignment_4_0 ) )
+            // InternalTableDSL.g:9619:2: ( rule__TableAxis__HasEventsAssignment_4_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getHasEventsAssignment_4_0()); 
+            }
+            // InternalTableDSL.g:9620:2: ( rule__TableAxis__HasEventsAssignment_4_0 )
+            // InternalTableDSL.g:9620:3: rule__TableAxis__HasEventsAssignment_4_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__HasEventsAssignment_4_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getHasEventsAssignment_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group_4__1"
+    // InternalTableDSL.g:9628:1: rule__TableAxis__Group_4__1 : rule__TableAxis__Group_4__1__Impl rule__TableAxis__Group_4__2 ;
+    public final void rule__TableAxis__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9632:1: ( rule__TableAxis__Group_4__1__Impl rule__TableAxis__Group_4__2 )
+            // InternalTableDSL.g:9633:2: rule__TableAxis__Group_4__1__Impl rule__TableAxis__Group_4__2
+            {
+            pushFollow(FOLLOW_56);
+            rule__TableAxis__Group_4__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group_4__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_4__1"
+
+
+    // $ANTLR start "rule__TableAxis__Group_4__1__Impl"
+    // InternalTableDSL.g:9640:1: rule__TableAxis__Group_4__1__Impl : ( '{' ) ;
+    public final void rule__TableAxis__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9644:1: ( ( '{' ) )
+            // InternalTableDSL.g:9645:1: ( '{' )
+            {
+            // InternalTableDSL.g:9645:1: ( '{' )
+            // InternalTableDSL.g:9646:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_4_1()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_4_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group_4__2"
+    // InternalTableDSL.g:9655:1: rule__TableAxis__Group_4__2 : rule__TableAxis__Group_4__2__Impl rule__TableAxis__Group_4__3 ;
+    public final void rule__TableAxis__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9659:1: ( rule__TableAxis__Group_4__2__Impl rule__TableAxis__Group_4__3 )
+            // InternalTableDSL.g:9660:2: rule__TableAxis__Group_4__2__Impl rule__TableAxis__Group_4__3
+            {
+            pushFollow(FOLLOW_56);
+            rule__TableAxis__Group_4__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group_4__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_4__2"
+
+
+    // $ANTLR start "rule__TableAxis__Group_4__2__Impl"
+    // InternalTableDSL.g:9667:1: rule__TableAxis__Group_4__2__Impl : ( ( rule__TableAxis__EventsAssignment_4_2 )* ) ;
+    public final void rule__TableAxis__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9671:1: ( ( ( rule__TableAxis__EventsAssignment_4_2 )* ) )
+            // InternalTableDSL.g:9672:1: ( ( rule__TableAxis__EventsAssignment_4_2 )* )
+            {
+            // InternalTableDSL.g:9672:1: ( ( rule__TableAxis__EventsAssignment_4_2 )* )
+            // InternalTableDSL.g:9673:2: ( rule__TableAxis__EventsAssignment_4_2 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getEventsAssignment_4_2()); 
+            }
+            // InternalTableDSL.g:9674:2: ( rule__TableAxis__EventsAssignment_4_2 )*
+            loop77:
+            do {
+                int alt77=2;
+                int LA77_0 = input.LA(1);
+
+                if ( ((LA77_0>=92 && LA77_0<=100)) ) {
+                    alt77=1;
+                }
+
+
+                switch (alt77) {
+            	case 1 :
+            	    // InternalTableDSL.g:9674:3: rule__TableAxis__EventsAssignment_4_2
+            	    {
+            	    pushFollow(FOLLOW_57);
+            	    rule__TableAxis__EventsAssignment_4_2();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop77;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getEventsAssignment_4_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__Group_4__3"
+    // InternalTableDSL.g:9682:1: rule__TableAxis__Group_4__3 : rule__TableAxis__Group_4__3__Impl ;
+    public final void rule__TableAxis__Group_4__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9686:1: ( rule__TableAxis__Group_4__3__Impl )
+            // InternalTableDSL.g:9687:2: rule__TableAxis__Group_4__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__Group_4__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_4__3"
+
+
+    // $ANTLR start "rule__TableAxis__Group_4__3__Impl"
+    // InternalTableDSL.g:9693:1: rule__TableAxis__Group_4__3__Impl : ( '}' ) ;
+    public final void rule__TableAxis__Group_4__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9697:1: ( ( '}' ) )
+            // InternalTableDSL.g:9698:1: ( '}' )
+            {
+            // InternalTableDSL.g:9698:1: ( '}' )
+            // InternalTableDSL.g:9699:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_4_3()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_4_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__Group_4__3__Impl"
+
+
+    // $ANTLR start "rule__TableTextColor__Group__0"
+    // InternalTableDSL.g:9709:1: rule__TableTextColor__Group__0 : rule__TableTextColor__Group__0__Impl rule__TableTextColor__Group__1 ;
+    public final void rule__TableTextColor__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9713:1: ( rule__TableTextColor__Group__0__Impl rule__TableTextColor__Group__1 )
+            // InternalTableDSL.g:9714:2: rule__TableTextColor__Group__0__Impl rule__TableTextColor__Group__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__TableTextColor__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTextColor__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTextColor__Group__0"
+
+
+    // $ANTLR start "rule__TableTextColor__Group__0__Impl"
+    // InternalTableDSL.g:9721:1: rule__TableTextColor__Group__0__Impl : ( 'textcolor' ) ;
+    public final void rule__TableTextColor__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9725:1: ( ( 'textcolor' ) )
+            // InternalTableDSL.g:9726:1: ( 'textcolor' )
+            {
+            // InternalTableDSL.g:9726:1: ( 'textcolor' )
+            // InternalTableDSL.g:9727:2: 'textcolor'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTextColorAccess().getTextcolorKeyword_0()); 
+            }
+            match(input,109,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTextColorAccess().getTextcolorKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTextColor__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableTextColor__Group__1"
+    // InternalTableDSL.g:9736:1: rule__TableTextColor__Group__1 : rule__TableTextColor__Group__1__Impl ;
+    public final void rule__TableTextColor__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9740:1: ( rule__TableTextColor__Group__1__Impl )
+            // InternalTableDSL.g:9741:2: rule__TableTextColor__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTextColor__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTextColor__Group__1"
+
+
+    // $ANTLR start "rule__TableTextColor__Group__1__Impl"
+    // InternalTableDSL.g:9747:1: rule__TableTextColor__Group__1__Impl : ( ( rule__TableTextColor__RgbAssignment_1 ) ) ;
+    public final void rule__TableTextColor__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9751:1: ( ( ( rule__TableTextColor__RgbAssignment_1 ) ) )
+            // InternalTableDSL.g:9752:1: ( ( rule__TableTextColor__RgbAssignment_1 ) )
+            {
+            // InternalTableDSL.g:9752:1: ( ( rule__TableTextColor__RgbAssignment_1 ) )
+            // InternalTableDSL.g:9753:2: ( rule__TableTextColor__RgbAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTextColorAccess().getRgbAssignment_1()); 
+            }
+            // InternalTableDSL.g:9754:2: ( rule__TableTextColor__RgbAssignment_1 )
+            // InternalTableDSL.g:9754:3: rule__TableTextColor__RgbAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTextColor__RgbAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTextColorAccess().getRgbAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTextColor__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableCellColor__Group__0"
+    // InternalTableDSL.g:9763:1: rule__TableCellColor__Group__0 : rule__TableCellColor__Group__0__Impl rule__TableCellColor__Group__1 ;
+    public final void rule__TableCellColor__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9767:1: ( rule__TableCellColor__Group__0__Impl rule__TableCellColor__Group__1 )
+            // InternalTableDSL.g:9768:2: rule__TableCellColor__Group__0__Impl rule__TableCellColor__Group__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__TableCellColor__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableCellColor__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableCellColor__Group__0"
+
+
+    // $ANTLR start "rule__TableCellColor__Group__0__Impl"
+    // InternalTableDSL.g:9775:1: rule__TableCellColor__Group__0__Impl : ( 'cellcolor' ) ;
+    public final void rule__TableCellColor__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9779:1: ( ( 'cellcolor' ) )
+            // InternalTableDSL.g:9780:1: ( 'cellcolor' )
+            {
+            // InternalTableDSL.g:9780:1: ( 'cellcolor' )
+            // InternalTableDSL.g:9781:2: 'cellcolor'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableCellColorAccess().getCellcolorKeyword_0()); 
+            }
+            match(input,110,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableCellColorAccess().getCellcolorKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableCellColor__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableCellColor__Group__1"
+    // InternalTableDSL.g:9790:1: rule__TableCellColor__Group__1 : rule__TableCellColor__Group__1__Impl ;
+    public final void rule__TableCellColor__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9794:1: ( rule__TableCellColor__Group__1__Impl )
+            // InternalTableDSL.g:9795:2: rule__TableCellColor__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableCellColor__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableCellColor__Group__1"
+
+
+    // $ANTLR start "rule__TableCellColor__Group__1__Impl"
+    // InternalTableDSL.g:9801:1: rule__TableCellColor__Group__1__Impl : ( ( rule__TableCellColor__RgbAssignment_1 ) ) ;
+    public final void rule__TableCellColor__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9805:1: ( ( ( rule__TableCellColor__RgbAssignment_1 ) ) )
+            // InternalTableDSL.g:9806:1: ( ( rule__TableCellColor__RgbAssignment_1 ) )
+            {
+            // InternalTableDSL.g:9806:1: ( ( rule__TableCellColor__RgbAssignment_1 ) )
+            // InternalTableDSL.g:9807:2: ( rule__TableCellColor__RgbAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableCellColorAccess().getRgbAssignment_1()); 
+            }
+            // InternalTableDSL.g:9808:2: ( rule__TableCellColor__RgbAssignment_1 )
+            // InternalTableDSL.g:9808:3: rule__TableCellColor__RgbAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableCellColor__RgbAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableCellColorAccess().getRgbAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableCellColor__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableIcon__Group__0"
+    // InternalTableDSL.g:9817:1: rule__TableIcon__Group__0 : rule__TableIcon__Group__0__Impl rule__TableIcon__Group__1 ;
+    public final void rule__TableIcon__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9821:1: ( rule__TableIcon__Group__0__Impl rule__TableIcon__Group__1 )
+            // InternalTableDSL.g:9822:2: rule__TableIcon__Group__0__Impl rule__TableIcon__Group__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__TableIcon__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableIcon__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIcon__Group__0"
+
+
+    // $ANTLR start "rule__TableIcon__Group__0__Impl"
+    // InternalTableDSL.g:9829:1: rule__TableIcon__Group__0__Impl : ( 'icon' ) ;
+    public final void rule__TableIcon__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9833:1: ( ( 'icon' ) )
+            // InternalTableDSL.g:9834:1: ( 'icon' )
+            {
+            // InternalTableDSL.g:9834:1: ( 'icon' )
+            // InternalTableDSL.g:9835:2: 'icon'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIconAccess().getIconKeyword_0()); 
+            }
+            match(input,86,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIconAccess().getIconKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIcon__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableIcon__Group__1"
+    // InternalTableDSL.g:9844:1: rule__TableIcon__Group__1 : rule__TableIcon__Group__1__Impl ;
+    public final void rule__TableIcon__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9848:1: ( rule__TableIcon__Group__1__Impl )
+            // InternalTableDSL.g:9849:2: rule__TableIcon__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIcon__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIcon__Group__1"
+
+
+    // $ANTLR start "rule__TableIcon__Group__1__Impl"
+    // InternalTableDSL.g:9855:1: rule__TableIcon__Group__1__Impl : ( ( rule__TableIcon__IconAssignment_1 ) ) ;
+    public final void rule__TableIcon__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9859:1: ( ( ( rule__TableIcon__IconAssignment_1 ) ) )
+            // InternalTableDSL.g:9860:1: ( ( rule__TableIcon__IconAssignment_1 ) )
+            {
+            // InternalTableDSL.g:9860:1: ( ( rule__TableIcon__IconAssignment_1 ) )
+            // InternalTableDSL.g:9861:2: ( rule__TableIcon__IconAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIconAccess().getIconAssignment_1()); 
+            }
+            // InternalTableDSL.g:9862:2: ( rule__TableIcon__IconAssignment_1 )
+            // InternalTableDSL.g:9862:3: rule__TableIcon__IconAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableIcon__IconAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIconAccess().getIconAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIcon__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableTrend__Group__0"
+    // InternalTableDSL.g:9871:1: rule__TableTrend__Group__0 : rule__TableTrend__Group__0__Impl rule__TableTrend__Group__1 ;
+    public final void rule__TableTrend__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9875:1: ( rule__TableTrend__Group__0__Impl rule__TableTrend__Group__1 )
+            // InternalTableDSL.g:9876:2: rule__TableTrend__Group__0__Impl rule__TableTrend__Group__1
+            {
+            pushFollow(FOLLOW_58);
+            rule__TableTrend__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTrend__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTrend__Group__0"
+
+
+    // $ANTLR start "rule__TableTrend__Group__0__Impl"
+    // InternalTableDSL.g:9883:1: rule__TableTrend__Group__0__Impl : ( 'trend' ) ;
+    public final void rule__TableTrend__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9887:1: ( ( 'trend' ) )
+            // InternalTableDSL.g:9888:1: ( 'trend' )
+            {
+            // InternalTableDSL.g:9888:1: ( 'trend' )
+            // InternalTableDSL.g:9889:2: 'trend'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTrendAccess().getTrendKeyword_0()); 
+            }
+            match(input,111,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTrendAccess().getTrendKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTrend__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableTrend__Group__1"
+    // InternalTableDSL.g:9898:1: rule__TableTrend__Group__1 : rule__TableTrend__Group__1__Impl ;
+    public final void rule__TableTrend__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9902:1: ( rule__TableTrend__Group__1__Impl )
+            // InternalTableDSL.g:9903:2: rule__TableTrend__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTrend__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTrend__Group__1"
+
+
+    // $ANTLR start "rule__TableTrend__Group__1__Impl"
+    // InternalTableDSL.g:9909:1: rule__TableTrend__Group__1__Impl : ( ( rule__TableTrend__IconAssignment_1 ) ) ;
+    public final void rule__TableTrend__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9913:1: ( ( ( rule__TableTrend__IconAssignment_1 ) ) )
+            // InternalTableDSL.g:9914:1: ( ( rule__TableTrend__IconAssignment_1 ) )
+            {
+            // InternalTableDSL.g:9914:1: ( ( rule__TableTrend__IconAssignment_1 ) )
+            // InternalTableDSL.g:9915:2: ( rule__TableTrend__IconAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTrendAccess().getIconAssignment_1()); 
+            }
+            // InternalTableDSL.g:9916:2: ( rule__TableTrend__IconAssignment_1 )
+            // InternalTableDSL.g:9916:3: rule__TableTrend__IconAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTrend__IconAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTrendAccess().getIconAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTrend__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableTooltip__Group__0"
+    // InternalTableDSL.g:9925:1: rule__TableTooltip__Group__0 : rule__TableTooltip__Group__0__Impl rule__TableTooltip__Group__1 ;
+    public final void rule__TableTooltip__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9929:1: ( rule__TableTooltip__Group__0__Impl rule__TableTooltip__Group__1 )
+            // InternalTableDSL.g:9930:2: rule__TableTooltip__Group__0__Impl rule__TableTooltip__Group__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__TableTooltip__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableTooltip__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltip__Group__0"
+
+
+    // $ANTLR start "rule__TableTooltip__Group__0__Impl"
+    // InternalTableDSL.g:9937:1: rule__TableTooltip__Group__0__Impl : ( 'tooltip' ) ;
+    public final void rule__TableTooltip__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9941:1: ( ( 'tooltip' ) )
+            // InternalTableDSL.g:9942:1: ( 'tooltip' )
+            {
+            // InternalTableDSL.g:9942:1: ( 'tooltip' )
+            // InternalTableDSL.g:9943:2: 'tooltip'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipAccess().getTooltipKeyword_0()); 
+            }
+            match(input,112,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipAccess().getTooltipKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltip__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableTooltip__Group__1"
+    // InternalTableDSL.g:9952:1: rule__TableTooltip__Group__1 : rule__TableTooltip__Group__1__Impl ;
+    public final void rule__TableTooltip__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9956:1: ( rule__TableTooltip__Group__1__Impl )
+            // InternalTableDSL.g:9957:2: rule__TableTooltip__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTooltip__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltip__Group__1"
+
+
+    // $ANTLR start "rule__TableTooltip__Group__1__Impl"
+    // InternalTableDSL.g:9963:1: rule__TableTooltip__Group__1__Impl : ( ( rule__TableTooltip__TooltipAssignment_1 ) ) ;
+    public final void rule__TableTooltip__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9967:1: ( ( ( rule__TableTooltip__TooltipAssignment_1 ) ) )
+            // InternalTableDSL.g:9968:1: ( ( rule__TableTooltip__TooltipAssignment_1 ) )
+            {
+            // InternalTableDSL.g:9968:1: ( ( rule__TableTooltip__TooltipAssignment_1 ) )
+            // InternalTableDSL.g:9969:2: ( rule__TableTooltip__TooltipAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipAccess().getTooltipAssignment_1()); 
+            }
+            // InternalTableDSL.g:9970:2: ( rule__TableTooltip__TooltipAssignment_1 )
+            // InternalTableDSL.g:9970:3: rule__TableTooltip__TooltipAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTooltip__TooltipAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipAccess().getTooltipAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltip__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group__0"
+    // InternalTableDSL.g:9979:1: rule__TableGrid__Group__0 : rule__TableGrid__Group__0__Impl rule__TableGrid__Group__1 ;
+    public final void rule__TableGrid__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9983:1: ( rule__TableGrid__Group__0__Impl rule__TableGrid__Group__1 )
+            // InternalTableDSL.g:9984:2: rule__TableGrid__Group__0__Impl rule__TableGrid__Group__1
+            {
+            pushFollow(FOLLOW_59);
+            rule__TableGrid__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group__0"
+
+
+    // $ANTLR start "rule__TableGrid__Group__0__Impl"
+    // InternalTableDSL.g:9991:1: rule__TableGrid__Group__0__Impl : ( () ) ;
+    public final void rule__TableGrid__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:9995:1: ( ( () ) )
+            // InternalTableDSL.g:9996:1: ( () )
+            {
+            // InternalTableDSL.g:9996:1: ( () )
+            // InternalTableDSL.g:9997:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getTableGridAction_0()); 
+            }
+            // InternalTableDSL.g:9998:2: ()
+            // InternalTableDSL.g:9998:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getTableGridAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group__1"
+    // InternalTableDSL.g:10006:1: rule__TableGrid__Group__1 : rule__TableGrid__Group__1__Impl rule__TableGrid__Group__2 ;
+    public final void rule__TableGrid__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10010:1: ( rule__TableGrid__Group__1__Impl rule__TableGrid__Group__2 )
+            // InternalTableDSL.g:10011:2: rule__TableGrid__Group__1__Impl rule__TableGrid__Group__2
+            {
+            pushFollow(FOLLOW_60);
+            rule__TableGrid__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group__1"
+
+
+    // $ANTLR start "rule__TableGrid__Group__1__Impl"
+    // InternalTableDSL.g:10018:1: rule__TableGrid__Group__1__Impl : ( 'grid' ) ;
+    public final void rule__TableGrid__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10022:1: ( ( 'grid' ) )
+            // InternalTableDSL.g:10023:1: ( 'grid' )
+            {
+            // InternalTableDSL.g:10023:1: ( 'grid' )
+            // InternalTableDSL.g:10024:2: 'grid'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getGridKeyword_1()); 
+            }
+            match(input,113,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getGridKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group__2"
+    // InternalTableDSL.g:10033:1: rule__TableGrid__Group__2 : rule__TableGrid__Group__2__Impl rule__TableGrid__Group__3 ;
+    public final void rule__TableGrid__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10037:1: ( rule__TableGrid__Group__2__Impl rule__TableGrid__Group__3 )
+            // InternalTableDSL.g:10038:2: rule__TableGrid__Group__2__Impl rule__TableGrid__Group__3
+            {
+            pushFollow(FOLLOW_61);
+            rule__TableGrid__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group__2"
+
+
+    // $ANTLR start "rule__TableGrid__Group__2__Impl"
+    // InternalTableDSL.g:10045:1: rule__TableGrid__Group__2__Impl : ( ( rule__TableGrid__UnorderedGroup_2 ) ) ;
+    public final void rule__TableGrid__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10049:1: ( ( ( rule__TableGrid__UnorderedGroup_2 ) ) )
+            // InternalTableDSL.g:10050:1: ( ( rule__TableGrid__UnorderedGroup_2 ) )
+            {
+            // InternalTableDSL.g:10050:1: ( ( rule__TableGrid__UnorderedGroup_2 ) )
+            // InternalTableDSL.g:10051:2: ( rule__TableGrid__UnorderedGroup_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getUnorderedGroup_2()); 
+            }
+            // InternalTableDSL.g:10052:2: ( rule__TableGrid__UnorderedGroup_2 )
+            // InternalTableDSL.g:10052:3: rule__TableGrid__UnorderedGroup_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__UnorderedGroup_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getUnorderedGroup_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group__3"
+    // InternalTableDSL.g:10060:1: rule__TableGrid__Group__3 : rule__TableGrid__Group__3__Impl rule__TableGrid__Group__4 ;
+    public final void rule__TableGrid__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10064:1: ( rule__TableGrid__Group__3__Impl rule__TableGrid__Group__4 )
+            // InternalTableDSL.g:10065:2: rule__TableGrid__Group__3__Impl rule__TableGrid__Group__4
+            {
+            pushFollow(FOLLOW_18);
+            rule__TableGrid__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group__3"
+
+
+    // $ANTLR start "rule__TableGrid__Group__3__Impl"
+    // InternalTableDSL.g:10072:1: rule__TableGrid__Group__3__Impl : ( ( rule__TableGrid__UnorderedGroup_3 ) ) ;
+    public final void rule__TableGrid__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10076:1: ( ( ( rule__TableGrid__UnorderedGroup_3 ) ) )
+            // InternalTableDSL.g:10077:1: ( ( rule__TableGrid__UnorderedGroup_3 ) )
+            {
+            // InternalTableDSL.g:10077:1: ( ( rule__TableGrid__UnorderedGroup_3 ) )
+            // InternalTableDSL.g:10078:2: ( rule__TableGrid__UnorderedGroup_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getUnorderedGroup_3()); 
+            }
+            // InternalTableDSL.g:10079:2: ( rule__TableGrid__UnorderedGroup_3 )
+            // InternalTableDSL.g:10079:3: rule__TableGrid__UnorderedGroup_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__UnorderedGroup_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getUnorderedGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group__4"
+    // InternalTableDSL.g:10087:1: rule__TableGrid__Group__4 : rule__TableGrid__Group__4__Impl ;
+    public final void rule__TableGrid__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10091:1: ( rule__TableGrid__Group__4__Impl )
+            // InternalTableDSL.g:10092:2: rule__TableGrid__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group__4"
+
+
+    // $ANTLR start "rule__TableGrid__Group__4__Impl"
+    // InternalTableDSL.g:10098:1: rule__TableGrid__Group__4__Impl : ( ( rule__TableGrid__Group_4__0 )? ) ;
+    public final void rule__TableGrid__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10102:1: ( ( ( rule__TableGrid__Group_4__0 )? ) )
+            // InternalTableDSL.g:10103:1: ( ( rule__TableGrid__Group_4__0 )? )
+            {
+            // InternalTableDSL.g:10103:1: ( ( rule__TableGrid__Group_4__0 )? )
+            // InternalTableDSL.g:10104:2: ( rule__TableGrid__Group_4__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getGroup_4()); 
+            }
+            // InternalTableDSL.g:10105:2: ( rule__TableGrid__Group_4__0 )?
+            int alt78=2;
+            int LA78_0 = input.LA(1);
+
+            if ( (LA78_0==82) ) {
+                alt78=1;
+            }
+            switch (alt78) {
+                case 1 :
+                    // InternalTableDSL.g:10105:3: rule__TableGrid__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__Group_4__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getGroup_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group_2_1__0"
+    // InternalTableDSL.g:10114:1: rule__TableGrid__Group_2_1__0 : rule__TableGrid__Group_2_1__0__Impl rule__TableGrid__Group_2_1__1 ;
+    public final void rule__TableGrid__Group_2_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10118:1: ( rule__TableGrid__Group_2_1__0__Impl rule__TableGrid__Group_2_1__1 )
+            // InternalTableDSL.g:10119:2: rule__TableGrid__Group_2_1__0__Impl rule__TableGrid__Group_2_1__1
+            {
+            pushFollow(FOLLOW_19);
+            rule__TableGrid__Group_2_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group_2_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_2_1__0"
+
+
+    // $ANTLR start "rule__TableGrid__Group_2_1__0__Impl"
+    // InternalTableDSL.g:10126:1: rule__TableGrid__Group_2_1__0__Impl : ( 'rowheader' ) ;
+    public final void rule__TableGrid__Group_2_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10130:1: ( ( 'rowheader' ) )
+            // InternalTableDSL.g:10131:1: ( 'rowheader' )
+            {
+            // InternalTableDSL.g:10131:1: ( 'rowheader' )
+            // InternalTableDSL.g:10132:2: 'rowheader'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getRowheaderKeyword_2_1_0()); 
+            }
+            match(input,114,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getRowheaderKeyword_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_2_1__0__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group_2_1__1"
+    // InternalTableDSL.g:10141:1: rule__TableGrid__Group_2_1__1 : rule__TableGrid__Group_2_1__1__Impl ;
+    public final void rule__TableGrid__Group_2_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10145:1: ( rule__TableGrid__Group_2_1__1__Impl )
+            // InternalTableDSL.g:10146:2: rule__TableGrid__Group_2_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group_2_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_2_1__1"
+
+
+    // $ANTLR start "rule__TableGrid__Group_2_1__1__Impl"
+    // InternalTableDSL.g:10152:1: rule__TableGrid__Group_2_1__1__Impl : ( ( rule__TableGrid__HeaderModeAssignment_2_1_1 ) ) ;
+    public final void rule__TableGrid__Group_2_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10156:1: ( ( ( rule__TableGrid__HeaderModeAssignment_2_1_1 ) ) )
+            // InternalTableDSL.g:10157:1: ( ( rule__TableGrid__HeaderModeAssignment_2_1_1 ) )
+            {
+            // InternalTableDSL.g:10157:1: ( ( rule__TableGrid__HeaderModeAssignment_2_1_1 ) )
+            // InternalTableDSL.g:10158:2: ( rule__TableGrid__HeaderModeAssignment_2_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getHeaderModeAssignment_2_1_1()); 
+            }
+            // InternalTableDSL.g:10159:2: ( rule__TableGrid__HeaderModeAssignment_2_1_1 )
+            // InternalTableDSL.g:10159:3: rule__TableGrid__HeaderModeAssignment_2_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__HeaderModeAssignment_2_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getHeaderModeAssignment_2_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_2_1__1__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group_3_0__0"
+    // InternalTableDSL.g:10168:1: rule__TableGrid__Group_3_0__0 : rule__TableGrid__Group_3_0__0__Impl rule__TableGrid__Group_3_0__1 ;
+    public final void rule__TableGrid__Group_3_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10172:1: ( rule__TableGrid__Group_3_0__0__Impl rule__TableGrid__Group_3_0__1 )
+            // InternalTableDSL.g:10173:2: rule__TableGrid__Group_3_0__0__Impl rule__TableGrid__Group_3_0__1
+            {
+            pushFollow(FOLLOW_20);
+            rule__TableGrid__Group_3_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group_3_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_3_0__0"
+
+
+    // $ANTLR start "rule__TableGrid__Group_3_0__0__Impl"
+    // InternalTableDSL.g:10180:1: rule__TableGrid__Group_3_0__0__Impl : ( ( rule__TableGrid__PollingAssignment_3_0_0 ) ) ;
+    public final void rule__TableGrid__Group_3_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10184:1: ( ( ( rule__TableGrid__PollingAssignment_3_0_0 ) ) )
+            // InternalTableDSL.g:10185:1: ( ( rule__TableGrid__PollingAssignment_3_0_0 ) )
+            {
+            // InternalTableDSL.g:10185:1: ( ( rule__TableGrid__PollingAssignment_3_0_0 ) )
+            // InternalTableDSL.g:10186:2: ( rule__TableGrid__PollingAssignment_3_0_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getPollingAssignment_3_0_0()); 
+            }
+            // InternalTableDSL.g:10187:2: ( rule__TableGrid__PollingAssignment_3_0_0 )
+            // InternalTableDSL.g:10187:3: rule__TableGrid__PollingAssignment_3_0_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__PollingAssignment_3_0_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getPollingAssignment_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_3_0__0__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group_3_0__1"
+    // InternalTableDSL.g:10195:1: rule__TableGrid__Group_3_0__1 : rule__TableGrid__Group_3_0__1__Impl ;
+    public final void rule__TableGrid__Group_3_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10199:1: ( rule__TableGrid__Group_3_0__1__Impl )
+            // InternalTableDSL.g:10200:2: rule__TableGrid__Group_3_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group_3_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_3_0__1"
+
+
+    // $ANTLR start "rule__TableGrid__Group_3_0__1__Impl"
+    // InternalTableDSL.g:10206:1: rule__TableGrid__Group_3_0__1__Impl : ( ( rule__TableGrid__PollingTimeAssignment_3_0_1 ) ) ;
+    public final void rule__TableGrid__Group_3_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10210:1: ( ( ( rule__TableGrid__PollingTimeAssignment_3_0_1 ) ) )
+            // InternalTableDSL.g:10211:1: ( ( rule__TableGrid__PollingTimeAssignment_3_0_1 ) )
+            {
+            // InternalTableDSL.g:10211:1: ( ( rule__TableGrid__PollingTimeAssignment_3_0_1 ) )
+            // InternalTableDSL.g:10212:2: ( rule__TableGrid__PollingTimeAssignment_3_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getPollingTimeAssignment_3_0_1()); 
+            }
+            // InternalTableDSL.g:10213:2: ( rule__TableGrid__PollingTimeAssignment_3_0_1 )
+            // InternalTableDSL.g:10213:3: rule__TableGrid__PollingTimeAssignment_3_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__PollingTimeAssignment_3_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getPollingTimeAssignment_3_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_3_0__1__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group_3_3__0"
+    // InternalTableDSL.g:10222:1: rule__TableGrid__Group_3_3__0 : rule__TableGrid__Group_3_3__0__Impl rule__TableGrid__Group_3_3__1 ;
+    public final void rule__TableGrid__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10226:1: ( rule__TableGrid__Group_3_3__0__Impl rule__TableGrid__Group_3_3__1 )
+            // InternalTableDSL.g:10227:2: rule__TableGrid__Group_3_3__0__Impl rule__TableGrid__Group_3_3__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableGrid__Group_3_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group_3_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_3_3__0"
+
+
+    // $ANTLR start "rule__TableGrid__Group_3_3__0__Impl"
+    // InternalTableDSL.g:10234:1: rule__TableGrid__Group_3_3__0__Impl : ( 'toolbar' ) ;
+    public final void rule__TableGrid__Group_3_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10238:1: ( ( 'toolbar' ) )
+            // InternalTableDSL.g:10239:1: ( 'toolbar' )
+            {
+            // InternalTableDSL.g:10239:1: ( 'toolbar' )
+            // InternalTableDSL.g:10240:2: 'toolbar'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getToolbarKeyword_3_3_0()); 
+            }
+            match(input,81,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getToolbarKeyword_3_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group_3_3__1"
+    // InternalTableDSL.g:10249:1: rule__TableGrid__Group_3_3__1 : rule__TableGrid__Group_3_3__1__Impl ;
+    public final void rule__TableGrid__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10253:1: ( rule__TableGrid__Group_3_3__1__Impl )
+            // InternalTableDSL.g:10254:2: rule__TableGrid__Group_3_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group_3_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_3_3__1"
+
+
+    // $ANTLR start "rule__TableGrid__Group_3_3__1__Impl"
+    // InternalTableDSL.g:10260:1: rule__TableGrid__Group_3_3__1__Impl : ( ( rule__TableGrid__ToolbarAssignment_3_3_1 ) ) ;
+    public final void rule__TableGrid__Group_3_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10264:1: ( ( ( rule__TableGrid__ToolbarAssignment_3_3_1 ) ) )
+            // InternalTableDSL.g:10265:1: ( ( rule__TableGrid__ToolbarAssignment_3_3_1 ) )
+            {
+            // InternalTableDSL.g:10265:1: ( ( rule__TableGrid__ToolbarAssignment_3_3_1 ) )
+            // InternalTableDSL.g:10266:2: ( rule__TableGrid__ToolbarAssignment_3_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getToolbarAssignment_3_3_1()); 
+            }
+            // InternalTableDSL.g:10267:2: ( rule__TableGrid__ToolbarAssignment_3_3_1 )
+            // InternalTableDSL.g:10267:3: rule__TableGrid__ToolbarAssignment_3_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__ToolbarAssignment_3_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getToolbarAssignment_3_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_3_3__1__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group_4__0"
+    // InternalTableDSL.g:10276:1: rule__TableGrid__Group_4__0 : rule__TableGrid__Group_4__0__Impl rule__TableGrid__Group_4__1 ;
+    public final void rule__TableGrid__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10280:1: ( rule__TableGrid__Group_4__0__Impl rule__TableGrid__Group_4__1 )
+            // InternalTableDSL.g:10281:2: rule__TableGrid__Group_4__0__Impl rule__TableGrid__Group_4__1
+            {
+            pushFollow(FOLLOW_62);
+            rule__TableGrid__Group_4__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group_4__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_4__0"
+
+
+    // $ANTLR start "rule__TableGrid__Group_4__0__Impl"
+    // InternalTableDSL.g:10288:1: rule__TableGrid__Group_4__0__Impl : ( 'using' ) ;
+    public final void rule__TableGrid__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10292:1: ( ( 'using' ) )
+            // InternalTableDSL.g:10293:1: ( 'using' )
+            {
+            // InternalTableDSL.g:10293:1: ( 'using' )
+            // InternalTableDSL.g:10294:2: 'using'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getUsingKeyword_4_0()); 
+            }
+            match(input,82,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getUsingKeyword_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__Group_4__1"
+    // InternalTableDSL.g:10303:1: rule__TableGrid__Group_4__1 : rule__TableGrid__Group_4__1__Impl ;
+    public final void rule__TableGrid__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10307:1: ( rule__TableGrid__Group_4__1__Impl )
+            // InternalTableDSL.g:10308:2: rule__TableGrid__Group_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__Group_4__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_4__1"
+
+
+    // $ANTLR start "rule__TableGrid__Group_4__1__Impl"
+    // InternalTableDSL.g:10314:1: rule__TableGrid__Group_4__1__Impl : ( ( rule__TableGrid__SourceAssignment_4_1 ) ) ;
+    public final void rule__TableGrid__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10318:1: ( ( ( rule__TableGrid__SourceAssignment_4_1 ) ) )
+            // InternalTableDSL.g:10319:1: ( ( rule__TableGrid__SourceAssignment_4_1 ) )
+            {
+            // InternalTableDSL.g:10319:1: ( ( rule__TableGrid__SourceAssignment_4_1 ) )
+            // InternalTableDSL.g:10320:2: ( rule__TableGrid__SourceAssignment_4_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getSourceAssignment_4_1()); 
+            }
+            // InternalTableDSL.g:10321:2: ( rule__TableGrid__SourceAssignment_4_1 )
+            // InternalTableDSL.g:10321:3: rule__TableGrid__SourceAssignment_4_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__SourceAssignment_4_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getSourceAssignment_4_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__Property__Group__0"
+    // InternalTableDSL.g:10330:1: rule__Property__Group__0 : rule__Property__Group__0__Impl rule__Property__Group__1 ;
+    public final void rule__Property__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10334:1: ( rule__Property__Group__0__Impl rule__Property__Group__1 )
+            // InternalTableDSL.g:10335:2: rule__Property__Group__0__Impl rule__Property__Group__1
+            {
+            pushFollow(FOLLOW_63);
+            rule__Property__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Property__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__0"
+
+
+    // $ANTLR start "rule__Property__Group__0__Impl"
+    // InternalTableDSL.g:10342:1: rule__Property__Group__0__Impl : ( ( rule__Property__EditableAssignment_0 )? ) ;
+    public final void rule__Property__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10346:1: ( ( ( rule__Property__EditableAssignment_0 )? ) )
+            // InternalTableDSL.g:10347:1: ( ( rule__Property__EditableAssignment_0 )? )
+            {
+            // InternalTableDSL.g:10347:1: ( ( rule__Property__EditableAssignment_0 )? )
+            // InternalTableDSL.g:10348:2: ( rule__Property__EditableAssignment_0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyAccess().getEditableAssignment_0()); 
+            }
+            // InternalTableDSL.g:10349:2: ( rule__Property__EditableAssignment_0 )?
+            int alt79=2;
+            int LA79_0 = input.LA(1);
+
+            if ( (LA79_0==182) ) {
+                alt79=1;
+            }
+            switch (alt79) {
+                case 1 :
+                    // InternalTableDSL.g:10349:3: rule__Property__EditableAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Property__EditableAssignment_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyAccess().getEditableAssignment_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Property__Group__1"
+    // InternalTableDSL.g:10357:1: rule__Property__Group__1 : rule__Property__Group__1__Impl rule__Property__Group__2 ;
+    public final void rule__Property__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10361:1: ( rule__Property__Group__1__Impl rule__Property__Group__2 )
+            // InternalTableDSL.g:10362:2: rule__Property__Group__1__Impl rule__Property__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__Property__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Property__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__1"
+
+
+    // $ANTLR start "rule__Property__Group__1__Impl"
+    // InternalTableDSL.g:10369:1: rule__Property__Group__1__Impl : ( 'prop' ) ;
+    public final void rule__Property__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10373:1: ( ( 'prop' ) )
+            // InternalTableDSL.g:10374:1: ( 'prop' )
+            {
+            // InternalTableDSL.g:10374:1: ( 'prop' )
+            // InternalTableDSL.g:10375:2: 'prop'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyAccess().getPropKeyword_1()); 
+            }
+            match(input,115,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyAccess().getPropKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Property__Group__2"
+    // InternalTableDSL.g:10384:1: rule__Property__Group__2 : rule__Property__Group__2__Impl rule__Property__Group__3 ;
+    public final void rule__Property__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10388:1: ( rule__Property__Group__2__Impl rule__Property__Group__3 )
+            // InternalTableDSL.g:10389:2: rule__Property__Group__2__Impl rule__Property__Group__3
+            {
+            pushFollow(FOLLOW_64);
+            rule__Property__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Property__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__2"
+
+
+    // $ANTLR start "rule__Property__Group__2__Impl"
+    // InternalTableDSL.g:10396:1: rule__Property__Group__2__Impl : ( ( rule__Property__PathAssignment_2 ) ) ;
+    public final void rule__Property__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10400:1: ( ( ( rule__Property__PathAssignment_2 ) ) )
+            // InternalTableDSL.g:10401:1: ( ( rule__Property__PathAssignment_2 ) )
+            {
+            // InternalTableDSL.g:10401:1: ( ( rule__Property__PathAssignment_2 ) )
+            // InternalTableDSL.g:10402:2: ( rule__Property__PathAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyAccess().getPathAssignment_2()); 
+            }
+            // InternalTableDSL.g:10403:2: ( rule__Property__PathAssignment_2 )
+            // InternalTableDSL.g:10403:3: rule__Property__PathAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__Property__PathAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyAccess().getPathAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Property__Group__3"
+    // InternalTableDSL.g:10411:1: rule__Property__Group__3 : rule__Property__Group__3__Impl rule__Property__Group__4 ;
+    public final void rule__Property__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10415:1: ( rule__Property__Group__3__Impl rule__Property__Group__4 )
+            // InternalTableDSL.g:10416:2: rule__Property__Group__3__Impl rule__Property__Group__4
+            {
+            pushFollow(FOLLOW_65);
+            rule__Property__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Property__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__3"
+
+
+    // $ANTLR start "rule__Property__Group__3__Impl"
+    // InternalTableDSL.g:10423:1: rule__Property__Group__3__Impl : ( 'style' ) ;
+    public final void rule__Property__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10427:1: ( ( 'style' ) )
+            // InternalTableDSL.g:10428:1: ( 'style' )
+            {
+            // InternalTableDSL.g:10428:1: ( 'style' )
+            // InternalTableDSL.g:10429:2: 'style'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyAccess().getStyleKeyword_3()); 
+            }
+            match(input,116,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyAccess().getStyleKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Property__Group__4"
+    // InternalTableDSL.g:10438:1: rule__Property__Group__4 : rule__Property__Group__4__Impl ;
+    public final void rule__Property__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10442:1: ( rule__Property__Group__4__Impl )
+            // InternalTableDSL.g:10443:2: rule__Property__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Property__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__4"
+
+
+    // $ANTLR start "rule__Property__Group__4__Impl"
+    // InternalTableDSL.g:10449:1: rule__Property__Group__4__Impl : ( ( rule__Property__StyleAssignment_4 ) ) ;
+    public final void rule__Property__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10453:1: ( ( ( rule__Property__StyleAssignment_4 ) ) )
+            // InternalTableDSL.g:10454:1: ( ( rule__Property__StyleAssignment_4 ) )
+            {
+            // InternalTableDSL.g:10454:1: ( ( rule__Property__StyleAssignment_4 ) )
+            // InternalTableDSL.g:10455:2: ( rule__Property__StyleAssignment_4 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyAccess().getStyleAssignment_4()); 
+            }
+            // InternalTableDSL.g:10456:2: ( rule__Property__StyleAssignment_4 )
+            // InternalTableDSL.g:10456:3: rule__Property__StyleAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__Property__StyleAssignment_4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyAccess().getStyleAssignment_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group__0"
+    // InternalTableDSL.g:10465:1: rule__TableDtoDatasource__Group__0 : rule__TableDtoDatasource__Group__0__Impl rule__TableDtoDatasource__Group__1 ;
+    public final void rule__TableDtoDatasource__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10469:1: ( rule__TableDtoDatasource__Group__0__Impl rule__TableDtoDatasource__Group__1 )
+            // InternalTableDSL.g:10470:2: rule__TableDtoDatasource__Group__0__Impl rule__TableDtoDatasource__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__TableDtoDatasource__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDtoDatasource__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group__0"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group__0__Impl"
+    // InternalTableDSL.g:10477:1: rule__TableDtoDatasource__Group__0__Impl : ( 'dto' ) ;
+    public final void rule__TableDtoDatasource__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10481:1: ( ( 'dto' ) )
+            // InternalTableDSL.g:10482:1: ( 'dto' )
+            {
+            // InternalTableDSL.g:10482:1: ( 'dto' )
+            // InternalTableDSL.g:10483:2: 'dto'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceAccess().getDtoKeyword_0()); 
+            }
+            match(input,117,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceAccess().getDtoKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group__1"
+    // InternalTableDSL.g:10492:1: rule__TableDtoDatasource__Group__1 : rule__TableDtoDatasource__Group__1__Impl rule__TableDtoDatasource__Group__2 ;
+    public final void rule__TableDtoDatasource__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10496:1: ( rule__TableDtoDatasource__Group__1__Impl rule__TableDtoDatasource__Group__2 )
+            // InternalTableDSL.g:10497:2: rule__TableDtoDatasource__Group__1__Impl rule__TableDtoDatasource__Group__2
+            {
+            pushFollow(FOLLOW_8);
+            rule__TableDtoDatasource__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDtoDatasource__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group__1"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group__1__Impl"
+    // InternalTableDSL.g:10504:1: rule__TableDtoDatasource__Group__1__Impl : ( ( rule__TableDtoDatasource__DtoSourceAssignment_1 ) ) ;
+    public final void rule__TableDtoDatasource__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10508:1: ( ( ( rule__TableDtoDatasource__DtoSourceAssignment_1 ) ) )
+            // InternalTableDSL.g:10509:1: ( ( rule__TableDtoDatasource__DtoSourceAssignment_1 ) )
+            {
+            // InternalTableDSL.g:10509:1: ( ( rule__TableDtoDatasource__DtoSourceAssignment_1 ) )
+            // InternalTableDSL.g:10510:2: ( rule__TableDtoDatasource__DtoSourceAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceAssignment_1()); 
+            }
+            // InternalTableDSL.g:10511:2: ( rule__TableDtoDatasource__DtoSourceAssignment_1 )
+            // InternalTableDSL.g:10511:3: rule__TableDtoDatasource__DtoSourceAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDtoDatasource__DtoSourceAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group__2"
+    // InternalTableDSL.g:10519:1: rule__TableDtoDatasource__Group__2 : rule__TableDtoDatasource__Group__2__Impl ;
+    public final void rule__TableDtoDatasource__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10523:1: ( rule__TableDtoDatasource__Group__2__Impl )
+            // InternalTableDSL.g:10524:2: rule__TableDtoDatasource__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDtoDatasource__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group__2"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group__2__Impl"
+    // InternalTableDSL.g:10530:1: rule__TableDtoDatasource__Group__2__Impl : ( ( rule__TableDtoDatasource__Group_2__0 )? ) ;
+    public final void rule__TableDtoDatasource__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10534:1: ( ( ( rule__TableDtoDatasource__Group_2__0 )? ) )
+            // InternalTableDSL.g:10535:1: ( ( rule__TableDtoDatasource__Group_2__0 )? )
+            {
+            // InternalTableDSL.g:10535:1: ( ( rule__TableDtoDatasource__Group_2__0 )? )
+            // InternalTableDSL.g:10536:2: ( rule__TableDtoDatasource__Group_2__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceAccess().getGroup_2()); 
+            }
+            // InternalTableDSL.g:10537:2: ( rule__TableDtoDatasource__Group_2__0 )?
+            int alt80=2;
+            int LA80_0 = input.LA(1);
+
+            if ( (LA80_0==75) ) {
+                alt80=1;
+            }
+            switch (alt80) {
+                case 1 :
+                    // InternalTableDSL.g:10537:3: rule__TableDtoDatasource__Group_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableDtoDatasource__Group_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceAccess().getGroup_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group_2__0"
+    // InternalTableDSL.g:10546:1: rule__TableDtoDatasource__Group_2__0 : rule__TableDtoDatasource__Group_2__0__Impl rule__TableDtoDatasource__Group_2__1 ;
+    public final void rule__TableDtoDatasource__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10550:1: ( rule__TableDtoDatasource__Group_2__0__Impl rule__TableDtoDatasource__Group_2__1 )
+            // InternalTableDSL.g:10551:2: rule__TableDtoDatasource__Group_2__0__Impl rule__TableDtoDatasource__Group_2__1
+            {
+            pushFollow(FOLLOW_66);
+            rule__TableDtoDatasource__Group_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDtoDatasource__Group_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group_2__0"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group_2__0__Impl"
+    // InternalTableDSL.g:10558:1: rule__TableDtoDatasource__Group_2__0__Impl : ( '{' ) ;
+    public final void rule__TableDtoDatasource__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10562:1: ( ( '{' ) )
+            // InternalTableDSL.g:10563:1: ( '{' )
+            {
+            // InternalTableDSL.g:10563:1: ( '{' )
+            // InternalTableDSL.g:10564:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceAccess().getLeftCurlyBracketKeyword_2_0()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceAccess().getLeftCurlyBracketKeyword_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group_2__1"
+    // InternalTableDSL.g:10573:1: rule__TableDtoDatasource__Group_2__1 : rule__TableDtoDatasource__Group_2__1__Impl rule__TableDtoDatasource__Group_2__2 ;
+    public final void rule__TableDtoDatasource__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10577:1: ( rule__TableDtoDatasource__Group_2__1__Impl rule__TableDtoDatasource__Group_2__2 )
+            // InternalTableDSL.g:10578:2: rule__TableDtoDatasource__Group_2__1__Impl rule__TableDtoDatasource__Group_2__2
+            {
+            pushFollow(FOLLOW_66);
+            rule__TableDtoDatasource__Group_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TableDtoDatasource__Group_2__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group_2__1"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group_2__1__Impl"
+    // InternalTableDSL.g:10585:1: rule__TableDtoDatasource__Group_2__1__Impl : ( ( rule__TableDtoDatasource__PropertiesAssignment_2_1 )* ) ;
+    public final void rule__TableDtoDatasource__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10589:1: ( ( ( rule__TableDtoDatasource__PropertiesAssignment_2_1 )* ) )
+            // InternalTableDSL.g:10590:1: ( ( rule__TableDtoDatasource__PropertiesAssignment_2_1 )* )
+            {
+            // InternalTableDSL.g:10590:1: ( ( rule__TableDtoDatasource__PropertiesAssignment_2_1 )* )
+            // InternalTableDSL.g:10591:2: ( rule__TableDtoDatasource__PropertiesAssignment_2_1 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceAccess().getPropertiesAssignment_2_1()); 
+            }
+            // InternalTableDSL.g:10592:2: ( rule__TableDtoDatasource__PropertiesAssignment_2_1 )*
+            loop81:
+            do {
+                int alt81=2;
+                int LA81_0 = input.LA(1);
+
+                if ( (LA81_0==115||LA81_0==182) ) {
+                    alt81=1;
+                }
+
+
+                switch (alt81) {
+            	case 1 :
+            	    // InternalTableDSL.g:10592:3: rule__TableDtoDatasource__PropertiesAssignment_2_1
+            	    {
+            	    pushFollow(FOLLOW_67);
+            	    rule__TableDtoDatasource__PropertiesAssignment_2_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop81;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceAccess().getPropertiesAssignment_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group_2__2"
+    // InternalTableDSL.g:10600:1: rule__TableDtoDatasource__Group_2__2 : rule__TableDtoDatasource__Group_2__2__Impl ;
+    public final void rule__TableDtoDatasource__Group_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10604:1: ( rule__TableDtoDatasource__Group_2__2__Impl )
+            // InternalTableDSL.g:10605:2: rule__TableDtoDatasource__Group_2__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableDtoDatasource__Group_2__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group_2__2"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__Group_2__2__Impl"
+    // InternalTableDSL.g:10611:1: rule__TableDtoDatasource__Group_2__2__Impl : ( '}' ) ;
+    public final void rule__TableDtoDatasource__Group_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10615:1: ( ( '}' ) )
+            // InternalTableDSL.g:10616:1: ( '}' )
+            {
+            // InternalTableDSL.g:10616:1: ( '}' )
+            // InternalTableDSL.g:10617:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceAccess().getRightCurlyBracketKeyword_2_2()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceAccess().getRightCurlyBracketKeyword_2_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__Group_2__2__Impl"
+
+
+    // $ANTLR start "rule__NestedField__Group__0"
+    // InternalTableDSL.g:10627:1: rule__NestedField__Group__0 : rule__NestedField__Group__0__Impl rule__NestedField__Group__1 ;
+    public final void rule__NestedField__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10631:1: ( rule__NestedField__Group__0__Impl rule__NestedField__Group__1 )
+            // InternalTableDSL.g:10632:2: rule__NestedField__Group__0__Impl rule__NestedField__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__NestedField__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__NestedField__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedField__Group__0"
+
+
+    // $ANTLR start "rule__NestedField__Group__0__Impl"
+    // InternalTableDSL.g:10639:1: rule__NestedField__Group__0__Impl : ( () ) ;
+    public final void rule__NestedField__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10643:1: ( ( () ) )
+            // InternalTableDSL.g:10644:1: ( () )
+            {
+            // InternalTableDSL.g:10644:1: ( () )
+            // InternalTableDSL.g:10645:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedFieldAccess().getCxGridNestedFieldAction_0()); 
+            }
+            // InternalTableDSL.g:10646:2: ()
+            // InternalTableDSL.g:10646:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedFieldAccess().getCxGridNestedFieldAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedField__Group__0__Impl"
+
+
+    // $ANTLR start "rule__NestedField__Group__1"
+    // InternalTableDSL.g:10654:1: rule__NestedField__Group__1 : rule__NestedField__Group__1__Impl rule__NestedField__Group__2 ;
+    public final void rule__NestedField__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10658:1: ( rule__NestedField__Group__1__Impl rule__NestedField__Group__2 )
+            // InternalTableDSL.g:10659:2: rule__NestedField__Group__1__Impl rule__NestedField__Group__2
+            {
+            pushFollow(FOLLOW_68);
+            rule__NestedField__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__NestedField__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedField__Group__1"
+
+
+    // $ANTLR start "rule__NestedField__Group__1__Impl"
+    // InternalTableDSL.g:10666:1: rule__NestedField__Group__1__Impl : ( ( rule__NestedField__FieldAssignment_1 ) ) ;
+    public final void rule__NestedField__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10670:1: ( ( ( rule__NestedField__FieldAssignment_1 ) ) )
+            // InternalTableDSL.g:10671:1: ( ( rule__NestedField__FieldAssignment_1 ) )
+            {
+            // InternalTableDSL.g:10671:1: ( ( rule__NestedField__FieldAssignment_1 ) )
+            // InternalTableDSL.g:10672:2: ( rule__NestedField__FieldAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedFieldAccess().getFieldAssignment_1()); 
+            }
+            // InternalTableDSL.g:10673:2: ( rule__NestedField__FieldAssignment_1 )
+            // InternalTableDSL.g:10673:3: rule__NestedField__FieldAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__NestedField__FieldAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedFieldAccess().getFieldAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedField__Group__1__Impl"
+
+
+    // $ANTLR start "rule__NestedField__Group__2"
+    // InternalTableDSL.g:10681:1: rule__NestedField__Group__2 : rule__NestedField__Group__2__Impl ;
+    public final void rule__NestedField__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10685:1: ( rule__NestedField__Group__2__Impl )
+            // InternalTableDSL.g:10686:2: rule__NestedField__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__NestedField__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedField__Group__2"
+
+
+    // $ANTLR start "rule__NestedField__Group__2__Impl"
+    // InternalTableDSL.g:10692:1: rule__NestedField__Group__2__Impl : ( ( rule__NestedField__PathAssignment_2 )? ) ;
+    public final void rule__NestedField__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10696:1: ( ( ( rule__NestedField__PathAssignment_2 )? ) )
+            // InternalTableDSL.g:10697:1: ( ( rule__NestedField__PathAssignment_2 )? )
+            {
+            // InternalTableDSL.g:10697:1: ( ( rule__NestedField__PathAssignment_2 )? )
+            // InternalTableDSL.g:10698:2: ( rule__NestedField__PathAssignment_2 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedFieldAccess().getPathAssignment_2()); 
+            }
+            // InternalTableDSL.g:10699:2: ( rule__NestedField__PathAssignment_2 )?
+            int alt82=2;
+            int LA82_0 = input.LA(1);
+
+            if ( (LA82_0==46) ) {
+                alt82=1;
+            }
+            switch (alt82) {
+                case 1 :
+                    // InternalTableDSL.g:10699:3: rule__NestedField__PathAssignment_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__NestedField__PathAssignment_2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedFieldAccess().getPathAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedField__Group__2__Impl"
+
+
+    // $ANTLR start "rule__NestedPath__Group__0"
+    // InternalTableDSL.g:10708:1: rule__NestedPath__Group__0 : rule__NestedPath__Group__0__Impl rule__NestedPath__Group__1 ;
+    public final void rule__NestedPath__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10712:1: ( rule__NestedPath__Group__0__Impl rule__NestedPath__Group__1 )
+            // InternalTableDSL.g:10713:2: rule__NestedPath__Group__0__Impl rule__NestedPath__Group__1
+            {
+            pushFollow(FOLLOW_68);
+            rule__NestedPath__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__NestedPath__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedPath__Group__0"
+
+
+    // $ANTLR start "rule__NestedPath__Group__0__Impl"
+    // InternalTableDSL.g:10720:1: rule__NestedPath__Group__0__Impl : ( () ) ;
+    public final void rule__NestedPath__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10724:1: ( ( () ) )
+            // InternalTableDSL.g:10725:1: ( () )
+            {
+            // InternalTableDSL.g:10725:1: ( () )
+            // InternalTableDSL.g:10726:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedPathAccess().getCxGridNestedPathAction_0()); 
+            }
+            // InternalTableDSL.g:10727:2: ()
+            // InternalTableDSL.g:10727:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedPathAccess().getCxGridNestedPathAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedPath__Group__0__Impl"
+
+
+    // $ANTLR start "rule__NestedPath__Group__1"
+    // InternalTableDSL.g:10735:1: rule__NestedPath__Group__1 : rule__NestedPath__Group__1__Impl rule__NestedPath__Group__2 ;
+    public final void rule__NestedPath__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10739:1: ( rule__NestedPath__Group__1__Impl rule__NestedPath__Group__2 )
+            // InternalTableDSL.g:10740:2: rule__NestedPath__Group__1__Impl rule__NestedPath__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__NestedPath__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__NestedPath__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedPath__Group__1"
+
+
+    // $ANTLR start "rule__NestedPath__Group__1__Impl"
+    // InternalTableDSL.g:10747:1: rule__NestedPath__Group__1__Impl : ( '.' ) ;
+    public final void rule__NestedPath__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10751:1: ( ( '.' ) )
+            // InternalTableDSL.g:10752:1: ( '.' )
+            {
+            // InternalTableDSL.g:10752:1: ( '.' )
+            // InternalTableDSL.g:10753:2: '.'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedPathAccess().getFullStopKeyword_1()); 
+            }
+            match(input,46,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedPathAccess().getFullStopKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedPath__Group__1__Impl"
+
+
+    // $ANTLR start "rule__NestedPath__Group__2"
+    // InternalTableDSL.g:10762:1: rule__NestedPath__Group__2 : rule__NestedPath__Group__2__Impl rule__NestedPath__Group__3 ;
+    public final void rule__NestedPath__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10766:1: ( rule__NestedPath__Group__2__Impl rule__NestedPath__Group__3 )
+            // InternalTableDSL.g:10767:2: rule__NestedPath__Group__2__Impl rule__NestedPath__Group__3
+            {
+            pushFollow(FOLLOW_68);
+            rule__NestedPath__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__NestedPath__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedPath__Group__2"
+
+
+    // $ANTLR start "rule__NestedPath__Group__2__Impl"
+    // InternalTableDSL.g:10774:1: rule__NestedPath__Group__2__Impl : ( ( rule__NestedPath__FieldAssignment_2 ) ) ;
+    public final void rule__NestedPath__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10778:1: ( ( ( rule__NestedPath__FieldAssignment_2 ) ) )
+            // InternalTableDSL.g:10779:1: ( ( rule__NestedPath__FieldAssignment_2 ) )
+            {
+            // InternalTableDSL.g:10779:1: ( ( rule__NestedPath__FieldAssignment_2 ) )
+            // InternalTableDSL.g:10780:2: ( rule__NestedPath__FieldAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedPathAccess().getFieldAssignment_2()); 
+            }
+            // InternalTableDSL.g:10781:2: ( rule__NestedPath__FieldAssignment_2 )
+            // InternalTableDSL.g:10781:3: rule__NestedPath__FieldAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__NestedPath__FieldAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedPathAccess().getFieldAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedPath__Group__2__Impl"
+
+
+    // $ANTLR start "rule__NestedPath__Group__3"
+    // InternalTableDSL.g:10789:1: rule__NestedPath__Group__3 : rule__NestedPath__Group__3__Impl ;
+    public final void rule__NestedPath__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10793:1: ( rule__NestedPath__Group__3__Impl )
+            // InternalTableDSL.g:10794:2: rule__NestedPath__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__NestedPath__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedPath__Group__3"
+
+
+    // $ANTLR start "rule__NestedPath__Group__3__Impl"
+    // InternalTableDSL.g:10800:1: rule__NestedPath__Group__3__Impl : ( ( rule__NestedPath__PathAssignment_3 )? ) ;
+    public final void rule__NestedPath__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10804:1: ( ( ( rule__NestedPath__PathAssignment_3 )? ) )
+            // InternalTableDSL.g:10805:1: ( ( rule__NestedPath__PathAssignment_3 )? )
+            {
+            // InternalTableDSL.g:10805:1: ( ( rule__NestedPath__PathAssignment_3 )? )
+            // InternalTableDSL.g:10806:2: ( rule__NestedPath__PathAssignment_3 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedPathAccess().getPathAssignment_3()); 
+            }
+            // InternalTableDSL.g:10807:2: ( rule__NestedPath__PathAssignment_3 )?
+            int alt83=2;
+            int LA83_0 = input.LA(1);
+
+            if ( (LA83_0==46) ) {
+                alt83=1;
+            }
+            switch (alt83) {
+                case 1 :
+                    // InternalTableDSL.g:10807:3: rule__NestedPath__PathAssignment_3
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__NestedPath__PathAssignment_3();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedPathAccess().getPathAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedPath__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PropertyButtonStyle__Group__0"
+    // InternalTableDSL.g:10816:1: rule__PropertyButtonStyle__Group__0 : rule__PropertyButtonStyle__Group__0__Impl rule__PropertyButtonStyle__Group__1 ;
+    public final void rule__PropertyButtonStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10820:1: ( rule__PropertyButtonStyle__Group__0__Impl rule__PropertyButtonStyle__Group__1 )
+            // InternalTableDSL.g:10821:2: rule__PropertyButtonStyle__Group__0__Impl rule__PropertyButtonStyle__Group__1
+            {
+            pushFollow(FOLLOW_69);
+            rule__PropertyButtonStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyButtonStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyButtonStyle__Group__0"
+
+
+    // $ANTLR start "rule__PropertyButtonStyle__Group__0__Impl"
+    // InternalTableDSL.g:10828:1: rule__PropertyButtonStyle__Group__0__Impl : ( () ) ;
+    public final void rule__PropertyButtonStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10832:1: ( ( () ) )
+            // InternalTableDSL.g:10833:1: ( () )
+            {
+            // InternalTableDSL.g:10833:1: ( () )
+            // InternalTableDSL.g:10834:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyButtonStyleAccess().getCxGridPropButtonStyleAction_0()); 
+            }
+            // InternalTableDSL.g:10835:2: ()
+            // InternalTableDSL.g:10835:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyButtonStyleAccess().getCxGridPropButtonStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyButtonStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyButtonStyle__Group__1"
+    // InternalTableDSL.g:10843:1: rule__PropertyButtonStyle__Group__1 : rule__PropertyButtonStyle__Group__1__Impl rule__PropertyButtonStyle__Group__2 ;
+    public final void rule__PropertyButtonStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10847:1: ( rule__PropertyButtonStyle__Group__1__Impl rule__PropertyButtonStyle__Group__2 )
+            // InternalTableDSL.g:10848:2: rule__PropertyButtonStyle__Group__1__Impl rule__PropertyButtonStyle__Group__2
+            {
+            pushFollow(FOLLOW_70);
+            rule__PropertyButtonStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyButtonStyle__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyButtonStyle__Group__1"
+
+
+    // $ANTLR start "rule__PropertyButtonStyle__Group__1__Impl"
+    // InternalTableDSL.g:10855:1: rule__PropertyButtonStyle__Group__1__Impl : ( 'buttonStyle' ) ;
+    public final void rule__PropertyButtonStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10859:1: ( ( 'buttonStyle' ) )
+            // InternalTableDSL.g:10860:1: ( 'buttonStyle' )
+            {
+            // InternalTableDSL.g:10860:1: ( 'buttonStyle' )
+            // InternalTableDSL.g:10861:2: 'buttonStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyButtonStyleAccess().getButtonStyleKeyword_1()); 
+            }
+            match(input,118,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyButtonStyleAccess().getButtonStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyButtonStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyButtonStyle__Group__2"
+    // InternalTableDSL.g:10870:1: rule__PropertyButtonStyle__Group__2 : rule__PropertyButtonStyle__Group__2__Impl rule__PropertyButtonStyle__Group__3 ;
+    public final void rule__PropertyButtonStyle__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10874:1: ( rule__PropertyButtonStyle__Group__2__Impl rule__PropertyButtonStyle__Group__3 )
+            // InternalTableDSL.g:10875:2: rule__PropertyButtonStyle__Group__2__Impl rule__PropertyButtonStyle__Group__3
+            {
+            pushFollow(FOLLOW_14);
+            rule__PropertyButtonStyle__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyButtonStyle__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyButtonStyle__Group__2"
+
+
+    // $ANTLR start "rule__PropertyButtonStyle__Group__2__Impl"
+    // InternalTableDSL.g:10882:1: rule__PropertyButtonStyle__Group__2__Impl : ( 'eventTopic' ) ;
+    public final void rule__PropertyButtonStyle__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10886:1: ( ( 'eventTopic' ) )
+            // InternalTableDSL.g:10887:1: ( 'eventTopic' )
+            {
+            // InternalTableDSL.g:10887:1: ( 'eventTopic' )
+            // InternalTableDSL.g:10888:2: 'eventTopic'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyButtonStyleAccess().getEventTopicKeyword_2()); 
+            }
+            match(input,119,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyButtonStyleAccess().getEventTopicKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyButtonStyle__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyButtonStyle__Group__3"
+    // InternalTableDSL.g:10897:1: rule__PropertyButtonStyle__Group__3 : rule__PropertyButtonStyle__Group__3__Impl ;
+    public final void rule__PropertyButtonStyle__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10901:1: ( rule__PropertyButtonStyle__Group__3__Impl )
+            // InternalTableDSL.g:10902:2: rule__PropertyButtonStyle__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyButtonStyle__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyButtonStyle__Group__3"
+
+
+    // $ANTLR start "rule__PropertyButtonStyle__Group__3__Impl"
+    // InternalTableDSL.g:10908:1: rule__PropertyButtonStyle__Group__3__Impl : ( ( rule__PropertyButtonStyle__EventTopicAssignment_3 ) ) ;
+    public final void rule__PropertyButtonStyle__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10912:1: ( ( ( rule__PropertyButtonStyle__EventTopicAssignment_3 ) ) )
+            // InternalTableDSL.g:10913:1: ( ( rule__PropertyButtonStyle__EventTopicAssignment_3 ) )
+            {
+            // InternalTableDSL.g:10913:1: ( ( rule__PropertyButtonStyle__EventTopicAssignment_3 ) )
+            // InternalTableDSL.g:10914:2: ( rule__PropertyButtonStyle__EventTopicAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyButtonStyleAccess().getEventTopicAssignment_3()); 
+            }
+            // InternalTableDSL.g:10915:2: ( rule__PropertyButtonStyle__EventTopicAssignment_3 )
+            // InternalTableDSL.g:10915:3: rule__PropertyButtonStyle__EventTopicAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyButtonStyle__EventTopicAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyButtonStyleAccess().getEventTopicAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyButtonStyle__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PropertyHtmlStyle__Group__0"
+    // InternalTableDSL.g:10924:1: rule__PropertyHtmlStyle__Group__0 : rule__PropertyHtmlStyle__Group__0__Impl rule__PropertyHtmlStyle__Group__1 ;
+    public final void rule__PropertyHtmlStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10928:1: ( rule__PropertyHtmlStyle__Group__0__Impl rule__PropertyHtmlStyle__Group__1 )
+            // InternalTableDSL.g:10929:2: rule__PropertyHtmlStyle__Group__0__Impl rule__PropertyHtmlStyle__Group__1
+            {
+            pushFollow(FOLLOW_71);
+            rule__PropertyHtmlStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyHtmlStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyHtmlStyle__Group__0"
+
+
+    // $ANTLR start "rule__PropertyHtmlStyle__Group__0__Impl"
+    // InternalTableDSL.g:10936:1: rule__PropertyHtmlStyle__Group__0__Impl : ( () ) ;
+    public final void rule__PropertyHtmlStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10940:1: ( ( () ) )
+            // InternalTableDSL.g:10941:1: ( () )
+            {
+            // InternalTableDSL.g:10941:1: ( () )
+            // InternalTableDSL.g:10942:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyHtmlStyleAccess().getCxGridPropHtmlStyleAction_0()); 
+            }
+            // InternalTableDSL.g:10943:2: ()
+            // InternalTableDSL.g:10943:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyHtmlStyleAccess().getCxGridPropHtmlStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyHtmlStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyHtmlStyle__Group__1"
+    // InternalTableDSL.g:10951:1: rule__PropertyHtmlStyle__Group__1 : rule__PropertyHtmlStyle__Group__1__Impl ;
+    public final void rule__PropertyHtmlStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10955:1: ( rule__PropertyHtmlStyle__Group__1__Impl )
+            // InternalTableDSL.g:10956:2: rule__PropertyHtmlStyle__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyHtmlStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyHtmlStyle__Group__1"
+
+
+    // $ANTLR start "rule__PropertyHtmlStyle__Group__1__Impl"
+    // InternalTableDSL.g:10962:1: rule__PropertyHtmlStyle__Group__1__Impl : ( 'htmlStyle' ) ;
+    public final void rule__PropertyHtmlStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10966:1: ( ( 'htmlStyle' ) )
+            // InternalTableDSL.g:10967:1: ( 'htmlStyle' )
+            {
+            // InternalTableDSL.g:10967:1: ( 'htmlStyle' )
+            // InternalTableDSL.g:10968:2: 'htmlStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyHtmlStyleAccess().getHtmlStyleKeyword_1()); 
+            }
+            match(input,120,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyHtmlStyleAccess().getHtmlStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyHtmlStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyBooleanStyle__Group__0"
+    // InternalTableDSL.g:10978:1: rule__PropertyBooleanStyle__Group__0 : rule__PropertyBooleanStyle__Group__0__Impl rule__PropertyBooleanStyle__Group__1 ;
+    public final void rule__PropertyBooleanStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10982:1: ( rule__PropertyBooleanStyle__Group__0__Impl rule__PropertyBooleanStyle__Group__1 )
+            // InternalTableDSL.g:10983:2: rule__PropertyBooleanStyle__Group__0__Impl rule__PropertyBooleanStyle__Group__1
+            {
+            pushFollow(FOLLOW_72);
+            rule__PropertyBooleanStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyBooleanStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyBooleanStyle__Group__0"
+
+
+    // $ANTLR start "rule__PropertyBooleanStyle__Group__0__Impl"
+    // InternalTableDSL.g:10990:1: rule__PropertyBooleanStyle__Group__0__Impl : ( () ) ;
+    public final void rule__PropertyBooleanStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:10994:1: ( ( () ) )
+            // InternalTableDSL.g:10995:1: ( () )
+            {
+            // InternalTableDSL.g:10995:1: ( () )
+            // InternalTableDSL.g:10996:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyBooleanStyleAccess().getCxGridPropBooleanStyleAction_0()); 
+            }
+            // InternalTableDSL.g:10997:2: ()
+            // InternalTableDSL.g:10997:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyBooleanStyleAccess().getCxGridPropBooleanStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyBooleanStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyBooleanStyle__Group__1"
+    // InternalTableDSL.g:11005:1: rule__PropertyBooleanStyle__Group__1 : rule__PropertyBooleanStyle__Group__1__Impl ;
+    public final void rule__PropertyBooleanStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11009:1: ( rule__PropertyBooleanStyle__Group__1__Impl )
+            // InternalTableDSL.g:11010:2: rule__PropertyBooleanStyle__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyBooleanStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyBooleanStyle__Group__1"
+
+
+    // $ANTLR start "rule__PropertyBooleanStyle__Group__1__Impl"
+    // InternalTableDSL.g:11016:1: rule__PropertyBooleanStyle__Group__1__Impl : ( 'boolStyle' ) ;
+    public final void rule__PropertyBooleanStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11020:1: ( ( 'boolStyle' ) )
+            // InternalTableDSL.g:11021:1: ( 'boolStyle' )
+            {
+            // InternalTableDSL.g:11021:1: ( 'boolStyle' )
+            // InternalTableDSL.g:11022:2: 'boolStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyBooleanStyleAccess().getBoolStyleKeyword_1()); 
+            }
+            match(input,121,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyBooleanStyleAccess().getBoolStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyBooleanStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyDateStyle__Group__0"
+    // InternalTableDSL.g:11032:1: rule__PropertyDateStyle__Group__0 : rule__PropertyDateStyle__Group__0__Impl rule__PropertyDateStyle__Group__1 ;
+    public final void rule__PropertyDateStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11036:1: ( rule__PropertyDateStyle__Group__0__Impl rule__PropertyDateStyle__Group__1 )
+            // InternalTableDSL.g:11037:2: rule__PropertyDateStyle__Group__0__Impl rule__PropertyDateStyle__Group__1
+            {
+            pushFollow(FOLLOW_73);
+            rule__PropertyDateStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyDateStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyDateStyle__Group__0"
+
+
+    // $ANTLR start "rule__PropertyDateStyle__Group__0__Impl"
+    // InternalTableDSL.g:11044:1: rule__PropertyDateStyle__Group__0__Impl : ( () ) ;
+    public final void rule__PropertyDateStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11048:1: ( ( () ) )
+            // InternalTableDSL.g:11049:1: ( () )
+            {
+            // InternalTableDSL.g:11049:1: ( () )
+            // InternalTableDSL.g:11050:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyDateStyleAccess().getCxGridPropDateStyleAction_0()); 
+            }
+            // InternalTableDSL.g:11051:2: ()
+            // InternalTableDSL.g:11051:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyDateStyleAccess().getCxGridPropDateStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyDateStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyDateStyle__Group__1"
+    // InternalTableDSL.g:11059:1: rule__PropertyDateStyle__Group__1 : rule__PropertyDateStyle__Group__1__Impl rule__PropertyDateStyle__Group__2 ;
+    public final void rule__PropertyDateStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11063:1: ( rule__PropertyDateStyle__Group__1__Impl rule__PropertyDateStyle__Group__2 )
+            // InternalTableDSL.g:11064:2: rule__PropertyDateStyle__Group__1__Impl rule__PropertyDateStyle__Group__2
+            {
+            pushFollow(FOLLOW_74);
+            rule__PropertyDateStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyDateStyle__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyDateStyle__Group__1"
+
+
+    // $ANTLR start "rule__PropertyDateStyle__Group__1__Impl"
+    // InternalTableDSL.g:11071:1: rule__PropertyDateStyle__Group__1__Impl : ( 'dateStyle' ) ;
+    public final void rule__PropertyDateStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11075:1: ( ( 'dateStyle' ) )
+            // InternalTableDSL.g:11076:1: ( 'dateStyle' )
+            {
+            // InternalTableDSL.g:11076:1: ( 'dateStyle' )
+            // InternalTableDSL.g:11077:2: 'dateStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyDateStyleAccess().getDateStyleKeyword_1()); 
+            }
+            match(input,122,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyDateStyleAccess().getDateStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyDateStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyDateStyle__Group__2"
+    // InternalTableDSL.g:11086:1: rule__PropertyDateStyle__Group__2 : rule__PropertyDateStyle__Group__2__Impl rule__PropertyDateStyle__Group__3 ;
+    public final void rule__PropertyDateStyle__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11090:1: ( rule__PropertyDateStyle__Group__2__Impl rule__PropertyDateStyle__Group__3 )
+            // InternalTableDSL.g:11091:2: rule__PropertyDateStyle__Group__2__Impl rule__PropertyDateStyle__Group__3
+            {
+            pushFollow(FOLLOW_14);
+            rule__PropertyDateStyle__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyDateStyle__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyDateStyle__Group__2"
+
+
+    // $ANTLR start "rule__PropertyDateStyle__Group__2__Impl"
+    // InternalTableDSL.g:11098:1: rule__PropertyDateStyle__Group__2__Impl : ( 'format' ) ;
+    public final void rule__PropertyDateStyle__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11102:1: ( ( 'format' ) )
+            // InternalTableDSL.g:11103:1: ( 'format' )
+            {
+            // InternalTableDSL.g:11103:1: ( 'format' )
+            // InternalTableDSL.g:11104:2: 'format'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyDateStyleAccess().getFormatKeyword_2()); 
+            }
+            match(input,123,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyDateStyleAccess().getFormatKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyDateStyle__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyDateStyle__Group__3"
+    // InternalTableDSL.g:11113:1: rule__PropertyDateStyle__Group__3 : rule__PropertyDateStyle__Group__3__Impl ;
+    public final void rule__PropertyDateStyle__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11117:1: ( rule__PropertyDateStyle__Group__3__Impl )
+            // InternalTableDSL.g:11118:2: rule__PropertyDateStyle__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyDateStyle__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyDateStyle__Group__3"
+
+
+    // $ANTLR start "rule__PropertyDateStyle__Group__3__Impl"
+    // InternalTableDSL.g:11124:1: rule__PropertyDateStyle__Group__3__Impl : ( ( rule__PropertyDateStyle__DateFormatAssignment_3 ) ) ;
+    public final void rule__PropertyDateStyle__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11128:1: ( ( ( rule__PropertyDateStyle__DateFormatAssignment_3 ) ) )
+            // InternalTableDSL.g:11129:1: ( ( rule__PropertyDateStyle__DateFormatAssignment_3 ) )
+            {
+            // InternalTableDSL.g:11129:1: ( ( rule__PropertyDateStyle__DateFormatAssignment_3 ) )
+            // InternalTableDSL.g:11130:2: ( rule__PropertyDateStyle__DateFormatAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyDateStyleAccess().getDateFormatAssignment_3()); 
+            }
+            // InternalTableDSL.g:11131:2: ( rule__PropertyDateStyle__DateFormatAssignment_3 )
+            // InternalTableDSL.g:11131:3: rule__PropertyDateStyle__DateFormatAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyDateStyle__DateFormatAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyDateStyleAccess().getDateFormatAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyDateStyle__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PropertyNumberStyle__Group__0"
+    // InternalTableDSL.g:11140:1: rule__PropertyNumberStyle__Group__0 : rule__PropertyNumberStyle__Group__0__Impl rule__PropertyNumberStyle__Group__1 ;
+    public final void rule__PropertyNumberStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11144:1: ( rule__PropertyNumberStyle__Group__0__Impl rule__PropertyNumberStyle__Group__1 )
+            // InternalTableDSL.g:11145:2: rule__PropertyNumberStyle__Group__0__Impl rule__PropertyNumberStyle__Group__1
+            {
+            pushFollow(FOLLOW_75);
+            rule__PropertyNumberStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyNumberStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyNumberStyle__Group__0"
+
+
+    // $ANTLR start "rule__PropertyNumberStyle__Group__0__Impl"
+    // InternalTableDSL.g:11152:1: rule__PropertyNumberStyle__Group__0__Impl : ( () ) ;
+    public final void rule__PropertyNumberStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11156:1: ( ( () ) )
+            // InternalTableDSL.g:11157:1: ( () )
+            {
+            // InternalTableDSL.g:11157:1: ( () )
+            // InternalTableDSL.g:11158:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyNumberStyleAccess().getCxGridPropNumberStyleAction_0()); 
+            }
+            // InternalTableDSL.g:11159:2: ()
+            // InternalTableDSL.g:11159:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyNumberStyleAccess().getCxGridPropNumberStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyNumberStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyNumberStyle__Group__1"
+    // InternalTableDSL.g:11167:1: rule__PropertyNumberStyle__Group__1 : rule__PropertyNumberStyle__Group__1__Impl rule__PropertyNumberStyle__Group__2 ;
+    public final void rule__PropertyNumberStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11171:1: ( rule__PropertyNumberStyle__Group__1__Impl rule__PropertyNumberStyle__Group__2 )
+            // InternalTableDSL.g:11172:2: rule__PropertyNumberStyle__Group__1__Impl rule__PropertyNumberStyle__Group__2
+            {
+            pushFollow(FOLLOW_74);
+            rule__PropertyNumberStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyNumberStyle__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyNumberStyle__Group__1"
+
+
+    // $ANTLR start "rule__PropertyNumberStyle__Group__1__Impl"
+    // InternalTableDSL.g:11179:1: rule__PropertyNumberStyle__Group__1__Impl : ( 'numberStyle' ) ;
+    public final void rule__PropertyNumberStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11183:1: ( ( 'numberStyle' ) )
+            // InternalTableDSL.g:11184:1: ( 'numberStyle' )
+            {
+            // InternalTableDSL.g:11184:1: ( 'numberStyle' )
+            // InternalTableDSL.g:11185:2: 'numberStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyNumberStyleAccess().getNumberStyleKeyword_1()); 
+            }
+            match(input,124,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyNumberStyleAccess().getNumberStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyNumberStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyNumberStyle__Group__2"
+    // InternalTableDSL.g:11194:1: rule__PropertyNumberStyle__Group__2 : rule__PropertyNumberStyle__Group__2__Impl rule__PropertyNumberStyle__Group__3 ;
+    public final void rule__PropertyNumberStyle__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11198:1: ( rule__PropertyNumberStyle__Group__2__Impl rule__PropertyNumberStyle__Group__3 )
+            // InternalTableDSL.g:11199:2: rule__PropertyNumberStyle__Group__2__Impl rule__PropertyNumberStyle__Group__3
+            {
+            pushFollow(FOLLOW_14);
+            rule__PropertyNumberStyle__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyNumberStyle__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyNumberStyle__Group__2"
+
+
+    // $ANTLR start "rule__PropertyNumberStyle__Group__2__Impl"
+    // InternalTableDSL.g:11206:1: rule__PropertyNumberStyle__Group__2__Impl : ( 'format' ) ;
+    public final void rule__PropertyNumberStyle__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11210:1: ( ( 'format' ) )
+            // InternalTableDSL.g:11211:1: ( 'format' )
+            {
+            // InternalTableDSL.g:11211:1: ( 'format' )
+            // InternalTableDSL.g:11212:2: 'format'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyNumberStyleAccess().getFormatKeyword_2()); 
+            }
+            match(input,123,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyNumberStyleAccess().getFormatKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyNumberStyle__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyNumberStyle__Group__3"
+    // InternalTableDSL.g:11221:1: rule__PropertyNumberStyle__Group__3 : rule__PropertyNumberStyle__Group__3__Impl ;
+    public final void rule__PropertyNumberStyle__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11225:1: ( rule__PropertyNumberStyle__Group__3__Impl )
+            // InternalTableDSL.g:11226:2: rule__PropertyNumberStyle__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyNumberStyle__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyNumberStyle__Group__3"
+
+
+    // $ANTLR start "rule__PropertyNumberStyle__Group__3__Impl"
+    // InternalTableDSL.g:11232:1: rule__PropertyNumberStyle__Group__3__Impl : ( ( rule__PropertyNumberStyle__NumberFormatAssignment_3 ) ) ;
+    public final void rule__PropertyNumberStyle__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11236:1: ( ( ( rule__PropertyNumberStyle__NumberFormatAssignment_3 ) ) )
+            // InternalTableDSL.g:11237:1: ( ( rule__PropertyNumberStyle__NumberFormatAssignment_3 ) )
+            {
+            // InternalTableDSL.g:11237:1: ( ( rule__PropertyNumberStyle__NumberFormatAssignment_3 ) )
+            // InternalTableDSL.g:11238:2: ( rule__PropertyNumberStyle__NumberFormatAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyNumberStyleAccess().getNumberFormatAssignment_3()); 
+            }
+            // InternalTableDSL.g:11239:2: ( rule__PropertyNumberStyle__NumberFormatAssignment_3 )
+            // InternalTableDSL.g:11239:3: rule__PropertyNumberStyle__NumberFormatAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyNumberStyle__NumberFormatAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyNumberStyleAccess().getNumberFormatAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyNumberStyle__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PropertyProgressbarStyle__Group__0"
+    // InternalTableDSL.g:11248:1: rule__PropertyProgressbarStyle__Group__0 : rule__PropertyProgressbarStyle__Group__0__Impl rule__PropertyProgressbarStyle__Group__1 ;
+    public final void rule__PropertyProgressbarStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11252:1: ( rule__PropertyProgressbarStyle__Group__0__Impl rule__PropertyProgressbarStyle__Group__1 )
+            // InternalTableDSL.g:11253:2: rule__PropertyProgressbarStyle__Group__0__Impl rule__PropertyProgressbarStyle__Group__1
+            {
+            pushFollow(FOLLOW_76);
+            rule__PropertyProgressbarStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyProgressbarStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyProgressbarStyle__Group__0"
+
+
+    // $ANTLR start "rule__PropertyProgressbarStyle__Group__0__Impl"
+    // InternalTableDSL.g:11260:1: rule__PropertyProgressbarStyle__Group__0__Impl : ( () ) ;
+    public final void rule__PropertyProgressbarStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11264:1: ( ( () ) )
+            // InternalTableDSL.g:11265:1: ( () )
+            {
+            // InternalTableDSL.g:11265:1: ( () )
+            // InternalTableDSL.g:11266:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyProgressbarStyleAccess().getCxGridPropProgressbarStyleAction_0()); 
+            }
+            // InternalTableDSL.g:11267:2: ()
+            // InternalTableDSL.g:11267:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyProgressbarStyleAccess().getCxGridPropProgressbarStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyProgressbarStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyProgressbarStyle__Group__1"
+    // InternalTableDSL.g:11275:1: rule__PropertyProgressbarStyle__Group__1 : rule__PropertyProgressbarStyle__Group__1__Impl rule__PropertyProgressbarStyle__Group__2 ;
+    public final void rule__PropertyProgressbarStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11279:1: ( rule__PropertyProgressbarStyle__Group__1__Impl rule__PropertyProgressbarStyle__Group__2 )
+            // InternalTableDSL.g:11280:2: rule__PropertyProgressbarStyle__Group__1__Impl rule__PropertyProgressbarStyle__Group__2
+            {
+            pushFollow(FOLLOW_77);
+            rule__PropertyProgressbarStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyProgressbarStyle__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyProgressbarStyle__Group__1"
+
+
+    // $ANTLR start "rule__PropertyProgressbarStyle__Group__1__Impl"
+    // InternalTableDSL.g:11287:1: rule__PropertyProgressbarStyle__Group__1__Impl : ( 'progressbarStyle' ) ;
+    public final void rule__PropertyProgressbarStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11291:1: ( ( 'progressbarStyle' ) )
+            // InternalTableDSL.g:11292:1: ( 'progressbarStyle' )
+            {
+            // InternalTableDSL.g:11292:1: ( 'progressbarStyle' )
+            // InternalTableDSL.g:11293:2: 'progressbarStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyProgressbarStyleAccess().getProgressbarStyleKeyword_1()); 
+            }
+            match(input,125,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyProgressbarStyleAccess().getProgressbarStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyProgressbarStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyProgressbarStyle__Group__2"
+    // InternalTableDSL.g:11302:1: rule__PropertyProgressbarStyle__Group__2 : rule__PropertyProgressbarStyle__Group__2__Impl rule__PropertyProgressbarStyle__Group__3 ;
+    public final void rule__PropertyProgressbarStyle__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11306:1: ( rule__PropertyProgressbarStyle__Group__2__Impl rule__PropertyProgressbarStyle__Group__3 )
+            // InternalTableDSL.g:11307:2: rule__PropertyProgressbarStyle__Group__2__Impl rule__PropertyProgressbarStyle__Group__3
+            {
+            pushFollow(FOLLOW_78);
+            rule__PropertyProgressbarStyle__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyProgressbarStyle__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyProgressbarStyle__Group__2"
+
+
+    // $ANTLR start "rule__PropertyProgressbarStyle__Group__2__Impl"
+    // InternalTableDSL.g:11314:1: rule__PropertyProgressbarStyle__Group__2__Impl : ( 'max' ) ;
+    public final void rule__PropertyProgressbarStyle__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11318:1: ( ( 'max' ) )
+            // InternalTableDSL.g:11319:1: ( 'max' )
+            {
+            // InternalTableDSL.g:11319:1: ( 'max' )
+            // InternalTableDSL.g:11320:2: 'max'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyProgressbarStyleAccess().getMaxKeyword_2()); 
+            }
+            match(input,126,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyProgressbarStyleAccess().getMaxKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyProgressbarStyle__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyProgressbarStyle__Group__3"
+    // InternalTableDSL.g:11329:1: rule__PropertyProgressbarStyle__Group__3 : rule__PropertyProgressbarStyle__Group__3__Impl ;
+    public final void rule__PropertyProgressbarStyle__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11333:1: ( rule__PropertyProgressbarStyle__Group__3__Impl )
+            // InternalTableDSL.g:11334:2: rule__PropertyProgressbarStyle__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyProgressbarStyle__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyProgressbarStyle__Group__3"
+
+
+    // $ANTLR start "rule__PropertyProgressbarStyle__Group__3__Impl"
+    // InternalTableDSL.g:11340:1: rule__PropertyProgressbarStyle__Group__3__Impl : ( ( rule__PropertyProgressbarStyle__MaxValueAssignment_3 ) ) ;
+    public final void rule__PropertyProgressbarStyle__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11344:1: ( ( ( rule__PropertyProgressbarStyle__MaxValueAssignment_3 ) ) )
+            // InternalTableDSL.g:11345:1: ( ( rule__PropertyProgressbarStyle__MaxValueAssignment_3 ) )
+            {
+            // InternalTableDSL.g:11345:1: ( ( rule__PropertyProgressbarStyle__MaxValueAssignment_3 ) )
+            // InternalTableDSL.g:11346:2: ( rule__PropertyProgressbarStyle__MaxValueAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueAssignment_3()); 
+            }
+            // InternalTableDSL.g:11347:2: ( rule__PropertyProgressbarStyle__MaxValueAssignment_3 )
+            // InternalTableDSL.g:11347:3: rule__PropertyProgressbarStyle__MaxValueAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyProgressbarStyle__MaxValueAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyProgressbarStyle__Group__3__Impl"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__0"
+    // InternalTableDSL.g:11356:1: rule__GridPropIndicatorStyle__Group__0 : rule__GridPropIndicatorStyle__Group__0__Impl rule__GridPropIndicatorStyle__Group__1 ;
+    public final void rule__GridPropIndicatorStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11360:1: ( rule__GridPropIndicatorStyle__Group__0__Impl rule__GridPropIndicatorStyle__Group__1 )
+            // InternalTableDSL.g:11361:2: rule__GridPropIndicatorStyle__Group__0__Impl rule__GridPropIndicatorStyle__Group__1
+            {
+            pushFollow(FOLLOW_65);
+            rule__GridPropIndicatorStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__GridPropIndicatorStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__0"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__0__Impl"
+    // InternalTableDSL.g:11368:1: rule__GridPropIndicatorStyle__Group__0__Impl : ( () ) ;
+    public final void rule__GridPropIndicatorStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11372:1: ( ( () ) )
+            // InternalTableDSL.g:11373:1: ( () )
+            {
+            // InternalTableDSL.g:11373:1: ( () )
+            // InternalTableDSL.g:11374:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getGridPropIndicatorStyleAccess().getCxGridPropIndicatorStyleAction_0()); 
+            }
+            // InternalTableDSL.g:11375:2: ()
+            // InternalTableDSL.g:11375:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getGridPropIndicatorStyleAccess().getCxGridPropIndicatorStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__1"
+    // InternalTableDSL.g:11383:1: rule__GridPropIndicatorStyle__Group__1 : rule__GridPropIndicatorStyle__Group__1__Impl rule__GridPropIndicatorStyle__Group__2 ;
+    public final void rule__GridPropIndicatorStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11387:1: ( rule__GridPropIndicatorStyle__Group__1__Impl rule__GridPropIndicatorStyle__Group__2 )
+            // InternalTableDSL.g:11388:2: rule__GridPropIndicatorStyle__Group__1__Impl rule__GridPropIndicatorStyle__Group__2
+            {
+            pushFollow(FOLLOW_79);
+            rule__GridPropIndicatorStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__GridPropIndicatorStyle__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__1"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__1__Impl"
+    // InternalTableDSL.g:11395:1: rule__GridPropIndicatorStyle__Group__1__Impl : ( 'indicatorStyle' ) ;
+    public final void rule__GridPropIndicatorStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11399:1: ( ( 'indicatorStyle' ) )
+            // InternalTableDSL.g:11400:1: ( 'indicatorStyle' )
+            {
+            // InternalTableDSL.g:11400:1: ( 'indicatorStyle' )
+            // InternalTableDSL.g:11401:2: 'indicatorStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getGridPropIndicatorStyleAccess().getIndicatorStyleKeyword_1()); 
+            }
+            match(input,127,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getGridPropIndicatorStyleAccess().getIndicatorStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__2"
+    // InternalTableDSL.g:11410:1: rule__GridPropIndicatorStyle__Group__2 : rule__GridPropIndicatorStyle__Group__2__Impl rule__GridPropIndicatorStyle__Group__3 ;
+    public final void rule__GridPropIndicatorStyle__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11414:1: ( rule__GridPropIndicatorStyle__Group__2__Impl rule__GridPropIndicatorStyle__Group__3 )
+            // InternalTableDSL.g:11415:2: rule__GridPropIndicatorStyle__Group__2__Impl rule__GridPropIndicatorStyle__Group__3
+            {
+            pushFollow(FOLLOW_78);
+            rule__GridPropIndicatorStyle__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__GridPropIndicatorStyle__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__2"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__2__Impl"
+    // InternalTableDSL.g:11422:1: rule__GridPropIndicatorStyle__Group__2__Impl : ( 'greenFrom' ) ;
+    public final void rule__GridPropIndicatorStyle__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11426:1: ( ( 'greenFrom' ) )
+            // InternalTableDSL.g:11427:1: ( 'greenFrom' )
+            {
+            // InternalTableDSL.g:11427:1: ( 'greenFrom' )
+            // InternalTableDSL.g:11428:2: 'greenFrom'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getGridPropIndicatorStyleAccess().getGreenFromKeyword_2()); 
+            }
+            match(input,128,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getGridPropIndicatorStyleAccess().getGreenFromKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__2__Impl"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__3"
+    // InternalTableDSL.g:11437:1: rule__GridPropIndicatorStyle__Group__3 : rule__GridPropIndicatorStyle__Group__3__Impl rule__GridPropIndicatorStyle__Group__4 ;
+    public final void rule__GridPropIndicatorStyle__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11441:1: ( rule__GridPropIndicatorStyle__Group__3__Impl rule__GridPropIndicatorStyle__Group__4 )
+            // InternalTableDSL.g:11442:2: rule__GridPropIndicatorStyle__Group__3__Impl rule__GridPropIndicatorStyle__Group__4
+            {
+            pushFollow(FOLLOW_80);
+            rule__GridPropIndicatorStyle__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__GridPropIndicatorStyle__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__3"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__3__Impl"
+    // InternalTableDSL.g:11449:1: rule__GridPropIndicatorStyle__Group__3__Impl : ( ( rule__GridPropIndicatorStyle__GreenStartsAssignment_3 ) ) ;
+    public final void rule__GridPropIndicatorStyle__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11453:1: ( ( ( rule__GridPropIndicatorStyle__GreenStartsAssignment_3 ) ) )
+            // InternalTableDSL.g:11454:1: ( ( rule__GridPropIndicatorStyle__GreenStartsAssignment_3 ) )
+            {
+            // InternalTableDSL.g:11454:1: ( ( rule__GridPropIndicatorStyle__GreenStartsAssignment_3 ) )
+            // InternalTableDSL.g:11455:2: ( rule__GridPropIndicatorStyle__GreenStartsAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsAssignment_3()); 
+            }
+            // InternalTableDSL.g:11456:2: ( rule__GridPropIndicatorStyle__GreenStartsAssignment_3 )
+            // InternalTableDSL.g:11456:3: rule__GridPropIndicatorStyle__GreenStartsAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__GridPropIndicatorStyle__GreenStartsAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__3__Impl"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__4"
+    // InternalTableDSL.g:11464:1: rule__GridPropIndicatorStyle__Group__4 : rule__GridPropIndicatorStyle__Group__4__Impl rule__GridPropIndicatorStyle__Group__5 ;
+    public final void rule__GridPropIndicatorStyle__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11468:1: ( rule__GridPropIndicatorStyle__Group__4__Impl rule__GridPropIndicatorStyle__Group__5 )
+            // InternalTableDSL.g:11469:2: rule__GridPropIndicatorStyle__Group__4__Impl rule__GridPropIndicatorStyle__Group__5
+            {
+            pushFollow(FOLLOW_78);
+            rule__GridPropIndicatorStyle__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__GridPropIndicatorStyle__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__4"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__4__Impl"
+    // InternalTableDSL.g:11476:1: rule__GridPropIndicatorStyle__Group__4__Impl : ( 'redUntil' ) ;
+    public final void rule__GridPropIndicatorStyle__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11480:1: ( ( 'redUntil' ) )
+            // InternalTableDSL.g:11481:1: ( 'redUntil' )
+            {
+            // InternalTableDSL.g:11481:1: ( 'redUntil' )
+            // InternalTableDSL.g:11482:2: 'redUntil'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getGridPropIndicatorStyleAccess().getRedUntilKeyword_4()); 
+            }
+            match(input,129,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getGridPropIndicatorStyleAccess().getRedUntilKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__4__Impl"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__5"
+    // InternalTableDSL.g:11491:1: rule__GridPropIndicatorStyle__Group__5 : rule__GridPropIndicatorStyle__Group__5__Impl ;
+    public final void rule__GridPropIndicatorStyle__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11495:1: ( rule__GridPropIndicatorStyle__Group__5__Impl )
+            // InternalTableDSL.g:11496:2: rule__GridPropIndicatorStyle__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__GridPropIndicatorStyle__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__5"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__Group__5__Impl"
+    // InternalTableDSL.g:11502:1: rule__GridPropIndicatorStyle__Group__5__Impl : ( ( rule__GridPropIndicatorStyle__RedEndsAssignment_5 ) ) ;
+    public final void rule__GridPropIndicatorStyle__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11506:1: ( ( ( rule__GridPropIndicatorStyle__RedEndsAssignment_5 ) ) )
+            // InternalTableDSL.g:11507:1: ( ( rule__GridPropIndicatorStyle__RedEndsAssignment_5 ) )
+            {
+            // InternalTableDSL.g:11507:1: ( ( rule__GridPropIndicatorStyle__RedEndsAssignment_5 ) )
+            // InternalTableDSL.g:11508:2: ( rule__GridPropIndicatorStyle__RedEndsAssignment_5 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsAssignment_5()); 
+            }
+            // InternalTableDSL.g:11509:2: ( rule__GridPropIndicatorStyle__RedEndsAssignment_5 )
+            // InternalTableDSL.g:11509:3: rule__GridPropIndicatorStyle__RedEndsAssignment_5
+            {
+            pushFollow(FOLLOW_2);
+            rule__GridPropIndicatorStyle__RedEndsAssignment_5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsAssignment_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__Group__5__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__0"
+    // InternalTableDSL.g:11518:1: rule__PropertyQuantityStyle__Group__0 : rule__PropertyQuantityStyle__Group__0__Impl rule__PropertyQuantityStyle__Group__1 ;
+    public final void rule__PropertyQuantityStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11522:1: ( rule__PropertyQuantityStyle__Group__0__Impl rule__PropertyQuantityStyle__Group__1 )
+            // InternalTableDSL.g:11523:2: rule__PropertyQuantityStyle__Group__0__Impl rule__PropertyQuantityStyle__Group__1
+            {
+            pushFollow(FOLLOW_81);
+            rule__PropertyQuantityStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__0"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__0__Impl"
+    // InternalTableDSL.g:11530:1: rule__PropertyQuantityStyle__Group__0__Impl : ( () ) ;
+    public final void rule__PropertyQuantityStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11534:1: ( ( () ) )
+            // InternalTableDSL.g:11535:1: ( () )
+            {
+            // InternalTableDSL.g:11535:1: ( () )
+            // InternalTableDSL.g:11536:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getCxGridPropQuantityStyleAction_0()); 
+            }
+            // InternalTableDSL.g:11537:2: ()
+            // InternalTableDSL.g:11537:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getCxGridPropQuantityStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__1"
+    // InternalTableDSL.g:11545:1: rule__PropertyQuantityStyle__Group__1 : rule__PropertyQuantityStyle__Group__1__Impl rule__PropertyQuantityStyle__Group__2 ;
+    public final void rule__PropertyQuantityStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11549:1: ( rule__PropertyQuantityStyle__Group__1__Impl rule__PropertyQuantityStyle__Group__2 )
+            // InternalTableDSL.g:11550:2: rule__PropertyQuantityStyle__Group__1__Impl rule__PropertyQuantityStyle__Group__2
+            {
+            pushFollow(FOLLOW_82);
+            rule__PropertyQuantityStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__1"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__1__Impl"
+    // InternalTableDSL.g:11557:1: rule__PropertyQuantityStyle__Group__1__Impl : ( 'quantityStyle' ) ;
+    public final void rule__PropertyQuantityStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11561:1: ( ( 'quantityStyle' ) )
+            // InternalTableDSL.g:11562:1: ( 'quantityStyle' )
+            {
+            // InternalTableDSL.g:11562:1: ( 'quantityStyle' )
+            // InternalTableDSL.g:11563:2: 'quantityStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getQuantityStyleKeyword_1()); 
+            }
+            match(input,130,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getQuantityStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__2"
+    // InternalTableDSL.g:11572:1: rule__PropertyQuantityStyle__Group__2 : rule__PropertyQuantityStyle__Group__2__Impl rule__PropertyQuantityStyle__Group__3 ;
+    public final void rule__PropertyQuantityStyle__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11576:1: ( rule__PropertyQuantityStyle__Group__2__Impl rule__PropertyQuantityStyle__Group__3 )
+            // InternalTableDSL.g:11577:2: rule__PropertyQuantityStyle__Group__2__Impl rule__PropertyQuantityStyle__Group__3
+            {
+            pushFollow(FOLLOW_82);
+            rule__PropertyQuantityStyle__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__2"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__2__Impl"
+    // InternalTableDSL.g:11584:1: rule__PropertyQuantityStyle__Group__2__Impl : ( ( rule__PropertyQuantityStyle__HtmlPatternAssignment_2 )? ) ;
+    public final void rule__PropertyQuantityStyle__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11588:1: ( ( ( rule__PropertyQuantityStyle__HtmlPatternAssignment_2 )? ) )
+            // InternalTableDSL.g:11589:1: ( ( rule__PropertyQuantityStyle__HtmlPatternAssignment_2 )? )
+            {
+            // InternalTableDSL.g:11589:1: ( ( rule__PropertyQuantityStyle__HtmlPatternAssignment_2 )? )
+            // InternalTableDSL.g:11590:2: ( rule__PropertyQuantityStyle__HtmlPatternAssignment_2 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternAssignment_2()); 
+            }
+            // InternalTableDSL.g:11591:2: ( rule__PropertyQuantityStyle__HtmlPatternAssignment_2 )?
+            int alt84=2;
+            int LA84_0 = input.LA(1);
+
+            if ( (LA84_0==RULE_STRING) ) {
+                alt84=1;
+            }
+            switch (alt84) {
+                case 1 :
+                    // InternalTableDSL.g:11591:3: rule__PropertyQuantityStyle__HtmlPatternAssignment_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PropertyQuantityStyle__HtmlPatternAssignment_2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__3"
+    // InternalTableDSL.g:11599:1: rule__PropertyQuantityStyle__Group__3 : rule__PropertyQuantityStyle__Group__3__Impl rule__PropertyQuantityStyle__Group__4 ;
+    public final void rule__PropertyQuantityStyle__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11603:1: ( rule__PropertyQuantityStyle__Group__3__Impl rule__PropertyQuantityStyle__Group__4 )
+            // InternalTableDSL.g:11604:2: rule__PropertyQuantityStyle__Group__3__Impl rule__PropertyQuantityStyle__Group__4
+            {
+            pushFollow(FOLLOW_83);
+            rule__PropertyQuantityStyle__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__3"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__3__Impl"
+    // InternalTableDSL.g:11611:1: rule__PropertyQuantityStyle__Group__3__Impl : ( 'value' ) ;
+    public final void rule__PropertyQuantityStyle__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11615:1: ( ( 'value' ) )
+            // InternalTableDSL.g:11616:1: ( 'value' )
+            {
+            // InternalTableDSL.g:11616:1: ( 'value' )
+            // InternalTableDSL.g:11617:2: 'value'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getValueKeyword_3()); 
+            }
+            match(input,85,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getValueKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__4"
+    // InternalTableDSL.g:11626:1: rule__PropertyQuantityStyle__Group__4 : rule__PropertyQuantityStyle__Group__4__Impl rule__PropertyQuantityStyle__Group__5 ;
+    public final void rule__PropertyQuantityStyle__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11630:1: ( rule__PropertyQuantityStyle__Group__4__Impl rule__PropertyQuantityStyle__Group__5 )
+            // InternalTableDSL.g:11631:2: rule__PropertyQuantityStyle__Group__4__Impl rule__PropertyQuantityStyle__Group__5
+            {
+            pushFollow(FOLLOW_7);
+            rule__PropertyQuantityStyle__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__4"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__4__Impl"
+    // InternalTableDSL.g:11638:1: rule__PropertyQuantityStyle__Group__4__Impl : ( '=' ) ;
+    public final void rule__PropertyQuantityStyle__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11642:1: ( ( '=' ) )
+            // InternalTableDSL.g:11643:1: ( '=' )
+            {
+            // InternalTableDSL.g:11643:1: ( '=' )
+            // InternalTableDSL.g:11644:2: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_4()); 
+            }
+            match(input,15,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__4__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__5"
+    // InternalTableDSL.g:11653:1: rule__PropertyQuantityStyle__Group__5 : rule__PropertyQuantityStyle__Group__5__Impl rule__PropertyQuantityStyle__Group__6 ;
+    public final void rule__PropertyQuantityStyle__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11657:1: ( rule__PropertyQuantityStyle__Group__5__Impl rule__PropertyQuantityStyle__Group__6 )
+            // InternalTableDSL.g:11658:2: rule__PropertyQuantityStyle__Group__5__Impl rule__PropertyQuantityStyle__Group__6
+            {
+            pushFollow(FOLLOW_84);
+            rule__PropertyQuantityStyle__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__6();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__5"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__5__Impl"
+    // InternalTableDSL.g:11665:1: rule__PropertyQuantityStyle__Group__5__Impl : ( ( rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5 ) ) ;
+    public final void rule__PropertyQuantityStyle__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11669:1: ( ( ( rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5 ) ) )
+            // InternalTableDSL.g:11670:1: ( ( rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5 ) )
+            {
+            // InternalTableDSL.g:11670:1: ( ( rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5 ) )
+            // InternalTableDSL.g:11671:2: ( rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathAssignment_5()); 
+            }
+            // InternalTableDSL.g:11672:2: ( rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5 )
+            // InternalTableDSL.g:11672:3: rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathAssignment_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__5__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__6"
+    // InternalTableDSL.g:11680:1: rule__PropertyQuantityStyle__Group__6 : rule__PropertyQuantityStyle__Group__6__Impl rule__PropertyQuantityStyle__Group__7 ;
+    public final void rule__PropertyQuantityStyle__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11684:1: ( rule__PropertyQuantityStyle__Group__6__Impl rule__PropertyQuantityStyle__Group__7 )
+            // InternalTableDSL.g:11685:2: rule__PropertyQuantityStyle__Group__6__Impl rule__PropertyQuantityStyle__Group__7
+            {
+            pushFollow(FOLLOW_84);
+            rule__PropertyQuantityStyle__Group__6__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__7();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__6"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__6__Impl"
+    // InternalTableDSL.g:11692:1: rule__PropertyQuantityStyle__Group__6__Impl : ( ( rule__PropertyQuantityStyle__Group_6__0 )? ) ;
+    public final void rule__PropertyQuantityStyle__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11696:1: ( ( ( rule__PropertyQuantityStyle__Group_6__0 )? ) )
+            // InternalTableDSL.g:11697:1: ( ( rule__PropertyQuantityStyle__Group_6__0 )? )
+            {
+            // InternalTableDSL.g:11697:1: ( ( rule__PropertyQuantityStyle__Group_6__0 )? )
+            // InternalTableDSL.g:11698:2: ( rule__PropertyQuantityStyle__Group_6__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getGroup_6()); 
+            }
+            // InternalTableDSL.g:11699:2: ( rule__PropertyQuantityStyle__Group_6__0 )?
+            int alt85=2;
+            int LA85_0 = input.LA(1);
+
+            if ( (LA85_0==132) ) {
+                alt85=1;
+            }
+            switch (alt85) {
+                case 1 :
+                    // InternalTableDSL.g:11699:3: rule__PropertyQuantityStyle__Group_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PropertyQuantityStyle__Group_6__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getGroup_6()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__6__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__7"
+    // InternalTableDSL.g:11707:1: rule__PropertyQuantityStyle__Group__7 : rule__PropertyQuantityStyle__Group__7__Impl rule__PropertyQuantityStyle__Group__8 ;
+    public final void rule__PropertyQuantityStyle__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11711:1: ( rule__PropertyQuantityStyle__Group__7__Impl rule__PropertyQuantityStyle__Group__8 )
+            // InternalTableDSL.g:11712:2: rule__PropertyQuantityStyle__Group__7__Impl rule__PropertyQuantityStyle__Group__8
+            {
+            pushFollow(FOLLOW_83);
+            rule__PropertyQuantityStyle__Group__7__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__8();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__7"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__7__Impl"
+    // InternalTableDSL.g:11719:1: rule__PropertyQuantityStyle__Group__7__Impl : ( 'uom' ) ;
+    public final void rule__PropertyQuantityStyle__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11723:1: ( ( 'uom' ) )
+            // InternalTableDSL.g:11724:1: ( 'uom' )
+            {
+            // InternalTableDSL.g:11724:1: ( 'uom' )
+            // InternalTableDSL.g:11725:2: 'uom'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getUomKeyword_7()); 
+            }
+            match(input,131,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getUomKeyword_7()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__7__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__8"
+    // InternalTableDSL.g:11734:1: rule__PropertyQuantityStyle__Group__8 : rule__PropertyQuantityStyle__Group__8__Impl rule__PropertyQuantityStyle__Group__9 ;
+    public final void rule__PropertyQuantityStyle__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11738:1: ( rule__PropertyQuantityStyle__Group__8__Impl rule__PropertyQuantityStyle__Group__9 )
+            // InternalTableDSL.g:11739:2: rule__PropertyQuantityStyle__Group__8__Impl rule__PropertyQuantityStyle__Group__9
+            {
+            pushFollow(FOLLOW_7);
+            rule__PropertyQuantityStyle__Group__8__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__9();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__8"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__8__Impl"
+    // InternalTableDSL.g:11746:1: rule__PropertyQuantityStyle__Group__8__Impl : ( '=' ) ;
+    public final void rule__PropertyQuantityStyle__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11750:1: ( ( '=' ) )
+            // InternalTableDSL.g:11751:1: ( '=' )
+            {
+            // InternalTableDSL.g:11751:1: ( '=' )
+            // InternalTableDSL.g:11752:2: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_8()); 
+            }
+            match(input,15,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_8()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__8__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__9"
+    // InternalTableDSL.g:11761:1: rule__PropertyQuantityStyle__Group__9 : rule__PropertyQuantityStyle__Group__9__Impl ;
+    public final void rule__PropertyQuantityStyle__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11765:1: ( rule__PropertyQuantityStyle__Group__9__Impl )
+            // InternalTableDSL.g:11766:2: rule__PropertyQuantityStyle__Group__9__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group__9__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__9"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group__9__Impl"
+    // InternalTableDSL.g:11772:1: rule__PropertyQuantityStyle__Group__9__Impl : ( ( rule__PropertyQuantityStyle__UomPropertyPathAssignment_9 ) ) ;
+    public final void rule__PropertyQuantityStyle__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11776:1: ( ( ( rule__PropertyQuantityStyle__UomPropertyPathAssignment_9 ) ) )
+            // InternalTableDSL.g:11777:1: ( ( rule__PropertyQuantityStyle__UomPropertyPathAssignment_9 ) )
+            {
+            // InternalTableDSL.g:11777:1: ( ( rule__PropertyQuantityStyle__UomPropertyPathAssignment_9 ) )
+            // InternalTableDSL.g:11778:2: ( rule__PropertyQuantityStyle__UomPropertyPathAssignment_9 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathAssignment_9()); 
+            }
+            // InternalTableDSL.g:11779:2: ( rule__PropertyQuantityStyle__UomPropertyPathAssignment_9 )
+            // InternalTableDSL.g:11779:3: rule__PropertyQuantityStyle__UomPropertyPathAssignment_9
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__UomPropertyPathAssignment_9();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathAssignment_9()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group__9__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group_6__0"
+    // InternalTableDSL.g:11788:1: rule__PropertyQuantityStyle__Group_6__0 : rule__PropertyQuantityStyle__Group_6__0__Impl rule__PropertyQuantityStyle__Group_6__1 ;
+    public final void rule__PropertyQuantityStyle__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11792:1: ( rule__PropertyQuantityStyle__Group_6__0__Impl rule__PropertyQuantityStyle__Group_6__1 )
+            // InternalTableDSL.g:11793:2: rule__PropertyQuantityStyle__Group_6__0__Impl rule__PropertyQuantityStyle__Group_6__1
+            {
+            pushFollow(FOLLOW_74);
+            rule__PropertyQuantityStyle__Group_6__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group_6__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group_6__0"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group_6__0__Impl"
+    // InternalTableDSL.g:11800:1: rule__PropertyQuantityStyle__Group_6__0__Impl : ( '(' ) ;
+    public final void rule__PropertyQuantityStyle__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11804:1: ( ( '(' ) )
+            // InternalTableDSL.g:11805:1: ( '(' )
+            {
+            // InternalTableDSL.g:11805:1: ( '(' )
+            // InternalTableDSL.g:11806:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getLeftParenthesisKeyword_6_0()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getLeftParenthesisKeyword_6_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group_6__1"
+    // InternalTableDSL.g:11815:1: rule__PropertyQuantityStyle__Group_6__1 : rule__PropertyQuantityStyle__Group_6__1__Impl rule__PropertyQuantityStyle__Group_6__2 ;
+    public final void rule__PropertyQuantityStyle__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11819:1: ( rule__PropertyQuantityStyle__Group_6__1__Impl rule__PropertyQuantityStyle__Group_6__2 )
+            // InternalTableDSL.g:11820:2: rule__PropertyQuantityStyle__Group_6__1__Impl rule__PropertyQuantityStyle__Group_6__2
+            {
+            pushFollow(FOLLOW_14);
+            rule__PropertyQuantityStyle__Group_6__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group_6__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group_6__1"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group_6__1__Impl"
+    // InternalTableDSL.g:11827:1: rule__PropertyQuantityStyle__Group_6__1__Impl : ( 'format' ) ;
+    public final void rule__PropertyQuantityStyle__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11831:1: ( ( 'format' ) )
+            // InternalTableDSL.g:11832:1: ( 'format' )
+            {
+            // InternalTableDSL.g:11832:1: ( 'format' )
+            // InternalTableDSL.g:11833:2: 'format'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getFormatKeyword_6_1()); 
+            }
+            match(input,123,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getFormatKeyword_6_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group_6__2"
+    // InternalTableDSL.g:11842:1: rule__PropertyQuantityStyle__Group_6__2 : rule__PropertyQuantityStyle__Group_6__2__Impl rule__PropertyQuantityStyle__Group_6__3 ;
+    public final void rule__PropertyQuantityStyle__Group_6__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11846:1: ( rule__PropertyQuantityStyle__Group_6__2__Impl rule__PropertyQuantityStyle__Group_6__3 )
+            // InternalTableDSL.g:11847:2: rule__PropertyQuantityStyle__Group_6__2__Impl rule__PropertyQuantityStyle__Group_6__3
+            {
+            pushFollow(FOLLOW_85);
+            rule__PropertyQuantityStyle__Group_6__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group_6__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group_6__2"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group_6__2__Impl"
+    // InternalTableDSL.g:11854:1: rule__PropertyQuantityStyle__Group_6__2__Impl : ( ( rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2 ) ) ;
+    public final void rule__PropertyQuantityStyle__Group_6__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11858:1: ( ( ( rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2 ) ) )
+            // InternalTableDSL.g:11859:1: ( ( rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2 ) )
+            {
+            // InternalTableDSL.g:11859:1: ( ( rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2 ) )
+            // InternalTableDSL.g:11860:2: ( rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatAssignment_6_2()); 
+            }
+            // InternalTableDSL.g:11861:2: ( rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2 )
+            // InternalTableDSL.g:11861:3: rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatAssignment_6_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group_6__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group_6__3"
+    // InternalTableDSL.g:11869:1: rule__PropertyQuantityStyle__Group_6__3 : rule__PropertyQuantityStyle__Group_6__3__Impl ;
+    public final void rule__PropertyQuantityStyle__Group_6__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11873:1: ( rule__PropertyQuantityStyle__Group_6__3__Impl )
+            // InternalTableDSL.g:11874:2: rule__PropertyQuantityStyle__Group_6__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyQuantityStyle__Group_6__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group_6__3"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__Group_6__3__Impl"
+    // InternalTableDSL.g:11880:1: rule__PropertyQuantityStyle__Group_6__3__Impl : ( ')' ) ;
+    public final void rule__PropertyQuantityStyle__Group_6__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11884:1: ( ( ')' ) )
+            // InternalTableDSL.g:11885:1: ( ')' )
+            {
+            // InternalTableDSL.g:11885:1: ( ')' )
+            // InternalTableDSL.g:11886:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getRightParenthesisKeyword_6_3()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getRightParenthesisKeyword_6_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__Group_6__3__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__0"
+    // InternalTableDSL.g:11896:1: rule__PropertyPriceStyle__Group__0 : rule__PropertyPriceStyle__Group__0__Impl rule__PropertyPriceStyle__Group__1 ;
+    public final void rule__PropertyPriceStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11900:1: ( rule__PropertyPriceStyle__Group__0__Impl rule__PropertyPriceStyle__Group__1 )
+            // InternalTableDSL.g:11901:2: rule__PropertyPriceStyle__Group__0__Impl rule__PropertyPriceStyle__Group__1
+            {
+            pushFollow(FOLLOW_86);
+            rule__PropertyPriceStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__0"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__0__Impl"
+    // InternalTableDSL.g:11908:1: rule__PropertyPriceStyle__Group__0__Impl : ( () ) ;
+    public final void rule__PropertyPriceStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11912:1: ( ( () ) )
+            // InternalTableDSL.g:11913:1: ( () )
+            {
+            // InternalTableDSL.g:11913:1: ( () )
+            // InternalTableDSL.g:11914:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getCxGridPropPriceStyleAction_0()); 
+            }
+            // InternalTableDSL.g:11915:2: ()
+            // InternalTableDSL.g:11915:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getCxGridPropPriceStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__1"
+    // InternalTableDSL.g:11923:1: rule__PropertyPriceStyle__Group__1 : rule__PropertyPriceStyle__Group__1__Impl rule__PropertyPriceStyle__Group__2 ;
+    public final void rule__PropertyPriceStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11927:1: ( rule__PropertyPriceStyle__Group__1__Impl rule__PropertyPriceStyle__Group__2 )
+            // InternalTableDSL.g:11928:2: rule__PropertyPriceStyle__Group__1__Impl rule__PropertyPriceStyle__Group__2
+            {
+            pushFollow(FOLLOW_82);
+            rule__PropertyPriceStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__1"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__1__Impl"
+    // InternalTableDSL.g:11935:1: rule__PropertyPriceStyle__Group__1__Impl : ( 'priceStyle' ) ;
+    public final void rule__PropertyPriceStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11939:1: ( ( 'priceStyle' ) )
+            // InternalTableDSL.g:11940:1: ( 'priceStyle' )
+            {
+            // InternalTableDSL.g:11940:1: ( 'priceStyle' )
+            // InternalTableDSL.g:11941:2: 'priceStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getPriceStyleKeyword_1()); 
+            }
+            match(input,134,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getPriceStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__2"
+    // InternalTableDSL.g:11950:1: rule__PropertyPriceStyle__Group__2 : rule__PropertyPriceStyle__Group__2__Impl rule__PropertyPriceStyle__Group__3 ;
+    public final void rule__PropertyPriceStyle__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11954:1: ( rule__PropertyPriceStyle__Group__2__Impl rule__PropertyPriceStyle__Group__3 )
+            // InternalTableDSL.g:11955:2: rule__PropertyPriceStyle__Group__2__Impl rule__PropertyPriceStyle__Group__3
+            {
+            pushFollow(FOLLOW_82);
+            rule__PropertyPriceStyle__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__2"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__2__Impl"
+    // InternalTableDSL.g:11962:1: rule__PropertyPriceStyle__Group__2__Impl : ( ( rule__PropertyPriceStyle__HtmlPatternAssignment_2 )? ) ;
+    public final void rule__PropertyPriceStyle__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11966:1: ( ( ( rule__PropertyPriceStyle__HtmlPatternAssignment_2 )? ) )
+            // InternalTableDSL.g:11967:1: ( ( rule__PropertyPriceStyle__HtmlPatternAssignment_2 )? )
+            {
+            // InternalTableDSL.g:11967:1: ( ( rule__PropertyPriceStyle__HtmlPatternAssignment_2 )? )
+            // InternalTableDSL.g:11968:2: ( rule__PropertyPriceStyle__HtmlPatternAssignment_2 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternAssignment_2()); 
+            }
+            // InternalTableDSL.g:11969:2: ( rule__PropertyPriceStyle__HtmlPatternAssignment_2 )?
+            int alt86=2;
+            int LA86_0 = input.LA(1);
+
+            if ( (LA86_0==RULE_STRING) ) {
+                alt86=1;
+            }
+            switch (alt86) {
+                case 1 :
+                    // InternalTableDSL.g:11969:3: rule__PropertyPriceStyle__HtmlPatternAssignment_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PropertyPriceStyle__HtmlPatternAssignment_2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__3"
+    // InternalTableDSL.g:11977:1: rule__PropertyPriceStyle__Group__3 : rule__PropertyPriceStyle__Group__3__Impl rule__PropertyPriceStyle__Group__4 ;
+    public final void rule__PropertyPriceStyle__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11981:1: ( rule__PropertyPriceStyle__Group__3__Impl rule__PropertyPriceStyle__Group__4 )
+            // InternalTableDSL.g:11982:2: rule__PropertyPriceStyle__Group__3__Impl rule__PropertyPriceStyle__Group__4
+            {
+            pushFollow(FOLLOW_83);
+            rule__PropertyPriceStyle__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__3"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__3__Impl"
+    // InternalTableDSL.g:11989:1: rule__PropertyPriceStyle__Group__3__Impl : ( 'value' ) ;
+    public final void rule__PropertyPriceStyle__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:11993:1: ( ( 'value' ) )
+            // InternalTableDSL.g:11994:1: ( 'value' )
+            {
+            // InternalTableDSL.g:11994:1: ( 'value' )
+            // InternalTableDSL.g:11995:2: 'value'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getValueKeyword_3()); 
+            }
+            match(input,85,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getValueKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__4"
+    // InternalTableDSL.g:12004:1: rule__PropertyPriceStyle__Group__4 : rule__PropertyPriceStyle__Group__4__Impl rule__PropertyPriceStyle__Group__5 ;
+    public final void rule__PropertyPriceStyle__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12008:1: ( rule__PropertyPriceStyle__Group__4__Impl rule__PropertyPriceStyle__Group__5 )
+            // InternalTableDSL.g:12009:2: rule__PropertyPriceStyle__Group__4__Impl rule__PropertyPriceStyle__Group__5
+            {
+            pushFollow(FOLLOW_7);
+            rule__PropertyPriceStyle__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__4"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__4__Impl"
+    // InternalTableDSL.g:12016:1: rule__PropertyPriceStyle__Group__4__Impl : ( '=' ) ;
+    public final void rule__PropertyPriceStyle__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12020:1: ( ( '=' ) )
+            // InternalTableDSL.g:12021:1: ( '=' )
+            {
+            // InternalTableDSL.g:12021:1: ( '=' )
+            // InternalTableDSL.g:12022:2: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_4()); 
+            }
+            match(input,15,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__4__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__5"
+    // InternalTableDSL.g:12031:1: rule__PropertyPriceStyle__Group__5 : rule__PropertyPriceStyle__Group__5__Impl rule__PropertyPriceStyle__Group__6 ;
+    public final void rule__PropertyPriceStyle__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12035:1: ( rule__PropertyPriceStyle__Group__5__Impl rule__PropertyPriceStyle__Group__6 )
+            // InternalTableDSL.g:12036:2: rule__PropertyPriceStyle__Group__5__Impl rule__PropertyPriceStyle__Group__6
+            {
+            pushFollow(FOLLOW_87);
+            rule__PropertyPriceStyle__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__6();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__5"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__5__Impl"
+    // InternalTableDSL.g:12043:1: rule__PropertyPriceStyle__Group__5__Impl : ( ( rule__PropertyPriceStyle__ValuePropertyPathAssignment_5 ) ) ;
+    public final void rule__PropertyPriceStyle__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12047:1: ( ( ( rule__PropertyPriceStyle__ValuePropertyPathAssignment_5 ) ) )
+            // InternalTableDSL.g:12048:1: ( ( rule__PropertyPriceStyle__ValuePropertyPathAssignment_5 ) )
+            {
+            // InternalTableDSL.g:12048:1: ( ( rule__PropertyPriceStyle__ValuePropertyPathAssignment_5 ) )
+            // InternalTableDSL.g:12049:2: ( rule__PropertyPriceStyle__ValuePropertyPathAssignment_5 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathAssignment_5()); 
+            }
+            // InternalTableDSL.g:12050:2: ( rule__PropertyPriceStyle__ValuePropertyPathAssignment_5 )
+            // InternalTableDSL.g:12050:3: rule__PropertyPriceStyle__ValuePropertyPathAssignment_5
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__ValuePropertyPathAssignment_5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathAssignment_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__5__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__6"
+    // InternalTableDSL.g:12058:1: rule__PropertyPriceStyle__Group__6 : rule__PropertyPriceStyle__Group__6__Impl rule__PropertyPriceStyle__Group__7 ;
+    public final void rule__PropertyPriceStyle__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12062:1: ( rule__PropertyPriceStyle__Group__6__Impl rule__PropertyPriceStyle__Group__7 )
+            // InternalTableDSL.g:12063:2: rule__PropertyPriceStyle__Group__6__Impl rule__PropertyPriceStyle__Group__7
+            {
+            pushFollow(FOLLOW_87);
+            rule__PropertyPriceStyle__Group__6__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__7();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__6"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__6__Impl"
+    // InternalTableDSL.g:12070:1: rule__PropertyPriceStyle__Group__6__Impl : ( ( rule__PropertyPriceStyle__Group_6__0 )? ) ;
+    public final void rule__PropertyPriceStyle__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12074:1: ( ( ( rule__PropertyPriceStyle__Group_6__0 )? ) )
+            // InternalTableDSL.g:12075:1: ( ( rule__PropertyPriceStyle__Group_6__0 )? )
+            {
+            // InternalTableDSL.g:12075:1: ( ( rule__PropertyPriceStyle__Group_6__0 )? )
+            // InternalTableDSL.g:12076:2: ( rule__PropertyPriceStyle__Group_6__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getGroup_6()); 
+            }
+            // InternalTableDSL.g:12077:2: ( rule__PropertyPriceStyle__Group_6__0 )?
+            int alt87=2;
+            int LA87_0 = input.LA(1);
+
+            if ( (LA87_0==132) ) {
+                alt87=1;
+            }
+            switch (alt87) {
+                case 1 :
+                    // InternalTableDSL.g:12077:3: rule__PropertyPriceStyle__Group_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PropertyPriceStyle__Group_6__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getGroup_6()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__6__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__7"
+    // InternalTableDSL.g:12085:1: rule__PropertyPriceStyle__Group__7 : rule__PropertyPriceStyle__Group__7__Impl rule__PropertyPriceStyle__Group__8 ;
+    public final void rule__PropertyPriceStyle__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12089:1: ( rule__PropertyPriceStyle__Group__7__Impl rule__PropertyPriceStyle__Group__8 )
+            // InternalTableDSL.g:12090:2: rule__PropertyPriceStyle__Group__7__Impl rule__PropertyPriceStyle__Group__8
+            {
+            pushFollow(FOLLOW_83);
+            rule__PropertyPriceStyle__Group__7__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__8();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__7"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__7__Impl"
+    // InternalTableDSL.g:12097:1: rule__PropertyPriceStyle__Group__7__Impl : ( 'currency' ) ;
+    public final void rule__PropertyPriceStyle__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12101:1: ( ( 'currency' ) )
+            // InternalTableDSL.g:12102:1: ( 'currency' )
+            {
+            // InternalTableDSL.g:12102:1: ( 'currency' )
+            // InternalTableDSL.g:12103:2: 'currency'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getCurrencyKeyword_7()); 
+            }
+            match(input,135,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getCurrencyKeyword_7()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__7__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__8"
+    // InternalTableDSL.g:12112:1: rule__PropertyPriceStyle__Group__8 : rule__PropertyPriceStyle__Group__8__Impl rule__PropertyPriceStyle__Group__9 ;
+    public final void rule__PropertyPriceStyle__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12116:1: ( rule__PropertyPriceStyle__Group__8__Impl rule__PropertyPriceStyle__Group__9 )
+            // InternalTableDSL.g:12117:2: rule__PropertyPriceStyle__Group__8__Impl rule__PropertyPriceStyle__Group__9
+            {
+            pushFollow(FOLLOW_7);
+            rule__PropertyPriceStyle__Group__8__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__9();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__8"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__8__Impl"
+    // InternalTableDSL.g:12124:1: rule__PropertyPriceStyle__Group__8__Impl : ( '=' ) ;
+    public final void rule__PropertyPriceStyle__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12128:1: ( ( '=' ) )
+            // InternalTableDSL.g:12129:1: ( '=' )
+            {
+            // InternalTableDSL.g:12129:1: ( '=' )
+            // InternalTableDSL.g:12130:2: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_8()); 
+            }
+            match(input,15,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_8()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__8__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__9"
+    // InternalTableDSL.g:12139:1: rule__PropertyPriceStyle__Group__9 : rule__PropertyPriceStyle__Group__9__Impl ;
+    public final void rule__PropertyPriceStyle__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12143:1: ( rule__PropertyPriceStyle__Group__9__Impl )
+            // InternalTableDSL.g:12144:2: rule__PropertyPriceStyle__Group__9__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group__9__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__9"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group__9__Impl"
+    // InternalTableDSL.g:12150:1: rule__PropertyPriceStyle__Group__9__Impl : ( ( rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9 ) ) ;
+    public final void rule__PropertyPriceStyle__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12154:1: ( ( ( rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9 ) ) )
+            // InternalTableDSL.g:12155:1: ( ( rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9 ) )
+            {
+            // InternalTableDSL.g:12155:1: ( ( rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9 ) )
+            // InternalTableDSL.g:12156:2: ( rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathAssignment_9()); 
+            }
+            // InternalTableDSL.g:12157:2: ( rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9 )
+            // InternalTableDSL.g:12157:3: rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathAssignment_9()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group__9__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group_6__0"
+    // InternalTableDSL.g:12166:1: rule__PropertyPriceStyle__Group_6__0 : rule__PropertyPriceStyle__Group_6__0__Impl rule__PropertyPriceStyle__Group_6__1 ;
+    public final void rule__PropertyPriceStyle__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12170:1: ( rule__PropertyPriceStyle__Group_6__0__Impl rule__PropertyPriceStyle__Group_6__1 )
+            // InternalTableDSL.g:12171:2: rule__PropertyPriceStyle__Group_6__0__Impl rule__PropertyPriceStyle__Group_6__1
+            {
+            pushFollow(FOLLOW_74);
+            rule__PropertyPriceStyle__Group_6__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group_6__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group_6__0"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group_6__0__Impl"
+    // InternalTableDSL.g:12178:1: rule__PropertyPriceStyle__Group_6__0__Impl : ( '(' ) ;
+    public final void rule__PropertyPriceStyle__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12182:1: ( ( '(' ) )
+            // InternalTableDSL.g:12183:1: ( '(' )
+            {
+            // InternalTableDSL.g:12183:1: ( '(' )
+            // InternalTableDSL.g:12184:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getLeftParenthesisKeyword_6_0()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getLeftParenthesisKeyword_6_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group_6__1"
+    // InternalTableDSL.g:12193:1: rule__PropertyPriceStyle__Group_6__1 : rule__PropertyPriceStyle__Group_6__1__Impl rule__PropertyPriceStyle__Group_6__2 ;
+    public final void rule__PropertyPriceStyle__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12197:1: ( rule__PropertyPriceStyle__Group_6__1__Impl rule__PropertyPriceStyle__Group_6__2 )
+            // InternalTableDSL.g:12198:2: rule__PropertyPriceStyle__Group_6__1__Impl rule__PropertyPriceStyle__Group_6__2
+            {
+            pushFollow(FOLLOW_14);
+            rule__PropertyPriceStyle__Group_6__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group_6__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group_6__1"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group_6__1__Impl"
+    // InternalTableDSL.g:12205:1: rule__PropertyPriceStyle__Group_6__1__Impl : ( 'format' ) ;
+    public final void rule__PropertyPriceStyle__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12209:1: ( ( 'format' ) )
+            // InternalTableDSL.g:12210:1: ( 'format' )
+            {
+            // InternalTableDSL.g:12210:1: ( 'format' )
+            // InternalTableDSL.g:12211:2: 'format'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getFormatKeyword_6_1()); 
+            }
+            match(input,123,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getFormatKeyword_6_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group_6__2"
+    // InternalTableDSL.g:12220:1: rule__PropertyPriceStyle__Group_6__2 : rule__PropertyPriceStyle__Group_6__2__Impl rule__PropertyPriceStyle__Group_6__3 ;
+    public final void rule__PropertyPriceStyle__Group_6__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12224:1: ( rule__PropertyPriceStyle__Group_6__2__Impl rule__PropertyPriceStyle__Group_6__3 )
+            // InternalTableDSL.g:12225:2: rule__PropertyPriceStyle__Group_6__2__Impl rule__PropertyPriceStyle__Group_6__3
+            {
+            pushFollow(FOLLOW_85);
+            rule__PropertyPriceStyle__Group_6__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group_6__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group_6__2"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group_6__2__Impl"
+    // InternalTableDSL.g:12232:1: rule__PropertyPriceStyle__Group_6__2__Impl : ( ( rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2 ) ) ;
+    public final void rule__PropertyPriceStyle__Group_6__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12236:1: ( ( ( rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2 ) ) )
+            // InternalTableDSL.g:12237:1: ( ( rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2 ) )
+            {
+            // InternalTableDSL.g:12237:1: ( ( rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2 ) )
+            // InternalTableDSL.g:12238:2: ( rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatAssignment_6_2()); 
+            }
+            // InternalTableDSL.g:12239:2: ( rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2 )
+            // InternalTableDSL.g:12239:3: rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatAssignment_6_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group_6__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group_6__3"
+    // InternalTableDSL.g:12247:1: rule__PropertyPriceStyle__Group_6__3 : rule__PropertyPriceStyle__Group_6__3__Impl ;
+    public final void rule__PropertyPriceStyle__Group_6__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12251:1: ( rule__PropertyPriceStyle__Group_6__3__Impl )
+            // InternalTableDSL.g:12252:2: rule__PropertyPriceStyle__Group_6__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyPriceStyle__Group_6__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group_6__3"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__Group_6__3__Impl"
+    // InternalTableDSL.g:12258:1: rule__PropertyPriceStyle__Group_6__3__Impl : ( ')' ) ;
+    public final void rule__PropertyPriceStyle__Group_6__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12262:1: ( ( ')' ) )
+            // InternalTableDSL.g:12263:1: ( ')' )
+            {
+            // InternalTableDSL.g:12263:1: ( ')' )
+            // InternalTableDSL.g:12264:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getRightParenthesisKeyword_6_3()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getRightParenthesisKeyword_6_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__Group_6__3__Impl"
+
+
+    // $ANTLR start "rule__PropertyTextStyle__Group__0"
+    // InternalTableDSL.g:12274:1: rule__PropertyTextStyle__Group__0 : rule__PropertyTextStyle__Group__0__Impl rule__PropertyTextStyle__Group__1 ;
+    public final void rule__PropertyTextStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12278:1: ( rule__PropertyTextStyle__Group__0__Impl rule__PropertyTextStyle__Group__1 )
+            // InternalTableDSL.g:12279:2: rule__PropertyTextStyle__Group__0__Impl rule__PropertyTextStyle__Group__1
+            {
+            pushFollow(FOLLOW_88);
+            rule__PropertyTextStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyTextStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyTextStyle__Group__0"
+
+
+    // $ANTLR start "rule__PropertyTextStyle__Group__0__Impl"
+    // InternalTableDSL.g:12286:1: rule__PropertyTextStyle__Group__0__Impl : ( () ) ;
+    public final void rule__PropertyTextStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12290:1: ( ( () ) )
+            // InternalTableDSL.g:12291:1: ( () )
+            {
+            // InternalTableDSL.g:12291:1: ( () )
+            // InternalTableDSL.g:12292:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyTextStyleAccess().getCxGridPropTextStyleAction_0()); 
+            }
+            // InternalTableDSL.g:12293:2: ()
+            // InternalTableDSL.g:12293:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyTextStyleAccess().getCxGridPropTextStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyTextStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyTextStyle__Group__1"
+    // InternalTableDSL.g:12301:1: rule__PropertyTextStyle__Group__1 : rule__PropertyTextStyle__Group__1__Impl ;
+    public final void rule__PropertyTextStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12305:1: ( rule__PropertyTextStyle__Group__1__Impl )
+            // InternalTableDSL.g:12306:2: rule__PropertyTextStyle__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyTextStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyTextStyle__Group__1"
+
+
+    // $ANTLR start "rule__PropertyTextStyle__Group__1__Impl"
+    // InternalTableDSL.g:12312:1: rule__PropertyTextStyle__Group__1__Impl : ( 'textStyle' ) ;
+    public final void rule__PropertyTextStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12316:1: ( ( 'textStyle' ) )
+            // InternalTableDSL.g:12317:1: ( 'textStyle' )
+            {
+            // InternalTableDSL.g:12317:1: ( 'textStyle' )
+            // InternalTableDSL.g:12318:2: 'textStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyTextStyleAccess().getTextStyleKeyword_1()); 
+            }
+            match(input,136,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyTextStyleAccess().getTextStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyTextStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__0"
+    // InternalTableDSL.g:12328:1: rule__PropertyImageStyle__Group__0 : rule__PropertyImageStyle__Group__0__Impl rule__PropertyImageStyle__Group__1 ;
+    public final void rule__PropertyImageStyle__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12332:1: ( rule__PropertyImageStyle__Group__0__Impl rule__PropertyImageStyle__Group__1 )
+            // InternalTableDSL.g:12333:2: rule__PropertyImageStyle__Group__0__Impl rule__PropertyImageStyle__Group__1
+            {
+            pushFollow(FOLLOW_89);
+            rule__PropertyImageStyle__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyImageStyle__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__0"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__0__Impl"
+    // InternalTableDSL.g:12340:1: rule__PropertyImageStyle__Group__0__Impl : ( () ) ;
+    public final void rule__PropertyImageStyle__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12344:1: ( ( () ) )
+            // InternalTableDSL.g:12345:1: ( () )
+            {
+            // InternalTableDSL.g:12345:1: ( () )
+            // InternalTableDSL.g:12346:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getCxGridPropImageStyleAction_0()); 
+            }
+            // InternalTableDSL.g:12347:2: ()
+            // InternalTableDSL.g:12347:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getCxGridPropImageStyleAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__1"
+    // InternalTableDSL.g:12355:1: rule__PropertyImageStyle__Group__1 : rule__PropertyImageStyle__Group__1__Impl rule__PropertyImageStyle__Group__2 ;
+    public final void rule__PropertyImageStyle__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12359:1: ( rule__PropertyImageStyle__Group__1__Impl rule__PropertyImageStyle__Group__2 )
+            // InternalTableDSL.g:12360:2: rule__PropertyImageStyle__Group__1__Impl rule__PropertyImageStyle__Group__2
+            {
+            pushFollow(FOLLOW_90);
+            rule__PropertyImageStyle__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyImageStyle__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__1"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__1__Impl"
+    // InternalTableDSL.g:12367:1: rule__PropertyImageStyle__Group__1__Impl : ( 'imageStyle' ) ;
+    public final void rule__PropertyImageStyle__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12371:1: ( ( 'imageStyle' ) )
+            // InternalTableDSL.g:12372:1: ( 'imageStyle' )
+            {
+            // InternalTableDSL.g:12372:1: ( 'imageStyle' )
+            // InternalTableDSL.g:12373:2: 'imageStyle'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getImageStyleKeyword_1()); 
+            }
+            match(input,137,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getImageStyleKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__2"
+    // InternalTableDSL.g:12382:1: rule__PropertyImageStyle__Group__2 : rule__PropertyImageStyle__Group__2__Impl rule__PropertyImageStyle__Group__3 ;
+    public final void rule__PropertyImageStyle__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12386:1: ( rule__PropertyImageStyle__Group__2__Impl rule__PropertyImageStyle__Group__3 )
+            // InternalTableDSL.g:12387:2: rule__PropertyImageStyle__Group__2__Impl rule__PropertyImageStyle__Group__3
+            {
+            pushFollow(FOLLOW_90);
+            rule__PropertyImageStyle__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyImageStyle__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__2"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__2__Impl"
+    // InternalTableDSL.g:12394:1: rule__PropertyImageStyle__Group__2__Impl : ( ( rule__PropertyImageStyle__Group_2__0 )? ) ;
+    public final void rule__PropertyImageStyle__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12398:1: ( ( ( rule__PropertyImageStyle__Group_2__0 )? ) )
+            // InternalTableDSL.g:12399:1: ( ( rule__PropertyImageStyle__Group_2__0 )? )
+            {
+            // InternalTableDSL.g:12399:1: ( ( rule__PropertyImageStyle__Group_2__0 )? )
+            // InternalTableDSL.g:12400:2: ( rule__PropertyImageStyle__Group_2__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getGroup_2()); 
+            }
+            // InternalTableDSL.g:12401:2: ( rule__PropertyImageStyle__Group_2__0 )?
+            int alt88=2;
+            int LA88_0 = input.LA(1);
+
+            if ( (LA88_0==119) ) {
+                alt88=1;
+            }
+            switch (alt88) {
+                case 1 :
+                    // InternalTableDSL.g:12401:3: rule__PropertyImageStyle__Group_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PropertyImageStyle__Group_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getGroup_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__3"
+    // InternalTableDSL.g:12409:1: rule__PropertyImageStyle__Group__3 : rule__PropertyImageStyle__Group__3__Impl rule__PropertyImageStyle__Group__4 ;
+    public final void rule__PropertyImageStyle__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12413:1: ( rule__PropertyImageStyle__Group__3__Impl rule__PropertyImageStyle__Group__4 )
+            // InternalTableDSL.g:12414:2: rule__PropertyImageStyle__Group__3__Impl rule__PropertyImageStyle__Group__4
+            {
+            pushFollow(FOLLOW_91);
+            rule__PropertyImageStyle__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyImageStyle__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__3"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__3__Impl"
+    // InternalTableDSL.g:12421:1: rule__PropertyImageStyle__Group__3__Impl : ( '{' ) ;
+    public final void rule__PropertyImageStyle__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12425:1: ( ( '{' ) )
+            // InternalTableDSL.g:12426:1: ( '{' )
+            {
+            // InternalTableDSL.g:12426:1: ( '{' )
+            // InternalTableDSL.g:12427:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getLeftCurlyBracketKeyword_3()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getLeftCurlyBracketKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__4"
+    // InternalTableDSL.g:12436:1: rule__PropertyImageStyle__Group__4 : rule__PropertyImageStyle__Group__4__Impl rule__PropertyImageStyle__Group__5 ;
+    public final void rule__PropertyImageStyle__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12440:1: ( rule__PropertyImageStyle__Group__4__Impl rule__PropertyImageStyle__Group__5 )
+            // InternalTableDSL.g:12441:2: rule__PropertyImageStyle__Group__4__Impl rule__PropertyImageStyle__Group__5
+            {
+            pushFollow(FOLLOW_91);
+            rule__PropertyImageStyle__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyImageStyle__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__4"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__4__Impl"
+    // InternalTableDSL.g:12448:1: rule__PropertyImageStyle__Group__4__Impl : ( ( rule__PropertyImageStyle__ConfigsAssignment_4 )* ) ;
+    public final void rule__PropertyImageStyle__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12452:1: ( ( ( rule__PropertyImageStyle__ConfigsAssignment_4 )* ) )
+            // InternalTableDSL.g:12453:1: ( ( rule__PropertyImageStyle__ConfigsAssignment_4 )* )
+            {
+            // InternalTableDSL.g:12453:1: ( ( rule__PropertyImageStyle__ConfigsAssignment_4 )* )
+            // InternalTableDSL.g:12454:2: ( rule__PropertyImageStyle__ConfigsAssignment_4 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getConfigsAssignment_4()); 
+            }
+            // InternalTableDSL.g:12455:2: ( rule__PropertyImageStyle__ConfigsAssignment_4 )*
+            loop89:
+            do {
+                int alt89=2;
+                int LA89_0 = input.LA(1);
+
+                if ( ((LA89_0>=105 && LA89_0<=106)) ) {
+                    alt89=1;
+                }
+
+
+                switch (alt89) {
+            	case 1 :
+            	    // InternalTableDSL.g:12455:3: rule__PropertyImageStyle__ConfigsAssignment_4
+            	    {
+            	    pushFollow(FOLLOW_92);
+            	    rule__PropertyImageStyle__ConfigsAssignment_4();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop89;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getConfigsAssignment_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__4__Impl"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__5"
+    // InternalTableDSL.g:12463:1: rule__PropertyImageStyle__Group__5 : rule__PropertyImageStyle__Group__5__Impl ;
+    public final void rule__PropertyImageStyle__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12467:1: ( rule__PropertyImageStyle__Group__5__Impl )
+            // InternalTableDSL.g:12468:2: rule__PropertyImageStyle__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyImageStyle__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__5"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group__5__Impl"
+    // InternalTableDSL.g:12474:1: rule__PropertyImageStyle__Group__5__Impl : ( '}' ) ;
+    public final void rule__PropertyImageStyle__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12478:1: ( ( '}' ) )
+            // InternalTableDSL.g:12479:1: ( '}' )
+            {
+            // InternalTableDSL.g:12479:1: ( '}' )
+            // InternalTableDSL.g:12480:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getRightCurlyBracketKeyword_5()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getRightCurlyBracketKeyword_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group__5__Impl"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group_2__0"
+    // InternalTableDSL.g:12490:1: rule__PropertyImageStyle__Group_2__0 : rule__PropertyImageStyle__Group_2__0__Impl rule__PropertyImageStyle__Group_2__1 ;
+    public final void rule__PropertyImageStyle__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12494:1: ( rule__PropertyImageStyle__Group_2__0__Impl rule__PropertyImageStyle__Group_2__1 )
+            // InternalTableDSL.g:12495:2: rule__PropertyImageStyle__Group_2__0__Impl rule__PropertyImageStyle__Group_2__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__PropertyImageStyle__Group_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__PropertyImageStyle__Group_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group_2__0"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group_2__0__Impl"
+    // InternalTableDSL.g:12502:1: rule__PropertyImageStyle__Group_2__0__Impl : ( 'eventTopic' ) ;
+    public final void rule__PropertyImageStyle__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12506:1: ( ( 'eventTopic' ) )
+            // InternalTableDSL.g:12507:1: ( 'eventTopic' )
+            {
+            // InternalTableDSL.g:12507:1: ( 'eventTopic' )
+            // InternalTableDSL.g:12508:2: 'eventTopic'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getEventTopicKeyword_2_0()); 
+            }
+            match(input,119,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getEventTopicKeyword_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group_2__1"
+    // InternalTableDSL.g:12517:1: rule__PropertyImageStyle__Group_2__1 : rule__PropertyImageStyle__Group_2__1__Impl ;
+    public final void rule__PropertyImageStyle__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12521:1: ( rule__PropertyImageStyle__Group_2__1__Impl )
+            // InternalTableDSL.g:12522:2: rule__PropertyImageStyle__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyImageStyle__Group_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group_2__1"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__Group_2__1__Impl"
+    // InternalTableDSL.g:12528:1: rule__PropertyImageStyle__Group_2__1__Impl : ( ( rule__PropertyImageStyle__EventTopicAssignment_2_1 ) ) ;
+    public final void rule__PropertyImageStyle__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12532:1: ( ( ( rule__PropertyImageStyle__EventTopicAssignment_2_1 ) ) )
+            // InternalTableDSL.g:12533:1: ( ( rule__PropertyImageStyle__EventTopicAssignment_2_1 ) )
+            {
+            // InternalTableDSL.g:12533:1: ( ( rule__PropertyImageStyle__EventTopicAssignment_2_1 ) )
+            // InternalTableDSL.g:12534:2: ( rule__PropertyImageStyle__EventTopicAssignment_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getEventTopicAssignment_2_1()); 
+            }
+            // InternalTableDSL.g:12535:2: ( rule__PropertyImageStyle__EventTopicAssignment_2_1 )
+            // InternalTableDSL.g:12535:3: rule__PropertyImageStyle__EventTopicAssignment_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__PropertyImageStyle__EventTopicAssignment_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getEventTopicAssignment_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__Group__0"
+    // InternalTableDSL.g:12544:1: rule__NumericToResourceStyleConfig__Group__0 : rule__NumericToResourceStyleConfig__Group__0__Impl rule__NumericToResourceStyleConfig__Group__1 ;
+    public final void rule__NumericToResourceStyleConfig__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12548:1: ( rule__NumericToResourceStyleConfig__Group__0__Impl rule__NumericToResourceStyleConfig__Group__1 )
+            // InternalTableDSL.g:12549:2: rule__NumericToResourceStyleConfig__Group__0__Impl rule__NumericToResourceStyleConfig__Group__1
+            {
+            pushFollow(FOLLOW_93);
+            rule__NumericToResourceStyleConfig__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__NumericToResourceStyleConfig__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__Group__0"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__Group__0__Impl"
+    // InternalTableDSL.g:12556:1: rule__NumericToResourceStyleConfig__Group__0__Impl : ( 'number' ) ;
+    public final void rule__NumericToResourceStyleConfig__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12560:1: ( ( 'number' ) )
+            // InternalTableDSL.g:12561:1: ( 'number' )
+            {
+            // InternalTableDSL.g:12561:1: ( 'number' )
+            // InternalTableDSL.g:12562:2: 'number'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumericToResourceStyleConfigAccess().getNumberKeyword_0()); 
+            }
+            match(input,105,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumericToResourceStyleConfigAccess().getNumberKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__Group__0__Impl"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__Group__1"
+    // InternalTableDSL.g:12571:1: rule__NumericToResourceStyleConfig__Group__1 : rule__NumericToResourceStyleConfig__Group__1__Impl rule__NumericToResourceStyleConfig__Group__2 ;
+    public final void rule__NumericToResourceStyleConfig__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12575:1: ( rule__NumericToResourceStyleConfig__Group__1__Impl rule__NumericToResourceStyleConfig__Group__2 )
+            // InternalTableDSL.g:12576:2: rule__NumericToResourceStyleConfig__Group__1__Impl rule__NumericToResourceStyleConfig__Group__2
+            {
+            pushFollow(FOLLOW_78);
+            rule__NumericToResourceStyleConfig__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__NumericToResourceStyleConfig__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__Group__1"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__Group__1__Impl"
+    // InternalTableDSL.g:12583:1: rule__NumericToResourceStyleConfig__Group__1__Impl : ( ( rule__NumericToResourceStyleConfig__CompareAssignment_1 ) ) ;
+    public final void rule__NumericToResourceStyleConfig__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12587:1: ( ( ( rule__NumericToResourceStyleConfig__CompareAssignment_1 ) ) )
+            // InternalTableDSL.g:12588:1: ( ( rule__NumericToResourceStyleConfig__CompareAssignment_1 ) )
+            {
+            // InternalTableDSL.g:12588:1: ( ( rule__NumericToResourceStyleConfig__CompareAssignment_1 ) )
+            // InternalTableDSL.g:12589:2: ( rule__NumericToResourceStyleConfig__CompareAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareAssignment_1()); 
+            }
+            // InternalTableDSL.g:12590:2: ( rule__NumericToResourceStyleConfig__CompareAssignment_1 )
+            // InternalTableDSL.g:12590:3: rule__NumericToResourceStyleConfig__CompareAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__NumericToResourceStyleConfig__CompareAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__Group__1__Impl"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__Group__2"
+    // InternalTableDSL.g:12598:1: rule__NumericToResourceStyleConfig__Group__2 : rule__NumericToResourceStyleConfig__Group__2__Impl rule__NumericToResourceStyleConfig__Group__3 ;
+    public final void rule__NumericToResourceStyleConfig__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12602:1: ( rule__NumericToResourceStyleConfig__Group__2__Impl rule__NumericToResourceStyleConfig__Group__3 )
+            // InternalTableDSL.g:12603:2: rule__NumericToResourceStyleConfig__Group__2__Impl rule__NumericToResourceStyleConfig__Group__3
+            {
+            pushFollow(FOLLOW_94);
+            rule__NumericToResourceStyleConfig__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__NumericToResourceStyleConfig__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__Group__2"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__Group__2__Impl"
+    // InternalTableDSL.g:12610:1: rule__NumericToResourceStyleConfig__Group__2__Impl : ( ( rule__NumericToResourceStyleConfig__ValueAssignment_2 ) ) ;
+    public final void rule__NumericToResourceStyleConfig__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12614:1: ( ( ( rule__NumericToResourceStyleConfig__ValueAssignment_2 ) ) )
+            // InternalTableDSL.g:12615:1: ( ( rule__NumericToResourceStyleConfig__ValueAssignment_2 ) )
+            {
+            // InternalTableDSL.g:12615:1: ( ( rule__NumericToResourceStyleConfig__ValueAssignment_2 ) )
+            // InternalTableDSL.g:12616:2: ( rule__NumericToResourceStyleConfig__ValueAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumericToResourceStyleConfigAccess().getValueAssignment_2()); 
+            }
+            // InternalTableDSL.g:12617:2: ( rule__NumericToResourceStyleConfig__ValueAssignment_2 )
+            // InternalTableDSL.g:12617:3: rule__NumericToResourceStyleConfig__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__NumericToResourceStyleConfig__ValueAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumericToResourceStyleConfigAccess().getValueAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__Group__2__Impl"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__Group__3"
+    // InternalTableDSL.g:12625:1: rule__NumericToResourceStyleConfig__Group__3 : rule__NumericToResourceStyleConfig__Group__3__Impl rule__NumericToResourceStyleConfig__Group__4 ;
+    public final void rule__NumericToResourceStyleConfig__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12629:1: ( rule__NumericToResourceStyleConfig__Group__3__Impl rule__NumericToResourceStyleConfig__Group__4 )
+            // InternalTableDSL.g:12630:2: rule__NumericToResourceStyleConfig__Group__3__Impl rule__NumericToResourceStyleConfig__Group__4
+            {
+            pushFollow(FOLLOW_95);
+            rule__NumericToResourceStyleConfig__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__NumericToResourceStyleConfig__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__Group__3"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__Group__3__Impl"
+    // InternalTableDSL.g:12637:1: rule__NumericToResourceStyleConfig__Group__3__Impl : ( 'then' ) ;
+    public final void rule__NumericToResourceStyleConfig__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12641:1: ( ( 'then' ) )
+            // InternalTableDSL.g:12642:1: ( 'then' )
+            {
+            // InternalTableDSL.g:12642:1: ( 'then' )
+            // InternalTableDSL.g:12643:2: 'then'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumericToResourceStyleConfigAccess().getThenKeyword_3()); 
+            }
+            match(input,138,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumericToResourceStyleConfigAccess().getThenKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__Group__3__Impl"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__Group__4"
+    // InternalTableDSL.g:12652:1: rule__NumericToResourceStyleConfig__Group__4 : rule__NumericToResourceStyleConfig__Group__4__Impl ;
+    public final void rule__NumericToResourceStyleConfig__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12656:1: ( rule__NumericToResourceStyleConfig__Group__4__Impl )
+            // InternalTableDSL.g:12657:2: rule__NumericToResourceStyleConfig__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__NumericToResourceStyleConfig__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__Group__4"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__Group__4__Impl"
+    // InternalTableDSL.g:12663:1: rule__NumericToResourceStyleConfig__Group__4__Impl : ( ( rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4 ) ) ;
+    public final void rule__NumericToResourceStyleConfig__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12667:1: ( ( ( rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4 ) ) )
+            // InternalTableDSL.g:12668:1: ( ( rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4 ) )
+            {
+            // InternalTableDSL.g:12668:1: ( ( rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4 ) )
+            // InternalTableDSL.g:12669:2: ( rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathAssignment_4()); 
+            }
+            // InternalTableDSL.g:12670:2: ( rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4 )
+            // InternalTableDSL.g:12670:3: rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathAssignment_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__Group__4__Impl"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__Group__0"
+    // InternalTableDSL.g:12679:1: rule__StringToResourceStyleConfig__Group__0 : rule__StringToResourceStyleConfig__Group__0__Impl rule__StringToResourceStyleConfig__Group__1 ;
+    public final void rule__StringToResourceStyleConfig__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12683:1: ( rule__StringToResourceStyleConfig__Group__0__Impl rule__StringToResourceStyleConfig__Group__1 )
+            // InternalTableDSL.g:12684:2: rule__StringToResourceStyleConfig__Group__0__Impl rule__StringToResourceStyleConfig__Group__1
+            {
+            pushFollow(FOLLOW_93);
+            rule__StringToResourceStyleConfig__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__StringToResourceStyleConfig__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__Group__0"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__Group__0__Impl"
+    // InternalTableDSL.g:12691:1: rule__StringToResourceStyleConfig__Group__0__Impl : ( 'string' ) ;
+    public final void rule__StringToResourceStyleConfig__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12695:1: ( ( 'string' ) )
+            // InternalTableDSL.g:12696:1: ( 'string' )
+            {
+            // InternalTableDSL.g:12696:1: ( 'string' )
+            // InternalTableDSL.g:12697:2: 'string'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStringToResourceStyleConfigAccess().getStringKeyword_0()); 
+            }
+            match(input,106,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStringToResourceStyleConfigAccess().getStringKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__Group__1"
+    // InternalTableDSL.g:12706:1: rule__StringToResourceStyleConfig__Group__1 : rule__StringToResourceStyleConfig__Group__1__Impl rule__StringToResourceStyleConfig__Group__2 ;
+    public final void rule__StringToResourceStyleConfig__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12710:1: ( rule__StringToResourceStyleConfig__Group__1__Impl rule__StringToResourceStyleConfig__Group__2 )
+            // InternalTableDSL.g:12711:2: rule__StringToResourceStyleConfig__Group__1__Impl rule__StringToResourceStyleConfig__Group__2
+            {
+            pushFollow(FOLLOW_14);
+            rule__StringToResourceStyleConfig__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__StringToResourceStyleConfig__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__Group__1"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__Group__1__Impl"
+    // InternalTableDSL.g:12718:1: rule__StringToResourceStyleConfig__Group__1__Impl : ( ( rule__StringToResourceStyleConfig__CompareAssignment_1 ) ) ;
+    public final void rule__StringToResourceStyleConfig__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12722:1: ( ( ( rule__StringToResourceStyleConfig__CompareAssignment_1 ) ) )
+            // InternalTableDSL.g:12723:1: ( ( rule__StringToResourceStyleConfig__CompareAssignment_1 ) )
+            {
+            // InternalTableDSL.g:12723:1: ( ( rule__StringToResourceStyleConfig__CompareAssignment_1 ) )
+            // InternalTableDSL.g:12724:2: ( rule__StringToResourceStyleConfig__CompareAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStringToResourceStyleConfigAccess().getCompareAssignment_1()); 
+            }
+            // InternalTableDSL.g:12725:2: ( rule__StringToResourceStyleConfig__CompareAssignment_1 )
+            // InternalTableDSL.g:12725:3: rule__StringToResourceStyleConfig__CompareAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringToResourceStyleConfig__CompareAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStringToResourceStyleConfigAccess().getCompareAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__Group__2"
+    // InternalTableDSL.g:12733:1: rule__StringToResourceStyleConfig__Group__2 : rule__StringToResourceStyleConfig__Group__2__Impl rule__StringToResourceStyleConfig__Group__3 ;
+    public final void rule__StringToResourceStyleConfig__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12737:1: ( rule__StringToResourceStyleConfig__Group__2__Impl rule__StringToResourceStyleConfig__Group__3 )
+            // InternalTableDSL.g:12738:2: rule__StringToResourceStyleConfig__Group__2__Impl rule__StringToResourceStyleConfig__Group__3
+            {
+            pushFollow(FOLLOW_94);
+            rule__StringToResourceStyleConfig__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__StringToResourceStyleConfig__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__Group__2"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__Group__2__Impl"
+    // InternalTableDSL.g:12745:1: rule__StringToResourceStyleConfig__Group__2__Impl : ( ( rule__StringToResourceStyleConfig__ValueAssignment_2 ) ) ;
+    public final void rule__StringToResourceStyleConfig__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12749:1: ( ( ( rule__StringToResourceStyleConfig__ValueAssignment_2 ) ) )
+            // InternalTableDSL.g:12750:1: ( ( rule__StringToResourceStyleConfig__ValueAssignment_2 ) )
+            {
+            // InternalTableDSL.g:12750:1: ( ( rule__StringToResourceStyleConfig__ValueAssignment_2 ) )
+            // InternalTableDSL.g:12751:2: ( rule__StringToResourceStyleConfig__ValueAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStringToResourceStyleConfigAccess().getValueAssignment_2()); 
+            }
+            // InternalTableDSL.g:12752:2: ( rule__StringToResourceStyleConfig__ValueAssignment_2 )
+            // InternalTableDSL.g:12752:3: rule__StringToResourceStyleConfig__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringToResourceStyleConfig__ValueAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStringToResourceStyleConfigAccess().getValueAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__Group__2__Impl"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__Group__3"
+    // InternalTableDSL.g:12760:1: rule__StringToResourceStyleConfig__Group__3 : rule__StringToResourceStyleConfig__Group__3__Impl rule__StringToResourceStyleConfig__Group__4 ;
+    public final void rule__StringToResourceStyleConfig__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12764:1: ( rule__StringToResourceStyleConfig__Group__3__Impl rule__StringToResourceStyleConfig__Group__4 )
+            // InternalTableDSL.g:12765:2: rule__StringToResourceStyleConfig__Group__3__Impl rule__StringToResourceStyleConfig__Group__4
+            {
+            pushFollow(FOLLOW_95);
+            rule__StringToResourceStyleConfig__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__StringToResourceStyleConfig__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__Group__3"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__Group__3__Impl"
+    // InternalTableDSL.g:12772:1: rule__StringToResourceStyleConfig__Group__3__Impl : ( 'then' ) ;
+    public final void rule__StringToResourceStyleConfig__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12776:1: ( ( 'then' ) )
+            // InternalTableDSL.g:12777:1: ( 'then' )
+            {
+            // InternalTableDSL.g:12777:1: ( 'then' )
+            // InternalTableDSL.g:12778:2: 'then'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStringToResourceStyleConfigAccess().getThenKeyword_3()); 
+            }
+            match(input,138,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStringToResourceStyleConfigAccess().getThenKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__Group__3__Impl"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__Group__4"
+    // InternalTableDSL.g:12787:1: rule__StringToResourceStyleConfig__Group__4 : rule__StringToResourceStyleConfig__Group__4__Impl ;
+    public final void rule__StringToResourceStyleConfig__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12791:1: ( rule__StringToResourceStyleConfig__Group__4__Impl )
+            // InternalTableDSL.g:12792:2: rule__StringToResourceStyleConfig__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringToResourceStyleConfig__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__Group__4"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__Group__4__Impl"
+    // InternalTableDSL.g:12798:1: rule__StringToResourceStyleConfig__Group__4__Impl : ( ( rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4 ) ) ;
+    public final void rule__StringToResourceStyleConfig__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12802:1: ( ( ( rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4 ) ) )
+            // InternalTableDSL.g:12803:1: ( ( rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4 ) )
+            {
+            // InternalTableDSL.g:12803:1: ( ( rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4 ) )
+            // InternalTableDSL.g:12804:2: ( rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathAssignment_4()); 
+            }
+            // InternalTableDSL.g:12805:2: ( rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4 )
+            // InternalTableDSL.g:12805:3: rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathAssignment_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__Group__4__Impl"
+
+
+    // $ANTLR start "rule__LInt__Group__0"
+    // InternalTableDSL.g:12814:1: rule__LInt__Group__0 : rule__LInt__Group__0__Impl rule__LInt__Group__1 ;
+    public final void rule__LInt__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12818:1: ( rule__LInt__Group__0__Impl rule__LInt__Group__1 )
+            // InternalTableDSL.g:12819:2: rule__LInt__Group__0__Impl rule__LInt__Group__1
+            {
+            pushFollow(FOLLOW_78);
+            rule__LInt__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__LInt__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LInt__Group__0"
+
+
+    // $ANTLR start "rule__LInt__Group__0__Impl"
+    // InternalTableDSL.g:12826:1: rule__LInt__Group__0__Impl : ( ( rule__LInt__Alternatives_0 )? ) ;
+    public final void rule__LInt__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12830:1: ( ( ( rule__LInt__Alternatives_0 )? ) )
+            // InternalTableDSL.g:12831:1: ( ( rule__LInt__Alternatives_0 )? )
+            {
+            // InternalTableDSL.g:12831:1: ( ( rule__LInt__Alternatives_0 )? )
+            // InternalTableDSL.g:12832:2: ( rule__LInt__Alternatives_0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLIntAccess().getAlternatives_0()); 
+            }
+            // InternalTableDSL.g:12833:2: ( rule__LInt__Alternatives_0 )?
+            int alt90=2;
+            int LA90_0 = input.LA(1);
+
+            if ( ((LA90_0>=19 && LA90_0<=20)) ) {
+                alt90=1;
+            }
+            switch (alt90) {
+                case 1 :
+                    // InternalTableDSL.g:12833:3: rule__LInt__Alternatives_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__LInt__Alternatives_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLIntAccess().getAlternatives_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LInt__Group__0__Impl"
+
+
+    // $ANTLR start "rule__LInt__Group__1"
+    // InternalTableDSL.g:12841:1: rule__LInt__Group__1 : rule__LInt__Group__1__Impl ;
+    public final void rule__LInt__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12845:1: ( rule__LInt__Group__1__Impl )
+            // InternalTableDSL.g:12846:2: rule__LInt__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__LInt__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LInt__Group__1"
+
+
+    // $ANTLR start "rule__LInt__Group__1__Impl"
+    // InternalTableDSL.g:12852:1: rule__LInt__Group__1__Impl : ( RULE_INT ) ;
+    public final void rule__LInt__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12856:1: ( ( RULE_INT ) )
+            // InternalTableDSL.g:12857:1: ( RULE_INT )
+            {
+            // InternalTableDSL.g:12857:1: ( RULE_INT )
+            // InternalTableDSL.g:12858:2: RULE_INT
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLIntAccess().getINTTerminalRuleCall_1()); 
+            }
+            match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLIntAccess().getINTTerminalRuleCall_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LInt__Group__1__Impl"
+
+
+    // $ANTLR start "rule__LDouble__Group__0"
+    // InternalTableDSL.g:12868:1: rule__LDouble__Group__0 : rule__LDouble__Group__0__Impl rule__LDouble__Group__1 ;
+    public final void rule__LDouble__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12872:1: ( rule__LDouble__Group__0__Impl rule__LDouble__Group__1 )
+            // InternalTableDSL.g:12873:2: rule__LDouble__Group__0__Impl rule__LDouble__Group__1
+            {
+            pushFollow(FOLLOW_68);
+            rule__LDouble__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__LDouble__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LDouble__Group__0"
+
+
+    // $ANTLR start "rule__LDouble__Group__0__Impl"
+    // InternalTableDSL.g:12880:1: rule__LDouble__Group__0__Impl : ( ruleLInt ) ;
+    public final void rule__LDouble__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12884:1: ( ( ruleLInt ) )
+            // InternalTableDSL.g:12885:1: ( ruleLInt )
+            {
+            // InternalTableDSL.g:12885:1: ( ruleLInt )
+            // InternalTableDSL.g:12886:2: ruleLInt
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLDoubleAccess().getLIntParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleLInt();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLDoubleAccess().getLIntParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LDouble__Group__0__Impl"
+
+
+    // $ANTLR start "rule__LDouble__Group__1"
+    // InternalTableDSL.g:12895:1: rule__LDouble__Group__1 : rule__LDouble__Group__1__Impl ;
+    public final void rule__LDouble__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12899:1: ( rule__LDouble__Group__1__Impl )
+            // InternalTableDSL.g:12900:2: rule__LDouble__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__LDouble__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LDouble__Group__1"
+
+
+    // $ANTLR start "rule__LDouble__Group__1__Impl"
+    // InternalTableDSL.g:12906:1: rule__LDouble__Group__1__Impl : ( ( rule__LDouble__Group_1__0 )? ) ;
+    public final void rule__LDouble__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12910:1: ( ( ( rule__LDouble__Group_1__0 )? ) )
+            // InternalTableDSL.g:12911:1: ( ( rule__LDouble__Group_1__0 )? )
+            {
+            // InternalTableDSL.g:12911:1: ( ( rule__LDouble__Group_1__0 )? )
+            // InternalTableDSL.g:12912:2: ( rule__LDouble__Group_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLDoubleAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:12913:2: ( rule__LDouble__Group_1__0 )?
+            int alt91=2;
+            int LA91_0 = input.LA(1);
+
+            if ( (LA91_0==46) ) {
+                alt91=1;
+            }
+            switch (alt91) {
+                case 1 :
+                    // InternalTableDSL.g:12913:3: rule__LDouble__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__LDouble__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLDoubleAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LDouble__Group__1__Impl"
+
+
+    // $ANTLR start "rule__LDouble__Group_1__0"
+    // InternalTableDSL.g:12922:1: rule__LDouble__Group_1__0 : rule__LDouble__Group_1__0__Impl rule__LDouble__Group_1__1 ;
+    public final void rule__LDouble__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12926:1: ( rule__LDouble__Group_1__0__Impl rule__LDouble__Group_1__1 )
+            // InternalTableDSL.g:12927:2: rule__LDouble__Group_1__0__Impl rule__LDouble__Group_1__1
+            {
+            pushFollow(FOLLOW_96);
+            rule__LDouble__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__LDouble__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LDouble__Group_1__0"
+
+
+    // $ANTLR start "rule__LDouble__Group_1__0__Impl"
+    // InternalTableDSL.g:12934:1: rule__LDouble__Group_1__0__Impl : ( '.' ) ;
+    public final void rule__LDouble__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12938:1: ( ( '.' ) )
+            // InternalTableDSL.g:12939:1: ( '.' )
+            {
+            // InternalTableDSL.g:12939:1: ( '.' )
+            // InternalTableDSL.g:12940:2: '.'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLDoubleAccess().getFullStopKeyword_1_0()); 
+            }
+            match(input,46,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLDoubleAccess().getFullStopKeyword_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LDouble__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__LDouble__Group_1__1"
+    // InternalTableDSL.g:12949:1: rule__LDouble__Group_1__1 : rule__LDouble__Group_1__1__Impl ;
+    public final void rule__LDouble__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12953:1: ( rule__LDouble__Group_1__1__Impl )
+            // InternalTableDSL.g:12954:2: rule__LDouble__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__LDouble__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LDouble__Group_1__1"
+
+
+    // $ANTLR start "rule__LDouble__Group_1__1__Impl"
+    // InternalTableDSL.g:12960:1: rule__LDouble__Group_1__1__Impl : ( RULE_INT ) ;
+    public final void rule__LDouble__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12964:1: ( ( RULE_INT ) )
+            // InternalTableDSL.g:12965:1: ( RULE_INT )
+            {
+            // InternalTableDSL.g:12965:1: ( RULE_INT )
+            // InternalTableDSL.g:12966:2: RULE_INT
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getLDoubleAccess().getINTTerminalRuleCall_1_1()); 
+            }
+            match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getLDoubleAccess().getINTTerminalRuleCall_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LDouble__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__SignedNumber__Group__0"
+    // InternalTableDSL.g:12976:1: rule__SignedNumber__Group__0 : rule__SignedNumber__Group__0__Impl rule__SignedNumber__Group__1 ;
+    public final void rule__SignedNumber__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12980:1: ( rule__SignedNumber__Group__0__Impl rule__SignedNumber__Group__1 )
+            // InternalTableDSL.g:12981:2: rule__SignedNumber__Group__0__Impl rule__SignedNumber__Group__1
+            {
+            pushFollow(FOLLOW_40);
+            rule__SignedNumber__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignedNumber__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignedNumber__Group__0"
+
+
+    // $ANTLR start "rule__SignedNumber__Group__0__Impl"
+    // InternalTableDSL.g:12988:1: rule__SignedNumber__Group__0__Impl : ( ( '-' )? ) ;
+    public final void rule__SignedNumber__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:12992:1: ( ( ( '-' )? ) )
+            // InternalTableDSL.g:12993:1: ( ( '-' )? )
+            {
+            // InternalTableDSL.g:12993:1: ( ( '-' )? )
+            // InternalTableDSL.g:12994:2: ( '-' )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignedNumberAccess().getHyphenMinusKeyword_0()); 
+            }
+            // InternalTableDSL.g:12995:2: ( '-' )?
+            int alt92=2;
+            int LA92_0 = input.LA(1);
+
+            if ( (LA92_0==20) ) {
+                alt92=1;
+            }
+            switch (alt92) {
+                case 1 :
+                    // InternalTableDSL.g:12995:3: '-'
+                    {
+                    match(input,20,FOLLOW_2); if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignedNumberAccess().getHyphenMinusKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignedNumber__Group__0__Impl"
+
+
+    // $ANTLR start "rule__SignedNumber__Group__1"
+    // InternalTableDSL.g:13003:1: rule__SignedNumber__Group__1 : rule__SignedNumber__Group__1__Impl ;
+    public final void rule__SignedNumber__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13007:1: ( rule__SignedNumber__Group__1__Impl )
+            // InternalTableDSL.g:13008:2: rule__SignedNumber__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignedNumber__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignedNumber__Group__1"
+
+
+    // $ANTLR start "rule__SignedNumber__Group__1__Impl"
+    // InternalTableDSL.g:13014:1: rule__SignedNumber__Group__1__Impl : ( ruleNumber ) ;
+    public final void rule__SignedNumber__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13018:1: ( ( ruleNumber ) )
+            // InternalTableDSL.g:13019:1: ( ruleNumber )
+            {
+            // InternalTableDSL.g:13019:1: ( ruleNumber )
+            // InternalTableDSL.g:13020:2: ruleNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignedNumberAccess().getNumberParserRuleCall_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignedNumberAccess().getNumberParserRuleCall_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignedNumber__Group__1__Impl"
+
+
+    // $ANTLR start "rule__SignedInt__Group__0"
+    // InternalTableDSL.g:13030:1: rule__SignedInt__Group__0 : rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1 ;
+    public final void rule__SignedInt__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13034:1: ( rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1 )
+            // InternalTableDSL.g:13035:2: rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1
+            {
+            pushFollow(FOLLOW_43);
+            rule__SignedInt__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__SignedInt__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignedInt__Group__0"
+
+
+    // $ANTLR start "rule__SignedInt__Group__0__Impl"
+    // InternalTableDSL.g:13042:1: rule__SignedInt__Group__0__Impl : ( ( '-' )? ) ;
+    public final void rule__SignedInt__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13046:1: ( ( ( '-' )? ) )
+            // InternalTableDSL.g:13047:1: ( ( '-' )? )
+            {
+            // InternalTableDSL.g:13047:1: ( ( '-' )? )
+            // InternalTableDSL.g:13048:2: ( '-' )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignedIntAccess().getHyphenMinusKeyword_0()); 
+            }
+            // InternalTableDSL.g:13049:2: ( '-' )?
+            int alt93=2;
+            int LA93_0 = input.LA(1);
+
+            if ( (LA93_0==20) ) {
+                alt93=1;
+            }
+            switch (alt93) {
+                case 1 :
+                    // InternalTableDSL.g:13049:3: '-'
+                    {
+                    match(input,20,FOLLOW_2); if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignedIntAccess().getHyphenMinusKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignedInt__Group__0__Impl"
+
+
+    // $ANTLR start "rule__SignedInt__Group__1"
+    // InternalTableDSL.g:13057:1: rule__SignedInt__Group__1 : rule__SignedInt__Group__1__Impl ;
+    public final void rule__SignedInt__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13061:1: ( rule__SignedInt__Group__1__Impl )
+            // InternalTableDSL.g:13062:2: rule__SignedInt__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SignedInt__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignedInt__Group__1"
+
+
+    // $ANTLR start "rule__SignedInt__Group__1__Impl"
+    // InternalTableDSL.g:13068:1: rule__SignedInt__Group__1__Impl : ( RULE_INT ) ;
+    public final void rule__SignedInt__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13072:1: ( ( RULE_INT ) )
+            // InternalTableDSL.g:13073:1: ( RULE_INT )
+            {
+            // InternalTableDSL.g:13073:1: ( RULE_INT )
+            // InternalTableDSL.g:13074:2: RULE_INT
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSignedIntAccess().getINTTerminalRuleCall_1()); 
+            }
+            match(input,RULE_INT,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSignedIntAccess().getINTTerminalRuleCall_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SignedInt__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group__0"
+    // InternalTableDSL.g:13084:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
+    public final void rule__XImportDeclaration__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13088:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
+            // InternalTableDSL.g:13089:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
+            {
+            pushFollow(FOLLOW_97);
+            rule__XImportDeclaration__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group__0"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group__0__Impl"
+    // InternalTableDSL.g:13096:1: rule__XImportDeclaration__Group__0__Impl : ( () ) ;
+    public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13100:1: ( ( () ) )
+            // InternalTableDSL.g:13101:1: ( () )
+            {
+            // InternalTableDSL.g:13101:1: ( () )
+            // InternalTableDSL.g:13102:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); 
+            }
+            // InternalTableDSL.g:13103:2: ()
+            // InternalTableDSL.g:13103:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group__1"
+    // InternalTableDSL.g:13111:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
+    public final void rule__XImportDeclaration__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13115:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
+            // InternalTableDSL.g:13116:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
+            {
+            pushFollow(FOLLOW_98);
+            rule__XImportDeclaration__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group__1"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group__1__Impl"
+    // InternalTableDSL.g:13123:1: rule__XImportDeclaration__Group__1__Impl : ( 'import' ) ;
+    public final void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13127:1: ( ( 'import' ) )
+            // InternalTableDSL.g:13128:1: ( 'import' )
+            {
+            // InternalTableDSL.g:13128:1: ( 'import' )
+            // InternalTableDSL.g:13129:2: 'import'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); 
+            }
+            match(input,50,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getImportKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group__2"
+    // InternalTableDSL.g:13138:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 ;
+    public final void rule__XImportDeclaration__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13142:1: ( rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3 )
+            // InternalTableDSL.g:13143:2: rule__XImportDeclaration__Group__2__Impl rule__XImportDeclaration__Group__3
+            {
+            pushFollow(FOLLOW_99);
+            rule__XImportDeclaration__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group__2"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group__2__Impl"
+    // InternalTableDSL.g:13150:1: rule__XImportDeclaration__Group__2__Impl : ( ( rule__XImportDeclaration__Alternatives_2 ) ) ;
+    public final void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13154:1: ( ( ( rule__XImportDeclaration__Alternatives_2 ) ) )
+            // InternalTableDSL.g:13155:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            {
+            // InternalTableDSL.g:13155:1: ( ( rule__XImportDeclaration__Alternatives_2 ) )
+            // InternalTableDSL.g:13156:2: ( rule__XImportDeclaration__Alternatives_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); 
+            }
+            // InternalTableDSL.g:13157:2: ( rule__XImportDeclaration__Alternatives_2 )
+            // InternalTableDSL.g:13157:3: rule__XImportDeclaration__Alternatives_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Alternatives_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getAlternatives_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group__3"
+    // InternalTableDSL.g:13165:1: rule__XImportDeclaration__Group__3 : rule__XImportDeclaration__Group__3__Impl ;
+    public final void rule__XImportDeclaration__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13169:1: ( rule__XImportDeclaration__Group__3__Impl )
+            // InternalTableDSL.g:13170:2: rule__XImportDeclaration__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group__3"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group__3__Impl"
+    // InternalTableDSL.g:13176:1: rule__XImportDeclaration__Group__3__Impl : ( ( ';' )? ) ;
+    public final void rule__XImportDeclaration__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13180:1: ( ( ( ';' )? ) )
+            // InternalTableDSL.g:13181:1: ( ( ';' )? )
+            {
+            // InternalTableDSL.g:13181:1: ( ( ';' )? )
+            // InternalTableDSL.g:13182:2: ( ';' )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); 
+            }
+            // InternalTableDSL.g:13183:2: ( ';' )?
+            int alt94=2;
+            int LA94_0 = input.LA(1);
+
+            if ( (LA94_0==139) ) {
+                alt94=1;
+            }
+            switch (alt94) {
+                case 1 :
+                    // InternalTableDSL.g:13183:3: ';'
+                    {
+                    match(input,139,FOLLOW_2); if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_0__0"
+    // InternalTableDSL.g:13192:1: rule__XImportDeclaration__Group_2_0__0 : rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 ;
+    public final void rule__XImportDeclaration__Group_2_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13196:1: ( rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1 )
+            // InternalTableDSL.g:13197:2: rule__XImportDeclaration__Group_2_0__0__Impl rule__XImportDeclaration__Group_2_0__1
+            {
+            pushFollow(FOLLOW_100);
+            rule__XImportDeclaration__Group_2_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group_2_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_0__0"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_0__0__Impl"
+    // InternalTableDSL.g:13204:1: rule__XImportDeclaration__Group_2_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) ;
+    public final void rule__XImportDeclaration__Group_2_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13208:1: ( ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) ) )
+            // InternalTableDSL.g:13209:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            {
+            // InternalTableDSL.g:13209:1: ( ( rule__XImportDeclaration__StaticAssignment_2_0_0 ) )
+            // InternalTableDSL.g:13210:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); 
+            }
+            // InternalTableDSL.g:13211:2: ( rule__XImportDeclaration__StaticAssignment_2_0_0 )
+            // InternalTableDSL.g:13211:3: rule__XImportDeclaration__StaticAssignment_2_0_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__StaticAssignment_2_0_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_0__0__Impl"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_0__1"
+    // InternalTableDSL.g:13219:1: rule__XImportDeclaration__Group_2_0__1 : rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 ;
+    public final void rule__XImportDeclaration__Group_2_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13223:1: ( rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2 )
+            // InternalTableDSL.g:13224:2: rule__XImportDeclaration__Group_2_0__1__Impl rule__XImportDeclaration__Group_2_0__2
+            {
+            pushFollow(FOLLOW_100);
+            rule__XImportDeclaration__Group_2_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group_2_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_0__1"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_0__1__Impl"
+    // InternalTableDSL.g:13231:1: rule__XImportDeclaration__Group_2_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) ;
+    public final void rule__XImportDeclaration__Group_2_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13235:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? ) )
+            // InternalTableDSL.g:13236:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            {
+            // InternalTableDSL.g:13236:1: ( ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )? )
+            // InternalTableDSL.g:13237:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); 
+            }
+            // InternalTableDSL.g:13238:2: ( rule__XImportDeclaration__ExtensionAssignment_2_0_1 )?
+            int alt95=2;
+            int LA95_0 = input.LA(1);
+
+            if ( (LA95_0==51) ) {
+                alt95=1;
+            }
+            switch (alt95) {
+                case 1 :
+                    // InternalTableDSL.g:13238:3: rule__XImportDeclaration__ExtensionAssignment_2_0_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XImportDeclaration__ExtensionAssignment_2_0_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_2_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_0__1__Impl"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_0__2"
+    // InternalTableDSL.g:13246:1: rule__XImportDeclaration__Group_2_0__2 : rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 ;
+    public final void rule__XImportDeclaration__Group_2_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13250:1: ( rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3 )
+            // InternalTableDSL.g:13251:2: rule__XImportDeclaration__Group_2_0__2__Impl rule__XImportDeclaration__Group_2_0__3
+            {
+            pushFollow(FOLLOW_101);
+            rule__XImportDeclaration__Group_2_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group_2_0__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_0__2"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_0__2__Impl"
+    // InternalTableDSL.g:13258:1: rule__XImportDeclaration__Group_2_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) ;
+    public final void rule__XImportDeclaration__Group_2_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13262:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) ) )
+            // InternalTableDSL.g:13263:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            {
+            // InternalTableDSL.g:13263:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 ) )
+            // InternalTableDSL.g:13264:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); 
+            }
+            // InternalTableDSL.g:13265:2: ( rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 )
+            // InternalTableDSL.g:13265:3: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__ImportedTypeAssignment_2_0_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_2_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_0__2__Impl"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_0__3"
+    // InternalTableDSL.g:13273:1: rule__XImportDeclaration__Group_2_0__3 : rule__XImportDeclaration__Group_2_0__3__Impl ;
+    public final void rule__XImportDeclaration__Group_2_0__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13277:1: ( rule__XImportDeclaration__Group_2_0__3__Impl )
+            // InternalTableDSL.g:13278:2: rule__XImportDeclaration__Group_2_0__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group_2_0__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_0__3"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_0__3__Impl"
+    // InternalTableDSL.g:13284:1: rule__XImportDeclaration__Group_2_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) ;
+    public final void rule__XImportDeclaration__Group_2_0__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13288:1: ( ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) ) )
+            // InternalTableDSL.g:13289:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            {
+            // InternalTableDSL.g:13289:1: ( ( rule__XImportDeclaration__Alternatives_2_0_3 ) )
+            // InternalTableDSL.g:13290:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); 
+            }
+            // InternalTableDSL.g:13291:2: ( rule__XImportDeclaration__Alternatives_2_0_3 )
+            // InternalTableDSL.g:13291:3: rule__XImportDeclaration__Alternatives_2_0_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Alternatives_2_0_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getAlternatives_2_0_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_0__3__Impl"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_3__0"
+    // InternalTableDSL.g:13300:1: rule__XImportDeclaration__Group_2_3__0 : rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 ;
+    public final void rule__XImportDeclaration__Group_2_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13304:1: ( rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1 )
+            // InternalTableDSL.g:13305:2: rule__XImportDeclaration__Group_2_3__0__Impl rule__XImportDeclaration__Group_2_3__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__XImportDeclaration__Group_2_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group_2_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_3__0"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_3__0__Impl"
+    // InternalTableDSL.g:13312:1: rule__XImportDeclaration__Group_2_3__0__Impl : ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) ;
+    public final void rule__XImportDeclaration__Group_2_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13316:1: ( ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) ) )
+            // InternalTableDSL.g:13317:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            {
+            // InternalTableDSL.g:13317:1: ( ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 ) )
+            // InternalTableDSL.g:13318:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); 
+            }
+            // InternalTableDSL.g:13319:2: ( rule__XImportDeclaration__FqnImportAssignment_2_3_0 )
+            // InternalTableDSL.g:13319:3: rule__XImportDeclaration__FqnImportAssignment_2_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__FqnImportAssignment_2_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getFqnImportAssignment_2_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_3__0__Impl"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_3__1"
+    // InternalTableDSL.g:13327:1: rule__XImportDeclaration__Group_2_3__1 : rule__XImportDeclaration__Group_2_3__1__Impl ;
+    public final void rule__XImportDeclaration__Group_2_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13331:1: ( rule__XImportDeclaration__Group_2_3__1__Impl )
+            // InternalTableDSL.g:13332:2: rule__XImportDeclaration__Group_2_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__Group_2_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_3__1"
+
+
+    // $ANTLR start "rule__XImportDeclaration__Group_2_3__1__Impl"
+    // InternalTableDSL.g:13338:1: rule__XImportDeclaration__Group_2_3__1__Impl : ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) ;
+    public final void rule__XImportDeclaration__Group_2_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13342:1: ( ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) ) )
+            // InternalTableDSL.g:13343:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            {
+            // InternalTableDSL.g:13343:1: ( ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 ) )
+            // InternalTableDSL.g:13344:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); 
+            }
+            // InternalTableDSL.g:13345:2: ( rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 )
+            // InternalTableDSL.g:13345:3: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameAssignment_2_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__Group_2_3__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group__0"
+    // InternalTableDSL.g:13354:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
+    public final void rule__XAnnotation__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13358:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
+            // InternalTableDSL.g:13359:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
+            {
+            pushFollow(FOLLOW_102);
+            rule__XAnnotation__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group__0"
+
+
+    // $ANTLR start "rule__XAnnotation__Group__0__Impl"
+    // InternalTableDSL.g:13366:1: rule__XAnnotation__Group__0__Impl : ( () ) ;
+    public final void rule__XAnnotation__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13370:1: ( ( () ) )
+            // InternalTableDSL.g:13371:1: ( () )
+            {
+            // InternalTableDSL.g:13371:1: ( () )
+            // InternalTableDSL.g:13372:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); 
+            }
+            // InternalTableDSL.g:13373:2: ()
+            // InternalTableDSL.g:13373:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group__1"
+    // InternalTableDSL.g:13381:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
+    public final void rule__XAnnotation__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13385:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
+            // InternalTableDSL.g:13386:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__XAnnotation__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group__1"
+
+
+    // $ANTLR start "rule__XAnnotation__Group__1__Impl"
+    // InternalTableDSL.g:13393:1: rule__XAnnotation__Group__1__Impl : ( '@' ) ;
+    public final void rule__XAnnotation__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13397:1: ( ( '@' ) )
+            // InternalTableDSL.g:13398:1: ( '@' )
+            {
+            // InternalTableDSL.g:13398:1: ( '@' )
+            // InternalTableDSL.g:13399:2: '@'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
+            }
+            match(input,140,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group__2"
+    // InternalTableDSL.g:13408:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 ;
+    public final void rule__XAnnotation__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13412:1: ( rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3 )
+            // InternalTableDSL.g:13413:2: rule__XAnnotation__Group__2__Impl rule__XAnnotation__Group__3
+            {
+            pushFollow(FOLLOW_103);
+            rule__XAnnotation__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group__2"
+
+
+    // $ANTLR start "rule__XAnnotation__Group__2__Impl"
+    // InternalTableDSL.g:13420:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) ;
+    public final void rule__XAnnotation__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13424:1: ( ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) ) )
+            // InternalTableDSL.g:13425:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            {
+            // InternalTableDSL.g:13425:1: ( ( rule__XAnnotation__AnnotationTypeAssignment_2 ) )
+            // InternalTableDSL.g:13426:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); 
+            }
+            // InternalTableDSL.g:13427:2: ( rule__XAnnotation__AnnotationTypeAssignment_2 )
+            // InternalTableDSL.g:13427:3: rule__XAnnotation__AnnotationTypeAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__AnnotationTypeAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group__3"
+    // InternalTableDSL.g:13435:1: rule__XAnnotation__Group__3 : rule__XAnnotation__Group__3__Impl ;
+    public final void rule__XAnnotation__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13439:1: ( rule__XAnnotation__Group__3__Impl )
+            // InternalTableDSL.g:13440:2: rule__XAnnotation__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group__3"
+
+
+    // $ANTLR start "rule__XAnnotation__Group__3__Impl"
+    // InternalTableDSL.g:13446:1: rule__XAnnotation__Group__3__Impl : ( ( rule__XAnnotation__Group_3__0 )? ) ;
+    public final void rule__XAnnotation__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13450:1: ( ( ( rule__XAnnotation__Group_3__0 )? ) )
+            // InternalTableDSL.g:13451:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:13451:1: ( ( rule__XAnnotation__Group_3__0 )? )
+            // InternalTableDSL.g:13452:2: ( rule__XAnnotation__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:13453:2: ( rule__XAnnotation__Group_3__0 )?
+            int alt96=2;
+            int LA96_0 = input.LA(1);
+
+            if ( (LA96_0==132) ) {
+                alt96=1;
+            }
+            switch (alt96) {
+                case 1 :
+                    // InternalTableDSL.g:13453:3: rule__XAnnotation__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAnnotation__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3__0"
+    // InternalTableDSL.g:13462:1: rule__XAnnotation__Group_3__0 : rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 ;
+    public final void rule__XAnnotation__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13466:1: ( rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1 )
+            // InternalTableDSL.g:13467:2: rule__XAnnotation__Group_3__0__Impl rule__XAnnotation__Group_3__1
+            {
+            pushFollow(FOLLOW_104);
+            rule__XAnnotation__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3__0"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3__0__Impl"
+    // InternalTableDSL.g:13474:1: rule__XAnnotation__Group_3__0__Impl : ( ( '(' ) ) ;
+    public final void rule__XAnnotation__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13478:1: ( ( ( '(' ) ) )
+            // InternalTableDSL.g:13479:1: ( ( '(' ) )
+            {
+            // InternalTableDSL.g:13479:1: ( ( '(' ) )
+            // InternalTableDSL.g:13480:2: ( '(' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); 
+            }
+            // InternalTableDSL.g:13481:2: ( '(' )
+            // InternalTableDSL.g:13481:3: '('
+            {
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3__1"
+    // InternalTableDSL.g:13489:1: rule__XAnnotation__Group_3__1 : rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 ;
+    public final void rule__XAnnotation__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13493:1: ( rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2 )
+            // InternalTableDSL.g:13494:2: rule__XAnnotation__Group_3__1__Impl rule__XAnnotation__Group_3__2
+            {
+            pushFollow(FOLLOW_104);
+            rule__XAnnotation__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group_3__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3__1"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3__1__Impl"
+    // InternalTableDSL.g:13501:1: rule__XAnnotation__Group_3__1__Impl : ( ( rule__XAnnotation__Alternatives_3_1 )? ) ;
+    public final void rule__XAnnotation__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13505:1: ( ( ( rule__XAnnotation__Alternatives_3_1 )? ) )
+            // InternalTableDSL.g:13506:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            {
+            // InternalTableDSL.g:13506:1: ( ( rule__XAnnotation__Alternatives_3_1 )? )
+            // InternalTableDSL.g:13507:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); 
+            }
+            // InternalTableDSL.g:13508:2: ( rule__XAnnotation__Alternatives_3_1 )?
+            int alt97=2;
+            int LA97_0 = input.LA(1);
+
+            if ( ((LA97_0>=RULE_STRING && LA97_0<=RULE_DECIMAL)||(LA97_0>=19 && LA97_0<=20)||LA97_0==32||LA97_0==43||(LA97_0>=48 && LA97_0<=53)||LA97_0==75||LA97_0==132||LA97_0==140||(LA97_0>=143 && LA97_0<=144)||LA97_0==146||LA97_0==148||(LA97_0>=151 && LA97_0<=159)||LA97_0==161||LA97_0==188) ) {
+                alt97=1;
+            }
+            switch (alt97) {
+                case 1 :
+                    // InternalTableDSL.g:13508:3: rule__XAnnotation__Alternatives_3_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAnnotation__Alternatives_3_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3__2"
+    // InternalTableDSL.g:13516:1: rule__XAnnotation__Group_3__2 : rule__XAnnotation__Group_3__2__Impl ;
+    public final void rule__XAnnotation__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13520:1: ( rule__XAnnotation__Group_3__2__Impl )
+            // InternalTableDSL.g:13521:2: rule__XAnnotation__Group_3__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group_3__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3__2"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3__2__Impl"
+    // InternalTableDSL.g:13527:1: rule__XAnnotation__Group_3__2__Impl : ( ')' ) ;
+    public final void rule__XAnnotation__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13531:1: ( ( ')' ) )
+            // InternalTableDSL.g:13532:1: ( ')' )
+            {
+            // InternalTableDSL.g:13532:1: ( ')' )
+            // InternalTableDSL.g:13533:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3_1_0__0"
+    // InternalTableDSL.g:13543:1: rule__XAnnotation__Group_3_1_0__0 : rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 ;
+    public final void rule__XAnnotation__Group_3_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13547:1: ( rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1 )
+            // InternalTableDSL.g:13548:2: rule__XAnnotation__Group_3_1_0__0__Impl rule__XAnnotation__Group_3_1_0__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XAnnotation__Group_3_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group_3_1_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3_1_0__0"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3_1_0__0__Impl"
+    // InternalTableDSL.g:13555:1: rule__XAnnotation__Group_3_1_0__0__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) ;
+    public final void rule__XAnnotation__Group_3_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13559:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) ) )
+            // InternalTableDSL.g:13560:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            {
+            // InternalTableDSL.g:13560:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 ) )
+            // InternalTableDSL.g:13561:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); 
+            }
+            // InternalTableDSL.g:13562:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 )
+            // InternalTableDSL.g:13562:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3_1_0__1"
+    // InternalTableDSL.g:13570:1: rule__XAnnotation__Group_3_1_0__1 : rule__XAnnotation__Group_3_1_0__1__Impl ;
+    public final void rule__XAnnotation__Group_3_1_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13574:1: ( rule__XAnnotation__Group_3_1_0__1__Impl )
+            // InternalTableDSL.g:13575:2: rule__XAnnotation__Group_3_1_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group_3_1_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3_1_0__1"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3_1_0__1__Impl"
+    // InternalTableDSL.g:13581:1: rule__XAnnotation__Group_3_1_0__1__Impl : ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) ;
+    public final void rule__XAnnotation__Group_3_1_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13585:1: ( ( ( rule__XAnnotation__Group_3_1_0_1__0 )* ) )
+            // InternalTableDSL.g:13586:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            {
+            // InternalTableDSL.g:13586:1: ( ( rule__XAnnotation__Group_3_1_0_1__0 )* )
+            // InternalTableDSL.g:13587:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); 
+            }
+            // InternalTableDSL.g:13588:2: ( rule__XAnnotation__Group_3_1_0_1__0 )*
+            loop98:
+            do {
+                int alt98=2;
+                int LA98_0 = input.LA(1);
+
+                if ( (LA98_0==141) ) {
+                    alt98=1;
+                }
+
+
+                switch (alt98) {
+            	case 1 :
+            	    // InternalTableDSL.g:13588:3: rule__XAnnotation__Group_3_1_0_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XAnnotation__Group_3_1_0_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop98;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3_1_0__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0"
+    // InternalTableDSL.g:13597:1: rule__XAnnotation__Group_3_1_0_1__0 : rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 ;
+    public final void rule__XAnnotation__Group_3_1_0_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13601:1: ( rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1 )
+            // InternalTableDSL.g:13602:2: rule__XAnnotation__Group_3_1_0_1__0__Impl rule__XAnnotation__Group_3_1_0_1__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__XAnnotation__Group_3_1_0_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group_3_1_0_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3_1_0_1__0"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__0__Impl"
+    // InternalTableDSL.g:13609:1: rule__XAnnotation__Group_3_1_0_1__0__Impl : ( ',' ) ;
+    public final void rule__XAnnotation__Group_3_1_0_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13613:1: ( ( ',' ) )
+            // InternalTableDSL.g:13614:1: ( ',' )
+            {
+            // InternalTableDSL.g:13614:1: ( ',' )
+            // InternalTableDSL.g:13615:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3_1_0_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1"
+    // InternalTableDSL.g:13624:1: rule__XAnnotation__Group_3_1_0_1__1 : rule__XAnnotation__Group_3_1_0_1__1__Impl ;
+    public final void rule__XAnnotation__Group_3_1_0_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13628:1: ( rule__XAnnotation__Group_3_1_0_1__1__Impl )
+            // InternalTableDSL.g:13629:2: rule__XAnnotation__Group_3_1_0_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__Group_3_1_0_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3_1_0_1__1"
+
+
+    // $ANTLR start "rule__XAnnotation__Group_3_1_0_1__1__Impl"
+    // InternalTableDSL.g:13635:1: rule__XAnnotation__Group_3_1_0_1__1__Impl : ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) ;
+    public final void rule__XAnnotation__Group_3_1_0_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13639:1: ( ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) ) )
+            // InternalTableDSL.g:13640:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            {
+            // InternalTableDSL.g:13640:1: ( ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 ) )
+            // InternalTableDSL.g:13641:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); 
+            }
+            // InternalTableDSL.g:13642:2: ( rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 )
+            // InternalTableDSL.g:13642:3: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Group_3_1_0_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__Group__0"
+    // InternalTableDSL.g:13651:1: rule__XAnnotationElementValuePair__Group__0 : rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 ;
+    public final void rule__XAnnotationElementValuePair__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13655:1: ( rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1 )
+            // InternalTableDSL.g:13656:2: rule__XAnnotationElementValuePair__Group__0__Impl rule__XAnnotationElementValuePair__Group__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XAnnotationElementValuePair__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValuePair__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__Group__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__Group__0__Impl"
+    // InternalTableDSL.g:13663:1: rule__XAnnotationElementValuePair__Group__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) ;
+    public final void rule__XAnnotationElementValuePair__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13667:1: ( ( ( rule__XAnnotationElementValuePair__Group_0__0 ) ) )
+            // InternalTableDSL.g:13668:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            {
+            // InternalTableDSL.g:13668:1: ( ( rule__XAnnotationElementValuePair__Group_0__0 ) )
+            // InternalTableDSL.g:13669:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); 
+            }
+            // InternalTableDSL.g:13670:2: ( rule__XAnnotationElementValuePair__Group_0__0 )
+            // InternalTableDSL.g:13670:3: rule__XAnnotationElementValuePair__Group_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValuePair__Group_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__Group__1"
+    // InternalTableDSL.g:13678:1: rule__XAnnotationElementValuePair__Group__1 : rule__XAnnotationElementValuePair__Group__1__Impl ;
+    public final void rule__XAnnotationElementValuePair__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13682:1: ( rule__XAnnotationElementValuePair__Group__1__Impl )
+            // InternalTableDSL.g:13683:2: rule__XAnnotationElementValuePair__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValuePair__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__Group__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__Group__1__Impl"
+    // InternalTableDSL.g:13689:1: rule__XAnnotationElementValuePair__Group__1__Impl : ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) ;
+    public final void rule__XAnnotationElementValuePair__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13693:1: ( ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) ) )
+            // InternalTableDSL.g:13694:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            {
+            // InternalTableDSL.g:13694:1: ( ( rule__XAnnotationElementValuePair__ValueAssignment_1 ) )
+            // InternalTableDSL.g:13695:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); 
+            }
+            // InternalTableDSL.g:13696:2: ( rule__XAnnotationElementValuePair__ValueAssignment_1 )
+            // InternalTableDSL.g:13696:3: rule__XAnnotationElementValuePair__ValueAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValuePair__ValueAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0"
+    // InternalTableDSL.g:13705:1: rule__XAnnotationElementValuePair__Group_0__0 : rule__XAnnotationElementValuePair__Group_0__0__Impl ;
+    public final void rule__XAnnotationElementValuePair__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13709:1: ( rule__XAnnotationElementValuePair__Group_0__0__Impl )
+            // InternalTableDSL.g:13710:2: rule__XAnnotationElementValuePair__Group_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValuePair__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__Group_0__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__Group_0__0__Impl"
+    // InternalTableDSL.g:13716:1: rule__XAnnotationElementValuePair__Group_0__0__Impl : ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) ;
+    public final void rule__XAnnotationElementValuePair__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13720:1: ( ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) ) )
+            // InternalTableDSL.g:13721:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            {
+            // InternalTableDSL.g:13721:1: ( ( rule__XAnnotationElementValuePair__Group_0_0__0 ) )
+            // InternalTableDSL.g:13722:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); 
+            }
+            // InternalTableDSL.g:13723:2: ( rule__XAnnotationElementValuePair__Group_0_0__0 )
+            // InternalTableDSL.g:13723:3: rule__XAnnotationElementValuePair__Group_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValuePair__Group_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0"
+    // InternalTableDSL.g:13732:1: rule__XAnnotationElementValuePair__Group_0_0__0 : rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 ;
+    public final void rule__XAnnotationElementValuePair__Group_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13736:1: ( rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1 )
+            // InternalTableDSL.g:13737:2: rule__XAnnotationElementValuePair__Group_0_0__0__Impl rule__XAnnotationElementValuePair__Group_0_0__1
+            {
+            pushFollow(FOLLOW_83);
+            rule__XAnnotationElementValuePair__Group_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValuePair__Group_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__Group_0_0__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__0__Impl"
+    // InternalTableDSL.g:13744:1: rule__XAnnotationElementValuePair__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) ;
+    public final void rule__XAnnotationElementValuePair__Group_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13748:1: ( ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) ) )
+            // InternalTableDSL.g:13749:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            {
+            // InternalTableDSL.g:13749:1: ( ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 ) )
+            // InternalTableDSL.g:13750:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); 
+            }
+            // InternalTableDSL.g:13751:2: ( rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 )
+            // InternalTableDSL.g:13751:3: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValuePair__ElementAssignment_0_0_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__Group_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1"
+    // InternalTableDSL.g:13759:1: rule__XAnnotationElementValuePair__Group_0_0__1 : rule__XAnnotationElementValuePair__Group_0_0__1__Impl ;
+    public final void rule__XAnnotationElementValuePair__Group_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13763:1: ( rule__XAnnotationElementValuePair__Group_0_0__1__Impl )
+            // InternalTableDSL.g:13764:2: rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValuePair__Group_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__Group_0_0__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__Group_0_0__1__Impl"
+    // InternalTableDSL.g:13770:1: rule__XAnnotationElementValuePair__Group_0_0__1__Impl : ( '=' ) ;
+    public final void rule__XAnnotationElementValuePair__Group_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13774:1: ( ( '=' ) )
+            // InternalTableDSL.g:13775:1: ( '=' )
+            {
+            // InternalTableDSL.g:13775:1: ( '=' )
+            // InternalTableDSL.g:13776:2: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); 
+            }
+            match(input,15,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__Group_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0"
+    // InternalTableDSL.g:13786:1: rule__XAnnotationElementValueOrCommaList__Group_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13790:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1 )
+            // InternalTableDSL.g:13791:2: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0__1
+            {
+            pushFollow(FOLLOW_108);
+            rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl"
+    // InternalTableDSL.g:13798:1: rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13802:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) ) )
+            // InternalTableDSL.g:13803:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            {
+            // InternalTableDSL.g:13803:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 ) )
+            // InternalTableDSL.g:13804:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); 
+            }
+            // InternalTableDSL.g:13805:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0 )
+            // InternalTableDSL.g:13805:3: rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1"
+    // InternalTableDSL.g:13813:1: rule__XAnnotationElementValueOrCommaList__Group_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13817:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2 )
+            // InternalTableDSL.g:13818:2: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0__2
+            {
+            pushFollow(FOLLOW_108);
+            rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl"
+    // InternalTableDSL.g:13825:1: rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13829:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? ) )
+            // InternalTableDSL.g:13830:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            {
+            // InternalTableDSL.g:13830:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )? )
+            // InternalTableDSL.g:13831:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); 
+            }
+            // InternalTableDSL.g:13832:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0 )?
+            int alt99=2;
+            int LA99_0 = input.LA(1);
+
+            if ( ((LA99_0>=RULE_STRING && LA99_0<=RULE_DECIMAL)||(LA99_0>=19 && LA99_0<=20)||LA99_0==32||LA99_0==43||(LA99_0>=48 && LA99_0<=53)||LA99_0==75||LA99_0==132||LA99_0==140||(LA99_0>=143 && LA99_0<=144)||LA99_0==146||LA99_0==148||(LA99_0>=151 && LA99_0<=159)||LA99_0==161||LA99_0==188) ) {
+                alt99=1;
+            }
+            switch (alt99) {
+                case 1 :
+                    // InternalTableDSL.g:13832:3: rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAnnotationElementValueOrCommaList__Group_0_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2"
+    // InternalTableDSL.g:13840:1: rule__XAnnotationElementValueOrCommaList__Group_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13844:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl )
+            // InternalTableDSL.g:13845:2: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0__2"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl"
+    // InternalTableDSL.g:13851:1: rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl : ( ']' ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13855:1: ( ( ']' ) )
+            // InternalTableDSL.g:13856:1: ( ']' )
+            {
+            // InternalTableDSL.g:13856:1: ( ']' )
+            // InternalTableDSL.g:13857:2: ']'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
+            }
+            match(input,142,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0"
+    // InternalTableDSL.g:13867:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13871:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl )
+            // InternalTableDSL.g:13872:2: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_0__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl"
+    // InternalTableDSL.g:13878:1: rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13882:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) ) )
+            // InternalTableDSL.g:13883:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            {
+            // InternalTableDSL.g:13883:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 ) )
+            // InternalTableDSL.g:13884:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); 
+            }
+            // InternalTableDSL.g:13885:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 )
+            // InternalTableDSL.g:13885:3: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0"
+    // InternalTableDSL.g:13894:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13898:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 )
+            // InternalTableDSL.g:13899:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+            {
+            pushFollow(FOLLOW_109);
+            rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl"
+    // InternalTableDSL.g:13906:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl : ( () ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13910:1: ( ( () ) )
+            // InternalTableDSL.g:13911:1: ( () )
+            {
+            // InternalTableDSL.g:13911:1: ( () )
+            // InternalTableDSL.g:13912:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); 
+            }
+            // InternalTableDSL.g:13913:2: ()
+            // InternalTableDSL.g:13913:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1"
+    // InternalTableDSL.g:13921:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13925:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 )
+            // InternalTableDSL.g:13926:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+            {
+            pushFollow(FOLLOW_110);
+            rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl"
+    // InternalTableDSL.g:13933:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl : ( '#' ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13937:1: ( ( '#' ) )
+            // InternalTableDSL.g:13938:1: ( '#' )
+            {
+            // InternalTableDSL.g:13938:1: ( '#' )
+            // InternalTableDSL.g:13939:2: '#'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
+            }
+            match(input,143,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2"
+    // InternalTableDSL.g:13948:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2 : rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13952:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl )
+            // InternalTableDSL.g:13953:2: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl"
+    // InternalTableDSL.g:13959:1: rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl : ( '[' ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13963:1: ( ( '[' ) )
+            // InternalTableDSL.g:13964:1: ( '[' )
+            {
+            // InternalTableDSL.g:13964:1: ( '[' )
+            // InternalTableDSL.g:13965:2: '['
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
+            }
+            match(input,144,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0"
+    // InternalTableDSL.g:13975:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13979:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1 )
+            // InternalTableDSL.g:13980:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_1__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl"
+    // InternalTableDSL.g:13987:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:13991:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) ) )
+            // InternalTableDSL.g:13992:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            {
+            // InternalTableDSL.g:13992:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 ) )
+            // InternalTableDSL.g:13993:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); 
+            }
+            // InternalTableDSL.g:13994:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 )
+            // InternalTableDSL.g:13994:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1"
+    // InternalTableDSL.g:14002:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14006:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl )
+            // InternalTableDSL.g:14007:2: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_1__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl"
+    // InternalTableDSL.g:14013:1: rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14017:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* ) )
+            // InternalTableDSL.g:14018:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            {
+            // InternalTableDSL.g:14018:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )* )
+            // InternalTableDSL.g:14019:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); 
+            }
+            // InternalTableDSL.g:14020:2: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 )*
+            loop100:
+            do {
+                int alt100=2;
+                int LA100_0 = input.LA(1);
+
+                if ( (LA100_0==141) ) {
+                    alt100=1;
+                }
+
+
+                switch (alt100) {
+            	case 1 :
+            	    // InternalTableDSL.g:14020:3: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop100;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0"
+    // InternalTableDSL.g:14029:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14033:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 )
+            // InternalTableDSL.g:14034:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl"
+    // InternalTableDSL.g:14041:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl : ( ',' ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14045:1: ( ( ',' ) )
+            // InternalTableDSL.g:14046:1: ( ',' )
+            {
+            // InternalTableDSL.g:14046:1: ( ',' )
+            // InternalTableDSL.g:14047:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1"
+    // InternalTableDSL.g:14056:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14060:1: ( rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl )
+            // InternalTableDSL.g:14061:2: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl"
+    // InternalTableDSL.g:14067:1: rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14071:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalTableDSL.g:14072:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            {
+            // InternalTableDSL.g:14072:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 ) )
+            // InternalTableDSL.g:14073:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); 
+            }
+            // InternalTableDSL.g:14074:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 )
+            // InternalTableDSL.g:14074:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0"
+    // InternalTableDSL.g:14083:1: rule__XAnnotationElementValueOrCommaList__Group_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14087:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1 )
+            // InternalTableDSL.g:14088:2: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl"
+    // InternalTableDSL.g:14095:1: rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl : ( ruleXAnnotationOrExpression ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14099:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalTableDSL.g:14100:1: ( ruleXAnnotationOrExpression )
+            {
+            // InternalTableDSL.g:14100:1: ( ruleXAnnotationOrExpression )
+            // InternalTableDSL.g:14101:2: ruleXAnnotationOrExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1"
+    // InternalTableDSL.g:14110:1: rule__XAnnotationElementValueOrCommaList__Group_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14114:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl )
+            // InternalTableDSL.g:14115:2: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl"
+    // InternalTableDSL.g:14121:1: rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14125:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? ) )
+            // InternalTableDSL.g:14126:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            {
+            // InternalTableDSL.g:14126:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )? )
+            // InternalTableDSL.g:14127:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); 
+            }
+            // InternalTableDSL.g:14128:2: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0 )?
+            int alt101=2;
+            int LA101_0 = input.LA(1);
+
+            if ( (LA101_0==141) ) {
+                alt101=1;
+            }
+            switch (alt101) {
+                case 1 :
+                    // InternalTableDSL.g:14128:3: rule__XAnnotationElementValueOrCommaList__Group_1_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAnnotationElementValueOrCommaList__Group_1_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0"
+    // InternalTableDSL.g:14137:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14141:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1 )
+            // InternalTableDSL.g:14142:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1_1__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl"
+    // InternalTableDSL.g:14149:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl : ( () ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14153:1: ( ( () ) )
+            // InternalTableDSL.g:14154:1: ( () )
+            {
+            // InternalTableDSL.g:14154:1: ( () )
+            // InternalTableDSL.g:14155:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); 
+            }
+            // InternalTableDSL.g:14156:2: ()
+            // InternalTableDSL.g:14156:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1"
+    // InternalTableDSL.g:14164:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14168:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl )
+            // InternalTableDSL.g:14169:2: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1_1__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl"
+    // InternalTableDSL.g:14175:1: rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14179:1: ( ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) ) )
+            // InternalTableDSL.g:14180:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            {
+            // InternalTableDSL.g:14180:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* ) )
+            // InternalTableDSL.g:14181:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) ) ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            {
+            // InternalTableDSL.g:14181:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 ) )
+            // InternalTableDSL.g:14182:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
+            }
+            // InternalTableDSL.g:14183:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )
+            // InternalTableDSL.g:14183:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            {
+            pushFollow(FOLLOW_106);
+            rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
+            }
+
+            }
+
+            // InternalTableDSL.g:14186:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )* )
+            // InternalTableDSL.g:14187:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
+            }
+            // InternalTableDSL.g:14188:3: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 )*
+            loop102:
+            do {
+                int alt102=2;
+                int LA102_0 = input.LA(1);
+
+                if ( (LA102_0==141) ) {
+                    alt102=1;
+                }
+
+
+                switch (alt102) {
+            	case 1 :
+            	    // InternalTableDSL.g:14188:4: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop102;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0"
+    // InternalTableDSL.g:14198:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14202:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 )
+            // InternalTableDSL.g:14203:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl"
+    // InternalTableDSL.g:14210:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl : ( ',' ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14214:1: ( ( ',' ) )
+            // InternalTableDSL.g:14215:1: ( ',' )
+            {
+            // InternalTableDSL.g:14215:1: ( ',' )
+            // InternalTableDSL.g:14216:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1"
+    // InternalTableDSL.g:14225:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1 : rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14229:1: ( rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl )
+            // InternalTableDSL.g:14230:2: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl"
+    // InternalTableDSL.g:14236:1: rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl : ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14240:1: ( ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) ) )
+            // InternalTableDSL.g:14241:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            {
+            // InternalTableDSL.g:14241:1: ( ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 ) )
+            // InternalTableDSL.g:14242:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); 
+            }
+            // InternalTableDSL.g:14243:2: ( rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 )
+            // InternalTableDSL.g:14243:3: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0__0"
+    // InternalTableDSL.g:14252:1: rule__XAnnotationElementValue__Group_0__0 : rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 ;
+    public final void rule__XAnnotationElementValue__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14256:1: ( rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1 )
+            // InternalTableDSL.g:14257:2: rule__XAnnotationElementValue__Group_0__0__Impl rule__XAnnotationElementValue__Group_0__1
+            {
+            pushFollow(FOLLOW_108);
+            rule__XAnnotationElementValue__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0__0__Impl"
+    // InternalTableDSL.g:14264:1: rule__XAnnotationElementValue__Group_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) ;
+    public final void rule__XAnnotationElementValue__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14268:1: ( ( ( rule__XAnnotationElementValue__Group_0_0__0 ) ) )
+            // InternalTableDSL.g:14269:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            {
+            // InternalTableDSL.g:14269:1: ( ( rule__XAnnotationElementValue__Group_0_0__0 ) )
+            // InternalTableDSL.g:14270:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); 
+            }
+            // InternalTableDSL.g:14271:2: ( rule__XAnnotationElementValue__Group_0_0__0 )
+            // InternalTableDSL.g:14271:3: rule__XAnnotationElementValue__Group_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0__1"
+    // InternalTableDSL.g:14279:1: rule__XAnnotationElementValue__Group_0__1 : rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 ;
+    public final void rule__XAnnotationElementValue__Group_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14283:1: ( rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2 )
+            // InternalTableDSL.g:14284:2: rule__XAnnotationElementValue__Group_0__1__Impl rule__XAnnotationElementValue__Group_0__2
+            {
+            pushFollow(FOLLOW_108);
+            rule__XAnnotationElementValue__Group_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0__1__Impl"
+    // InternalTableDSL.g:14291:1: rule__XAnnotationElementValue__Group_0__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) ;
+    public final void rule__XAnnotationElementValue__Group_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14295:1: ( ( ( rule__XAnnotationElementValue__Group_0_1__0 )? ) )
+            // InternalTableDSL.g:14296:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            {
+            // InternalTableDSL.g:14296:1: ( ( rule__XAnnotationElementValue__Group_0_1__0 )? )
+            // InternalTableDSL.g:14297:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); 
+            }
+            // InternalTableDSL.g:14298:2: ( rule__XAnnotationElementValue__Group_0_1__0 )?
+            int alt103=2;
+            int LA103_0 = input.LA(1);
+
+            if ( ((LA103_0>=RULE_STRING && LA103_0<=RULE_DECIMAL)||(LA103_0>=19 && LA103_0<=20)||LA103_0==32||LA103_0==43||(LA103_0>=48 && LA103_0<=53)||LA103_0==75||LA103_0==132||LA103_0==140||(LA103_0>=143 && LA103_0<=144)||LA103_0==146||LA103_0==148||(LA103_0>=151 && LA103_0<=159)||LA103_0==161||LA103_0==188) ) {
+                alt103=1;
+            }
+            switch (alt103) {
+                case 1 :
+                    // InternalTableDSL.g:14298:3: rule__XAnnotationElementValue__Group_0_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAnnotationElementValue__Group_0_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0__2"
+    // InternalTableDSL.g:14306:1: rule__XAnnotationElementValue__Group_0__2 : rule__XAnnotationElementValue__Group_0__2__Impl ;
+    public final void rule__XAnnotationElementValue__Group_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14310:1: ( rule__XAnnotationElementValue__Group_0__2__Impl )
+            // InternalTableDSL.g:14311:2: rule__XAnnotationElementValue__Group_0__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0__2"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0__2__Impl"
+    // InternalTableDSL.g:14317:1: rule__XAnnotationElementValue__Group_0__2__Impl : ( ']' ) ;
+    public final void rule__XAnnotationElementValue__Group_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14321:1: ( ( ']' ) )
+            // InternalTableDSL.g:14322:1: ( ']' )
+            {
+            // InternalTableDSL.g:14322:1: ( ']' )
+            // InternalTableDSL.g:14323:2: ']'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
+            }
+            match(input,142,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0__2__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0"
+    // InternalTableDSL.g:14333:1: rule__XAnnotationElementValue__Group_0_0__0 : rule__XAnnotationElementValue__Group_0_0__0__Impl ;
+    public final void rule__XAnnotationElementValue__Group_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14337:1: ( rule__XAnnotationElementValue__Group_0_0__0__Impl )
+            // InternalTableDSL.g:14338:2: rule__XAnnotationElementValue__Group_0_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_0__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_0__0__Impl"
+    // InternalTableDSL.g:14344:1: rule__XAnnotationElementValue__Group_0_0__0__Impl : ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) ;
+    public final void rule__XAnnotationElementValue__Group_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14348:1: ( ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) ) )
+            // InternalTableDSL.g:14349:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            {
+            // InternalTableDSL.g:14349:1: ( ( rule__XAnnotationElementValue__Group_0_0_0__0 ) )
+            // InternalTableDSL.g:14350:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); 
+            }
+            // InternalTableDSL.g:14351:2: ( rule__XAnnotationElementValue__Group_0_0_0__0 )
+            // InternalTableDSL.g:14351:3: rule__XAnnotationElementValue__Group_0_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0"
+    // InternalTableDSL.g:14360:1: rule__XAnnotationElementValue__Group_0_0_0__0 : rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 ;
+    public final void rule__XAnnotationElementValue__Group_0_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14364:1: ( rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1 )
+            // InternalTableDSL.g:14365:2: rule__XAnnotationElementValue__Group_0_0_0__0__Impl rule__XAnnotationElementValue__Group_0_0_0__1
+            {
+            pushFollow(FOLLOW_109);
+            rule__XAnnotationElementValue__Group_0_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_0_0__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__0__Impl"
+    // InternalTableDSL.g:14372:1: rule__XAnnotationElementValue__Group_0_0_0__0__Impl : ( () ) ;
+    public final void rule__XAnnotationElementValue__Group_0_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14376:1: ( ( () ) )
+            // InternalTableDSL.g:14377:1: ( () )
+            {
+            // InternalTableDSL.g:14377:1: ( () )
+            // InternalTableDSL.g:14378:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); 
+            }
+            // InternalTableDSL.g:14379:2: ()
+            // InternalTableDSL.g:14379:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1"
+    // InternalTableDSL.g:14387:1: rule__XAnnotationElementValue__Group_0_0_0__1 : rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 ;
+    public final void rule__XAnnotationElementValue__Group_0_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14391:1: ( rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2 )
+            // InternalTableDSL.g:14392:2: rule__XAnnotationElementValue__Group_0_0_0__1__Impl rule__XAnnotationElementValue__Group_0_0_0__2
+            {
+            pushFollow(FOLLOW_110);
+            rule__XAnnotationElementValue__Group_0_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0_0_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_0_0__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__1__Impl"
+    // InternalTableDSL.g:14399:1: rule__XAnnotationElementValue__Group_0_0_0__1__Impl : ( '#' ) ;
+    public final void rule__XAnnotationElementValue__Group_0_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14403:1: ( ( '#' ) )
+            // InternalTableDSL.g:14404:1: ( '#' )
+            {
+            // InternalTableDSL.g:14404:1: ( '#' )
+            // InternalTableDSL.g:14405:2: '#'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
+            }
+            match(input,143,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2"
+    // InternalTableDSL.g:14414:1: rule__XAnnotationElementValue__Group_0_0_0__2 : rule__XAnnotationElementValue__Group_0_0_0__2__Impl ;
+    public final void rule__XAnnotationElementValue__Group_0_0_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14418:1: ( rule__XAnnotationElementValue__Group_0_0_0__2__Impl )
+            // InternalTableDSL.g:14419:2: rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0_0_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_0_0__2"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_0_0__2__Impl"
+    // InternalTableDSL.g:14425:1: rule__XAnnotationElementValue__Group_0_0_0__2__Impl : ( '[' ) ;
+    public final void rule__XAnnotationElementValue__Group_0_0_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14429:1: ( ( '[' ) )
+            // InternalTableDSL.g:14430:1: ( '[' )
+            {
+            // InternalTableDSL.g:14430:1: ( '[' )
+            // InternalTableDSL.g:14431:2: '['
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
+            }
+            match(input,144,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_0_0__2__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0"
+    // InternalTableDSL.g:14441:1: rule__XAnnotationElementValue__Group_0_1__0 : rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 ;
+    public final void rule__XAnnotationElementValue__Group_0_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14445:1: ( rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1 )
+            // InternalTableDSL.g:14446:2: rule__XAnnotationElementValue__Group_0_1__0__Impl rule__XAnnotationElementValue__Group_0_1__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XAnnotationElementValue__Group_0_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_1__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__0__Impl"
+    // InternalTableDSL.g:14453:1: rule__XAnnotationElementValue__Group_0_1__0__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) ;
+    public final void rule__XAnnotationElementValue__Group_0_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14457:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) ) )
+            // InternalTableDSL.g:14458:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            {
+            // InternalTableDSL.g:14458:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 ) )
+            // InternalTableDSL.g:14459:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); 
+            }
+            // InternalTableDSL.g:14460:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_0 )
+            // InternalTableDSL.g:14460:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__ElementsAssignment_0_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1"
+    // InternalTableDSL.g:14468:1: rule__XAnnotationElementValue__Group_0_1__1 : rule__XAnnotationElementValue__Group_0_1__1__Impl ;
+    public final void rule__XAnnotationElementValue__Group_0_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14472:1: ( rule__XAnnotationElementValue__Group_0_1__1__Impl )
+            // InternalTableDSL.g:14473:2: rule__XAnnotationElementValue__Group_0_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_1__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_1__1__Impl"
+    // InternalTableDSL.g:14479:1: rule__XAnnotationElementValue__Group_0_1__1__Impl : ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) ;
+    public final void rule__XAnnotationElementValue__Group_0_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14483:1: ( ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* ) )
+            // InternalTableDSL.g:14484:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            {
+            // InternalTableDSL.g:14484:1: ( ( rule__XAnnotationElementValue__Group_0_1_1__0 )* )
+            // InternalTableDSL.g:14485:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); 
+            }
+            // InternalTableDSL.g:14486:2: ( rule__XAnnotationElementValue__Group_0_1_1__0 )*
+            loop104:
+            do {
+                int alt104=2;
+                int LA104_0 = input.LA(1);
+
+                if ( (LA104_0==141) ) {
+                    alt104=1;
+                }
+
+
+                switch (alt104) {
+            	case 1 :
+            	    // InternalTableDSL.g:14486:3: rule__XAnnotationElementValue__Group_0_1_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XAnnotationElementValue__Group_0_1_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop104;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0"
+    // InternalTableDSL.g:14495:1: rule__XAnnotationElementValue__Group_0_1_1__0 : rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 ;
+    public final void rule__XAnnotationElementValue__Group_0_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14499:1: ( rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1 )
+            // InternalTableDSL.g:14500:2: rule__XAnnotationElementValue__Group_0_1_1__0__Impl rule__XAnnotationElementValue__Group_0_1_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XAnnotationElementValue__Group_0_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_1_1__0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__0__Impl"
+    // InternalTableDSL.g:14507:1: rule__XAnnotationElementValue__Group_0_1_1__0__Impl : ( ',' ) ;
+    public final void rule__XAnnotationElementValue__Group_0_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14511:1: ( ( ',' ) )
+            // InternalTableDSL.g:14512:1: ( ',' )
+            {
+            // InternalTableDSL.g:14512:1: ( ',' )
+            // InternalTableDSL.g:14513:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1"
+    // InternalTableDSL.g:14522:1: rule__XAnnotationElementValue__Group_0_1_1__1 : rule__XAnnotationElementValue__Group_0_1_1__1__Impl ;
+    public final void rule__XAnnotationElementValue__Group_0_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14526:1: ( rule__XAnnotationElementValue__Group_0_1_1__1__Impl )
+            // InternalTableDSL.g:14527:2: rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__Group_0_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_1_1__1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Group_0_1_1__1__Impl"
+    // InternalTableDSL.g:14533:1: rule__XAnnotationElementValue__Group_0_1_1__1__Impl : ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) ;
+    public final void rule__XAnnotationElementValue__Group_0_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14537:1: ( ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) ) )
+            // InternalTableDSL.g:14538:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            {
+            // InternalTableDSL.g:14538:1: ( ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 ) )
+            // InternalTableDSL.g:14539:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); 
+            }
+            // InternalTableDSL.g:14540:2: ( rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 )
+            // InternalTableDSL.g:14540:3: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Group_0_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_0__0"
+    // InternalTableDSL.g:14549:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
+    public final void rule__XAssignment__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14553:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
+            // InternalTableDSL.g:14554:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
+            {
+            pushFollow(FOLLOW_111);
+            rule__XAssignment__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_0__0"
+
+
+    // $ANTLR start "rule__XAssignment__Group_0__0__Impl"
+    // InternalTableDSL.g:14561:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
+    public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14565:1: ( ( () ) )
+            // InternalTableDSL.g:14566:1: ( () )
+            {
+            // InternalTableDSL.g:14566:1: ( () )
+            // InternalTableDSL.g:14567:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
+            }
+            // InternalTableDSL.g:14568:2: ()
+            // InternalTableDSL.g:14568:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_0__1"
+    // InternalTableDSL.g:14576:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
+    public final void rule__XAssignment__Group_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14580:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
+            // InternalTableDSL.g:14581:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
+            {
+            pushFollow(FOLLOW_83);
+            rule__XAssignment__Group_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_0__1"
+
+
+    // $ANTLR start "rule__XAssignment__Group_0__1__Impl"
+    // InternalTableDSL.g:14588:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
+    public final void rule__XAssignment__Group_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14592:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
+            // InternalTableDSL.g:14593:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            {
+            // InternalTableDSL.g:14593:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+            // InternalTableDSL.g:14594:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
+            }
+            // InternalTableDSL.g:14595:2: ( rule__XAssignment__FeatureAssignment_0_1 )
+            // InternalTableDSL.g:14595:3: rule__XAssignment__FeatureAssignment_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__FeatureAssignment_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_0__1__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_0__2"
+    // InternalTableDSL.g:14603:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
+    public final void rule__XAssignment__Group_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14607:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
+            // InternalTableDSL.g:14608:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
+            {
+            pushFollow(FOLLOW_107);
+            rule__XAssignment__Group_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_0__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_0__2"
+
+
+    // $ANTLR start "rule__XAssignment__Group_0__2__Impl"
+    // InternalTableDSL.g:14615:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
+    public final void rule__XAssignment__Group_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14619:1: ( ( ruleOpSingleAssign ) )
+            // InternalTableDSL.g:14620:1: ( ruleOpSingleAssign )
+            {
+            // InternalTableDSL.g:14620:1: ( ruleOpSingleAssign )
+            // InternalTableDSL.g:14621:2: ruleOpSingleAssign
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpSingleAssign();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_0__2__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_0__3"
+    // InternalTableDSL.g:14630:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
+    public final void rule__XAssignment__Group_0__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14634:1: ( rule__XAssignment__Group_0__3__Impl )
+            // InternalTableDSL.g:14635:2: rule__XAssignment__Group_0__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_0__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_0__3"
+
+
+    // $ANTLR start "rule__XAssignment__Group_0__3__Impl"
+    // InternalTableDSL.g:14641:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
+    public final void rule__XAssignment__Group_0__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14645:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
+            // InternalTableDSL.g:14646:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            {
+            // InternalTableDSL.g:14646:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+            // InternalTableDSL.g:14647:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
+            }
+            // InternalTableDSL.g:14648:2: ( rule__XAssignment__ValueAssignment_0_3 )
+            // InternalTableDSL.g:14648:3: rule__XAssignment__ValueAssignment_0_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__ValueAssignment_0_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_0__3__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1__0"
+    // InternalTableDSL.g:14657:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
+    public final void rule__XAssignment__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14661:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
+            // InternalTableDSL.g:14662:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
+            {
+            pushFollow(FOLLOW_112);
+            rule__XAssignment__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1__0"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1__0__Impl"
+    // InternalTableDSL.g:14669:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
+    public final void rule__XAssignment__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14673:1: ( ( ruleXOrExpression ) )
+            // InternalTableDSL.g:14674:1: ( ruleXOrExpression )
+            {
+            // InternalTableDSL.g:14674:1: ( ruleXOrExpression )
+            // InternalTableDSL.g:14675:2: ruleXOrExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1__1"
+    // InternalTableDSL.g:14684:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
+    public final void rule__XAssignment__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14688:1: ( rule__XAssignment__Group_1__1__Impl )
+            // InternalTableDSL.g:14689:2: rule__XAssignment__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1__1"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1__1__Impl"
+    // InternalTableDSL.g:14695:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
+    public final void rule__XAssignment__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14699:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
+            // InternalTableDSL.g:14700:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            {
+            // InternalTableDSL.g:14700:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+            // InternalTableDSL.g:14701:2: ( rule__XAssignment__Group_1_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
+            }
+            // InternalTableDSL.g:14702:2: ( rule__XAssignment__Group_1_1__0 )?
+            int alt105=2;
+            alt105 = dfa105.predict(input);
+            switch (alt105) {
+                case 1 :
+                    // InternalTableDSL.g:14702:3: rule__XAssignment__Group_1_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XAssignment__Group_1_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1_1__0"
+    // InternalTableDSL.g:14711:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
+    public final void rule__XAssignment__Group_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14715:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
+            // InternalTableDSL.g:14716:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XAssignment__Group_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1_1__0"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1_1__0__Impl"
+    // InternalTableDSL.g:14723:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
+    public final void rule__XAssignment__Group_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14727:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
+            // InternalTableDSL.g:14728:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            {
+            // InternalTableDSL.g:14728:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+            // InternalTableDSL.g:14729:2: ( rule__XAssignment__Group_1_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
+            }
+            // InternalTableDSL.g:14730:2: ( rule__XAssignment__Group_1_1_0__0 )
+            // InternalTableDSL.g:14730:3: rule__XAssignment__Group_1_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_1_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1_1__1"
+    // InternalTableDSL.g:14738:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
+    public final void rule__XAssignment__Group_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14742:1: ( rule__XAssignment__Group_1_1__1__Impl )
+            // InternalTableDSL.g:14743:2: rule__XAssignment__Group_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1_1__1"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1_1__1__Impl"
+    // InternalTableDSL.g:14749:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
+    public final void rule__XAssignment__Group_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14753:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
+            // InternalTableDSL.g:14754:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            {
+            // InternalTableDSL.g:14754:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+            // InternalTableDSL.g:14755:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
+            }
+            // InternalTableDSL.g:14756:2: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+            // InternalTableDSL.g:14756:3: rule__XAssignment__RightOperandAssignment_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__RightOperandAssignment_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1_1_0__0"
+    // InternalTableDSL.g:14765:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
+    public final void rule__XAssignment__Group_1_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14769:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
+            // InternalTableDSL.g:14770:2: rule__XAssignment__Group_1_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_1_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1_1_0__0"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1_1_0__0__Impl"
+    // InternalTableDSL.g:14776:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
+    public final void rule__XAssignment__Group_1_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14780:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
+            // InternalTableDSL.g:14781:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:14781:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+            // InternalTableDSL.g:14782:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
+            }
+            // InternalTableDSL.g:14783:2: ( rule__XAssignment__Group_1_1_0_0__0 )
+            // InternalTableDSL.g:14783:3: rule__XAssignment__Group_1_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_1_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0"
+    // InternalTableDSL.g:14792:1: rule__XAssignment__Group_1_1_0_0__0 : rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 ;
+    public final void rule__XAssignment__Group_1_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14796:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
+            // InternalTableDSL.g:14797:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
+            {
+            pushFollow(FOLLOW_112);
+            rule__XAssignment__Group_1_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_1_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1_1_0_0__0"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0__Impl"
+    // InternalTableDSL.g:14804:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
+    public final void rule__XAssignment__Group_1_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14808:1: ( ( () ) )
+            // InternalTableDSL.g:14809:1: ( () )
+            {
+            // InternalTableDSL.g:14809:1: ( () )
+            // InternalTableDSL.g:14810:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:14811:2: ()
+            // InternalTableDSL.g:14811:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1"
+    // InternalTableDSL.g:14819:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
+    public final void rule__XAssignment__Group_1_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14823:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
+            // InternalTableDSL.g:14824:2: rule__XAssignment__Group_1_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__Group_1_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1_1_0_0__1"
+
+
+    // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1__Impl"
+    // InternalTableDSL.g:14830:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
+    public final void rule__XAssignment__Group_1_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14834:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalTableDSL.g:14835:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            {
+            // InternalTableDSL.g:14835:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalTableDSL.g:14836:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
+            }
+            // InternalTableDSL.g:14837:2: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+            // InternalTableDSL.g:14837:3: rule__XAssignment__FeatureAssignment_1_1_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAssignment__FeatureAssignment_1_1_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Group_1_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_5__0"
+    // InternalTableDSL.g:14846:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
+    public final void rule__OpMultiAssign__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14850:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
+            // InternalTableDSL.g:14851:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
+            {
+            pushFollow(FOLLOW_113);
+            rule__OpMultiAssign__Group_5__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__OpMultiAssign__Group_5__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_5__0"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_5__0__Impl"
+    // InternalTableDSL.g:14858:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
+    public final void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14862:1: ( ( '<' ) )
+            // InternalTableDSL.g:14863:1: ( '<' )
+            {
+            // InternalTableDSL.g:14863:1: ( '<' )
+            // InternalTableDSL.g:14864:2: '<'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
+            }
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_5__1"
+    // InternalTableDSL.g:14873:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
+    public final void rule__OpMultiAssign__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14877:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
+            // InternalTableDSL.g:14878:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
+            {
+            pushFollow(FOLLOW_83);
+            rule__OpMultiAssign__Group_5__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__OpMultiAssign__Group_5__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_5__1"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_5__1__Impl"
+    // InternalTableDSL.g:14885:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
+    public final void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14889:1: ( ( '<' ) )
+            // InternalTableDSL.g:14890:1: ( '<' )
+            {
+            // InternalTableDSL.g:14890:1: ( '<' )
+            // InternalTableDSL.g:14891:2: '<'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
+            }
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_5__2"
+    // InternalTableDSL.g:14900:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
+    public final void rule__OpMultiAssign__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14904:1: ( rule__OpMultiAssign__Group_5__2__Impl )
+            // InternalTableDSL.g:14905:2: rule__OpMultiAssign__Group_5__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpMultiAssign__Group_5__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_5__2"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_5__2__Impl"
+    // InternalTableDSL.g:14911:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
+    public final void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14915:1: ( ( '=' ) )
+            // InternalTableDSL.g:14916:1: ( '=' )
+            {
+            // InternalTableDSL.g:14916:1: ( '=' )
+            // InternalTableDSL.g:14917:2: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
+            }
+            match(input,15,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_6__0"
+    // InternalTableDSL.g:14927:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
+    public final void rule__OpMultiAssign__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14931:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
+            // InternalTableDSL.g:14932:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
+            {
+            pushFollow(FOLLOW_114);
+            rule__OpMultiAssign__Group_6__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__OpMultiAssign__Group_6__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_6__0"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_6__0__Impl"
+    // InternalTableDSL.g:14939:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
+    public final void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14943:1: ( ( '>' ) )
+            // InternalTableDSL.g:14944:1: ( '>' )
+            {
+            // InternalTableDSL.g:14944:1: ( '>' )
+            // InternalTableDSL.g:14945:2: '>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
+            }
+            match(input,31,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_6__1"
+    // InternalTableDSL.g:14954:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
+    public final void rule__OpMultiAssign__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14958:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
+            // InternalTableDSL.g:14959:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
+            {
+            pushFollow(FOLLOW_114);
+            rule__OpMultiAssign__Group_6__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__OpMultiAssign__Group_6__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_6__1"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_6__1__Impl"
+    // InternalTableDSL.g:14966:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
+    public final void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14970:1: ( ( ( '>' )? ) )
+            // InternalTableDSL.g:14971:1: ( ( '>' )? )
+            {
+            // InternalTableDSL.g:14971:1: ( ( '>' )? )
+            // InternalTableDSL.g:14972:2: ( '>' )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
+            }
+            // InternalTableDSL.g:14973:2: ( '>' )?
+            int alt106=2;
+            int LA106_0 = input.LA(1);
+
+            if ( (LA106_0==31) ) {
+                alt106=1;
+            }
+            switch (alt106) {
+                case 1 :
+                    // InternalTableDSL.g:14973:3: '>'
+                    {
+                    match(input,31,FOLLOW_2); if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_6__2"
+    // InternalTableDSL.g:14981:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
+    public final void rule__OpMultiAssign__Group_6__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14985:1: ( rule__OpMultiAssign__Group_6__2__Impl )
+            // InternalTableDSL.g:14986:2: rule__OpMultiAssign__Group_6__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpMultiAssign__Group_6__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_6__2"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Group_6__2__Impl"
+    // InternalTableDSL.g:14992:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
+    public final void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:14996:1: ( ( '>=' ) )
+            // InternalTableDSL.g:14997:1: ( '>=' )
+            {
+            // InternalTableDSL.g:14997:1: ( '>=' )
+            // InternalTableDSL.g:14998:2: '>='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
+            }
+            match(input,30,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Group_6__2__Impl"
+
+
+    // $ANTLR start "rule__XOrExpression__Group__0"
+    // InternalTableDSL.g:15008:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
+    public final void rule__XOrExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15012:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
+            // InternalTableDSL.g:15013:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
+            {
+            pushFollow(FOLLOW_115);
+            rule__XOrExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group__0"
+
+
+    // $ANTLR start "rule__XOrExpression__Group__0__Impl"
+    // InternalTableDSL.g:15020:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
+    public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15024:1: ( ( ruleXAndExpression ) )
+            // InternalTableDSL.g:15025:1: ( ruleXAndExpression )
+            {
+            // InternalTableDSL.g:15025:1: ( ruleXAndExpression )
+            // InternalTableDSL.g:15026:2: ruleXAndExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XOrExpression__Group__1"
+    // InternalTableDSL.g:15035:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
+    public final void rule__XOrExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15039:1: ( rule__XOrExpression__Group__1__Impl )
+            // InternalTableDSL.g:15040:2: rule__XOrExpression__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group__1"
+
+
+    // $ANTLR start "rule__XOrExpression__Group__1__Impl"
+    // InternalTableDSL.g:15046:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
+    public final void rule__XOrExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15050:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
+            // InternalTableDSL.g:15051:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            {
+            // InternalTableDSL.g:15051:1: ( ( rule__XOrExpression__Group_1__0 )* )
+            // InternalTableDSL.g:15052:2: ( rule__XOrExpression__Group_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:15053:2: ( rule__XOrExpression__Group_1__0 )*
+            loop107:
+            do {
+                int alt107=2;
+                int LA107_0 = input.LA(1);
+
+                if ( (LA107_0==16) ) {
+                    int LA107_2 = input.LA(2);
+
+                    if ( (synpred187_InternalTableDSL()) ) {
+                        alt107=1;
+                    }
+
+
+                }
+
+
+                switch (alt107) {
+            	case 1 :
+            	    // InternalTableDSL.g:15053:3: rule__XOrExpression__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_116);
+            	    rule__XOrExpression__Group_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop107;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XOrExpression__Group_1__0"
+    // InternalTableDSL.g:15062:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
+    public final void rule__XOrExpression__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15066:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
+            // InternalTableDSL.g:15067:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XOrExpression__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group_1__0"
+
+
+    // $ANTLR start "rule__XOrExpression__Group_1__0__Impl"
+    // InternalTableDSL.g:15074:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
+    public final void rule__XOrExpression__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15078:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
+            // InternalTableDSL.g:15079:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            {
+            // InternalTableDSL.g:15079:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+            // InternalTableDSL.g:15080:2: ( rule__XOrExpression__Group_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
+            }
+            // InternalTableDSL.g:15081:2: ( rule__XOrExpression__Group_1_0__0 )
+            // InternalTableDSL.g:15081:3: rule__XOrExpression__Group_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__Group_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XOrExpression__Group_1__1"
+    // InternalTableDSL.g:15089:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
+    public final void rule__XOrExpression__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15093:1: ( rule__XOrExpression__Group_1__1__Impl )
+            // InternalTableDSL.g:15094:2: rule__XOrExpression__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group_1__1"
+
+
+    // $ANTLR start "rule__XOrExpression__Group_1__1__Impl"
+    // InternalTableDSL.g:15100:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
+    public final void rule__XOrExpression__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15104:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalTableDSL.g:15105:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            {
+            // InternalTableDSL.g:15105:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+            // InternalTableDSL.g:15106:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+            // InternalTableDSL.g:15107:2: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+            // InternalTableDSL.g:15107:3: rule__XOrExpression__RightOperandAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__RightOperandAssignment_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XOrExpression__Group_1_0__0"
+    // InternalTableDSL.g:15116:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
+    public final void rule__XOrExpression__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15120:1: ( rule__XOrExpression__Group_1_0__0__Impl )
+            // InternalTableDSL.g:15121:2: rule__XOrExpression__Group_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XOrExpression__Group_1_0__0__Impl"
+    // InternalTableDSL.g:15127:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
+    public final void rule__XOrExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15131:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
+            // InternalTableDSL.g:15132:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:15132:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+            // InternalTableDSL.g:15133:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
+            }
+            // InternalTableDSL.g:15134:2: ( rule__XOrExpression__Group_1_0_0__0 )
+            // InternalTableDSL.g:15134:3: rule__XOrExpression__Group_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__Group_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XOrExpression__Group_1_0_0__0"
+    // InternalTableDSL.g:15143:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
+    public final void rule__XOrExpression__Group_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15147:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
+            // InternalTableDSL.g:15148:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
+            {
+            pushFollow(FOLLOW_115);
+            rule__XOrExpression__Group_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__Group_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group_1_0_0__0"
+
+
+    // $ANTLR start "rule__XOrExpression__Group_1_0_0__0__Impl"
+    // InternalTableDSL.g:15155:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
+    public final void rule__XOrExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15159:1: ( ( () ) )
+            // InternalTableDSL.g:15160:1: ( () )
+            {
+            // InternalTableDSL.g:15160:1: ( () )
+            // InternalTableDSL.g:15161:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:15162:2: ()
+            // InternalTableDSL.g:15162:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XOrExpression__Group_1_0_0__1"
+    // InternalTableDSL.g:15170:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
+    public final void rule__XOrExpression__Group_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15174:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
+            // InternalTableDSL.g:15175:2: rule__XOrExpression__Group_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__Group_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group_1_0_0__1"
+
+
+    // $ANTLR start "rule__XOrExpression__Group_1_0_0__1__Impl"
+    // InternalTableDSL.g:15181:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    public final void rule__XOrExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15185:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalTableDSL.g:15186:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            {
+            // InternalTableDSL.g:15186:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalTableDSL.g:15187:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+            // InternalTableDSL.g:15188:2: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+            // InternalTableDSL.g:15188:3: rule__XOrExpression__FeatureAssignment_1_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOrExpression__FeatureAssignment_1_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__Group_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XAndExpression__Group__0"
+    // InternalTableDSL.g:15197:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
+    public final void rule__XAndExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15201:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
+            // InternalTableDSL.g:15202:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
+            {
+            pushFollow(FOLLOW_117);
+            rule__XAndExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group__0"
+
+
+    // $ANTLR start "rule__XAndExpression__Group__0__Impl"
+    // InternalTableDSL.g:15209:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
+    public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15213:1: ( ( ruleXEqualityExpression ) )
+            // InternalTableDSL.g:15214:1: ( ruleXEqualityExpression )
+            {
+            // InternalTableDSL.g:15214:1: ( ruleXEqualityExpression )
+            // InternalTableDSL.g:15215:2: ruleXEqualityExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XAndExpression__Group__1"
+    // InternalTableDSL.g:15224:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
+    public final void rule__XAndExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15228:1: ( rule__XAndExpression__Group__1__Impl )
+            // InternalTableDSL.g:15229:2: rule__XAndExpression__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group__1"
+
+
+    // $ANTLR start "rule__XAndExpression__Group__1__Impl"
+    // InternalTableDSL.g:15235:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
+    public final void rule__XAndExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15239:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
+            // InternalTableDSL.g:15240:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            {
+            // InternalTableDSL.g:15240:1: ( ( rule__XAndExpression__Group_1__0 )* )
+            // InternalTableDSL.g:15241:2: ( rule__XAndExpression__Group_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:15242:2: ( rule__XAndExpression__Group_1__0 )*
+            loop108:
+            do {
+                int alt108=2;
+                int LA108_0 = input.LA(1);
+
+                if ( (LA108_0==17) ) {
+                    int LA108_2 = input.LA(2);
+
+                    if ( (synpred188_InternalTableDSL()) ) {
+                        alt108=1;
+                    }
+
+
+                }
+
+
+                switch (alt108) {
+            	case 1 :
+            	    // InternalTableDSL.g:15242:3: rule__XAndExpression__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_118);
+            	    rule__XAndExpression__Group_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop108;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XAndExpression__Group_1__0"
+    // InternalTableDSL.g:15251:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
+    public final void rule__XAndExpression__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15255:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
+            // InternalTableDSL.g:15256:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XAndExpression__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group_1__0"
+
+
+    // $ANTLR start "rule__XAndExpression__Group_1__0__Impl"
+    // InternalTableDSL.g:15263:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
+    public final void rule__XAndExpression__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15267:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
+            // InternalTableDSL.g:15268:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            {
+            // InternalTableDSL.g:15268:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+            // InternalTableDSL.g:15269:2: ( rule__XAndExpression__Group_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
+            }
+            // InternalTableDSL.g:15270:2: ( rule__XAndExpression__Group_1_0__0 )
+            // InternalTableDSL.g:15270:3: rule__XAndExpression__Group_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__Group_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAndExpression__Group_1__1"
+    // InternalTableDSL.g:15278:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
+    public final void rule__XAndExpression__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15282:1: ( rule__XAndExpression__Group_1__1__Impl )
+            // InternalTableDSL.g:15283:2: rule__XAndExpression__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group_1__1"
+
+
+    // $ANTLR start "rule__XAndExpression__Group_1__1__Impl"
+    // InternalTableDSL.g:15289:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
+    public final void rule__XAndExpression__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15293:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalTableDSL.g:15294:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            {
+            // InternalTableDSL.g:15294:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+            // InternalTableDSL.g:15295:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+            // InternalTableDSL.g:15296:2: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+            // InternalTableDSL.g:15296:3: rule__XAndExpression__RightOperandAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__RightOperandAssignment_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAndExpression__Group_1_0__0"
+    // InternalTableDSL.g:15305:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
+    public final void rule__XAndExpression__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15309:1: ( rule__XAndExpression__Group_1_0__0__Impl )
+            // InternalTableDSL.g:15310:2: rule__XAndExpression__Group_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XAndExpression__Group_1_0__0__Impl"
+    // InternalTableDSL.g:15316:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
+    public final void rule__XAndExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15320:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
+            // InternalTableDSL.g:15321:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:15321:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+            // InternalTableDSL.g:15322:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
+            }
+            // InternalTableDSL.g:15323:2: ( rule__XAndExpression__Group_1_0_0__0 )
+            // InternalTableDSL.g:15323:3: rule__XAndExpression__Group_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__Group_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAndExpression__Group_1_0_0__0"
+    // InternalTableDSL.g:15332:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
+    public final void rule__XAndExpression__Group_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15336:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
+            // InternalTableDSL.g:15337:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
+            {
+            pushFollow(FOLLOW_117);
+            rule__XAndExpression__Group_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__Group_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group_1_0_0__0"
+
+
+    // $ANTLR start "rule__XAndExpression__Group_1_0_0__0__Impl"
+    // InternalTableDSL.g:15344:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
+    public final void rule__XAndExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15348:1: ( ( () ) )
+            // InternalTableDSL.g:15349:1: ( () )
+            {
+            // InternalTableDSL.g:15349:1: ( () )
+            // InternalTableDSL.g:15350:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:15351:2: ()
+            // InternalTableDSL.g:15351:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAndExpression__Group_1_0_0__1"
+    // InternalTableDSL.g:15359:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
+    public final void rule__XAndExpression__Group_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15363:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
+            // InternalTableDSL.g:15364:2: rule__XAndExpression__Group_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__Group_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group_1_0_0__1"
+
+
+    // $ANTLR start "rule__XAndExpression__Group_1_0_0__1__Impl"
+    // InternalTableDSL.g:15370:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    public final void rule__XAndExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15374:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalTableDSL.g:15375:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            {
+            // InternalTableDSL.g:15375:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalTableDSL.g:15376:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+            // InternalTableDSL.g:15377:2: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+            // InternalTableDSL.g:15377:3: rule__XAndExpression__FeatureAssignment_1_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAndExpression__FeatureAssignment_1_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__Group_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group__0"
+    // InternalTableDSL.g:15386:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
+    public final void rule__XEqualityExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15390:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
+            // InternalTableDSL.g:15391:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
+            {
+            pushFollow(FOLLOW_119);
+            rule__XEqualityExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group__0"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group__0__Impl"
+    // InternalTableDSL.g:15398:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
+    public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15402:1: ( ( ruleXRelationalExpression ) )
+            // InternalTableDSL.g:15403:1: ( ruleXRelationalExpression )
+            {
+            // InternalTableDSL.g:15403:1: ( ruleXRelationalExpression )
+            // InternalTableDSL.g:15404:2: ruleXRelationalExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group__1"
+    // InternalTableDSL.g:15413:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
+    public final void rule__XEqualityExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15417:1: ( rule__XEqualityExpression__Group__1__Impl )
+            // InternalTableDSL.g:15418:2: rule__XEqualityExpression__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group__1"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group__1__Impl"
+    // InternalTableDSL.g:15424:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
+    public final void rule__XEqualityExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15428:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
+            // InternalTableDSL.g:15429:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            {
+            // InternalTableDSL.g:15429:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+            // InternalTableDSL.g:15430:2: ( rule__XEqualityExpression__Group_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:15431:2: ( rule__XEqualityExpression__Group_1__0 )*
+            loop109:
+            do {
+                int alt109=2;
+                switch ( input.LA(1) ) {
+                case 26:
+                    {
+                    int LA109_2 = input.LA(2);
+
+                    if ( (synpred189_InternalTableDSL()) ) {
+                        alt109=1;
+                    }
+
+
+                    }
+                    break;
+                case 27:
+                    {
+                    int LA109_3 = input.LA(2);
+
+                    if ( (synpred189_InternalTableDSL()) ) {
+                        alt109=1;
+                    }
+
+
+                    }
+                    break;
+                case 28:
+                    {
+                    int LA109_4 = input.LA(2);
+
+                    if ( (synpred189_InternalTableDSL()) ) {
+                        alt109=1;
+                    }
+
+
+                    }
+                    break;
+                case 29:
+                    {
+                    int LA109_5 = input.LA(2);
+
+                    if ( (synpred189_InternalTableDSL()) ) {
+                        alt109=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt109) {
+            	case 1 :
+            	    // InternalTableDSL.g:15431:3: rule__XEqualityExpression__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_120);
+            	    rule__XEqualityExpression__Group_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop109;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group_1__0"
+    // InternalTableDSL.g:15440:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
+    public final void rule__XEqualityExpression__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15444:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
+            // InternalTableDSL.g:15445:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XEqualityExpression__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group_1__0"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group_1__0__Impl"
+    // InternalTableDSL.g:15452:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
+    public final void rule__XEqualityExpression__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15456:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
+            // InternalTableDSL.g:15457:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            {
+            // InternalTableDSL.g:15457:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+            // InternalTableDSL.g:15458:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
+            }
+            // InternalTableDSL.g:15459:2: ( rule__XEqualityExpression__Group_1_0__0 )
+            // InternalTableDSL.g:15459:3: rule__XEqualityExpression__Group_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__Group_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group_1__1"
+    // InternalTableDSL.g:15467:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
+    public final void rule__XEqualityExpression__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15471:1: ( rule__XEqualityExpression__Group_1__1__Impl )
+            // InternalTableDSL.g:15472:2: rule__XEqualityExpression__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group_1__1"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group_1__1__Impl"
+    // InternalTableDSL.g:15478:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
+    public final void rule__XEqualityExpression__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15482:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalTableDSL.g:15483:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            {
+            // InternalTableDSL.g:15483:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+            // InternalTableDSL.g:15484:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+            // InternalTableDSL.g:15485:2: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+            // InternalTableDSL.g:15485:3: rule__XEqualityExpression__RightOperandAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__RightOperandAssignment_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group_1_0__0"
+    // InternalTableDSL.g:15494:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
+    public final void rule__XEqualityExpression__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15498:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
+            // InternalTableDSL.g:15499:2: rule__XEqualityExpression__Group_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group_1_0__0__Impl"
+    // InternalTableDSL.g:15505:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
+    public final void rule__XEqualityExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15509:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
+            // InternalTableDSL.g:15510:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:15510:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+            // InternalTableDSL.g:15511:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
+            }
+            // InternalTableDSL.g:15512:2: ( rule__XEqualityExpression__Group_1_0_0__0 )
+            // InternalTableDSL.g:15512:3: rule__XEqualityExpression__Group_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__Group_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0"
+    // InternalTableDSL.g:15521:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
+    public final void rule__XEqualityExpression__Group_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15525:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
+            // InternalTableDSL.g:15526:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
+            {
+            pushFollow(FOLLOW_119);
+            rule__XEqualityExpression__Group_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__Group_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__0"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0__Impl"
+    // InternalTableDSL.g:15533:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
+    public final void rule__XEqualityExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15537:1: ( ( () ) )
+            // InternalTableDSL.g:15538:1: ( () )
+            {
+            // InternalTableDSL.g:15538:1: ( () )
+            // InternalTableDSL.g:15539:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:15540:2: ()
+            // InternalTableDSL.g:15540:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1"
+    // InternalTableDSL.g:15548:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
+    public final void rule__XEqualityExpression__Group_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15552:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
+            // InternalTableDSL.g:15553:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__Group_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__1"
+
+
+    // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1__Impl"
+    // InternalTableDSL.g:15559:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    public final void rule__XEqualityExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15563:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalTableDSL.g:15564:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            {
+            // InternalTableDSL.g:15564:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalTableDSL.g:15565:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+            // InternalTableDSL.g:15566:2: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+            // InternalTableDSL.g:15566:3: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XEqualityExpression__FeatureAssignment_1_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group__0"
+    // InternalTableDSL.g:15575:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
+    public final void rule__XRelationalExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15579:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
+            // InternalTableDSL.g:15580:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
+            {
+            pushFollow(FOLLOW_121);
+            rule__XRelationalExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group__0"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group__0__Impl"
+    // InternalTableDSL.g:15587:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
+    public final void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15591:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalTableDSL.g:15592:1: ( ruleXOtherOperatorExpression )
+            {
+            // InternalTableDSL.g:15592:1: ( ruleXOtherOperatorExpression )
+            // InternalTableDSL.g:15593:2: ruleXOtherOperatorExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group__1"
+    // InternalTableDSL.g:15602:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
+    public final void rule__XRelationalExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15606:1: ( rule__XRelationalExpression__Group__1__Impl )
+            // InternalTableDSL.g:15607:2: rule__XRelationalExpression__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group__1"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group__1__Impl"
+    // InternalTableDSL.g:15613:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
+    public final void rule__XRelationalExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15617:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
+            // InternalTableDSL.g:15618:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            {
+            // InternalTableDSL.g:15618:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+            // InternalTableDSL.g:15619:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
+            }
+            // InternalTableDSL.g:15620:2: ( rule__XRelationalExpression__Alternatives_1 )*
+            loop110:
+            do {
+                int alt110=2;
+                switch ( input.LA(1) ) {
+                case 32:
+                    {
+                    int LA110_2 = input.LA(2);
+
+                    if ( (synpred190_InternalTableDSL()) ) {
+                        alt110=1;
+                    }
+
+
+                    }
+                    break;
+                case 31:
+                    {
+                    int LA110_3 = input.LA(2);
+
+                    if ( (synpred190_InternalTableDSL()) ) {
+                        alt110=1;
+                    }
+
+
+                    }
+                    break;
+                case 145:
+                    {
+                    int LA110_4 = input.LA(2);
+
+                    if ( (synpred190_InternalTableDSL()) ) {
+                        alt110=1;
+                    }
+
+
+                    }
+                    break;
+                case 30:
+                    {
+                    int LA110_5 = input.LA(2);
+
+                    if ( (synpred190_InternalTableDSL()) ) {
+                        alt110=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt110) {
+            	case 1 :
+            	    // InternalTableDSL.g:15620:3: rule__XRelationalExpression__Alternatives_1
+            	    {
+            	    pushFollow(FOLLOW_122);
+            	    rule__XRelationalExpression__Alternatives_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop110;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_0__0"
+    // InternalTableDSL.g:15629:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
+    public final void rule__XRelationalExpression__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15633:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
+            // InternalTableDSL.g:15634:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__XRelationalExpression__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_0__0__Impl"
+    // InternalTableDSL.g:15641:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
+    public final void rule__XRelationalExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15645:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
+            // InternalTableDSL.g:15646:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:15646:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+            // InternalTableDSL.g:15647:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
+            }
+            // InternalTableDSL.g:15648:2: ( rule__XRelationalExpression__Group_1_0_0__0 )
+            // InternalTableDSL.g:15648:3: rule__XRelationalExpression__Group_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_0__1"
+    // InternalTableDSL.g:15656:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
+    public final void rule__XRelationalExpression__Group_1_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15660:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
+            // InternalTableDSL.g:15661:2: rule__XRelationalExpression__Group_1_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_0__1"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_0__1__Impl"
+    // InternalTableDSL.g:15667:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
+    public final void rule__XRelationalExpression__Group_1_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15671:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
+            // InternalTableDSL.g:15672:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            {
+            // InternalTableDSL.g:15672:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+            // InternalTableDSL.g:15673:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
+            }
+            // InternalTableDSL.g:15674:2: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+            // InternalTableDSL.g:15674:3: rule__XRelationalExpression__TypeAssignment_1_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__TypeAssignment_1_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_0__1__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0"
+    // InternalTableDSL.g:15683:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
+    public final void rule__XRelationalExpression__Group_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15687:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
+            // InternalTableDSL.g:15688:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0__0"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0__Impl"
+    // InternalTableDSL.g:15694:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
+    public final void rule__XRelationalExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15698:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
+            // InternalTableDSL.g:15699:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            {
+            // InternalTableDSL.g:15699:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+            // InternalTableDSL.g:15700:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:15701:2: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+            // InternalTableDSL.g:15701:3: rule__XRelationalExpression__Group_1_0_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_0_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0"
+    // InternalTableDSL.g:15710:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
+    public final void rule__XRelationalExpression__Group_1_0_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15714:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
+            // InternalTableDSL.g:15715:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
+            {
+            pushFollow(FOLLOW_124);
+            rule__XRelationalExpression__Group_1_0_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_0_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__0"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
+    // InternalTableDSL.g:15722:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
+    public final void rule__XRelationalExpression__Group_1_0_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15726:1: ( ( () ) )
+            // InternalTableDSL.g:15727:1: ( () )
+            {
+            // InternalTableDSL.g:15727:1: ( () )
+            // InternalTableDSL.g:15728:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
+            }
+            // InternalTableDSL.g:15729:2: ()
+            // InternalTableDSL.g:15729:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1"
+    // InternalTableDSL.g:15737:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
+    public final void rule__XRelationalExpression__Group_1_0_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15741:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
+            // InternalTableDSL.g:15742:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_0_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__1"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
+    // InternalTableDSL.g:15748:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
+    public final void rule__XRelationalExpression__Group_1_0_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15752:1: ( ( 'instanceof' ) )
+            // InternalTableDSL.g:15753:1: ( 'instanceof' )
+            {
+            // InternalTableDSL.g:15753:1: ( 'instanceof' )
+            // InternalTableDSL.g:15754:2: 'instanceof'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
+            }
+            match(input,145,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_1__0"
+    // InternalTableDSL.g:15764:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
+    public final void rule__XRelationalExpression__Group_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15768:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
+            // InternalTableDSL.g:15769:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XRelationalExpression__Group_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_1__0"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_1__0__Impl"
+    // InternalTableDSL.g:15776:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
+    public final void rule__XRelationalExpression__Group_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15780:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
+            // InternalTableDSL.g:15781:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            {
+            // InternalTableDSL.g:15781:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+            // InternalTableDSL.g:15782:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
+            }
+            // InternalTableDSL.g:15783:2: ( rule__XRelationalExpression__Group_1_1_0__0 )
+            // InternalTableDSL.g:15783:3: rule__XRelationalExpression__Group_1_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_1__1"
+    // InternalTableDSL.g:15791:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
+    public final void rule__XRelationalExpression__Group_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15795:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
+            // InternalTableDSL.g:15796:2: rule__XRelationalExpression__Group_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_1__1"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_1__1__Impl"
+    // InternalTableDSL.g:15802:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
+    public final void rule__XRelationalExpression__Group_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15806:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
+            // InternalTableDSL.g:15807:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            {
+            // InternalTableDSL.g:15807:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+            // InternalTableDSL.g:15808:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
+            }
+            // InternalTableDSL.g:15809:2: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+            // InternalTableDSL.g:15809:3: rule__XRelationalExpression__RightOperandAssignment_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__RightOperandAssignment_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0"
+    // InternalTableDSL.g:15818:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
+    public final void rule__XRelationalExpression__Group_1_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15822:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
+            // InternalTableDSL.g:15823:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0__0"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0__Impl"
+    // InternalTableDSL.g:15829:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
+    public final void rule__XRelationalExpression__Group_1_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15833:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
+            // InternalTableDSL.g:15834:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:15834:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+            // InternalTableDSL.g:15835:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
+            }
+            // InternalTableDSL.g:15836:2: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+            // InternalTableDSL.g:15836:3: rule__XRelationalExpression__Group_1_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0"
+    // InternalTableDSL.g:15845:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
+    public final void rule__XRelationalExpression__Group_1_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15849:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
+            // InternalTableDSL.g:15850:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
+            {
+            pushFollow(FOLLOW_121);
+            rule__XRelationalExpression__Group_1_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__0"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
+    // InternalTableDSL.g:15857:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
+    public final void rule__XRelationalExpression__Group_1_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15861:1: ( ( () ) )
+            // InternalTableDSL.g:15862:1: ( () )
+            {
+            // InternalTableDSL.g:15862:1: ( () )
+            // InternalTableDSL.g:15863:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:15864:2: ()
+            // InternalTableDSL.g:15864:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1"
+    // InternalTableDSL.g:15872:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
+    public final void rule__XRelationalExpression__Group_1_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15876:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
+            // InternalTableDSL.g:15877:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__Group_1_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__1"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
+    // InternalTableDSL.g:15883:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
+    public final void rule__XRelationalExpression__Group_1_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15887:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
+            // InternalTableDSL.g:15888:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            {
+            // InternalTableDSL.g:15888:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+            // InternalTableDSL.g:15889:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
+            }
+            // InternalTableDSL.g:15890:2: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+            // InternalTableDSL.g:15890:3: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__OpCompare__Group_1__0"
+    // InternalTableDSL.g:15899:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
+    public final void rule__OpCompare__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15903:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
+            // InternalTableDSL.g:15904:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
+            {
+            pushFollow(FOLLOW_83);
+            rule__OpCompare__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__OpCompare__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpCompare__Group_1__0"
+
+
+    // $ANTLR start "rule__OpCompare__Group_1__0__Impl"
+    // InternalTableDSL.g:15911:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
+    public final void rule__OpCompare__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15915:1: ( ( '<' ) )
+            // InternalTableDSL.g:15916:1: ( '<' )
+            {
+            // InternalTableDSL.g:15916:1: ( '<' )
+            // InternalTableDSL.g:15917:2: '<'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
+            }
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpCompare__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__OpCompare__Group_1__1"
+    // InternalTableDSL.g:15926:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
+    public final void rule__OpCompare__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15930:1: ( rule__OpCompare__Group_1__1__Impl )
+            // InternalTableDSL.g:15931:2: rule__OpCompare__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpCompare__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpCompare__Group_1__1"
+
+
+    // $ANTLR start "rule__OpCompare__Group_1__1__Impl"
+    // InternalTableDSL.g:15937:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
+    public final void rule__OpCompare__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15941:1: ( ( '=' ) )
+            // InternalTableDSL.g:15942:1: ( '=' )
+            {
+            // InternalTableDSL.g:15942:1: ( '=' )
+            // InternalTableDSL.g:15943:2: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
+            }
+            match(input,15,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpCompare__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group__0"
+    // InternalTableDSL.g:15953:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
+    public final void rule__XOtherOperatorExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15957:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
+            // InternalTableDSL.g:15958:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
+            {
+            pushFollow(FOLLOW_125);
+            rule__XOtherOperatorExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group__0"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group__0__Impl"
+    // InternalTableDSL.g:15965:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
+    public final void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15969:1: ( ( ruleXAdditiveExpression ) )
+            // InternalTableDSL.g:15970:1: ( ruleXAdditiveExpression )
+            {
+            // InternalTableDSL.g:15970:1: ( ruleXAdditiveExpression )
+            // InternalTableDSL.g:15971:2: ruleXAdditiveExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group__1"
+    // InternalTableDSL.g:15980:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
+    public final void rule__XOtherOperatorExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15984:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
+            // InternalTableDSL.g:15985:2: rule__XOtherOperatorExpression__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group__1"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group__1__Impl"
+    // InternalTableDSL.g:15991:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
+    public final void rule__XOtherOperatorExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:15995:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
+            // InternalTableDSL.g:15996:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            {
+            // InternalTableDSL.g:15996:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+            // InternalTableDSL.g:15997:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:15998:2: ( rule__XOtherOperatorExpression__Group_1__0 )*
+            loop111:
+            do {
+                int alt111=2;
+                alt111 = dfa111.predict(input);
+                switch (alt111) {
+            	case 1 :
+            	    // InternalTableDSL.g:15998:3: rule__XOtherOperatorExpression__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_126);
+            	    rule__XOtherOperatorExpression__Group_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop111;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0"
+    // InternalTableDSL.g:16007:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
+    public final void rule__XOtherOperatorExpression__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16011:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
+            // InternalTableDSL.g:16012:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XOtherOperatorExpression__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group_1__0"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0__Impl"
+    // InternalTableDSL.g:16019:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
+    public final void rule__XOtherOperatorExpression__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16023:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
+            // InternalTableDSL.g:16024:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            {
+            // InternalTableDSL.g:16024:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+            // InternalTableDSL.g:16025:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
+            }
+            // InternalTableDSL.g:16026:2: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+            // InternalTableDSL.g:16026:3: rule__XOtherOperatorExpression__Group_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__Group_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1"
+    // InternalTableDSL.g:16034:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
+    public final void rule__XOtherOperatorExpression__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16038:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
+            // InternalTableDSL.g:16039:2: rule__XOtherOperatorExpression__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group_1__1"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1__Impl"
+    // InternalTableDSL.g:16045:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
+    public final void rule__XOtherOperatorExpression__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16049:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalTableDSL.g:16050:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            {
+            // InternalTableDSL.g:16050:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+            // InternalTableDSL.g:16051:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+            // InternalTableDSL.g:16052:2: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+            // InternalTableDSL.g:16052:3: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__RightOperandAssignment_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0"
+    // InternalTableDSL.g:16061:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
+    public final void rule__XOtherOperatorExpression__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16065:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
+            // InternalTableDSL.g:16066:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
+    // InternalTableDSL.g:16072:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
+    public final void rule__XOtherOperatorExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16076:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
+            // InternalTableDSL.g:16077:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:16077:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+            // InternalTableDSL.g:16078:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
+            }
+            // InternalTableDSL.g:16079:2: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+            // InternalTableDSL.g:16079:3: rule__XOtherOperatorExpression__Group_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__Group_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0"
+    // InternalTableDSL.g:16088:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
+    public final void rule__XOtherOperatorExpression__Group_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16092:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
+            // InternalTableDSL.g:16093:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
+            {
+            pushFollow(FOLLOW_125);
+            rule__XOtherOperatorExpression__Group_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__Group_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__0"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
+    // InternalTableDSL.g:16100:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
+    public final void rule__XOtherOperatorExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16104:1: ( ( () ) )
+            // InternalTableDSL.g:16105:1: ( () )
+            {
+            // InternalTableDSL.g:16105:1: ( () )
+            // InternalTableDSL.g:16106:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:16107:2: ()
+            // InternalTableDSL.g:16107:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1"
+    // InternalTableDSL.g:16115:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
+    public final void rule__XOtherOperatorExpression__Group_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16119:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
+            // InternalTableDSL.g:16120:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__Group_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__1"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
+    // InternalTableDSL.g:16126:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    public final void rule__XOtherOperatorExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16130:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalTableDSL.g:16131:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            {
+            // InternalTableDSL.g:16131:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalTableDSL.g:16132:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+            // InternalTableDSL.g:16133:2: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+            // InternalTableDSL.g:16133:3: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_2__0"
+    // InternalTableDSL.g:16142:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
+    public final void rule__OpOther__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16146:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
+            // InternalTableDSL.g:16147:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
+            {
+            pushFollow(FOLLOW_127);
+            rule__OpOther__Group_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_2__0"
+
+
+    // $ANTLR start "rule__OpOther__Group_2__0__Impl"
+    // InternalTableDSL.g:16154:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
+    public final void rule__OpOther__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16158:1: ( ( '>' ) )
+            // InternalTableDSL.g:16159:1: ( '>' )
+            {
+            // InternalTableDSL.g:16159:1: ( '>' )
+            // InternalTableDSL.g:16160:2: '>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
+            }
+            match(input,31,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_2__1"
+    // InternalTableDSL.g:16169:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
+    public final void rule__OpOther__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16173:1: ( rule__OpOther__Group_2__1__Impl )
+            // InternalTableDSL.g:16174:2: rule__OpOther__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_2__1"
+
+
+    // $ANTLR start "rule__OpOther__Group_2__1__Impl"
+    // InternalTableDSL.g:16180:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
+    public final void rule__OpOther__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16184:1: ( ( '..' ) )
+            // InternalTableDSL.g:16185:1: ( '..' )
+            {
+            // InternalTableDSL.g:16185:1: ( '..' )
+            // InternalTableDSL.g:16186:2: '..'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
+            }
+            match(input,35,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_5__0"
+    // InternalTableDSL.g:16196:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
+    public final void rule__OpOther__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16200:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
+            // InternalTableDSL.g:16201:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
+            {
+            pushFollow(FOLLOW_128);
+            rule__OpOther__Group_5__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_5__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_5__0"
+
+
+    // $ANTLR start "rule__OpOther__Group_5__0__Impl"
+    // InternalTableDSL.g:16208:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
+    public final void rule__OpOther__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16212:1: ( ( '>' ) )
+            // InternalTableDSL.g:16213:1: ( '>' )
+            {
+            // InternalTableDSL.g:16213:1: ( '>' )
+            // InternalTableDSL.g:16214:2: '>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
+            }
+            match(input,31,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_5__1"
+    // InternalTableDSL.g:16223:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
+    public final void rule__OpOther__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16227:1: ( rule__OpOther__Group_5__1__Impl )
+            // InternalTableDSL.g:16228:2: rule__OpOther__Group_5__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_5__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_5__1"
+
+
+    // $ANTLR start "rule__OpOther__Group_5__1__Impl"
+    // InternalTableDSL.g:16234:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
+    public final void rule__OpOther__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16238:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
+            // InternalTableDSL.g:16239:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            {
+            // InternalTableDSL.g:16239:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+            // InternalTableDSL.g:16240:2: ( rule__OpOther__Alternatives_5_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
+            }
+            // InternalTableDSL.g:16241:2: ( rule__OpOther__Alternatives_5_1 )
+            // InternalTableDSL.g:16241:3: rule__OpOther__Alternatives_5_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Alternatives_5_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_5_1_0__0"
+    // InternalTableDSL.g:16250:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
+    public final void rule__OpOther__Group_5_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16254:1: ( rule__OpOther__Group_5_1_0__0__Impl )
+            // InternalTableDSL.g:16255:2: rule__OpOther__Group_5_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_5_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_5_1_0__0"
+
+
+    // $ANTLR start "rule__OpOther__Group_5_1_0__0__Impl"
+    // InternalTableDSL.g:16261:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
+    public final void rule__OpOther__Group_5_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16265:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
+            // InternalTableDSL.g:16266:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:16266:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+            // InternalTableDSL.g:16267:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
+            }
+            // InternalTableDSL.g:16268:2: ( rule__OpOther__Group_5_1_0_0__0 )
+            // InternalTableDSL.g:16268:3: rule__OpOther__Group_5_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_5_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_5_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_5_1_0_0__0"
+    // InternalTableDSL.g:16277:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
+    public final void rule__OpOther__Group_5_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16281:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
+            // InternalTableDSL.g:16282:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
+            {
+            pushFollow(FOLLOW_128);
+            rule__OpOther__Group_5_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_5_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_5_1_0_0__0"
+
+
+    // $ANTLR start "rule__OpOther__Group_5_1_0_0__0__Impl"
+    // InternalTableDSL.g:16289:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
+    public final void rule__OpOther__Group_5_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16293:1: ( ( '>' ) )
+            // InternalTableDSL.g:16294:1: ( '>' )
+            {
+            // InternalTableDSL.g:16294:1: ( '>' )
+            // InternalTableDSL.g:16295:2: '>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
+            }
+            match(input,31,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_5_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_5_1_0_0__1"
+    // InternalTableDSL.g:16304:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
+    public final void rule__OpOther__Group_5_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16308:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
+            // InternalTableDSL.g:16309:2: rule__OpOther__Group_5_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_5_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_5_1_0_0__1"
+
+
+    // $ANTLR start "rule__OpOther__Group_5_1_0_0__1__Impl"
+    // InternalTableDSL.g:16315:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
+    public final void rule__OpOther__Group_5_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16319:1: ( ( '>' ) )
+            // InternalTableDSL.g:16320:1: ( '>' )
+            {
+            // InternalTableDSL.g:16320:1: ( '>' )
+            // InternalTableDSL.g:16321:2: '>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
+            }
+            match(input,31,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_5_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_6__0"
+    // InternalTableDSL.g:16331:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
+    public final void rule__OpOther__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16335:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
+            // InternalTableDSL.g:16336:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
+            {
+            pushFollow(FOLLOW_129);
+            rule__OpOther__Group_6__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_6__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_6__0"
+
+
+    // $ANTLR start "rule__OpOther__Group_6__0__Impl"
+    // InternalTableDSL.g:16343:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
+    public final void rule__OpOther__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16347:1: ( ( '<' ) )
+            // InternalTableDSL.g:16348:1: ( '<' )
+            {
+            // InternalTableDSL.g:16348:1: ( '<' )
+            // InternalTableDSL.g:16349:2: '<'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
+            }
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_6__1"
+    // InternalTableDSL.g:16358:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
+    public final void rule__OpOther__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16362:1: ( rule__OpOther__Group_6__1__Impl )
+            // InternalTableDSL.g:16363:2: rule__OpOther__Group_6__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_6__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_6__1"
+
+
+    // $ANTLR start "rule__OpOther__Group_6__1__Impl"
+    // InternalTableDSL.g:16369:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
+    public final void rule__OpOther__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16373:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
+            // InternalTableDSL.g:16374:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            {
+            // InternalTableDSL.g:16374:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+            // InternalTableDSL.g:16375:2: ( rule__OpOther__Alternatives_6_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
+            }
+            // InternalTableDSL.g:16376:2: ( rule__OpOther__Alternatives_6_1 )
+            // InternalTableDSL.g:16376:3: rule__OpOther__Alternatives_6_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Alternatives_6_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_6_1_0__0"
+    // InternalTableDSL.g:16385:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
+    public final void rule__OpOther__Group_6_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16389:1: ( rule__OpOther__Group_6_1_0__0__Impl )
+            // InternalTableDSL.g:16390:2: rule__OpOther__Group_6_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_6_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_6_1_0__0"
+
+
+    // $ANTLR start "rule__OpOther__Group_6_1_0__0__Impl"
+    // InternalTableDSL.g:16396:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
+    public final void rule__OpOther__Group_6_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16400:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
+            // InternalTableDSL.g:16401:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:16401:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+            // InternalTableDSL.g:16402:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
+            }
+            // InternalTableDSL.g:16403:2: ( rule__OpOther__Group_6_1_0_0__0 )
+            // InternalTableDSL.g:16403:3: rule__OpOther__Group_6_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_6_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_6_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_6_1_0_0__0"
+    // InternalTableDSL.g:16412:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
+    public final void rule__OpOther__Group_6_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16416:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
+            // InternalTableDSL.g:16417:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
+            {
+            pushFollow(FOLLOW_113);
+            rule__OpOther__Group_6_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_6_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_6_1_0_0__0"
+
+
+    // $ANTLR start "rule__OpOther__Group_6_1_0_0__0__Impl"
+    // InternalTableDSL.g:16424:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
+    public final void rule__OpOther__Group_6_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16428:1: ( ( '<' ) )
+            // InternalTableDSL.g:16429:1: ( '<' )
+            {
+            // InternalTableDSL.g:16429:1: ( '<' )
+            // InternalTableDSL.g:16430:2: '<'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
+            }
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_6_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__OpOther__Group_6_1_0_0__1"
+    // InternalTableDSL.g:16439:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
+    public final void rule__OpOther__Group_6_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16443:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
+            // InternalTableDSL.g:16444:2: rule__OpOther__Group_6_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__OpOther__Group_6_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_6_1_0_0__1"
+
+
+    // $ANTLR start "rule__OpOther__Group_6_1_0_0__1__Impl"
+    // InternalTableDSL.g:16450:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
+    public final void rule__OpOther__Group_6_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16454:1: ( ( '<' ) )
+            // InternalTableDSL.g:16455:1: ( '<' )
+            {
+            // InternalTableDSL.g:16455:1: ( '<' )
+            // InternalTableDSL.g:16456:2: '<'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
+            }
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpOther__Group_6_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group__0"
+    // InternalTableDSL.g:16466:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
+    public final void rule__XAdditiveExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16470:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
+            // InternalTableDSL.g:16471:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
+            {
+            pushFollow(FOLLOW_130);
+            rule__XAdditiveExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group__0"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group__0__Impl"
+    // InternalTableDSL.g:16478:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
+    public final void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16482:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalTableDSL.g:16483:1: ( ruleXMultiplicativeExpression )
+            {
+            // InternalTableDSL.g:16483:1: ( ruleXMultiplicativeExpression )
+            // InternalTableDSL.g:16484:2: ruleXMultiplicativeExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group__1"
+    // InternalTableDSL.g:16493:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
+    public final void rule__XAdditiveExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16497:1: ( rule__XAdditiveExpression__Group__1__Impl )
+            // InternalTableDSL.g:16498:2: rule__XAdditiveExpression__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group__1"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group__1__Impl"
+    // InternalTableDSL.g:16504:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
+    public final void rule__XAdditiveExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16508:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
+            // InternalTableDSL.g:16509:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            {
+            // InternalTableDSL.g:16509:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+            // InternalTableDSL.g:16510:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:16511:2: ( rule__XAdditiveExpression__Group_1__0 )*
+            loop112:
+            do {
+                int alt112=2;
+                int LA112_0 = input.LA(1);
+
+                if ( (LA112_0==20) ) {
+                    int LA112_2 = input.LA(2);
+
+                    if ( (synpred192_InternalTableDSL()) ) {
+                        alt112=1;
+                    }
+
+
+                }
+                else if ( (LA112_0==19) ) {
+                    int LA112_3 = input.LA(2);
+
+                    if ( (synpred192_InternalTableDSL()) ) {
+                        alt112=1;
+                    }
+
+
+                }
+
+
+                switch (alt112) {
+            	case 1 :
+            	    // InternalTableDSL.g:16511:3: rule__XAdditiveExpression__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_131);
+            	    rule__XAdditiveExpression__Group_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop112;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group_1__0"
+    // InternalTableDSL.g:16520:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
+    public final void rule__XAdditiveExpression__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16524:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
+            // InternalTableDSL.g:16525:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XAdditiveExpression__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group_1__0"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group_1__0__Impl"
+    // InternalTableDSL.g:16532:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
+    public final void rule__XAdditiveExpression__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16536:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
+            // InternalTableDSL.g:16537:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            {
+            // InternalTableDSL.g:16537:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+            // InternalTableDSL.g:16538:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
+            }
+            // InternalTableDSL.g:16539:2: ( rule__XAdditiveExpression__Group_1_0__0 )
+            // InternalTableDSL.g:16539:3: rule__XAdditiveExpression__Group_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__Group_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group_1__1"
+    // InternalTableDSL.g:16547:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
+    public final void rule__XAdditiveExpression__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16551:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
+            // InternalTableDSL.g:16552:2: rule__XAdditiveExpression__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group_1__1"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group_1__1__Impl"
+    // InternalTableDSL.g:16558:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
+    public final void rule__XAdditiveExpression__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16562:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalTableDSL.g:16563:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            {
+            // InternalTableDSL.g:16563:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+            // InternalTableDSL.g:16564:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+            // InternalTableDSL.g:16565:2: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+            // InternalTableDSL.g:16565:3: rule__XAdditiveExpression__RightOperandAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__RightOperandAssignment_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0"
+    // InternalTableDSL.g:16574:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
+    public final void rule__XAdditiveExpression__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16578:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
+            // InternalTableDSL.g:16579:2: rule__XAdditiveExpression__Group_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0__Impl"
+    // InternalTableDSL.g:16585:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
+    public final void rule__XAdditiveExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16589:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
+            // InternalTableDSL.g:16590:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:16590:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+            // InternalTableDSL.g:16591:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
+            }
+            // InternalTableDSL.g:16592:2: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+            // InternalTableDSL.g:16592:3: rule__XAdditiveExpression__Group_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__Group_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0"
+    // InternalTableDSL.g:16601:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
+    public final void rule__XAdditiveExpression__Group_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16605:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
+            // InternalTableDSL.g:16606:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
+            {
+            pushFollow(FOLLOW_130);
+            rule__XAdditiveExpression__Group_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__Group_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__0"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
+    // InternalTableDSL.g:16613:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
+    public final void rule__XAdditiveExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16617:1: ( ( () ) )
+            // InternalTableDSL.g:16618:1: ( () )
+            {
+            // InternalTableDSL.g:16618:1: ( () )
+            // InternalTableDSL.g:16619:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:16620:2: ()
+            // InternalTableDSL.g:16620:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1"
+    // InternalTableDSL.g:16628:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
+    public final void rule__XAdditiveExpression__Group_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16632:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
+            // InternalTableDSL.g:16633:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__Group_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__1"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
+    // InternalTableDSL.g:16639:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    public final void rule__XAdditiveExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16643:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalTableDSL.g:16644:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            {
+            // InternalTableDSL.g:16644:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalTableDSL.g:16645:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+            // InternalTableDSL.g:16646:2: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+            // InternalTableDSL.g:16646:3: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XAdditiveExpression__FeatureAssignment_1_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group__0"
+    // InternalTableDSL.g:16655:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
+    public final void rule__XMultiplicativeExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16659:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
+            // InternalTableDSL.g:16660:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
+            {
+            pushFollow(FOLLOW_132);
+            rule__XMultiplicativeExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group__0"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group__0__Impl"
+    // InternalTableDSL.g:16667:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
+    public final void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16671:1: ( ( ruleXUnaryOperation ) )
+            // InternalTableDSL.g:16672:1: ( ruleXUnaryOperation )
+            {
+            // InternalTableDSL.g:16672:1: ( ruleXUnaryOperation )
+            // InternalTableDSL.g:16673:2: ruleXUnaryOperation
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group__1"
+    // InternalTableDSL.g:16682:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
+    public final void rule__XMultiplicativeExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16686:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
+            // InternalTableDSL.g:16687:2: rule__XMultiplicativeExpression__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group__1"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group__1__Impl"
+    // InternalTableDSL.g:16693:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
+    public final void rule__XMultiplicativeExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16697:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
+            // InternalTableDSL.g:16698:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            {
+            // InternalTableDSL.g:16698:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+            // InternalTableDSL.g:16699:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:16700:2: ( rule__XMultiplicativeExpression__Group_1__0 )*
+            loop113:
+            do {
+                int alt113=2;
+                switch ( input.LA(1) ) {
+                case 39:
+                    {
+                    int LA113_2 = input.LA(2);
+
+                    if ( (synpred193_InternalTableDSL()) ) {
+                        alt113=1;
+                    }
+
+
+                    }
+                    break;
+                case 40:
+                    {
+                    int LA113_3 = input.LA(2);
+
+                    if ( (synpred193_InternalTableDSL()) ) {
+                        alt113=1;
+                    }
+
+
+                    }
+                    break;
+                case 41:
+                    {
+                    int LA113_4 = input.LA(2);
+
+                    if ( (synpred193_InternalTableDSL()) ) {
+                        alt113=1;
+                    }
+
+
+                    }
+                    break;
+                case 42:
+                    {
+                    int LA113_5 = input.LA(2);
+
+                    if ( (synpred193_InternalTableDSL()) ) {
+                        alt113=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt113) {
+            	case 1 :
+            	    // InternalTableDSL.g:16700:3: rule__XMultiplicativeExpression__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_133);
+            	    rule__XMultiplicativeExpression__Group_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop113;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0"
+    // InternalTableDSL.g:16709:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
+    public final void rule__XMultiplicativeExpression__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16713:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
+            // InternalTableDSL.g:16714:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XMultiplicativeExpression__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group_1__0"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0__Impl"
+    // InternalTableDSL.g:16721:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
+    public final void rule__XMultiplicativeExpression__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16725:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
+            // InternalTableDSL.g:16726:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            {
+            // InternalTableDSL.g:16726:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+            // InternalTableDSL.g:16727:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
+            }
+            // InternalTableDSL.g:16728:2: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+            // InternalTableDSL.g:16728:3: rule__XMultiplicativeExpression__Group_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__Group_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1"
+    // InternalTableDSL.g:16736:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
+    public final void rule__XMultiplicativeExpression__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16740:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
+            // InternalTableDSL.g:16741:2: rule__XMultiplicativeExpression__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group_1__1"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1__Impl"
+    // InternalTableDSL.g:16747:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
+    public final void rule__XMultiplicativeExpression__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16751:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
+            // InternalTableDSL.g:16752:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            {
+            // InternalTableDSL.g:16752:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+            // InternalTableDSL.g:16753:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+            // InternalTableDSL.g:16754:2: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+            // InternalTableDSL.g:16754:3: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__RightOperandAssignment_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0"
+    // InternalTableDSL.g:16763:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
+    public final void rule__XMultiplicativeExpression__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16767:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
+            // InternalTableDSL.g:16768:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
+    // InternalTableDSL.g:16774:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
+    public final void rule__XMultiplicativeExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16778:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
+            // InternalTableDSL.g:16779:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:16779:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+            // InternalTableDSL.g:16780:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
+            }
+            // InternalTableDSL.g:16781:2: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+            // InternalTableDSL.g:16781:3: rule__XMultiplicativeExpression__Group_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__Group_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0"
+    // InternalTableDSL.g:16790:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
+    public final void rule__XMultiplicativeExpression__Group_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16794:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
+            // InternalTableDSL.g:16795:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
+            {
+            pushFollow(FOLLOW_132);
+            rule__XMultiplicativeExpression__Group_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__Group_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__0"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
+    // InternalTableDSL.g:16802:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
+    public final void rule__XMultiplicativeExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16806:1: ( ( () ) )
+            // InternalTableDSL.g:16807:1: ( () )
+            {
+            // InternalTableDSL.g:16807:1: ( () )
+            // InternalTableDSL.g:16808:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:16809:2: ()
+            // InternalTableDSL.g:16809:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1"
+    // InternalTableDSL.g:16817:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
+    public final void rule__XMultiplicativeExpression__Group_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16821:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
+            // InternalTableDSL.g:16822:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__Group_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__1"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
+    // InternalTableDSL.g:16828:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
+    public final void rule__XMultiplicativeExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16832:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
+            // InternalTableDSL.g:16833:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            {
+            // InternalTableDSL.g:16833:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+            // InternalTableDSL.g:16834:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+            // InternalTableDSL.g:16835:2: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+            // InternalTableDSL.g:16835:3: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XUnaryOperation__Group_0__0"
+    // InternalTableDSL.g:16844:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
+    public final void rule__XUnaryOperation__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16848:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
+            // InternalTableDSL.g:16849:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
+            {
+            pushFollow(FOLLOW_134);
+            rule__XUnaryOperation__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XUnaryOperation__Group_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XUnaryOperation__Group_0__0"
+
+
+    // $ANTLR start "rule__XUnaryOperation__Group_0__0__Impl"
+    // InternalTableDSL.g:16856:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
+    public final void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16860:1: ( ( () ) )
+            // InternalTableDSL.g:16861:1: ( () )
+            {
+            // InternalTableDSL.g:16861:1: ( () )
+            // InternalTableDSL.g:16862:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
+            }
+            // InternalTableDSL.g:16863:2: ()
+            // InternalTableDSL.g:16863:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XUnaryOperation__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__XUnaryOperation__Group_0__1"
+    // InternalTableDSL.g:16871:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
+    public final void rule__XUnaryOperation__Group_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16875:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
+            // InternalTableDSL.g:16876:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
+            {
+            pushFollow(FOLLOW_107);
+            rule__XUnaryOperation__Group_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XUnaryOperation__Group_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XUnaryOperation__Group_0__1"
+
+
+    // $ANTLR start "rule__XUnaryOperation__Group_0__1__Impl"
+    // InternalTableDSL.g:16883:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
+    public final void rule__XUnaryOperation__Group_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16887:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
+            // InternalTableDSL.g:16888:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            {
+            // InternalTableDSL.g:16888:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+            // InternalTableDSL.g:16889:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
+            }
+            // InternalTableDSL.g:16890:2: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+            // InternalTableDSL.g:16890:3: rule__XUnaryOperation__FeatureAssignment_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XUnaryOperation__FeatureAssignment_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XUnaryOperation__Group_0__1__Impl"
+
+
+    // $ANTLR start "rule__XUnaryOperation__Group_0__2"
+    // InternalTableDSL.g:16898:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
+    public final void rule__XUnaryOperation__Group_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16902:1: ( rule__XUnaryOperation__Group_0__2__Impl )
+            // InternalTableDSL.g:16903:2: rule__XUnaryOperation__Group_0__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XUnaryOperation__Group_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XUnaryOperation__Group_0__2"
+
+
+    // $ANTLR start "rule__XUnaryOperation__Group_0__2__Impl"
+    // InternalTableDSL.g:16909:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
+    public final void rule__XUnaryOperation__Group_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16913:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
+            // InternalTableDSL.g:16914:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            {
+            // InternalTableDSL.g:16914:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+            // InternalTableDSL.g:16915:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
+            }
+            // InternalTableDSL.g:16916:2: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+            // InternalTableDSL.g:16916:3: rule__XUnaryOperation__OperandAssignment_0_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XUnaryOperation__OperandAssignment_0_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XUnaryOperation__Group_0__2__Impl"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group__0"
+    // InternalTableDSL.g:16925:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
+    public final void rule__XCastedExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16929:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
+            // InternalTableDSL.g:16930:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
+            {
+            pushFollow(FOLLOW_135);
+            rule__XCastedExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group__0"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group__0__Impl"
+    // InternalTableDSL.g:16937:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
+    public final void rule__XCastedExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16941:1: ( ( ruleXPostfixOperation ) )
+            // InternalTableDSL.g:16942:1: ( ruleXPostfixOperation )
+            {
+            // InternalTableDSL.g:16942:1: ( ruleXPostfixOperation )
+            // InternalTableDSL.g:16943:2: ruleXPostfixOperation
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXPostfixOperation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group__1"
+    // InternalTableDSL.g:16952:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
+    public final void rule__XCastedExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16956:1: ( rule__XCastedExpression__Group__1__Impl )
+            // InternalTableDSL.g:16957:2: rule__XCastedExpression__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group__1"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group__1__Impl"
+    // InternalTableDSL.g:16963:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
+    public final void rule__XCastedExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16967:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
+            // InternalTableDSL.g:16968:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            {
+            // InternalTableDSL.g:16968:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+            // InternalTableDSL.g:16969:2: ( rule__XCastedExpression__Group_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:16970:2: ( rule__XCastedExpression__Group_1__0 )*
+            loop114:
+            do {
+                int alt114=2;
+                int LA114_0 = input.LA(1);
+
+                if ( (LA114_0==78) ) {
+                    int LA114_2 = input.LA(2);
+
+                    if ( (synpred194_InternalTableDSL()) ) {
+                        alt114=1;
+                    }
+
+
+                }
+
+
+                switch (alt114) {
+            	case 1 :
+            	    // InternalTableDSL.g:16970:3: rule__XCastedExpression__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_136);
+            	    rule__XCastedExpression__Group_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop114;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group_1__0"
+    // InternalTableDSL.g:16979:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
+    public final void rule__XCastedExpression__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16983:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
+            // InternalTableDSL.g:16984:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__XCastedExpression__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group_1__0"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group_1__0__Impl"
+    // InternalTableDSL.g:16991:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
+    public final void rule__XCastedExpression__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:16995:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
+            // InternalTableDSL.g:16996:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            {
+            // InternalTableDSL.g:16996:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+            // InternalTableDSL.g:16997:2: ( rule__XCastedExpression__Group_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
+            }
+            // InternalTableDSL.g:16998:2: ( rule__XCastedExpression__Group_1_0__0 )
+            // InternalTableDSL.g:16998:3: rule__XCastedExpression__Group_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__Group_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group_1__1"
+    // InternalTableDSL.g:17006:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
+    public final void rule__XCastedExpression__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17010:1: ( rule__XCastedExpression__Group_1__1__Impl )
+            // InternalTableDSL.g:17011:2: rule__XCastedExpression__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group_1__1"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group_1__1__Impl"
+    // InternalTableDSL.g:17017:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
+    public final void rule__XCastedExpression__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17021:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
+            // InternalTableDSL.g:17022:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            {
+            // InternalTableDSL.g:17022:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+            // InternalTableDSL.g:17023:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
+            }
+            // InternalTableDSL.g:17024:2: ( rule__XCastedExpression__TypeAssignment_1_1 )
+            // InternalTableDSL.g:17024:3: rule__XCastedExpression__TypeAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__TypeAssignment_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group_1_0__0"
+    // InternalTableDSL.g:17033:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
+    public final void rule__XCastedExpression__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17037:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
+            // InternalTableDSL.g:17038:2: rule__XCastedExpression__Group_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group_1_0__0__Impl"
+    // InternalTableDSL.g:17044:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
+    public final void rule__XCastedExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17048:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
+            // InternalTableDSL.g:17049:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:17049:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+            // InternalTableDSL.g:17050:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
+            }
+            // InternalTableDSL.g:17051:2: ( rule__XCastedExpression__Group_1_0_0__0 )
+            // InternalTableDSL.g:17051:3: rule__XCastedExpression__Group_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__Group_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0"
+    // InternalTableDSL.g:17060:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
+    public final void rule__XCastedExpression__Group_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17064:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
+            // InternalTableDSL.g:17065:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
+            {
+            pushFollow(FOLLOW_135);
+            rule__XCastedExpression__Group_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__Group_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group_1_0_0__0"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0__Impl"
+    // InternalTableDSL.g:17072:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
+    public final void rule__XCastedExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17076:1: ( ( () ) )
+            // InternalTableDSL.g:17077:1: ( () )
+            {
+            // InternalTableDSL.g:17077:1: ( () )
+            // InternalTableDSL.g:17078:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:17079:2: ()
+            // InternalTableDSL.g:17079:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1"
+    // InternalTableDSL.g:17087:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
+    public final void rule__XCastedExpression__Group_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17091:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
+            // InternalTableDSL.g:17092:2: rule__XCastedExpression__Group_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCastedExpression__Group_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group_1_0_0__1"
+
+
+    // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1__Impl"
+    // InternalTableDSL.g:17098:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
+    public final void rule__XCastedExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17102:1: ( ( 'as' ) )
+            // InternalTableDSL.g:17103:1: ( 'as' )
+            {
+            // InternalTableDSL.g:17103:1: ( 'as' )
+            // InternalTableDSL.g:17104:2: 'as'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
+            }
+            match(input,78,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__Group_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XPostfixOperation__Group__0"
+    // InternalTableDSL.g:17114:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
+    public final void rule__XPostfixOperation__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17118:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
+            // InternalTableDSL.g:17119:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
+            {
+            pushFollow(FOLLOW_137);
+            rule__XPostfixOperation__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XPostfixOperation__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__Group__0"
+
+
+    // $ANTLR start "rule__XPostfixOperation__Group__0__Impl"
+    // InternalTableDSL.g:17126:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
+    public final void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17130:1: ( ( ruleXMemberFeatureCall ) )
+            // InternalTableDSL.g:17131:1: ( ruleXMemberFeatureCall )
+            {
+            // InternalTableDSL.g:17131:1: ( ruleXMemberFeatureCall )
+            // InternalTableDSL.g:17132:2: ruleXMemberFeatureCall
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXMemberFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XPostfixOperation__Group__1"
+    // InternalTableDSL.g:17141:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
+    public final void rule__XPostfixOperation__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17145:1: ( rule__XPostfixOperation__Group__1__Impl )
+            // InternalTableDSL.g:17146:2: rule__XPostfixOperation__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XPostfixOperation__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__Group__1"
+
+
+    // $ANTLR start "rule__XPostfixOperation__Group__1__Impl"
+    // InternalTableDSL.g:17152:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
+    public final void rule__XPostfixOperation__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17156:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
+            // InternalTableDSL.g:17157:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            {
+            // InternalTableDSL.g:17157:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
+            // InternalTableDSL.g:17158:2: ( rule__XPostfixOperation__Group_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:17159:2: ( rule__XPostfixOperation__Group_1__0 )?
+            int alt115=2;
+            int LA115_0 = input.LA(1);
+
+            if ( (LA115_0==44) ) {
+                int LA115_1 = input.LA(2);
+
+                if ( (synpred195_InternalTableDSL()) ) {
+                    alt115=1;
+                }
+            }
+            else if ( (LA115_0==45) ) {
+                int LA115_2 = input.LA(2);
+
+                if ( (synpred195_InternalTableDSL()) ) {
+                    alt115=1;
+                }
+            }
+            switch (alt115) {
+                case 1 :
+                    // InternalTableDSL.g:17159:3: rule__XPostfixOperation__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XPostfixOperation__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XPostfixOperation__Group_1__0"
+    // InternalTableDSL.g:17168:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
+    public final void rule__XPostfixOperation__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17172:1: ( rule__XPostfixOperation__Group_1__0__Impl )
+            // InternalTableDSL.g:17173:2: rule__XPostfixOperation__Group_1__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XPostfixOperation__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__Group_1__0"
+
+
+    // $ANTLR start "rule__XPostfixOperation__Group_1__0__Impl"
+    // InternalTableDSL.g:17179:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
+    public final void rule__XPostfixOperation__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17183:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
+            // InternalTableDSL.g:17184:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            {
+            // InternalTableDSL.g:17184:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
+            // InternalTableDSL.g:17185:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
+            }
+            // InternalTableDSL.g:17186:2: ( rule__XPostfixOperation__Group_1_0__0 )
+            // InternalTableDSL.g:17186:3: rule__XPostfixOperation__Group_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XPostfixOperation__Group_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XPostfixOperation__Group_1_0__0"
+    // InternalTableDSL.g:17195:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
+    public final void rule__XPostfixOperation__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17199:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
+            // InternalTableDSL.g:17200:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
+            {
+            pushFollow(FOLLOW_137);
+            rule__XPostfixOperation__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XPostfixOperation__Group_1_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XPostfixOperation__Group_1_0__0__Impl"
+    // InternalTableDSL.g:17207:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
+    public final void rule__XPostfixOperation__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17211:1: ( ( () ) )
+            // InternalTableDSL.g:17212:1: ( () )
+            {
+            // InternalTableDSL.g:17212:1: ( () )
+            // InternalTableDSL.g:17213:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
+            }
+            // InternalTableDSL.g:17214:2: ()
+            // InternalTableDSL.g:17214:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XPostfixOperation__Group_1_0__1"
+    // InternalTableDSL.g:17222:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
+    public final void rule__XPostfixOperation__Group_1_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17226:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
+            // InternalTableDSL.g:17227:2: rule__XPostfixOperation__Group_1_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XPostfixOperation__Group_1_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__Group_1_0__1"
+
+
+    // $ANTLR start "rule__XPostfixOperation__Group_1_0__1__Impl"
+    // InternalTableDSL.g:17233:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
+    public final void rule__XPostfixOperation__Group_1_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17237:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
+            // InternalTableDSL.g:17238:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            {
+            // InternalTableDSL.g:17238:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
+            // InternalTableDSL.g:17239:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
+            }
+            // InternalTableDSL.g:17240:2: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
+            // InternalTableDSL.g:17240:3: rule__XPostfixOperation__FeatureAssignment_1_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XPostfixOperation__FeatureAssignment_1_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__Group_1_0__1__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group__0"
+    // InternalTableDSL.g:17249:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
+    public final void rule__XMemberFeatureCall__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17253:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
+            // InternalTableDSL.g:17254:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
+            {
+            pushFollow(FOLLOW_138);
+            rule__XMemberFeatureCall__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group__0__Impl"
+    // InternalTableDSL.g:17261:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
+    public final void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17265:1: ( ( ruleXPrimaryExpression ) )
+            // InternalTableDSL.g:17266:1: ( ruleXPrimaryExpression )
+            {
+            // InternalTableDSL.g:17266:1: ( ruleXPrimaryExpression )
+            // InternalTableDSL.g:17267:2: ruleXPrimaryExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXPrimaryExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group__1"
+    // InternalTableDSL.g:17276:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
+    public final void rule__XMemberFeatureCall__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17280:1: ( rule__XMemberFeatureCall__Group__1__Impl )
+            // InternalTableDSL.g:17281:2: rule__XMemberFeatureCall__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group__1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group__1__Impl"
+    // InternalTableDSL.g:17287:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
+    public final void rule__XMemberFeatureCall__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17291:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
+            // InternalTableDSL.g:17292:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            {
+            // InternalTableDSL.g:17292:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+            // InternalTableDSL.g:17293:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
+            }
+            // InternalTableDSL.g:17294:2: ( rule__XMemberFeatureCall__Alternatives_1 )*
+            loop116:
+            do {
+                int alt116=2;
+                switch ( input.LA(1) ) {
+                case 46:
+                    {
+                    int LA116_2 = input.LA(2);
+
+                    if ( (synpred196_InternalTableDSL()) ) {
+                        alt116=1;
+                    }
+
+
+                    }
+                    break;
+                case 184:
+                    {
+                    int LA116_3 = input.LA(2);
+
+                    if ( (synpred196_InternalTableDSL()) ) {
+                        alt116=1;
+                    }
+
+
+                    }
+                    break;
+                case 185:
+                    {
+                    int LA116_4 = input.LA(2);
+
+                    if ( (synpred196_InternalTableDSL()) ) {
+                        alt116=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt116) {
+            	case 1 :
+            	    // InternalTableDSL.g:17294:3: rule__XMemberFeatureCall__Alternatives_1
+            	    {
+            	    pushFollow(FOLLOW_139);
+            	    rule__XMemberFeatureCall__Alternatives_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop116;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0"
+    // InternalTableDSL.g:17303:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
+    public final void rule__XMemberFeatureCall__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17307:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
+            // InternalTableDSL.g:17308:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XMemberFeatureCall__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0__Impl"
+    // InternalTableDSL.g:17315:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17319:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
+            // InternalTableDSL.g:17320:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:17320:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+            // InternalTableDSL.g:17321:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
+            }
+            // InternalTableDSL.g:17322:2: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+            // InternalTableDSL.g:17322:3: rule__XMemberFeatureCall__Group_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1"
+    // InternalTableDSL.g:17330:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17334:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
+            // InternalTableDSL.g:17335:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1__Impl"
+    // InternalTableDSL.g:17341:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17345:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
+            // InternalTableDSL.g:17346:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            {
+            // InternalTableDSL.g:17346:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+            // InternalTableDSL.g:17347:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
+            }
+            // InternalTableDSL.g:17348:2: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+            // InternalTableDSL.g:17348:3: rule__XMemberFeatureCall__ValueAssignment_1_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__ValueAssignment_1_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__1__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0"
+    // InternalTableDSL.g:17357:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17361:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
+            // InternalTableDSL.g:17362:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
+    // InternalTableDSL.g:17368:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17372:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
+            // InternalTableDSL.g:17373:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            {
+            // InternalTableDSL.g:17373:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+            // InternalTableDSL.g:17374:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:17375:2: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+            // InternalTableDSL.g:17375:3: rule__XMemberFeatureCall__Group_1_0_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_0_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0"
+    // InternalTableDSL.g:17384:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
+    public final void rule__XMemberFeatureCall__Group_1_0_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17388:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
+            // InternalTableDSL.g:17389:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
+            {
+            pushFollow(FOLLOW_140);
+            rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_0_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
+    // InternalTableDSL.g:17396:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
+    public final void rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17400:1: ( ( () ) )
+            // InternalTableDSL.g:17401:1: ( () )
+            {
+            // InternalTableDSL.g:17401:1: ( () )
+            // InternalTableDSL.g:17402:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
+            }
+            // InternalTableDSL.g:17403:2: ()
+            // InternalTableDSL.g:17403:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1"
+    // InternalTableDSL.g:17411:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
+    public final void rule__XMemberFeatureCall__Group_1_0_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17415:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
+            // InternalTableDSL.g:17416:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
+            {
+            pushFollow(FOLLOW_111);
+            rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_0_0_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
+    // InternalTableDSL.g:17423:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17427:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
+            // InternalTableDSL.g:17428:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            {
+            // InternalTableDSL.g:17428:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+            // InternalTableDSL.g:17429:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
+            }
+            // InternalTableDSL.g:17430:2: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+            // InternalTableDSL.g:17430:3: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Alternatives_1_0_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2"
+    // InternalTableDSL.g:17438:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
+    public final void rule__XMemberFeatureCall__Group_1_0_0_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17442:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
+            // InternalTableDSL.g:17443:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
+            {
+            pushFollow(FOLLOW_83);
+            rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_0_0_0__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__2"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
+    // InternalTableDSL.g:17450:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17454:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
+            // InternalTableDSL.g:17455:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            {
+            // InternalTableDSL.g:17455:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+            // InternalTableDSL.g:17456:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
+            }
+            // InternalTableDSL.g:17457:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+            // InternalTableDSL.g:17457:3: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3"
+    // InternalTableDSL.g:17465:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_0_0_0__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17469:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
+            // InternalTableDSL.g:17470:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__3"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
+    // InternalTableDSL.g:17476:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
+    public final void rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17480:1: ( ( ruleOpSingleAssign ) )
+            // InternalTableDSL.g:17481:1: ( ruleOpSingleAssign )
+            {
+            // InternalTableDSL.g:17481:1: ( ruleOpSingleAssign )
+            // InternalTableDSL.g:17482:2: ruleOpSingleAssign
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpSingleAssign();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0"
+    // InternalTableDSL.g:17492:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
+    public final void rule__XMemberFeatureCall__Group_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17496:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
+            // InternalTableDSL.g:17497:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
+            {
+            pushFollow(FOLLOW_141);
+            rule__XMemberFeatureCall__Group_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0__Impl"
+    // InternalTableDSL.g:17504:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17508:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
+            // InternalTableDSL.g:17509:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            {
+            // InternalTableDSL.g:17509:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+            // InternalTableDSL.g:17510:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
+            }
+            // InternalTableDSL.g:17511:2: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+            // InternalTableDSL.g:17511:3: rule__XMemberFeatureCall__Group_1_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1"
+    // InternalTableDSL.g:17519:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
+    public final void rule__XMemberFeatureCall__Group_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17523:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
+            // InternalTableDSL.g:17524:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
+            {
+            pushFollow(FOLLOW_141);
+            rule__XMemberFeatureCall__Group_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1__Impl"
+    // InternalTableDSL.g:17531:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17535:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
+            // InternalTableDSL.g:17536:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            {
+            // InternalTableDSL.g:17536:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+            // InternalTableDSL.g:17537:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
+            }
+            // InternalTableDSL.g:17538:2: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+            int alt117=2;
+            int LA117_0 = input.LA(1);
+
+            if ( (LA117_0==32) ) {
+                alt117=1;
+            }
+            switch (alt117) {
+                case 1 :
+                    // InternalTableDSL.g:17538:3: rule__XMemberFeatureCall__Group_1_1_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__Group_1_1_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2"
+    // InternalTableDSL.g:17546:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
+    public final void rule__XMemberFeatureCall__Group_1_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17550:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
+            // InternalTableDSL.g:17551:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
+            {
+            pushFollow(FOLLOW_142);
+            rule__XMemberFeatureCall__Group_1_1__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__2"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2__Impl"
+    // InternalTableDSL.g:17558:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17562:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
+            // InternalTableDSL.g:17563:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            {
+            // InternalTableDSL.g:17563:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+            // InternalTableDSL.g:17564:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
+            }
+            // InternalTableDSL.g:17565:2: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+            // InternalTableDSL.g:17565:3: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__FeatureAssignment_1_1_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__2__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3"
+    // InternalTableDSL.g:17573:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
+    public final void rule__XMemberFeatureCall__Group_1_1__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17577:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
+            // InternalTableDSL.g:17578:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
+            {
+            pushFollow(FOLLOW_142);
+            rule__XMemberFeatureCall__Group_1_1__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__3"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3__Impl"
+    // InternalTableDSL.g:17585:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17589:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
+            // InternalTableDSL.g:17590:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            {
+            // InternalTableDSL.g:17590:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+            // InternalTableDSL.g:17591:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
+            }
+            // InternalTableDSL.g:17592:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+            int alt118=2;
+            alt118 = dfa118.predict(input);
+            switch (alt118) {
+                case 1 :
+                    // InternalTableDSL.g:17592:3: rule__XMemberFeatureCall__Group_1_1_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__Group_1_1_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__3__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4"
+    // InternalTableDSL.g:17600:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_1__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17604:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
+            // InternalTableDSL.g:17605:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__4"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4__Impl"
+    // InternalTableDSL.g:17611:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17615:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
+            // InternalTableDSL.g:17616:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            {
+            // InternalTableDSL.g:17616:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+            // InternalTableDSL.g:17617:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
+            }
+            // InternalTableDSL.g:17618:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+            int alt119=2;
+            alt119 = dfa119.predict(input);
+            switch (alt119) {
+                case 1 :
+                    // InternalTableDSL.g:17618:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__4__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0"
+    // InternalTableDSL.g:17627:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17631:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
+            // InternalTableDSL.g:17632:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
+    // InternalTableDSL.g:17638:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17642:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
+            // InternalTableDSL.g:17643:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:17643:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+            // InternalTableDSL.g:17644:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
+            }
+            // InternalTableDSL.g:17645:2: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+            // InternalTableDSL.g:17645:3: rule__XMemberFeatureCall__Group_1_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0"
+    // InternalTableDSL.g:17654:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
+    public final void rule__XMemberFeatureCall__Group_1_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17658:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
+            // InternalTableDSL.g:17659:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
+            {
+            pushFollow(FOLLOW_138);
+            rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
+    // InternalTableDSL.g:17666:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17670:1: ( ( () ) )
+            // InternalTableDSL.g:17671:1: ( () )
+            {
+            // InternalTableDSL.g:17671:1: ( () )
+            // InternalTableDSL.g:17672:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:17673:2: ()
+            // InternalTableDSL.g:17673:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1"
+    // InternalTableDSL.g:17681:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17685:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
+            // InternalTableDSL.g:17686:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
+    // InternalTableDSL.g:17692:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17696:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
+            // InternalTableDSL.g:17697:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            {
+            // InternalTableDSL.g:17697:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+            // InternalTableDSL.g:17698:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
+            }
+            // InternalTableDSL.g:17699:2: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+            // InternalTableDSL.g:17699:3: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Alternatives_1_1_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0"
+    // InternalTableDSL.g:17708:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17712:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
+            // InternalTableDSL.g:17713:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__XMemberFeatureCall__Group_1_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
+    // InternalTableDSL.g:17720:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17724:1: ( ( '<' ) )
+            // InternalTableDSL.g:17725:1: ( '<' )
+            {
+            // InternalTableDSL.g:17725:1: ( '<' )
+            // InternalTableDSL.g:17726:2: '<'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
+            }
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1"
+    // InternalTableDSL.g:17735:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17739:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
+            // InternalTableDSL.g:17740:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
+            {
+            pushFollow(FOLLOW_144);
+            rule__XMemberFeatureCall__Group_1_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_1__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
+    // InternalTableDSL.g:17747:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17751:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
+            // InternalTableDSL.g:17752:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            {
+            // InternalTableDSL.g:17752:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+            // InternalTableDSL.g:17753:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
+            }
+            // InternalTableDSL.g:17754:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+            // InternalTableDSL.g:17754:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2"
+    // InternalTableDSL.g:17762:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17766:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
+            // InternalTableDSL.g:17767:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
+            {
+            pushFollow(FOLLOW_144);
+            rule__XMemberFeatureCall__Group_1_1_1__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_1__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__2"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
+    // InternalTableDSL.g:17774:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17778:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
+            // InternalTableDSL.g:17779:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            {
+            // InternalTableDSL.g:17779:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+            // InternalTableDSL.g:17780:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
+            }
+            // InternalTableDSL.g:17781:2: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+            loop120:
+            do {
+                int alt120=2;
+                int LA120_0 = input.LA(1);
+
+                if ( (LA120_0==141) ) {
+                    alt120=1;
+                }
+
+
+                switch (alt120) {
+            	case 1 :
+            	    // InternalTableDSL.g:17781:3: rule__XMemberFeatureCall__Group_1_1_1_2__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XMemberFeatureCall__Group_1_1_1_2__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop120;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3"
+    // InternalTableDSL.g:17789:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17793:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
+            // InternalTableDSL.g:17794:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_1__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__3"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
+    // InternalTableDSL.g:17800:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17804:1: ( ( '>' ) )
+            // InternalTableDSL.g:17805:1: ( '>' )
+            {
+            // InternalTableDSL.g:17805:1: ( '>' )
+            // InternalTableDSL.g:17806:2: '>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
+            }
+            match(input,31,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0"
+    // InternalTableDSL.g:17816:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17820:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
+            // InternalTableDSL.g:17821:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_1_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
+    // InternalTableDSL.g:17828:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17832:1: ( ( ',' ) )
+            // InternalTableDSL.g:17833:1: ( ',' )
+            {
+            // InternalTableDSL.g:17833:1: ( ',' )
+            // InternalTableDSL.g:17834:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1"
+    // InternalTableDSL.g:17843:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17847:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
+            // InternalTableDSL.g:17848:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
+    // InternalTableDSL.g:17854:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17858:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
+            // InternalTableDSL.g:17859:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            {
+            // InternalTableDSL.g:17859:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+            // InternalTableDSL.g:17860:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
+            }
+            // InternalTableDSL.g:17861:2: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+            // InternalTableDSL.g:17861:3: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0"
+    // InternalTableDSL.g:17870:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17874:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
+            // InternalTableDSL.g:17875:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
+            {
+            pushFollow(FOLLOW_145);
+            rule__XMemberFeatureCall__Group_1_1_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
+    // InternalTableDSL.g:17882:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17886:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
+            // InternalTableDSL.g:17887:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            {
+            // InternalTableDSL.g:17887:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+            // InternalTableDSL.g:17888:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
+            }
+            // InternalTableDSL.g:17889:2: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+            // InternalTableDSL.g:17889:3: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1"
+    // InternalTableDSL.g:17897:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17901:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
+            // InternalTableDSL.g:17902:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
+            {
+            pushFollow(FOLLOW_145);
+            rule__XMemberFeatureCall__Group_1_1_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_3__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
+    // InternalTableDSL.g:17909:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17913:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
+            // InternalTableDSL.g:17914:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            {
+            // InternalTableDSL.g:17914:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+            // InternalTableDSL.g:17915:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
+            }
+            // InternalTableDSL.g:17916:2: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+            int alt121=2;
+            int LA121_0 = input.LA(1);
+
+            if ( ((LA121_0>=RULE_STRING && LA121_0<=RULE_DECIMAL)||(LA121_0>=19 && LA121_0<=20)||LA121_0==32||LA121_0==36||LA121_0==43||(LA121_0>=48 && LA121_0<=53)||LA121_0==75||LA121_0==132||(LA121_0>=143 && LA121_0<=144)||LA121_0==146||LA121_0==148||(LA121_0>=151 && LA121_0<=159)||LA121_0==161||LA121_0==186||LA121_0==188) ) {
+                alt121=1;
+            }
+            switch (alt121) {
+                case 1 :
+                    // InternalTableDSL.g:17916:3: rule__XMemberFeatureCall__Alternatives_1_1_3_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XMemberFeatureCall__Alternatives_1_1_3_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2"
+    // InternalTableDSL.g:17924:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17928:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
+            // InternalTableDSL.g:17929:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_3__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__2"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
+    // InternalTableDSL.g:17935:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17939:1: ( ( ')' ) )
+            // InternalTableDSL.g:17940:1: ( ')' )
+            {
+            // InternalTableDSL.g:17940:1: ( ')' )
+            // InternalTableDSL.g:17941:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
+    // InternalTableDSL.g:17951:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17955:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
+            // InternalTableDSL.g:17956:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_3_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
+    // InternalTableDSL.g:17963:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17967:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
+            // InternalTableDSL.g:17968:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            {
+            // InternalTableDSL.g:17968:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+            // InternalTableDSL.g:17969:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); 
+            }
+            // InternalTableDSL.g:17970:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+            // InternalTableDSL.g:17970:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
+    // InternalTableDSL.g:17978:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17982:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
+            // InternalTableDSL.g:17983:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
+    // InternalTableDSL.g:17989:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:17993:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
+            // InternalTableDSL.g:17994:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            {
+            // InternalTableDSL.g:17994:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+            // InternalTableDSL.g:17995:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); 
+            }
+            // InternalTableDSL.g:17996:2: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+            loop122:
+            do {
+                int alt122=2;
+                int LA122_0 = input.LA(1);
+
+                if ( (LA122_0==141) ) {
+                    alt122=1;
+                }
+
+
+                switch (alt122) {
+            	case 1 :
+            	    // InternalTableDSL.g:17996:3: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop122;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
+    // InternalTableDSL.g:18005:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18009:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
+            // InternalTableDSL.g:18010:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
+    // InternalTableDSL.g:18017:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18021:1: ( ( ',' ) )
+            // InternalTableDSL.g:18022:1: ( ',' )
+            {
+            // InternalTableDSL.g:18022:1: ( ',' )
+            // InternalTableDSL.g:18023:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
+    // InternalTableDSL.g:18032:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18036:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
+            // InternalTableDSL.g:18037:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
+    // InternalTableDSL.g:18043:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
+    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18047:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
+            // InternalTableDSL.g:18048:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            {
+            // InternalTableDSL.g:18048:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+            // InternalTableDSL.g:18049:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); 
+            }
+            // InternalTableDSL.g:18050:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+            // InternalTableDSL.g:18050:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group__0"
+    // InternalTableDSL.g:18059:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
+    public final void rule__XSetLiteral__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18063:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
+            // InternalTableDSL.g:18064:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
+            {
+            pushFollow(FOLLOW_109);
+            rule__XSetLiteral__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group__0"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group__0__Impl"
+    // InternalTableDSL.g:18071:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
+    public final void rule__XSetLiteral__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18075:1: ( ( () ) )
+            // InternalTableDSL.g:18076:1: ( () )
+            {
+            // InternalTableDSL.g:18076:1: ( () )
+            // InternalTableDSL.g:18077:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
+            }
+            // InternalTableDSL.g:18078:2: ()
+            // InternalTableDSL.g:18078:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group__1"
+    // InternalTableDSL.g:18086:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
+    public final void rule__XSetLiteral__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18090:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
+            // InternalTableDSL.g:18091:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
+            {
+            pushFollow(FOLLOW_8);
+            rule__XSetLiteral__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group__1"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group__1__Impl"
+    // InternalTableDSL.g:18098:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
+    public final void rule__XSetLiteral__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18102:1: ( ( '#' ) )
+            // InternalTableDSL.g:18103:1: ( '#' )
+            {
+            // InternalTableDSL.g:18103:1: ( '#' )
+            // InternalTableDSL.g:18104:2: '#'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
+            }
+            match(input,143,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group__2"
+    // InternalTableDSL.g:18113:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
+    public final void rule__XSetLiteral__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18117:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
+            // InternalTableDSL.g:18118:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
+            {
+            pushFollow(FOLLOW_146);
+            rule__XSetLiteral__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group__2"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group__2__Impl"
+    // InternalTableDSL.g:18125:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
+    public final void rule__XSetLiteral__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18129:1: ( ( '{' ) )
+            // InternalTableDSL.g:18130:1: ( '{' )
+            {
+            // InternalTableDSL.g:18130:1: ( '{' )
+            // InternalTableDSL.g:18131:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group__3"
+    // InternalTableDSL.g:18140:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
+    public final void rule__XSetLiteral__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18144:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
+            // InternalTableDSL.g:18145:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
+            {
+            pushFollow(FOLLOW_146);
+            rule__XSetLiteral__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group__3"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group__3__Impl"
+    // InternalTableDSL.g:18152:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
+    public final void rule__XSetLiteral__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18156:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
+            // InternalTableDSL.g:18157:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:18157:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+            // InternalTableDSL.g:18158:2: ( rule__XSetLiteral__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:18159:2: ( rule__XSetLiteral__Group_3__0 )?
+            int alt123=2;
+            int LA123_0 = input.LA(1);
+
+            if ( ((LA123_0>=RULE_STRING && LA123_0<=RULE_DECIMAL)||(LA123_0>=19 && LA123_0<=20)||LA123_0==32||LA123_0==43||(LA123_0>=48 && LA123_0<=53)||LA123_0==75||LA123_0==132||(LA123_0>=143 && LA123_0<=144)||LA123_0==146||LA123_0==148||(LA123_0>=151 && LA123_0<=159)||LA123_0==161||LA123_0==188) ) {
+                alt123=1;
+            }
+            switch (alt123) {
+                case 1 :
+                    // InternalTableDSL.g:18159:3: rule__XSetLiteral__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XSetLiteral__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group__4"
+    // InternalTableDSL.g:18167:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
+    public final void rule__XSetLiteral__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18171:1: ( rule__XSetLiteral__Group__4__Impl )
+            // InternalTableDSL.g:18172:2: rule__XSetLiteral__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group__4"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group__4__Impl"
+    // InternalTableDSL.g:18178:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
+    public final void rule__XSetLiteral__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18182:1: ( ( '}' ) )
+            // InternalTableDSL.g:18183:1: ( '}' )
+            {
+            // InternalTableDSL.g:18183:1: ( '}' )
+            // InternalTableDSL.g:18184:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group__4__Impl"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group_3__0"
+    // InternalTableDSL.g:18194:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
+    public final void rule__XSetLiteral__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18198:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
+            // InternalTableDSL.g:18199:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XSetLiteral__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group_3__0"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group_3__0__Impl"
+    // InternalTableDSL.g:18206:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
+    public final void rule__XSetLiteral__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18210:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalTableDSL.g:18211:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            {
+            // InternalTableDSL.g:18211:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+            // InternalTableDSL.g:18212:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
+            }
+            // InternalTableDSL.g:18213:2: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+            // InternalTableDSL.g:18213:3: rule__XSetLiteral__ElementsAssignment_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__ElementsAssignment_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group_3__1"
+    // InternalTableDSL.g:18221:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
+    public final void rule__XSetLiteral__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18225:1: ( rule__XSetLiteral__Group_3__1__Impl )
+            // InternalTableDSL.g:18226:2: rule__XSetLiteral__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group_3__1"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group_3__1__Impl"
+    // InternalTableDSL.g:18232:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
+    public final void rule__XSetLiteral__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18236:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
+            // InternalTableDSL.g:18237:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            {
+            // InternalTableDSL.g:18237:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+            // InternalTableDSL.g:18238:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
+            }
+            // InternalTableDSL.g:18239:2: ( rule__XSetLiteral__Group_3_1__0 )*
+            loop124:
+            do {
+                int alt124=2;
+                int LA124_0 = input.LA(1);
+
+                if ( (LA124_0==141) ) {
+                    alt124=1;
+                }
+
+
+                switch (alt124) {
+            	case 1 :
+            	    // InternalTableDSL.g:18239:3: rule__XSetLiteral__Group_3_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XSetLiteral__Group_3_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop124;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group_3_1__0"
+    // InternalTableDSL.g:18248:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
+    public final void rule__XSetLiteral__Group_3_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18252:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
+            // InternalTableDSL.g:18253:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XSetLiteral__Group_3_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__Group_3_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group_3_1__0"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group_3_1__0__Impl"
+    // InternalTableDSL.g:18260:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    public final void rule__XSetLiteral__Group_3_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18264:1: ( ( ',' ) )
+            // InternalTableDSL.g:18265:1: ( ',' )
+            {
+            // InternalTableDSL.g:18265:1: ( ',' )
+            // InternalTableDSL.g:18266:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group_3_1__0__Impl"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group_3_1__1"
+    // InternalTableDSL.g:18275:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
+    public final void rule__XSetLiteral__Group_3_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18279:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
+            // InternalTableDSL.g:18280:2: rule__XSetLiteral__Group_3_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__Group_3_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group_3_1__1"
+
+
+    // $ANTLR start "rule__XSetLiteral__Group_3_1__1__Impl"
+    // InternalTableDSL.g:18286:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
+    public final void rule__XSetLiteral__Group_3_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18290:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalTableDSL.g:18291:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            {
+            // InternalTableDSL.g:18291:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalTableDSL.g:18292:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
+            }
+            // InternalTableDSL.g:18293:2: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+            // InternalTableDSL.g:18293:3: rule__XSetLiteral__ElementsAssignment_3_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSetLiteral__ElementsAssignment_3_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__Group_3_1__1__Impl"
+
+
+    // $ANTLR start "rule__XListLiteral__Group__0"
+    // InternalTableDSL.g:18302:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
+    public final void rule__XListLiteral__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18306:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
+            // InternalTableDSL.g:18307:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
+            {
+            pushFollow(FOLLOW_109);
+            rule__XListLiteral__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group__0"
+
+
+    // $ANTLR start "rule__XListLiteral__Group__0__Impl"
+    // InternalTableDSL.g:18314:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
+    public final void rule__XListLiteral__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18318:1: ( ( () ) )
+            // InternalTableDSL.g:18319:1: ( () )
+            {
+            // InternalTableDSL.g:18319:1: ( () )
+            // InternalTableDSL.g:18320:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
+            }
+            // InternalTableDSL.g:18321:2: ()
+            // InternalTableDSL.g:18321:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XListLiteral__Group__1"
+    // InternalTableDSL.g:18329:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
+    public final void rule__XListLiteral__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18333:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
+            // InternalTableDSL.g:18334:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
+            {
+            pushFollow(FOLLOW_110);
+            rule__XListLiteral__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group__1"
+
+
+    // $ANTLR start "rule__XListLiteral__Group__1__Impl"
+    // InternalTableDSL.g:18341:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
+    public final void rule__XListLiteral__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18345:1: ( ( '#' ) )
+            // InternalTableDSL.g:18346:1: ( '#' )
+            {
+            // InternalTableDSL.g:18346:1: ( '#' )
+            // InternalTableDSL.g:18347:2: '#'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
+            }
+            match(input,143,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XListLiteral__Group__2"
+    // InternalTableDSL.g:18356:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
+    public final void rule__XListLiteral__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18360:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
+            // InternalTableDSL.g:18361:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
+            {
+            pushFollow(FOLLOW_108);
+            rule__XListLiteral__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group__2"
+
+
+    // $ANTLR start "rule__XListLiteral__Group__2__Impl"
+    // InternalTableDSL.g:18368:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
+    public final void rule__XListLiteral__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18372:1: ( ( '[' ) )
+            // InternalTableDSL.g:18373:1: ( '[' )
+            {
+            // InternalTableDSL.g:18373:1: ( '[' )
+            // InternalTableDSL.g:18374:2: '['
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
+            }
+            match(input,144,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XListLiteral__Group__3"
+    // InternalTableDSL.g:18383:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
+    public final void rule__XListLiteral__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18387:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
+            // InternalTableDSL.g:18388:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
+            {
+            pushFollow(FOLLOW_108);
+            rule__XListLiteral__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group__3"
+
+
+    // $ANTLR start "rule__XListLiteral__Group__3__Impl"
+    // InternalTableDSL.g:18395:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
+    public final void rule__XListLiteral__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18399:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
+            // InternalTableDSL.g:18400:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:18400:1: ( ( rule__XListLiteral__Group_3__0 )? )
+            // InternalTableDSL.g:18401:2: ( rule__XListLiteral__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:18402:2: ( rule__XListLiteral__Group_3__0 )?
+            int alt125=2;
+            int LA125_0 = input.LA(1);
+
+            if ( ((LA125_0>=RULE_STRING && LA125_0<=RULE_DECIMAL)||(LA125_0>=19 && LA125_0<=20)||LA125_0==32||LA125_0==43||(LA125_0>=48 && LA125_0<=53)||LA125_0==75||LA125_0==132||(LA125_0>=143 && LA125_0<=144)||LA125_0==146||LA125_0==148||(LA125_0>=151 && LA125_0<=159)||LA125_0==161||LA125_0==188) ) {
+                alt125=1;
+            }
+            switch (alt125) {
+                case 1 :
+                    // InternalTableDSL.g:18402:3: rule__XListLiteral__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XListLiteral__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XListLiteral__Group__4"
+    // InternalTableDSL.g:18410:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
+    public final void rule__XListLiteral__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18414:1: ( rule__XListLiteral__Group__4__Impl )
+            // InternalTableDSL.g:18415:2: rule__XListLiteral__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group__4"
+
+
+    // $ANTLR start "rule__XListLiteral__Group__4__Impl"
+    // InternalTableDSL.g:18421:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
+    public final void rule__XListLiteral__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18425:1: ( ( ']' ) )
+            // InternalTableDSL.g:18426:1: ( ']' )
+            {
+            // InternalTableDSL.g:18426:1: ( ']' )
+            // InternalTableDSL.g:18427:2: ']'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
+            }
+            match(input,142,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group__4__Impl"
+
+
+    // $ANTLR start "rule__XListLiteral__Group_3__0"
+    // InternalTableDSL.g:18437:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
+    public final void rule__XListLiteral__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18441:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
+            // InternalTableDSL.g:18442:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XListLiteral__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group_3__0"
+
+
+    // $ANTLR start "rule__XListLiteral__Group_3__0__Impl"
+    // InternalTableDSL.g:18449:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
+    public final void rule__XListLiteral__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18453:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
+            // InternalTableDSL.g:18454:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            {
+            // InternalTableDSL.g:18454:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+            // InternalTableDSL.g:18455:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
+            }
+            // InternalTableDSL.g:18456:2: ( rule__XListLiteral__ElementsAssignment_3_0 )
+            // InternalTableDSL.g:18456:3: rule__XListLiteral__ElementsAssignment_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__ElementsAssignment_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__XListLiteral__Group_3__1"
+    // InternalTableDSL.g:18464:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
+    public final void rule__XListLiteral__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18468:1: ( rule__XListLiteral__Group_3__1__Impl )
+            // InternalTableDSL.g:18469:2: rule__XListLiteral__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group_3__1"
+
+
+    // $ANTLR start "rule__XListLiteral__Group_3__1__Impl"
+    // InternalTableDSL.g:18475:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
+    public final void rule__XListLiteral__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18479:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
+            // InternalTableDSL.g:18480:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            {
+            // InternalTableDSL.g:18480:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+            // InternalTableDSL.g:18481:2: ( rule__XListLiteral__Group_3_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
+            }
+            // InternalTableDSL.g:18482:2: ( rule__XListLiteral__Group_3_1__0 )*
+            loop126:
+            do {
+                int alt126=2;
+                int LA126_0 = input.LA(1);
+
+                if ( (LA126_0==141) ) {
+                    alt126=1;
+                }
+
+
+                switch (alt126) {
+            	case 1 :
+            	    // InternalTableDSL.g:18482:3: rule__XListLiteral__Group_3_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XListLiteral__Group_3_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop126;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__XListLiteral__Group_3_1__0"
+    // InternalTableDSL.g:18491:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
+    public final void rule__XListLiteral__Group_3_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18495:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
+            // InternalTableDSL.g:18496:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XListLiteral__Group_3_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__Group_3_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group_3_1__0"
+
+
+    // $ANTLR start "rule__XListLiteral__Group_3_1__0__Impl"
+    // InternalTableDSL.g:18503:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
+    public final void rule__XListLiteral__Group_3_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18507:1: ( ( ',' ) )
+            // InternalTableDSL.g:18508:1: ( ',' )
+            {
+            // InternalTableDSL.g:18508:1: ( ',' )
+            // InternalTableDSL.g:18509:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group_3_1__0__Impl"
+
+
+    // $ANTLR start "rule__XListLiteral__Group_3_1__1"
+    // InternalTableDSL.g:18518:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
+    public final void rule__XListLiteral__Group_3_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18522:1: ( rule__XListLiteral__Group_3_1__1__Impl )
+            // InternalTableDSL.g:18523:2: rule__XListLiteral__Group_3_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__Group_3_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group_3_1__1"
+
+
+    // $ANTLR start "rule__XListLiteral__Group_3_1__1__Impl"
+    // InternalTableDSL.g:18529:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
+    public final void rule__XListLiteral__Group_3_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18533:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
+            // InternalTableDSL.g:18534:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            {
+            // InternalTableDSL.g:18534:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+            // InternalTableDSL.g:18535:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
+            }
+            // InternalTableDSL.g:18536:2: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+            // InternalTableDSL.g:18536:3: rule__XListLiteral__ElementsAssignment_3_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XListLiteral__ElementsAssignment_3_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__Group_3_1__1__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group__0"
+    // InternalTableDSL.g:18545:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
+    public final void rule__XClosure__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18549:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
+            // InternalTableDSL.g:18550:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
+            {
+            pushFollow(FOLLOW_147);
+            rule__XClosure__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group__0"
+
+
+    // $ANTLR start "rule__XClosure__Group__0__Impl"
+    // InternalTableDSL.g:18557:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
+    public final void rule__XClosure__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18561:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
+            // InternalTableDSL.g:18562:1: ( ( rule__XClosure__Group_0__0 ) )
+            {
+            // InternalTableDSL.g:18562:1: ( ( rule__XClosure__Group_0__0 ) )
+            // InternalTableDSL.g:18563:2: ( rule__XClosure__Group_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getGroup_0()); 
+            }
+            // InternalTableDSL.g:18564:2: ( rule__XClosure__Group_0__0 )
+            // InternalTableDSL.g:18564:3: rule__XClosure__Group_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getGroup_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group__1"
+    // InternalTableDSL.g:18572:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
+    public final void rule__XClosure__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18576:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
+            // InternalTableDSL.g:18577:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
+            {
+            pushFollow(FOLLOW_147);
+            rule__XClosure__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group__1"
+
+
+    // $ANTLR start "rule__XClosure__Group__1__Impl"
+    // InternalTableDSL.g:18584:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
+    public final void rule__XClosure__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18588:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
+            // InternalTableDSL.g:18589:1: ( ( rule__XClosure__Group_1__0 )? )
+            {
+            // InternalTableDSL.g:18589:1: ( ( rule__XClosure__Group_1__0 )? )
+            // InternalTableDSL.g:18590:2: ( rule__XClosure__Group_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:18591:2: ( rule__XClosure__Group_1__0 )?
+            int alt127=2;
+            alt127 = dfa127.predict(input);
+            switch (alt127) {
+                case 1 :
+                    // InternalTableDSL.g:18591:3: rule__XClosure__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XClosure__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group__2"
+    // InternalTableDSL.g:18599:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
+    public final void rule__XClosure__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18603:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
+            // InternalTableDSL.g:18604:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
+            {
+            pushFollow(FOLLOW_148);
+            rule__XClosure__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group__2"
+
+
+    // $ANTLR start "rule__XClosure__Group__2__Impl"
+    // InternalTableDSL.g:18611:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
+    public final void rule__XClosure__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18615:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
+            // InternalTableDSL.g:18616:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            {
+            // InternalTableDSL.g:18616:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+            // InternalTableDSL.g:18617:2: ( rule__XClosure__ExpressionAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
+            }
+            // InternalTableDSL.g:18618:2: ( rule__XClosure__ExpressionAssignment_2 )
+            // InternalTableDSL.g:18618:3: rule__XClosure__ExpressionAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__ExpressionAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group__3"
+    // InternalTableDSL.g:18626:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
+    public final void rule__XClosure__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18630:1: ( rule__XClosure__Group__3__Impl )
+            // InternalTableDSL.g:18631:2: rule__XClosure__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group__3"
+
+
+    // $ANTLR start "rule__XClosure__Group__3__Impl"
+    // InternalTableDSL.g:18637:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
+    public final void rule__XClosure__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18641:1: ( ( ']' ) )
+            // InternalTableDSL.g:18642:1: ( ']' )
+            {
+            // InternalTableDSL.g:18642:1: ( ']' )
+            // InternalTableDSL.g:18643:2: ']'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
+            }
+            match(input,142,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group_0__0"
+    // InternalTableDSL.g:18653:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
+    public final void rule__XClosure__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18657:1: ( rule__XClosure__Group_0__0__Impl )
+            // InternalTableDSL.g:18658:2: rule__XClosure__Group_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_0__0"
+
+
+    // $ANTLR start "rule__XClosure__Group_0__0__Impl"
+    // InternalTableDSL.g:18664:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
+    public final void rule__XClosure__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18668:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
+            // InternalTableDSL.g:18669:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            {
+            // InternalTableDSL.g:18669:1: ( ( rule__XClosure__Group_0_0__0 ) )
+            // InternalTableDSL.g:18670:2: ( rule__XClosure__Group_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getGroup_0_0()); 
+            }
+            // InternalTableDSL.g:18671:2: ( rule__XClosure__Group_0_0__0 )
+            // InternalTableDSL.g:18671:3: rule__XClosure__Group_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getGroup_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group_0_0__0"
+    // InternalTableDSL.g:18680:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
+    public final void rule__XClosure__Group_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18684:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
+            // InternalTableDSL.g:18685:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
+            {
+            pushFollow(FOLLOW_110);
+            rule__XClosure__Group_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_0_0__0"
+
+
+    // $ANTLR start "rule__XClosure__Group_0_0__0__Impl"
+    // InternalTableDSL.g:18692:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
+    public final void rule__XClosure__Group_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18696:1: ( ( () ) )
+            // InternalTableDSL.g:18697:1: ( () )
+            {
+            // InternalTableDSL.g:18697:1: ( () )
+            // InternalTableDSL.g:18698:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
+            }
+            // InternalTableDSL.g:18699:2: ()
+            // InternalTableDSL.g:18699:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group_0_0__1"
+    // InternalTableDSL.g:18707:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
+    public final void rule__XClosure__Group_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18711:1: ( rule__XClosure__Group_0_0__1__Impl )
+            // InternalTableDSL.g:18712:2: rule__XClosure__Group_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_0_0__1"
+
+
+    // $ANTLR start "rule__XClosure__Group_0_0__1__Impl"
+    // InternalTableDSL.g:18718:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
+    public final void rule__XClosure__Group_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18722:1: ( ( '[' ) )
+            // InternalTableDSL.g:18723:1: ( '[' )
+            {
+            // InternalTableDSL.g:18723:1: ( '[' )
+            // InternalTableDSL.g:18724:2: '['
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
+            }
+            match(input,144,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group_1__0"
+    // InternalTableDSL.g:18734:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
+    public final void rule__XClosure__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18738:1: ( rule__XClosure__Group_1__0__Impl )
+            // InternalTableDSL.g:18739:2: rule__XClosure__Group_1__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1__0"
+
+
+    // $ANTLR start "rule__XClosure__Group_1__0__Impl"
+    // InternalTableDSL.g:18745:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
+    public final void rule__XClosure__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18749:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
+            // InternalTableDSL.g:18750:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            {
+            // InternalTableDSL.g:18750:1: ( ( rule__XClosure__Group_1_0__0 ) )
+            // InternalTableDSL.g:18751:2: ( rule__XClosure__Group_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getGroup_1_0()); 
+            }
+            // InternalTableDSL.g:18752:2: ( rule__XClosure__Group_1_0__0 )
+            // InternalTableDSL.g:18752:3: rule__XClosure__Group_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getGroup_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0__0"
+    // InternalTableDSL.g:18761:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
+    public final void rule__XClosure__Group_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18765:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
+            // InternalTableDSL.g:18766:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
+            {
+            pushFollow(FOLLOW_149);
+            rule__XClosure__Group_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_1_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0__0"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0__0__Impl"
+    // InternalTableDSL.g:18773:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
+    public final void rule__XClosure__Group_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18777:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
+            // InternalTableDSL.g:18778:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            {
+            // InternalTableDSL.g:18778:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+            // InternalTableDSL.g:18779:2: ( rule__XClosure__Group_1_0_0__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
+            }
+            // InternalTableDSL.g:18780:2: ( rule__XClosure__Group_1_0_0__0 )?
+            int alt128=2;
+            int LA128_0 = input.LA(1);
+
+            if ( (LA128_0==RULE_ID||LA128_0==36||LA128_0==132) ) {
+                alt128=1;
+            }
+            switch (alt128) {
+                case 1 :
+                    // InternalTableDSL.g:18780:3: rule__XClosure__Group_1_0_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XClosure__Group_1_0_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0__1"
+    // InternalTableDSL.g:18788:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
+    public final void rule__XClosure__Group_1_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18792:1: ( rule__XClosure__Group_1_0__1__Impl )
+            // InternalTableDSL.g:18793:2: rule__XClosure__Group_1_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_1_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0__1"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0__1__Impl"
+    // InternalTableDSL.g:18799:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
+    public final void rule__XClosure__Group_1_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18803:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
+            // InternalTableDSL.g:18804:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            {
+            // InternalTableDSL.g:18804:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+            // InternalTableDSL.g:18805:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
+            }
+            // InternalTableDSL.g:18806:2: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+            // InternalTableDSL.g:18806:3: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__ExplicitSyntaxAssignment_1_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0__1__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0_0__0"
+    // InternalTableDSL.g:18815:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
+    public final void rule__XClosure__Group_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18819:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
+            // InternalTableDSL.g:18820:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XClosure__Group_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0_0__0"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0_0__0__Impl"
+    // InternalTableDSL.g:18827:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
+    public final void rule__XClosure__Group_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18831:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
+            // InternalTableDSL.g:18832:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            {
+            // InternalTableDSL.g:18832:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+            // InternalTableDSL.g:18833:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:18834:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+            // InternalTableDSL.g:18834:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0_0__1"
+    // InternalTableDSL.g:18842:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
+    public final void rule__XClosure__Group_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18846:1: ( rule__XClosure__Group_1_0_0__1__Impl )
+            // InternalTableDSL.g:18847:2: rule__XClosure__Group_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0_0__1"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0_0__1__Impl"
+    // InternalTableDSL.g:18853:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
+    public final void rule__XClosure__Group_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18857:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
+            // InternalTableDSL.g:18858:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            {
+            // InternalTableDSL.g:18858:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+            // InternalTableDSL.g:18859:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
+            }
+            // InternalTableDSL.g:18860:2: ( rule__XClosure__Group_1_0_0_1__0 )*
+            loop129:
+            do {
+                int alt129=2;
+                int LA129_0 = input.LA(1);
+
+                if ( (LA129_0==141) ) {
+                    alt129=1;
+                }
+
+
+                switch (alt129) {
+            	case 1 :
+            	    // InternalTableDSL.g:18860:3: rule__XClosure__Group_1_0_0_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XClosure__Group_1_0_0_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop129;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0_0_1__0"
+    // InternalTableDSL.g:18869:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
+    public final void rule__XClosure__Group_1_0_0_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18873:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
+            // InternalTableDSL.g:18874:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__XClosure__Group_1_0_0_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_1_0_0_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0_0_1__0"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0_0_1__0__Impl"
+    // InternalTableDSL.g:18881:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
+    public final void rule__XClosure__Group_1_0_0_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18885:1: ( ( ',' ) )
+            // InternalTableDSL.g:18886:1: ( ',' )
+            {
+            // InternalTableDSL.g:18886:1: ( ',' )
+            // InternalTableDSL.g:18887:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0_0_1__0__Impl"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0_0_1__1"
+    // InternalTableDSL.g:18896:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
+    public final void rule__XClosure__Group_1_0_0_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18900:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
+            // InternalTableDSL.g:18901:2: rule__XClosure__Group_1_0_0_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__Group_1_0_0_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0_0_1__1"
+
+
+    // $ANTLR start "rule__XClosure__Group_1_0_0_1__1__Impl"
+    // InternalTableDSL.g:18907:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
+    public final void rule__XClosure__Group_1_0_0_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18911:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
+            // InternalTableDSL.g:18912:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            {
+            // InternalTableDSL.g:18912:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+            // InternalTableDSL.g:18913:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
+            }
+            // InternalTableDSL.g:18914:2: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+            // InternalTableDSL.g:18914:3: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__Group_1_0_0_1__1__Impl"
+
+
+    // $ANTLR start "rule__XExpressionInClosure__Group__0"
+    // InternalTableDSL.g:18923:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
+    public final void rule__XExpressionInClosure__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18927:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
+            // InternalTableDSL.g:18928:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
+            {
+            pushFollow(FOLLOW_147);
+            rule__XExpressionInClosure__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XExpressionInClosure__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XExpressionInClosure__Group__0"
+
+
+    // $ANTLR start "rule__XExpressionInClosure__Group__0__Impl"
+    // InternalTableDSL.g:18935:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
+    public final void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18939:1: ( ( () ) )
+            // InternalTableDSL.g:18940:1: ( () )
+            {
+            // InternalTableDSL.g:18940:1: ( () )
+            // InternalTableDSL.g:18941:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
+            }
+            // InternalTableDSL.g:18942:2: ()
+            // InternalTableDSL.g:18942:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XExpressionInClosure__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XExpressionInClosure__Group__1"
+    // InternalTableDSL.g:18950:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
+    public final void rule__XExpressionInClosure__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18954:1: ( rule__XExpressionInClosure__Group__1__Impl )
+            // InternalTableDSL.g:18955:2: rule__XExpressionInClosure__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XExpressionInClosure__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XExpressionInClosure__Group__1"
+
+
+    // $ANTLR start "rule__XExpressionInClosure__Group__1__Impl"
+    // InternalTableDSL.g:18961:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
+    public final void rule__XExpressionInClosure__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18965:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
+            // InternalTableDSL.g:18966:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            {
+            // InternalTableDSL.g:18966:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+            // InternalTableDSL.g:18967:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:18968:2: ( rule__XExpressionInClosure__Group_1__0 )*
+            loop130:
+            do {
+                int alt130=2;
+                int LA130_0 = input.LA(1);
+
+                if ( ((LA130_0>=RULE_STRING && LA130_0<=RULE_DECIMAL)||(LA130_0>=19 && LA130_0<=20)||LA130_0==32||LA130_0==43||(LA130_0>=47 && LA130_0<=53)||LA130_0==75||LA130_0==132||(LA130_0>=143 && LA130_0<=144)||LA130_0==146||LA130_0==148||(LA130_0>=151 && LA130_0<=159)||LA130_0==161||(LA130_0>=187 && LA130_0<=188)) ) {
+                    alt130=1;
+                }
+
+
+                switch (alt130) {
+            	case 1 :
+            	    // InternalTableDSL.g:18968:3: rule__XExpressionInClosure__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_150);
+            	    rule__XExpressionInClosure__Group_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop130;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XExpressionInClosure__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XExpressionInClosure__Group_1__0"
+    // InternalTableDSL.g:18977:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
+    public final void rule__XExpressionInClosure__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18981:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
+            // InternalTableDSL.g:18982:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
+            {
+            pushFollow(FOLLOW_99);
+            rule__XExpressionInClosure__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XExpressionInClosure__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XExpressionInClosure__Group_1__0"
+
+
+    // $ANTLR start "rule__XExpressionInClosure__Group_1__0__Impl"
+    // InternalTableDSL.g:18989:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
+    public final void rule__XExpressionInClosure__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:18993:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
+            // InternalTableDSL.g:18994:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            {
+            // InternalTableDSL.g:18994:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+            // InternalTableDSL.g:18995:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
+            }
+            // InternalTableDSL.g:18996:2: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+            // InternalTableDSL.g:18996:3: rule__XExpressionInClosure__ExpressionsAssignment_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XExpressionInClosure__ExpressionsAssignment_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XExpressionInClosure__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XExpressionInClosure__Group_1__1"
+    // InternalTableDSL.g:19004:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
+    public final void rule__XExpressionInClosure__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19008:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
+            // InternalTableDSL.g:19009:2: rule__XExpressionInClosure__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XExpressionInClosure__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XExpressionInClosure__Group_1__1"
+
+
+    // $ANTLR start "rule__XExpressionInClosure__Group_1__1__Impl"
+    // InternalTableDSL.g:19015:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
+    public final void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19019:1: ( ( ( ';' )? ) )
+            // InternalTableDSL.g:19020:1: ( ( ';' )? )
+            {
+            // InternalTableDSL.g:19020:1: ( ( ';' )? )
+            // InternalTableDSL.g:19021:2: ( ';' )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
+            }
+            // InternalTableDSL.g:19022:2: ( ';' )?
+            int alt131=2;
+            int LA131_0 = input.LA(1);
+
+            if ( (LA131_0==139) ) {
+                alt131=1;
+            }
+            switch (alt131) {
+                case 1 :
+                    // InternalTableDSL.g:19022:3: ';'
+                    {
+                    match(input,139,FOLLOW_2); if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XExpressionInClosure__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XShortClosure__Group__0"
+    // InternalTableDSL.g:19031:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
+    public final void rule__XShortClosure__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19035:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
+            // InternalTableDSL.g:19036:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XShortClosure__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group__0"
+
+
+    // $ANTLR start "rule__XShortClosure__Group__0__Impl"
+    // InternalTableDSL.g:19043:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
+    public final void rule__XShortClosure__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19047:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
+            // InternalTableDSL.g:19048:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            {
+            // InternalTableDSL.g:19048:1: ( ( rule__XShortClosure__Group_0__0 ) )
+            // InternalTableDSL.g:19049:2: ( rule__XShortClosure__Group_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getGroup_0()); 
+            }
+            // InternalTableDSL.g:19050:2: ( rule__XShortClosure__Group_0__0 )
+            // InternalTableDSL.g:19050:3: rule__XShortClosure__Group_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getGroup_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XShortClosure__Group__1"
+    // InternalTableDSL.g:19058:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
+    public final void rule__XShortClosure__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19062:1: ( rule__XShortClosure__Group__1__Impl )
+            // InternalTableDSL.g:19063:2: rule__XShortClosure__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group__1"
+
+
+    // $ANTLR start "rule__XShortClosure__Group__1__Impl"
+    // InternalTableDSL.g:19069:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
+    public final void rule__XShortClosure__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19073:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
+            // InternalTableDSL.g:19074:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            {
+            // InternalTableDSL.g:19074:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+            // InternalTableDSL.g:19075:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
+            }
+            // InternalTableDSL.g:19076:2: ( rule__XShortClosure__ExpressionAssignment_1 )
+            // InternalTableDSL.g:19076:3: rule__XShortClosure__ExpressionAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__ExpressionAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0__0"
+    // InternalTableDSL.g:19085:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
+    public final void rule__XShortClosure__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19089:1: ( rule__XShortClosure__Group_0__0__Impl )
+            // InternalTableDSL.g:19090:2: rule__XShortClosure__Group_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0__0"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0__0__Impl"
+    // InternalTableDSL.g:19096:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
+    public final void rule__XShortClosure__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19100:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
+            // InternalTableDSL.g:19101:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            {
+            // InternalTableDSL.g:19101:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+            // InternalTableDSL.g:19102:2: ( rule__XShortClosure__Group_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
+            }
+            // InternalTableDSL.g:19103:2: ( rule__XShortClosure__Group_0_0__0 )
+            // InternalTableDSL.g:19103:3: rule__XShortClosure__Group_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0__0"
+    // InternalTableDSL.g:19112:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
+    public final void rule__XShortClosure__Group_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19116:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
+            // InternalTableDSL.g:19117:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
+            {
+            pushFollow(FOLLOW_149);
+            rule__XShortClosure__Group_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0__0"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0__0__Impl"
+    // InternalTableDSL.g:19124:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
+    public final void rule__XShortClosure__Group_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19128:1: ( ( () ) )
+            // InternalTableDSL.g:19129:1: ( () )
+            {
+            // InternalTableDSL.g:19129:1: ( () )
+            // InternalTableDSL.g:19130:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
+            }
+            // InternalTableDSL.g:19131:2: ()
+            // InternalTableDSL.g:19131:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0__1"
+    // InternalTableDSL.g:19139:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
+    public final void rule__XShortClosure__Group_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19143:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
+            // InternalTableDSL.g:19144:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
+            {
+            pushFollow(FOLLOW_149);
+            rule__XShortClosure__Group_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group_0_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0__1"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0__1__Impl"
+    // InternalTableDSL.g:19151:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
+    public final void rule__XShortClosure__Group_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19155:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
+            // InternalTableDSL.g:19156:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            {
+            // InternalTableDSL.g:19156:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+            // InternalTableDSL.g:19157:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
+            }
+            // InternalTableDSL.g:19158:2: ( rule__XShortClosure__Group_0_0_1__0 )?
+            int alt132=2;
+            int LA132_0 = input.LA(1);
+
+            if ( (LA132_0==RULE_ID||LA132_0==36||LA132_0==132) ) {
+                alt132=1;
+            }
+            switch (alt132) {
+                case 1 :
+                    // InternalTableDSL.g:19158:3: rule__XShortClosure__Group_0_0_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XShortClosure__Group_0_0_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0__2"
+    // InternalTableDSL.g:19166:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
+    public final void rule__XShortClosure__Group_0_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19170:1: ( rule__XShortClosure__Group_0_0__2__Impl )
+            // InternalTableDSL.g:19171:2: rule__XShortClosure__Group_0_0__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group_0_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0__2"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0__2__Impl"
+    // InternalTableDSL.g:19177:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
+    public final void rule__XShortClosure__Group_0_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19181:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
+            // InternalTableDSL.g:19182:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            {
+            // InternalTableDSL.g:19182:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+            // InternalTableDSL.g:19183:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
+            }
+            // InternalTableDSL.g:19184:2: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+            // InternalTableDSL.g:19184:3: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0__2__Impl"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0_1__0"
+    // InternalTableDSL.g:19193:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
+    public final void rule__XShortClosure__Group_0_0_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19197:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
+            // InternalTableDSL.g:19198:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XShortClosure__Group_0_0_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group_0_0_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0_1__0"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0_1__0__Impl"
+    // InternalTableDSL.g:19205:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
+    public final void rule__XShortClosure__Group_0_0_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19209:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
+            // InternalTableDSL.g:19210:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            {
+            // InternalTableDSL.g:19210:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+            // InternalTableDSL.g:19211:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
+            }
+            // InternalTableDSL.g:19212:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+            // InternalTableDSL.g:19212:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0_1__0__Impl"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0_1__1"
+    // InternalTableDSL.g:19220:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
+    public final void rule__XShortClosure__Group_0_0_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19224:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
+            // InternalTableDSL.g:19225:2: rule__XShortClosure__Group_0_0_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group_0_0_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0_1__1"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0_1__1__Impl"
+    // InternalTableDSL.g:19231:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
+    public final void rule__XShortClosure__Group_0_0_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19235:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
+            // InternalTableDSL.g:19236:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            {
+            // InternalTableDSL.g:19236:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+            // InternalTableDSL.g:19237:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
+            }
+            // InternalTableDSL.g:19238:2: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+            loop133:
+            do {
+                int alt133=2;
+                int LA133_0 = input.LA(1);
+
+                if ( (LA133_0==141) ) {
+                    alt133=1;
+                }
+
+
+                switch (alt133) {
+            	case 1 :
+            	    // InternalTableDSL.g:19238:3: rule__XShortClosure__Group_0_0_1_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XShortClosure__Group_0_0_1_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop133;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0_1__1__Impl"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0"
+    // InternalTableDSL.g:19247:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
+    public final void rule__XShortClosure__Group_0_0_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19251:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
+            // InternalTableDSL.g:19252:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__XShortClosure__Group_0_0_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group_0_0_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__0"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0__Impl"
+    // InternalTableDSL.g:19259:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
+    public final void rule__XShortClosure__Group_0_0_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19263:1: ( ( ',' ) )
+            // InternalTableDSL.g:19264:1: ( ',' )
+            {
+            // InternalTableDSL.g:19264:1: ( ',' )
+            // InternalTableDSL.g:19265:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1"
+    // InternalTableDSL.g:19274:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
+    public final void rule__XShortClosure__Group_0_0_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19278:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
+            // InternalTableDSL.g:19279:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__Group_0_0_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__1"
+
+
+    // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1__Impl"
+    // InternalTableDSL.g:19285:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
+    public final void rule__XShortClosure__Group_0_0_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19289:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
+            // InternalTableDSL.g:19290:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            {
+            // InternalTableDSL.g:19290:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+            // InternalTableDSL.g:19291:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
+            }
+            // InternalTableDSL.g:19292:2: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+            // InternalTableDSL.g:19292:3: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XParenthesizedExpression__Group__0"
+    // InternalTableDSL.g:19301:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
+    public final void rule__XParenthesizedExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19305:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
+            // InternalTableDSL.g:19306:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XParenthesizedExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XParenthesizedExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XParenthesizedExpression__Group__0"
+
+
+    // $ANTLR start "rule__XParenthesizedExpression__Group__0__Impl"
+    // InternalTableDSL.g:19313:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
+    public final void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19317:1: ( ( '(' ) )
+            // InternalTableDSL.g:19318:1: ( '(' )
+            {
+            // InternalTableDSL.g:19318:1: ( '(' )
+            // InternalTableDSL.g:19319:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XParenthesizedExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XParenthesizedExpression__Group__1"
+    // InternalTableDSL.g:19328:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
+    public final void rule__XParenthesizedExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19332:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
+            // InternalTableDSL.g:19333:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
+            {
+            pushFollow(FOLLOW_85);
+            rule__XParenthesizedExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XParenthesizedExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XParenthesizedExpression__Group__1"
+
+
+    // $ANTLR start "rule__XParenthesizedExpression__Group__1__Impl"
+    // InternalTableDSL.g:19340:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
+    public final void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19344:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:19345:1: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:19345:1: ( ruleXExpression )
+            // InternalTableDSL.g:19346:2: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XParenthesizedExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XParenthesizedExpression__Group__2"
+    // InternalTableDSL.g:19355:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
+    public final void rule__XParenthesizedExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19359:1: ( rule__XParenthesizedExpression__Group__2__Impl )
+            // InternalTableDSL.g:19360:2: rule__XParenthesizedExpression__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XParenthesizedExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XParenthesizedExpression__Group__2"
+
+
+    // $ANTLR start "rule__XParenthesizedExpression__Group__2__Impl"
+    // InternalTableDSL.g:19366:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
+    public final void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19370:1: ( ( ')' ) )
+            // InternalTableDSL.g:19371:1: ( ')' )
+            {
+            // InternalTableDSL.g:19371:1: ( ')' )
+            // InternalTableDSL.g:19372:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XParenthesizedExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__0"
+    // InternalTableDSL.g:19382:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
+    public final void rule__XIfExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19386:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
+            // InternalTableDSL.g:19387:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
+            {
+            pushFollow(FOLLOW_151);
+            rule__XIfExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__0"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__0__Impl"
+    // InternalTableDSL.g:19394:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
+    public final void rule__XIfExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19398:1: ( ( () ) )
+            // InternalTableDSL.g:19399:1: ( () )
+            {
+            // InternalTableDSL.g:19399:1: ( () )
+            // InternalTableDSL.g:19400:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
+            }
+            // InternalTableDSL.g:19401:2: ()
+            // InternalTableDSL.g:19401:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__1"
+    // InternalTableDSL.g:19409:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
+    public final void rule__XIfExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19413:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
+            // InternalTableDSL.g:19414:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
+            {
+            pushFollow(FOLLOW_103);
+            rule__XIfExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__1"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__1__Impl"
+    // InternalTableDSL.g:19421:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
+    public final void rule__XIfExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19425:1: ( ( 'if' ) )
+            // InternalTableDSL.g:19426:1: ( 'if' )
+            {
+            // InternalTableDSL.g:19426:1: ( 'if' )
+            // InternalTableDSL.g:19427:2: 'if'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
+            }
+            match(input,146,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__2"
+    // InternalTableDSL.g:19436:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
+    public final void rule__XIfExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19440:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
+            // InternalTableDSL.g:19441:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
+            {
+            pushFollow(FOLLOW_107);
+            rule__XIfExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__2"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__2__Impl"
+    // InternalTableDSL.g:19448:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
+    public final void rule__XIfExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19452:1: ( ( '(' ) )
+            // InternalTableDSL.g:19453:1: ( '(' )
+            {
+            // InternalTableDSL.g:19453:1: ( '(' )
+            // InternalTableDSL.g:19454:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__3"
+    // InternalTableDSL.g:19463:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
+    public final void rule__XIfExpression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19467:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
+            // InternalTableDSL.g:19468:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
+            {
+            pushFollow(FOLLOW_85);
+            rule__XIfExpression__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__3"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__3__Impl"
+    // InternalTableDSL.g:19475:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
+    public final void rule__XIfExpression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19479:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
+            // InternalTableDSL.g:19480:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            {
+            // InternalTableDSL.g:19480:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+            // InternalTableDSL.g:19481:2: ( rule__XIfExpression__IfAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
+            }
+            // InternalTableDSL.g:19482:2: ( rule__XIfExpression__IfAssignment_3 )
+            // InternalTableDSL.g:19482:3: rule__XIfExpression__IfAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__IfAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__4"
+    // InternalTableDSL.g:19490:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
+    public final void rule__XIfExpression__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19494:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
+            // InternalTableDSL.g:19495:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
+            {
+            pushFollow(FOLLOW_107);
+            rule__XIfExpression__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__4"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__4__Impl"
+    // InternalTableDSL.g:19502:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
+    public final void rule__XIfExpression__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19506:1: ( ( ')' ) )
+            // InternalTableDSL.g:19507:1: ( ')' )
+            {
+            // InternalTableDSL.g:19507:1: ( ')' )
+            // InternalTableDSL.g:19508:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__4__Impl"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__5"
+    // InternalTableDSL.g:19517:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
+    public final void rule__XIfExpression__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19521:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
+            // InternalTableDSL.g:19522:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
+            {
+            pushFollow(FOLLOW_152);
+            rule__XIfExpression__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__Group__6();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__5"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__5__Impl"
+    // InternalTableDSL.g:19529:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
+    public final void rule__XIfExpression__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19533:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
+            // InternalTableDSL.g:19534:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            {
+            // InternalTableDSL.g:19534:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+            // InternalTableDSL.g:19535:2: ( rule__XIfExpression__ThenAssignment_5 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
+            }
+            // InternalTableDSL.g:19536:2: ( rule__XIfExpression__ThenAssignment_5 )
+            // InternalTableDSL.g:19536:3: rule__XIfExpression__ThenAssignment_5
+            {
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__ThenAssignment_5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__5__Impl"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__6"
+    // InternalTableDSL.g:19544:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
+    public final void rule__XIfExpression__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19548:1: ( rule__XIfExpression__Group__6__Impl )
+            // InternalTableDSL.g:19549:2: rule__XIfExpression__Group__6__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__Group__6__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__6"
+
+
+    // $ANTLR start "rule__XIfExpression__Group__6__Impl"
+    // InternalTableDSL.g:19555:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
+    public final void rule__XIfExpression__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19559:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
+            // InternalTableDSL.g:19560:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            {
+            // InternalTableDSL.g:19560:1: ( ( rule__XIfExpression__Group_6__0 )? )
+            // InternalTableDSL.g:19561:2: ( rule__XIfExpression__Group_6__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
+            }
+            // InternalTableDSL.g:19562:2: ( rule__XIfExpression__Group_6__0 )?
+            int alt134=2;
+            int LA134_0 = input.LA(1);
+
+            if ( (LA134_0==147) ) {
+                int LA134_1 = input.LA(2);
+
+                if ( (synpred214_InternalTableDSL()) ) {
+                    alt134=1;
+                }
+            }
+            switch (alt134) {
+                case 1 :
+                    // InternalTableDSL.g:19562:3: rule__XIfExpression__Group_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XIfExpression__Group_6__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group__6__Impl"
+
+
+    // $ANTLR start "rule__XIfExpression__Group_6__0"
+    // InternalTableDSL.g:19571:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
+    public final void rule__XIfExpression__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19575:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
+            // InternalTableDSL.g:19576:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XIfExpression__Group_6__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__Group_6__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group_6__0"
+
+
+    // $ANTLR start "rule__XIfExpression__Group_6__0__Impl"
+    // InternalTableDSL.g:19583:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
+    public final void rule__XIfExpression__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19587:1: ( ( ( 'else' ) ) )
+            // InternalTableDSL.g:19588:1: ( ( 'else' ) )
+            {
+            // InternalTableDSL.g:19588:1: ( ( 'else' ) )
+            // InternalTableDSL.g:19589:2: ( 'else' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
+            }
+            // InternalTableDSL.g:19590:2: ( 'else' )
+            // InternalTableDSL.g:19590:3: 'else'
+            {
+            match(input,147,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__XIfExpression__Group_6__1"
+    // InternalTableDSL.g:19598:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
+    public final void rule__XIfExpression__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19602:1: ( rule__XIfExpression__Group_6__1__Impl )
+            // InternalTableDSL.g:19603:2: rule__XIfExpression__Group_6__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__Group_6__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group_6__1"
+
+
+    // $ANTLR start "rule__XIfExpression__Group_6__1__Impl"
+    // InternalTableDSL.g:19609:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
+    public final void rule__XIfExpression__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19613:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
+            // InternalTableDSL.g:19614:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            {
+            // InternalTableDSL.g:19614:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+            // InternalTableDSL.g:19615:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
+            }
+            // InternalTableDSL.g:19616:2: ( rule__XIfExpression__ElseAssignment_6_1 )
+            // InternalTableDSL.g:19616:3: rule__XIfExpression__ElseAssignment_6_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XIfExpression__ElseAssignment_6_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__0"
+    // InternalTableDSL.g:19625:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
+    public final void rule__XSwitchExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19629:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
+            // InternalTableDSL.g:19630:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
+            {
+            pushFollow(FOLLOW_153);
+            rule__XSwitchExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__0"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__0__Impl"
+    // InternalTableDSL.g:19637:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
+    public final void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19641:1: ( ( () ) )
+            // InternalTableDSL.g:19642:1: ( () )
+            {
+            // InternalTableDSL.g:19642:1: ( () )
+            // InternalTableDSL.g:19643:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
+            }
+            // InternalTableDSL.g:19644:2: ()
+            // InternalTableDSL.g:19644:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__1"
+    // InternalTableDSL.g:19652:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
+    public final void rule__XSwitchExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19656:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
+            // InternalTableDSL.g:19657:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
+            {
+            pushFollow(FOLLOW_154);
+            rule__XSwitchExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__1"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__1__Impl"
+    // InternalTableDSL.g:19664:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
+    public final void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19668:1: ( ( 'switch' ) )
+            // InternalTableDSL.g:19669:1: ( 'switch' )
+            {
+            // InternalTableDSL.g:19669:1: ( 'switch' )
+            // InternalTableDSL.g:19670:2: 'switch'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
+            }
+            match(input,148,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__2"
+    // InternalTableDSL.g:19679:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
+    public final void rule__XSwitchExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19683:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
+            // InternalTableDSL.g:19684:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
+            {
+            pushFollow(FOLLOW_8);
+            rule__XSwitchExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__2"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__2__Impl"
+    // InternalTableDSL.g:19691:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
+    public final void rule__XSwitchExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19695:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
+            // InternalTableDSL.g:19696:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            {
+            // InternalTableDSL.g:19696:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+            // InternalTableDSL.g:19697:2: ( rule__XSwitchExpression__Alternatives_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
+            }
+            // InternalTableDSL.g:19698:2: ( rule__XSwitchExpression__Alternatives_2 )
+            // InternalTableDSL.g:19698:3: rule__XSwitchExpression__Alternatives_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Alternatives_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__3"
+    // InternalTableDSL.g:19706:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
+    public final void rule__XSwitchExpression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19710:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
+            // InternalTableDSL.g:19711:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
+            {
+            pushFollow(FOLLOW_155);
+            rule__XSwitchExpression__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__3"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__3__Impl"
+    // InternalTableDSL.g:19718:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
+    public final void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19722:1: ( ( '{' ) )
+            // InternalTableDSL.g:19723:1: ( '{' )
+            {
+            // InternalTableDSL.g:19723:1: ( '{' )
+            // InternalTableDSL.g:19724:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__4"
+    // InternalTableDSL.g:19733:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
+    public final void rule__XSwitchExpression__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19737:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
+            // InternalTableDSL.g:19738:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
+            {
+            pushFollow(FOLLOW_155);
+            rule__XSwitchExpression__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__4"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__4__Impl"
+    // InternalTableDSL.g:19745:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
+    public final void rule__XSwitchExpression__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19749:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
+            // InternalTableDSL.g:19750:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            {
+            // InternalTableDSL.g:19750:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+            // InternalTableDSL.g:19751:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
+            }
+            // InternalTableDSL.g:19752:2: ( rule__XSwitchExpression__CasesAssignment_4 )*
+            loop135:
+            do {
+                int alt135=2;
+                int LA135_0 = input.LA(1);
+
+                if ( (LA135_0==RULE_ID||LA135_0==36||LA135_0==132||LA135_0==141||(LA135_0>=149 && LA135_0<=150)) ) {
+                    alt135=1;
+                }
+
+
+                switch (alt135) {
+            	case 1 :
+            	    // InternalTableDSL.g:19752:3: rule__XSwitchExpression__CasesAssignment_4
+            	    {
+            	    pushFollow(FOLLOW_156);
+            	    rule__XSwitchExpression__CasesAssignment_4();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop135;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__4__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__5"
+    // InternalTableDSL.g:19760:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
+    public final void rule__XSwitchExpression__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19764:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
+            // InternalTableDSL.g:19765:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
+            {
+            pushFollow(FOLLOW_155);
+            rule__XSwitchExpression__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group__6();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__5"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__5__Impl"
+    // InternalTableDSL.g:19772:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
+    public final void rule__XSwitchExpression__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19776:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
+            // InternalTableDSL.g:19777:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            {
+            // InternalTableDSL.g:19777:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+            // InternalTableDSL.g:19778:2: ( rule__XSwitchExpression__Group_5__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
+            }
+            // InternalTableDSL.g:19779:2: ( rule__XSwitchExpression__Group_5__0 )?
+            int alt136=2;
+            int LA136_0 = input.LA(1);
+
+            if ( (LA136_0==68) ) {
+                alt136=1;
+            }
+            switch (alt136) {
+                case 1 :
+                    // InternalTableDSL.g:19779:3: rule__XSwitchExpression__Group_5__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XSwitchExpression__Group_5__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__5__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__6"
+    // InternalTableDSL.g:19787:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
+    public final void rule__XSwitchExpression__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19791:1: ( rule__XSwitchExpression__Group__6__Impl )
+            // InternalTableDSL.g:19792:2: rule__XSwitchExpression__Group__6__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group__6__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__6"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group__6__Impl"
+    // InternalTableDSL.g:19798:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
+    public final void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19802:1: ( ( '}' ) )
+            // InternalTableDSL.g:19803:1: ( '}' )
+            {
+            // InternalTableDSL.g:19803:1: ( '}' )
+            // InternalTableDSL.g:19804:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group__6__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0__0"
+    // InternalTableDSL.g:19814:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
+    public final void rule__XSwitchExpression__Group_2_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19818:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
+            // InternalTableDSL.g:19819:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XSwitchExpression__Group_2_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0__0"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0__0__Impl"
+    // InternalTableDSL.g:19826:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
+    public final void rule__XSwitchExpression__Group_2_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19830:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
+            // InternalTableDSL.g:19831:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            {
+            // InternalTableDSL.g:19831:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
+            // InternalTableDSL.g:19832:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
+            }
+            // InternalTableDSL.g:19833:2: ( rule__XSwitchExpression__Group_2_0_0__0 )
+            // InternalTableDSL.g:19833:3: rule__XSwitchExpression__Group_2_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0__0__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0__1"
+    // InternalTableDSL.g:19841:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
+    public final void rule__XSwitchExpression__Group_2_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19845:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
+            // InternalTableDSL.g:19846:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
+            {
+            pushFollow(FOLLOW_85);
+            rule__XSwitchExpression__Group_2_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0__1"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0__1__Impl"
+    // InternalTableDSL.g:19853:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
+    public final void rule__XSwitchExpression__Group_2_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19857:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
+            // InternalTableDSL.g:19858:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            {
+            // InternalTableDSL.g:19858:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+            // InternalTableDSL.g:19859:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
+            }
+            // InternalTableDSL.g:19860:2: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+            // InternalTableDSL.g:19860:3: rule__XSwitchExpression__SwitchAssignment_2_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__SwitchAssignment_2_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0__1__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0__2"
+    // InternalTableDSL.g:19868:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
+    public final void rule__XSwitchExpression__Group_2_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19872:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
+            // InternalTableDSL.g:19873:2: rule__XSwitchExpression__Group_2_0__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0__2"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0__2__Impl"
+    // InternalTableDSL.g:19879:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
+    public final void rule__XSwitchExpression__Group_2_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19883:1: ( ( ')' ) )
+            // InternalTableDSL.g:19884:1: ( ')' )
+            {
+            // InternalTableDSL.g:19884:1: ( ')' )
+            // InternalTableDSL.g:19885:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0__2__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0"
+    // InternalTableDSL.g:19895:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
+    public final void rule__XSwitchExpression__Group_2_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19899:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
+            // InternalTableDSL.g:19900:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0__0"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0__Impl"
+    // InternalTableDSL.g:19906:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
+    public final void rule__XSwitchExpression__Group_2_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19910:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
+            // InternalTableDSL.g:19911:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            {
+            // InternalTableDSL.g:19911:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+            // InternalTableDSL.g:19912:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
+            }
+            // InternalTableDSL.g:19913:2: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+            // InternalTableDSL.g:19913:3: rule__XSwitchExpression__Group_2_0_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_0_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0"
+    // InternalTableDSL.g:19922:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
+    public final void rule__XSwitchExpression__Group_2_0_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19926:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
+            // InternalTableDSL.g:19927:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__XSwitchExpression__Group_2_0_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_0_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__0"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
+    // InternalTableDSL.g:19934:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
+    public final void rule__XSwitchExpression__Group_2_0_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19938:1: ( ( '(' ) )
+            // InternalTableDSL.g:19939:1: ( '(' )
+            {
+            // InternalTableDSL.g:19939:1: ( '(' )
+            // InternalTableDSL.g:19940:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1"
+    // InternalTableDSL.g:19949:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 ;
+    public final void rule__XSwitchExpression__Group_2_0_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19953:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
+            // InternalTableDSL.g:19954:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
+            {
+            pushFollow(FOLLOW_157);
+            rule__XSwitchExpression__Group_2_0_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_0_0_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__1"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
+    // InternalTableDSL.g:19961:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
+    public final void rule__XSwitchExpression__Group_2_0_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19965:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
+            // InternalTableDSL.g:19966:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            {
+            // InternalTableDSL.g:19966:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
+            // InternalTableDSL.g:19967:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
+            }
+            // InternalTableDSL.g:19968:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
+            // InternalTableDSL.g:19968:3: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2"
+    // InternalTableDSL.g:19976:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
+    public final void rule__XSwitchExpression__Group_2_0_0_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19980:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
+            // InternalTableDSL.g:19981:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_0_0_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__2"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2__Impl"
+    // InternalTableDSL.g:19987:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
+    public final void rule__XSwitchExpression__Group_2_0_0_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:19991:1: ( ( ':' ) )
+            // InternalTableDSL.g:19992:1: ( ':' )
+            {
+            // InternalTableDSL.g:19992:1: ( ':' )
+            // InternalTableDSL.g:19993:2: ':'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
+            }
+            match(input,149,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__2__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_1__0"
+    // InternalTableDSL.g:20003:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
+    public final void rule__XSwitchExpression__Group_2_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20007:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
+            // InternalTableDSL.g:20008:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
+            {
+            pushFollow(FOLLOW_154);
+            rule__XSwitchExpression__Group_2_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_1__0"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_1__0__Impl"
+    // InternalTableDSL.g:20015:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
+    public final void rule__XSwitchExpression__Group_2_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20019:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
+            // InternalTableDSL.g:20020:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            {
+            // InternalTableDSL.g:20020:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
+            // InternalTableDSL.g:20021:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
+            }
+            // InternalTableDSL.g:20022:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?
+            int alt137=2;
+            alt137 = dfa137.predict(input);
+            switch (alt137) {
+                case 1 :
+                    // InternalTableDSL.g:20022:3: rule__XSwitchExpression__Group_2_1_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XSwitchExpression__Group_2_1_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_1__0__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_1__1"
+    // InternalTableDSL.g:20030:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
+    public final void rule__XSwitchExpression__Group_2_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20034:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
+            // InternalTableDSL.g:20035:2: rule__XSwitchExpression__Group_2_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_1__1"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_1__1__Impl"
+    // InternalTableDSL.g:20041:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
+    public final void rule__XSwitchExpression__Group_2_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20045:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
+            // InternalTableDSL.g:20046:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            {
+            // InternalTableDSL.g:20046:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+            // InternalTableDSL.g:20047:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
+            }
+            // InternalTableDSL.g:20048:2: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+            // InternalTableDSL.g:20048:3: rule__XSwitchExpression__SwitchAssignment_2_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__SwitchAssignment_2_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_1__1__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0"
+    // InternalTableDSL.g:20057:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
+    public final void rule__XSwitchExpression__Group_2_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20061:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
+            // InternalTableDSL.g:20062:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0__0"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0__Impl"
+    // InternalTableDSL.g:20068:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
+    public final void rule__XSwitchExpression__Group_2_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20072:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
+            // InternalTableDSL.g:20073:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            {
+            // InternalTableDSL.g:20073:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+            // InternalTableDSL.g:20074:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
+            }
+            // InternalTableDSL.g:20075:2: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+            // InternalTableDSL.g:20075:3: rule__XSwitchExpression__Group_2_1_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_1_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0"
+    // InternalTableDSL.g:20084:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
+    public final void rule__XSwitchExpression__Group_2_1_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20088:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
+            // InternalTableDSL.g:20089:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
+            {
+            pushFollow(FOLLOW_157);
+            rule__XSwitchExpression__Group_2_1_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_1_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__0"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
+    // InternalTableDSL.g:20096:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
+    public final void rule__XSwitchExpression__Group_2_1_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20100:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
+            // InternalTableDSL.g:20101:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            {
+            // InternalTableDSL.g:20101:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
+            // InternalTableDSL.g:20102:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
+            }
+            // InternalTableDSL.g:20103:2: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
+            // InternalTableDSL.g:20103:3: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1"
+    // InternalTableDSL.g:20111:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
+    public final void rule__XSwitchExpression__Group_2_1_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20115:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
+            // InternalTableDSL.g:20116:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_2_1_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__1"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
+    // InternalTableDSL.g:20122:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
+    public final void rule__XSwitchExpression__Group_2_1_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20126:1: ( ( ':' ) )
+            // InternalTableDSL.g:20127:1: ( ':' )
+            {
+            // InternalTableDSL.g:20127:1: ( ':' )
+            // InternalTableDSL.g:20128:2: ':'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
+            }
+            match(input,149,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_5__0"
+    // InternalTableDSL.g:20138:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
+    public final void rule__XSwitchExpression__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20142:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
+            // InternalTableDSL.g:20143:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
+            {
+            pushFollow(FOLLOW_157);
+            rule__XSwitchExpression__Group_5__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_5__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_5__0"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_5__0__Impl"
+    // InternalTableDSL.g:20150:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
+    public final void rule__XSwitchExpression__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20154:1: ( ( 'default' ) )
+            // InternalTableDSL.g:20155:1: ( 'default' )
+            {
+            // InternalTableDSL.g:20155:1: ( 'default' )
+            // InternalTableDSL.g:20156:2: 'default'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
+            }
+            match(input,68,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_5__1"
+    // InternalTableDSL.g:20165:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
+    public final void rule__XSwitchExpression__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20169:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
+            // InternalTableDSL.g:20170:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
+            {
+            pushFollow(FOLLOW_107);
+            rule__XSwitchExpression__Group_5__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_5__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_5__1"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_5__1__Impl"
+    // InternalTableDSL.g:20177:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
+    public final void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20181:1: ( ( ':' ) )
+            // InternalTableDSL.g:20182:1: ( ':' )
+            {
+            // InternalTableDSL.g:20182:1: ( ':' )
+            // InternalTableDSL.g:20183:2: ':'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
+            }
+            match(input,149,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_5__2"
+    // InternalTableDSL.g:20192:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
+    public final void rule__XSwitchExpression__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20196:1: ( rule__XSwitchExpression__Group_5__2__Impl )
+            // InternalTableDSL.g:20197:2: rule__XSwitchExpression__Group_5__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__Group_5__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_5__2"
+
+
+    // $ANTLR start "rule__XSwitchExpression__Group_5__2__Impl"
+    // InternalTableDSL.g:20203:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
+    public final void rule__XSwitchExpression__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20207:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
+            // InternalTableDSL.g:20208:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            {
+            // InternalTableDSL.g:20208:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+            // InternalTableDSL.g:20209:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
+            }
+            // InternalTableDSL.g:20210:2: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+            // InternalTableDSL.g:20210:3: rule__XSwitchExpression__DefaultAssignment_5_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSwitchExpression__DefaultAssignment_5_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__XCasePart__Group__0"
+    // InternalTableDSL.g:20219:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
+    public final void rule__XCasePart__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20223:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
+            // InternalTableDSL.g:20224:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
+            {
+            pushFollow(FOLLOW_158);
+            rule__XCasePart__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group__0"
+
+
+    // $ANTLR start "rule__XCasePart__Group__0__Impl"
+    // InternalTableDSL.g:20231:1: rule__XCasePart__Group__0__Impl : ( () ) ;
+    public final void rule__XCasePart__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20235:1: ( ( () ) )
+            // InternalTableDSL.g:20236:1: ( () )
+            {
+            // InternalTableDSL.g:20236:1: ( () )
+            // InternalTableDSL.g:20237:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
+            }
+            // InternalTableDSL.g:20238:2: ()
+            // InternalTableDSL.g:20238:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XCasePart__Group__1"
+    // InternalTableDSL.g:20246:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
+    public final void rule__XCasePart__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20250:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
+            // InternalTableDSL.g:20251:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
+            {
+            pushFollow(FOLLOW_158);
+            rule__XCasePart__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group__1"
+
+
+    // $ANTLR start "rule__XCasePart__Group__1__Impl"
+    // InternalTableDSL.g:20258:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
+    public final void rule__XCasePart__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20262:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
+            // InternalTableDSL.g:20263:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            {
+            // InternalTableDSL.g:20263:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
+            // InternalTableDSL.g:20264:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
+            }
+            // InternalTableDSL.g:20265:2: ( rule__XCasePart__TypeGuardAssignment_1 )?
+            int alt138=2;
+            int LA138_0 = input.LA(1);
+
+            if ( (LA138_0==RULE_ID||LA138_0==36||LA138_0==132) ) {
+                alt138=1;
+            }
+            switch (alt138) {
+                case 1 :
+                    // InternalTableDSL.g:20265:3: rule__XCasePart__TypeGuardAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XCasePart__TypeGuardAssignment_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XCasePart__Group__2"
+    // InternalTableDSL.g:20273:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
+    public final void rule__XCasePart__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20277:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
+            // InternalTableDSL.g:20278:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
+            {
+            pushFollow(FOLLOW_158);
+            rule__XCasePart__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group__2"
+
+
+    // $ANTLR start "rule__XCasePart__Group__2__Impl"
+    // InternalTableDSL.g:20285:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
+    public final void rule__XCasePart__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20289:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
+            // InternalTableDSL.g:20290:1: ( ( rule__XCasePart__Group_2__0 )? )
+            {
+            // InternalTableDSL.g:20290:1: ( ( rule__XCasePart__Group_2__0 )? )
+            // InternalTableDSL.g:20291:2: ( rule__XCasePart__Group_2__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getGroup_2()); 
+            }
+            // InternalTableDSL.g:20292:2: ( rule__XCasePart__Group_2__0 )?
+            int alt139=2;
+            int LA139_0 = input.LA(1);
+
+            if ( (LA139_0==150) ) {
+                alt139=1;
+            }
+            switch (alt139) {
+                case 1 :
+                    // InternalTableDSL.g:20292:3: rule__XCasePart__Group_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XCasePart__Group_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getGroup_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XCasePart__Group__3"
+    // InternalTableDSL.g:20300:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
+    public final void rule__XCasePart__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20304:1: ( rule__XCasePart__Group__3__Impl )
+            // InternalTableDSL.g:20305:2: rule__XCasePart__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group__3"
+
+
+    // $ANTLR start "rule__XCasePart__Group__3__Impl"
+    // InternalTableDSL.g:20311:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
+    public final void rule__XCasePart__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20315:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
+            // InternalTableDSL.g:20316:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            {
+            // InternalTableDSL.g:20316:1: ( ( rule__XCasePart__Alternatives_3 ) )
+            // InternalTableDSL.g:20317:2: ( rule__XCasePart__Alternatives_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
+            }
+            // InternalTableDSL.g:20318:2: ( rule__XCasePart__Alternatives_3 )
+            // InternalTableDSL.g:20318:3: rule__XCasePart__Alternatives_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__Alternatives_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XCasePart__Group_2__0"
+    // InternalTableDSL.g:20327:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
+    public final void rule__XCasePart__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20331:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
+            // InternalTableDSL.g:20332:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XCasePart__Group_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__Group_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group_2__0"
+
+
+    // $ANTLR start "rule__XCasePart__Group_2__0__Impl"
+    // InternalTableDSL.g:20339:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
+    public final void rule__XCasePart__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20343:1: ( ( 'case' ) )
+            // InternalTableDSL.g:20344:1: ( 'case' )
+            {
+            // InternalTableDSL.g:20344:1: ( 'case' )
+            // InternalTableDSL.g:20345:2: 'case'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
+            }
+            match(input,150,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__XCasePart__Group_2__1"
+    // InternalTableDSL.g:20354:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
+    public final void rule__XCasePart__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20358:1: ( rule__XCasePart__Group_2__1__Impl )
+            // InternalTableDSL.g:20359:2: rule__XCasePart__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__Group_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group_2__1"
+
+
+    // $ANTLR start "rule__XCasePart__Group_2__1__Impl"
+    // InternalTableDSL.g:20365:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
+    public final void rule__XCasePart__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20369:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
+            // InternalTableDSL.g:20370:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            {
+            // InternalTableDSL.g:20370:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
+            // InternalTableDSL.g:20371:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
+            }
+            // InternalTableDSL.g:20372:2: ( rule__XCasePart__CaseAssignment_2_1 )
+            // InternalTableDSL.g:20372:3: rule__XCasePart__CaseAssignment_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__CaseAssignment_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__XCasePart__Group_3_0__0"
+    // InternalTableDSL.g:20381:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
+    public final void rule__XCasePart__Group_3_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20385:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
+            // InternalTableDSL.g:20386:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XCasePart__Group_3_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__Group_3_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group_3_0__0"
+
+
+    // $ANTLR start "rule__XCasePart__Group_3_0__0__Impl"
+    // InternalTableDSL.g:20393:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
+    public final void rule__XCasePart__Group_3_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20397:1: ( ( ':' ) )
+            // InternalTableDSL.g:20398:1: ( ':' )
+            {
+            // InternalTableDSL.g:20398:1: ( ':' )
+            // InternalTableDSL.g:20399:2: ':'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
+            }
+            match(input,149,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group_3_0__0__Impl"
+
+
+    // $ANTLR start "rule__XCasePart__Group_3_0__1"
+    // InternalTableDSL.g:20408:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
+    public final void rule__XCasePart__Group_3_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20412:1: ( rule__XCasePart__Group_3_0__1__Impl )
+            // InternalTableDSL.g:20413:2: rule__XCasePart__Group_3_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__Group_3_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group_3_0__1"
+
+
+    // $ANTLR start "rule__XCasePart__Group_3_0__1__Impl"
+    // InternalTableDSL.g:20419:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
+    public final void rule__XCasePart__Group_3_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20423:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
+            // InternalTableDSL.g:20424:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            {
+            // InternalTableDSL.g:20424:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
+            // InternalTableDSL.g:20425:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
+            }
+            // InternalTableDSL.g:20426:2: ( rule__XCasePart__ThenAssignment_3_0_1 )
+            // InternalTableDSL.g:20426:3: rule__XCasePart__ThenAssignment_3_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCasePart__ThenAssignment_3_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__Group_3_0__1__Impl"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group__0"
+    // InternalTableDSL.g:20435:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
+    public final void rule__XForLoopExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20439:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
+            // InternalTableDSL.g:20440:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XForLoopExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group__0"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group__0__Impl"
+    // InternalTableDSL.g:20447:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
+    public final void rule__XForLoopExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20451:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
+            // InternalTableDSL.g:20452:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            {
+            // InternalTableDSL.g:20452:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
+            // InternalTableDSL.g:20453:2: ( rule__XForLoopExpression__Group_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
+            }
+            // InternalTableDSL.g:20454:2: ( rule__XForLoopExpression__Group_0__0 )
+            // InternalTableDSL.g:20454:3: rule__XForLoopExpression__Group_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group__1"
+    // InternalTableDSL.g:20462:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
+    public final void rule__XForLoopExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20466:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
+            // InternalTableDSL.g:20467:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
+            {
+            pushFollow(FOLLOW_85);
+            rule__XForLoopExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group__1"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group__1__Impl"
+    // InternalTableDSL.g:20474:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
+    public final void rule__XForLoopExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20478:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
+            // InternalTableDSL.g:20479:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            {
+            // InternalTableDSL.g:20479:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
+            // InternalTableDSL.g:20480:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
+            }
+            // InternalTableDSL.g:20481:2: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
+            // InternalTableDSL.g:20481:3: rule__XForLoopExpression__ForExpressionAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__ForExpressionAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group__2"
+    // InternalTableDSL.g:20489:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
+    public final void rule__XForLoopExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20493:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
+            // InternalTableDSL.g:20494:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
+            {
+            pushFollow(FOLLOW_107);
+            rule__XForLoopExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group__2"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group__2__Impl"
+    // InternalTableDSL.g:20501:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
+    public final void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20505:1: ( ( ')' ) )
+            // InternalTableDSL.g:20506:1: ( ')' )
+            {
+            // InternalTableDSL.g:20506:1: ( ')' )
+            // InternalTableDSL.g:20507:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group__3"
+    // InternalTableDSL.g:20516:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
+    public final void rule__XForLoopExpression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20520:1: ( rule__XForLoopExpression__Group__3__Impl )
+            // InternalTableDSL.g:20521:2: rule__XForLoopExpression__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group__3"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group__3__Impl"
+    // InternalTableDSL.g:20527:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
+    public final void rule__XForLoopExpression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20531:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
+            // InternalTableDSL.g:20532:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            {
+            // InternalTableDSL.g:20532:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
+            // InternalTableDSL.g:20533:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
+            }
+            // InternalTableDSL.g:20534:2: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
+            // InternalTableDSL.g:20534:3: rule__XForLoopExpression__EachExpressionAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__EachExpressionAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0__0"
+    // InternalTableDSL.g:20543:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
+    public final void rule__XForLoopExpression__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20547:1: ( rule__XForLoopExpression__Group_0__0__Impl )
+            // InternalTableDSL.g:20548:2: rule__XForLoopExpression__Group_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0__0"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0__0__Impl"
+    // InternalTableDSL.g:20554:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
+    public final void rule__XForLoopExpression__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20558:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
+            // InternalTableDSL.g:20559:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            {
+            // InternalTableDSL.g:20559:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
+            // InternalTableDSL.g:20560:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
+            }
+            // InternalTableDSL.g:20561:2: ( rule__XForLoopExpression__Group_0_0__0 )
+            // InternalTableDSL.g:20561:3: rule__XForLoopExpression__Group_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0_0__0"
+    // InternalTableDSL.g:20570:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
+    public final void rule__XForLoopExpression__Group_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20574:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
+            // InternalTableDSL.g:20575:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
+            {
+            pushFollow(FOLLOW_159);
+            rule__XForLoopExpression__Group_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0_0__0"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0_0__0__Impl"
+    // InternalTableDSL.g:20582:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
+    public final void rule__XForLoopExpression__Group_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20586:1: ( ( () ) )
+            // InternalTableDSL.g:20587:1: ( () )
+            {
+            // InternalTableDSL.g:20587:1: ( () )
+            // InternalTableDSL.g:20588:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
+            }
+            // InternalTableDSL.g:20589:2: ()
+            // InternalTableDSL.g:20589:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0_0__1"
+    // InternalTableDSL.g:20597:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
+    public final void rule__XForLoopExpression__Group_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20601:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
+            // InternalTableDSL.g:20602:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
+            {
+            pushFollow(FOLLOW_103);
+            rule__XForLoopExpression__Group_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group_0_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0_0__1"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0_0__1__Impl"
+    // InternalTableDSL.g:20609:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
+    public final void rule__XForLoopExpression__Group_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20613:1: ( ( 'for' ) )
+            // InternalTableDSL.g:20614:1: ( 'for' )
+            {
+            // InternalTableDSL.g:20614:1: ( 'for' )
+            // InternalTableDSL.g:20615:2: 'for'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
+            }
+            match(input,151,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0_0__2"
+    // InternalTableDSL.g:20624:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
+    public final void rule__XForLoopExpression__Group_0_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20628:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
+            // InternalTableDSL.g:20629:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
+            {
+            pushFollow(FOLLOW_123);
+            rule__XForLoopExpression__Group_0_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group_0_0__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0_0__2"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0_0__2__Impl"
+    // InternalTableDSL.g:20636:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
+    public final void rule__XForLoopExpression__Group_0_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20640:1: ( ( '(' ) )
+            // InternalTableDSL.g:20641:1: ( '(' )
+            {
+            // InternalTableDSL.g:20641:1: ( '(' )
+            // InternalTableDSL.g:20642:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0_0__2__Impl"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0_0__3"
+    // InternalTableDSL.g:20651:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
+    public final void rule__XForLoopExpression__Group_0_0__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20655:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
+            // InternalTableDSL.g:20656:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
+            {
+            pushFollow(FOLLOW_157);
+            rule__XForLoopExpression__Group_0_0__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group_0_0__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0_0__3"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0_0__3__Impl"
+    // InternalTableDSL.g:20663:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
+    public final void rule__XForLoopExpression__Group_0_0__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20667:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
+            // InternalTableDSL.g:20668:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            {
+            // InternalTableDSL.g:20668:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
+            // InternalTableDSL.g:20669:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
+            }
+            // InternalTableDSL.g:20670:2: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
+            // InternalTableDSL.g:20670:3: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__DeclaredParamAssignment_0_0_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0_0__3__Impl"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0_0__4"
+    // InternalTableDSL.g:20678:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
+    public final void rule__XForLoopExpression__Group_0_0__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20682:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
+            // InternalTableDSL.g:20683:2: rule__XForLoopExpression__Group_0_0__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XForLoopExpression__Group_0_0__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0_0__4"
+
+
+    // $ANTLR start "rule__XForLoopExpression__Group_0_0__4__Impl"
+    // InternalTableDSL.g:20689:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
+    public final void rule__XForLoopExpression__Group_0_0__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20693:1: ( ( ':' ) )
+            // InternalTableDSL.g:20694:1: ( ':' )
+            {
+            // InternalTableDSL.g:20694:1: ( ':' )
+            // InternalTableDSL.g:20695:2: ':'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
+            }
+            match(input,149,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__Group_0_0__4__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__0"
+    // InternalTableDSL.g:20705:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
+    public final void rule__XBasicForLoopExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20709:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
+            // InternalTableDSL.g:20710:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
+            {
+            pushFollow(FOLLOW_159);
+            rule__XBasicForLoopExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__0"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__0__Impl"
+    // InternalTableDSL.g:20717:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
+    public final void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20721:1: ( ( () ) )
+            // InternalTableDSL.g:20722:1: ( () )
+            {
+            // InternalTableDSL.g:20722:1: ( () )
+            // InternalTableDSL.g:20723:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
+            }
+            // InternalTableDSL.g:20724:2: ()
+            // InternalTableDSL.g:20724:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__1"
+    // InternalTableDSL.g:20732:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
+    public final void rule__XBasicForLoopExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20736:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
+            // InternalTableDSL.g:20737:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
+            {
+            pushFollow(FOLLOW_103);
+            rule__XBasicForLoopExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__1"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__1__Impl"
+    // InternalTableDSL.g:20744:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
+    public final void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20748:1: ( ( 'for' ) )
+            // InternalTableDSL.g:20749:1: ( 'for' )
+            {
+            // InternalTableDSL.g:20749:1: ( 'for' )
+            // InternalTableDSL.g:20750:2: 'for'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
+            }
+            match(input,151,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__2"
+    // InternalTableDSL.g:20759:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
+    public final void rule__XBasicForLoopExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20763:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
+            // InternalTableDSL.g:20764:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
+            {
+            pushFollow(FOLLOW_160);
+            rule__XBasicForLoopExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__2"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__2__Impl"
+    // InternalTableDSL.g:20771:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
+    public final void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20775:1: ( ( '(' ) )
+            // InternalTableDSL.g:20776:1: ( '(' )
+            {
+            // InternalTableDSL.g:20776:1: ( '(' )
+            // InternalTableDSL.g:20777:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__3"
+    // InternalTableDSL.g:20786:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
+    public final void rule__XBasicForLoopExpression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20790:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
+            // InternalTableDSL.g:20791:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
+            {
+            pushFollow(FOLLOW_160);
+            rule__XBasicForLoopExpression__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__3"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__3__Impl"
+    // InternalTableDSL.g:20798:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
+    public final void rule__XBasicForLoopExpression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20802:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
+            // InternalTableDSL.g:20803:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:20803:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
+            // InternalTableDSL.g:20804:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:20805:2: ( rule__XBasicForLoopExpression__Group_3__0 )?
+            int alt140=2;
+            int LA140_0 = input.LA(1);
+
+            if ( ((LA140_0>=RULE_STRING && LA140_0<=RULE_DECIMAL)||(LA140_0>=19 && LA140_0<=20)||LA140_0==32||LA140_0==43||(LA140_0>=47 && LA140_0<=53)||LA140_0==75||LA140_0==132||(LA140_0>=143 && LA140_0<=144)||LA140_0==146||LA140_0==148||(LA140_0>=151 && LA140_0<=159)||LA140_0==161||(LA140_0>=187 && LA140_0<=188)) ) {
+                alt140=1;
+            }
+            switch (alt140) {
+                case 1 :
+                    // InternalTableDSL.g:20805:3: rule__XBasicForLoopExpression__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XBasicForLoopExpression__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__4"
+    // InternalTableDSL.g:20813:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
+    public final void rule__XBasicForLoopExpression__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20817:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
+            // InternalTableDSL.g:20818:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
+            {
+            pushFollow(FOLLOW_161);
+            rule__XBasicForLoopExpression__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__4"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__4__Impl"
+    // InternalTableDSL.g:20825:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
+    public final void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20829:1: ( ( ';' ) )
+            // InternalTableDSL.g:20830:1: ( ';' )
+            {
+            // InternalTableDSL.g:20830:1: ( ';' )
+            // InternalTableDSL.g:20831:2: ';'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
+            }
+            match(input,139,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__4__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__5"
+    // InternalTableDSL.g:20840:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
+    public final void rule__XBasicForLoopExpression__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20844:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
+            // InternalTableDSL.g:20845:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
+            {
+            pushFollow(FOLLOW_161);
+            rule__XBasicForLoopExpression__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__6();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__5"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__5__Impl"
+    // InternalTableDSL.g:20852:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
+    public final void rule__XBasicForLoopExpression__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20856:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
+            // InternalTableDSL.g:20857:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            {
+            // InternalTableDSL.g:20857:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
+            // InternalTableDSL.g:20858:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
+            }
+            // InternalTableDSL.g:20859:2: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
+            int alt141=2;
+            int LA141_0 = input.LA(1);
+
+            if ( ((LA141_0>=RULE_STRING && LA141_0<=RULE_DECIMAL)||(LA141_0>=19 && LA141_0<=20)||LA141_0==32||LA141_0==43||(LA141_0>=48 && LA141_0<=53)||LA141_0==75||LA141_0==132||(LA141_0>=143 && LA141_0<=144)||LA141_0==146||LA141_0==148||(LA141_0>=151 && LA141_0<=159)||LA141_0==161||LA141_0==188) ) {
+                alt141=1;
+            }
+            switch (alt141) {
+                case 1 :
+                    // InternalTableDSL.g:20859:3: rule__XBasicForLoopExpression__ExpressionAssignment_5
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XBasicForLoopExpression__ExpressionAssignment_5();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__5__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__6"
+    // InternalTableDSL.g:20867:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
+    public final void rule__XBasicForLoopExpression__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20871:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
+            // InternalTableDSL.g:20872:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
+            {
+            pushFollow(FOLLOW_104);
+            rule__XBasicForLoopExpression__Group__6__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__7();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__6"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__6__Impl"
+    // InternalTableDSL.g:20879:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
+    public final void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20883:1: ( ( ';' ) )
+            // InternalTableDSL.g:20884:1: ( ';' )
+            {
+            // InternalTableDSL.g:20884:1: ( ';' )
+            // InternalTableDSL.g:20885:2: ';'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
+            }
+            match(input,139,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__6__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__7"
+    // InternalTableDSL.g:20894:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
+    public final void rule__XBasicForLoopExpression__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20898:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
+            // InternalTableDSL.g:20899:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
+            {
+            pushFollow(FOLLOW_104);
+            rule__XBasicForLoopExpression__Group__7__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__8();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__7"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__7__Impl"
+    // InternalTableDSL.g:20906:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
+    public final void rule__XBasicForLoopExpression__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20910:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
+            // InternalTableDSL.g:20911:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            {
+            // InternalTableDSL.g:20911:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
+            // InternalTableDSL.g:20912:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
+            }
+            // InternalTableDSL.g:20913:2: ( rule__XBasicForLoopExpression__Group_7__0 )?
+            int alt142=2;
+            int LA142_0 = input.LA(1);
+
+            if ( ((LA142_0>=RULE_STRING && LA142_0<=RULE_DECIMAL)||(LA142_0>=19 && LA142_0<=20)||LA142_0==32||LA142_0==43||(LA142_0>=48 && LA142_0<=53)||LA142_0==75||LA142_0==132||(LA142_0>=143 && LA142_0<=144)||LA142_0==146||LA142_0==148||(LA142_0>=151 && LA142_0<=159)||LA142_0==161||LA142_0==188) ) {
+                alt142=1;
+            }
+            switch (alt142) {
+                case 1 :
+                    // InternalTableDSL.g:20913:3: rule__XBasicForLoopExpression__Group_7__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XBasicForLoopExpression__Group_7__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__7__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__8"
+    // InternalTableDSL.g:20921:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
+    public final void rule__XBasicForLoopExpression__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20925:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
+            // InternalTableDSL.g:20926:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
+            {
+            pushFollow(FOLLOW_107);
+            rule__XBasicForLoopExpression__Group__8__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__9();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__8"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__8__Impl"
+    // InternalTableDSL.g:20933:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
+    public final void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20937:1: ( ( ')' ) )
+            // InternalTableDSL.g:20938:1: ( ')' )
+            {
+            // InternalTableDSL.g:20938:1: ( ')' )
+            // InternalTableDSL.g:20939:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__8__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__9"
+    // InternalTableDSL.g:20948:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
+    public final void rule__XBasicForLoopExpression__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20952:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
+            // InternalTableDSL.g:20953:2: rule__XBasicForLoopExpression__Group__9__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group__9__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__9"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group__9__Impl"
+    // InternalTableDSL.g:20959:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
+    public final void rule__XBasicForLoopExpression__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20963:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
+            // InternalTableDSL.g:20964:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            {
+            // InternalTableDSL.g:20964:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
+            // InternalTableDSL.g:20965:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
+            }
+            // InternalTableDSL.g:20966:2: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
+            // InternalTableDSL.g:20966:3: rule__XBasicForLoopExpression__EachExpressionAssignment_9
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__EachExpressionAssignment_9();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group__9__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0"
+    // InternalTableDSL.g:20975:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
+    public final void rule__XBasicForLoopExpression__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20979:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
+            // InternalTableDSL.g:20980:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XBasicForLoopExpression__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_3__0"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0__Impl"
+    // InternalTableDSL.g:20987:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
+    public final void rule__XBasicForLoopExpression__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:20991:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
+            // InternalTableDSL.g:20992:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            {
+            // InternalTableDSL.g:20992:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
+            // InternalTableDSL.g:20993:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
+            }
+            // InternalTableDSL.g:20994:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
+            // InternalTableDSL.g:20994:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1"
+    // InternalTableDSL.g:21002:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
+    public final void rule__XBasicForLoopExpression__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21006:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
+            // InternalTableDSL.g:21007:2: rule__XBasicForLoopExpression__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_3__1"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1__Impl"
+    // InternalTableDSL.g:21013:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
+    public final void rule__XBasicForLoopExpression__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21017:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
+            // InternalTableDSL.g:21018:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            {
+            // InternalTableDSL.g:21018:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
+            // InternalTableDSL.g:21019:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
+            }
+            // InternalTableDSL.g:21020:2: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
+            loop143:
+            do {
+                int alt143=2;
+                int LA143_0 = input.LA(1);
+
+                if ( (LA143_0==141) ) {
+                    alt143=1;
+                }
+
+
+                switch (alt143) {
+            	case 1 :
+            	    // InternalTableDSL.g:21020:3: rule__XBasicForLoopExpression__Group_3_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XBasicForLoopExpression__Group_3_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop143;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0"
+    // InternalTableDSL.g:21029:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
+    public final void rule__XBasicForLoopExpression__Group_3_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21033:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
+            // InternalTableDSL.g:21034:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
+            {
+            pushFollow(FOLLOW_162);
+            rule__XBasicForLoopExpression__Group_3_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group_3_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_3_1__0"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0__Impl"
+    // InternalTableDSL.g:21041:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
+    public final void rule__XBasicForLoopExpression__Group_3_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21045:1: ( ( ',' ) )
+            // InternalTableDSL.g:21046:1: ( ',' )
+            {
+            // InternalTableDSL.g:21046:1: ( ',' )
+            // InternalTableDSL.g:21047:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_3_1__0__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1"
+    // InternalTableDSL.g:21056:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
+    public final void rule__XBasicForLoopExpression__Group_3_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21060:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
+            // InternalTableDSL.g:21061:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group_3_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_3_1__1"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1__Impl"
+    // InternalTableDSL.g:21067:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
+    public final void rule__XBasicForLoopExpression__Group_3_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21071:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
+            // InternalTableDSL.g:21072:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            {
+            // InternalTableDSL.g:21072:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
+            // InternalTableDSL.g:21073:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
+            }
+            // InternalTableDSL.g:21074:2: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
+            // InternalTableDSL.g:21074:3: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_3_1__1__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0"
+    // InternalTableDSL.g:21083:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
+    public final void rule__XBasicForLoopExpression__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21087:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
+            // InternalTableDSL.g:21088:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XBasicForLoopExpression__Group_7__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group_7__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_7__0"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0__Impl"
+    // InternalTableDSL.g:21095:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
+    public final void rule__XBasicForLoopExpression__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21099:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
+            // InternalTableDSL.g:21100:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            {
+            // InternalTableDSL.g:21100:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
+            // InternalTableDSL.g:21101:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
+            }
+            // InternalTableDSL.g:21102:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
+            // InternalTableDSL.g:21102:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1"
+    // InternalTableDSL.g:21110:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
+    public final void rule__XBasicForLoopExpression__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21114:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
+            // InternalTableDSL.g:21115:2: rule__XBasicForLoopExpression__Group_7__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group_7__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_7__1"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1__Impl"
+    // InternalTableDSL.g:21121:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
+    public final void rule__XBasicForLoopExpression__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21125:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
+            // InternalTableDSL.g:21126:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            {
+            // InternalTableDSL.g:21126:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
+            // InternalTableDSL.g:21127:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
+            }
+            // InternalTableDSL.g:21128:2: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
+            loop144:
+            do {
+                int alt144=2;
+                int LA144_0 = input.LA(1);
+
+                if ( (LA144_0==141) ) {
+                    alt144=1;
+                }
+
+
+                switch (alt144) {
+            	case 1 :
+            	    // InternalTableDSL.g:21128:3: rule__XBasicForLoopExpression__Group_7_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XBasicForLoopExpression__Group_7_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop144;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0"
+    // InternalTableDSL.g:21137:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
+    public final void rule__XBasicForLoopExpression__Group_7_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21141:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
+            // InternalTableDSL.g:21142:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XBasicForLoopExpression__Group_7_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group_7_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_7_1__0"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0__Impl"
+    // InternalTableDSL.g:21149:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
+    public final void rule__XBasicForLoopExpression__Group_7_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21153:1: ( ( ',' ) )
+            // InternalTableDSL.g:21154:1: ( ',' )
+            {
+            // InternalTableDSL.g:21154:1: ( ',' )
+            // InternalTableDSL.g:21155:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_7_1__0__Impl"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1"
+    // InternalTableDSL.g:21164:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
+    public final void rule__XBasicForLoopExpression__Group_7_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21168:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
+            // InternalTableDSL.g:21169:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__Group_7_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_7_1__1"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1__Impl"
+    // InternalTableDSL.g:21175:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
+    public final void rule__XBasicForLoopExpression__Group_7_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21179:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
+            // InternalTableDSL.g:21180:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            {
+            // InternalTableDSL.g:21180:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
+            // InternalTableDSL.g:21181:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
+            }
+            // InternalTableDSL.g:21182:2: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
+            // InternalTableDSL.g:21182:3: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__Group_7_1__1__Impl"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__0"
+    // InternalTableDSL.g:21191:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
+    public final void rule__XWhileExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21195:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
+            // InternalTableDSL.g:21196:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
+            {
+            pushFollow(FOLLOW_163);
+            rule__XWhileExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XWhileExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__0"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__0__Impl"
+    // InternalTableDSL.g:21203:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
+    public final void rule__XWhileExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21207:1: ( ( () ) )
+            // InternalTableDSL.g:21208:1: ( () )
+            {
+            // InternalTableDSL.g:21208:1: ( () )
+            // InternalTableDSL.g:21209:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
+            }
+            // InternalTableDSL.g:21210:2: ()
+            // InternalTableDSL.g:21210:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__1"
+    // InternalTableDSL.g:21218:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
+    public final void rule__XWhileExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21222:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
+            // InternalTableDSL.g:21223:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
+            {
+            pushFollow(FOLLOW_103);
+            rule__XWhileExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XWhileExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__1"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__1__Impl"
+    // InternalTableDSL.g:21230:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
+    public final void rule__XWhileExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21234:1: ( ( 'while' ) )
+            // InternalTableDSL.g:21235:1: ( 'while' )
+            {
+            // InternalTableDSL.g:21235:1: ( 'while' )
+            // InternalTableDSL.g:21236:2: 'while'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
+            }
+            match(input,152,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__2"
+    // InternalTableDSL.g:21245:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
+    public final void rule__XWhileExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21249:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
+            // InternalTableDSL.g:21250:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
+            {
+            pushFollow(FOLLOW_107);
+            rule__XWhileExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XWhileExpression__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__2"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__2__Impl"
+    // InternalTableDSL.g:21257:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
+    public final void rule__XWhileExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21261:1: ( ( '(' ) )
+            // InternalTableDSL.g:21262:1: ( '(' )
+            {
+            // InternalTableDSL.g:21262:1: ( '(' )
+            // InternalTableDSL.g:21263:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__3"
+    // InternalTableDSL.g:21272:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
+    public final void rule__XWhileExpression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21276:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
+            // InternalTableDSL.g:21277:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
+            {
+            pushFollow(FOLLOW_85);
+            rule__XWhileExpression__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XWhileExpression__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__3"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__3__Impl"
+    // InternalTableDSL.g:21284:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
+    public final void rule__XWhileExpression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21288:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
+            // InternalTableDSL.g:21289:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            {
+            // InternalTableDSL.g:21289:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+            // InternalTableDSL.g:21290:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
+            }
+            // InternalTableDSL.g:21291:2: ( rule__XWhileExpression__PredicateAssignment_3 )
+            // InternalTableDSL.g:21291:3: rule__XWhileExpression__PredicateAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__XWhileExpression__PredicateAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__4"
+    // InternalTableDSL.g:21299:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
+    public final void rule__XWhileExpression__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21303:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
+            // InternalTableDSL.g:21304:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
+            {
+            pushFollow(FOLLOW_107);
+            rule__XWhileExpression__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XWhileExpression__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__4"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__4__Impl"
+    // InternalTableDSL.g:21311:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
+    public final void rule__XWhileExpression__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21315:1: ( ( ')' ) )
+            // InternalTableDSL.g:21316:1: ( ')' )
+            {
+            // InternalTableDSL.g:21316:1: ( ')' )
+            // InternalTableDSL.g:21317:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__4__Impl"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__5"
+    // InternalTableDSL.g:21326:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
+    public final void rule__XWhileExpression__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21330:1: ( rule__XWhileExpression__Group__5__Impl )
+            // InternalTableDSL.g:21331:2: rule__XWhileExpression__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XWhileExpression__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__5"
+
+
+    // $ANTLR start "rule__XWhileExpression__Group__5__Impl"
+    // InternalTableDSL.g:21337:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
+    public final void rule__XWhileExpression__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21341:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
+            // InternalTableDSL.g:21342:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            {
+            // InternalTableDSL.g:21342:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+            // InternalTableDSL.g:21343:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
+            }
+            // InternalTableDSL.g:21344:2: ( rule__XWhileExpression__BodyAssignment_5 )
+            // InternalTableDSL.g:21344:3: rule__XWhileExpression__BodyAssignment_5
+            {
+            pushFollow(FOLLOW_2);
+            rule__XWhileExpression__BodyAssignment_5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__Group__5__Impl"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__0"
+    // InternalTableDSL.g:21353:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
+    public final void rule__XDoWhileExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21357:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
+            // InternalTableDSL.g:21358:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
+            {
+            pushFollow(FOLLOW_164);
+            rule__XDoWhileExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XDoWhileExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__0"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__0__Impl"
+    // InternalTableDSL.g:21365:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
+    public final void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21369:1: ( ( () ) )
+            // InternalTableDSL.g:21370:1: ( () )
+            {
+            // InternalTableDSL.g:21370:1: ( () )
+            // InternalTableDSL.g:21371:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
+            }
+            // InternalTableDSL.g:21372:2: ()
+            // InternalTableDSL.g:21372:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__1"
+    // InternalTableDSL.g:21380:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
+    public final void rule__XDoWhileExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21384:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
+            // InternalTableDSL.g:21385:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
+            {
+            pushFollow(FOLLOW_107);
+            rule__XDoWhileExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XDoWhileExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__1"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__1__Impl"
+    // InternalTableDSL.g:21392:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
+    public final void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21396:1: ( ( 'do' ) )
+            // InternalTableDSL.g:21397:1: ( 'do' )
+            {
+            // InternalTableDSL.g:21397:1: ( 'do' )
+            // InternalTableDSL.g:21398:2: 'do'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
+            }
+            match(input,153,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__2"
+    // InternalTableDSL.g:21407:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
+    public final void rule__XDoWhileExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21411:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
+            // InternalTableDSL.g:21412:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
+            {
+            pushFollow(FOLLOW_163);
+            rule__XDoWhileExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XDoWhileExpression__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__2"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__2__Impl"
+    // InternalTableDSL.g:21419:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
+    public final void rule__XDoWhileExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21423:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
+            // InternalTableDSL.g:21424:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            {
+            // InternalTableDSL.g:21424:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+            // InternalTableDSL.g:21425:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
+            }
+            // InternalTableDSL.g:21426:2: ( rule__XDoWhileExpression__BodyAssignment_2 )
+            // InternalTableDSL.g:21426:3: rule__XDoWhileExpression__BodyAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XDoWhileExpression__BodyAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__3"
+    // InternalTableDSL.g:21434:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
+    public final void rule__XDoWhileExpression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21438:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
+            // InternalTableDSL.g:21439:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
+            {
+            pushFollow(FOLLOW_103);
+            rule__XDoWhileExpression__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XDoWhileExpression__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__3"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__3__Impl"
+    // InternalTableDSL.g:21446:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
+    public final void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21450:1: ( ( 'while' ) )
+            // InternalTableDSL.g:21451:1: ( 'while' )
+            {
+            // InternalTableDSL.g:21451:1: ( 'while' )
+            // InternalTableDSL.g:21452:2: 'while'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
+            }
+            match(input,152,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__4"
+    // InternalTableDSL.g:21461:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
+    public final void rule__XDoWhileExpression__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21465:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
+            // InternalTableDSL.g:21466:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
+            {
+            pushFollow(FOLLOW_107);
+            rule__XDoWhileExpression__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XDoWhileExpression__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__4"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__4__Impl"
+    // InternalTableDSL.g:21473:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
+    public final void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21477:1: ( ( '(' ) )
+            // InternalTableDSL.g:21478:1: ( '(' )
+            {
+            // InternalTableDSL.g:21478:1: ( '(' )
+            // InternalTableDSL.g:21479:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__4__Impl"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__5"
+    // InternalTableDSL.g:21488:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
+    public final void rule__XDoWhileExpression__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21492:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
+            // InternalTableDSL.g:21493:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
+            {
+            pushFollow(FOLLOW_85);
+            rule__XDoWhileExpression__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XDoWhileExpression__Group__6();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__5"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__5__Impl"
+    // InternalTableDSL.g:21500:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
+    public final void rule__XDoWhileExpression__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21504:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
+            // InternalTableDSL.g:21505:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            {
+            // InternalTableDSL.g:21505:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+            // InternalTableDSL.g:21506:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
+            }
+            // InternalTableDSL.g:21507:2: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+            // InternalTableDSL.g:21507:3: rule__XDoWhileExpression__PredicateAssignment_5
+            {
+            pushFollow(FOLLOW_2);
+            rule__XDoWhileExpression__PredicateAssignment_5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__5__Impl"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__6"
+    // InternalTableDSL.g:21515:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
+    public final void rule__XDoWhileExpression__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21519:1: ( rule__XDoWhileExpression__Group__6__Impl )
+            // InternalTableDSL.g:21520:2: rule__XDoWhileExpression__Group__6__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XDoWhileExpression__Group__6__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__6"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__Group__6__Impl"
+    // InternalTableDSL.g:21526:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
+    public final void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21530:1: ( ( ')' ) )
+            // InternalTableDSL.g:21531:1: ( ')' )
+            {
+            // InternalTableDSL.g:21531:1: ( ')' )
+            // InternalTableDSL.g:21532:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__Group__6__Impl"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group__0"
+    // InternalTableDSL.g:21542:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
+    public final void rule__XBlockExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21546:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
+            // InternalTableDSL.g:21547:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
+            {
+            pushFollow(FOLLOW_8);
+            rule__XBlockExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBlockExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group__0"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group__0__Impl"
+    // InternalTableDSL.g:21554:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
+    public final void rule__XBlockExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21558:1: ( ( () ) )
+            // InternalTableDSL.g:21559:1: ( () )
+            {
+            // InternalTableDSL.g:21559:1: ( () )
+            // InternalTableDSL.g:21560:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
+            }
+            // InternalTableDSL.g:21561:2: ()
+            // InternalTableDSL.g:21561:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group__1"
+    // InternalTableDSL.g:21569:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
+    public final void rule__XBlockExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21573:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
+            // InternalTableDSL.g:21574:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
+            {
+            pushFollow(FOLLOW_165);
+            rule__XBlockExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBlockExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group__1"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group__1__Impl"
+    // InternalTableDSL.g:21581:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
+    public final void rule__XBlockExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21585:1: ( ( '{' ) )
+            // InternalTableDSL.g:21586:1: ( '{' )
+            {
+            // InternalTableDSL.g:21586:1: ( '{' )
+            // InternalTableDSL.g:21587:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group__2"
+    // InternalTableDSL.g:21596:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
+    public final void rule__XBlockExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21600:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
+            // InternalTableDSL.g:21601:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
+            {
+            pushFollow(FOLLOW_165);
+            rule__XBlockExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBlockExpression__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group__2"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group__2__Impl"
+    // InternalTableDSL.g:21608:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
+    public final void rule__XBlockExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21612:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
+            // InternalTableDSL.g:21613:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            {
+            // InternalTableDSL.g:21613:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+            // InternalTableDSL.g:21614:2: ( rule__XBlockExpression__Group_2__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
+            }
+            // InternalTableDSL.g:21615:2: ( rule__XBlockExpression__Group_2__0 )*
+            loop145:
+            do {
+                int alt145=2;
+                int LA145_0 = input.LA(1);
+
+                if ( ((LA145_0>=RULE_STRING && LA145_0<=RULE_DECIMAL)||(LA145_0>=19 && LA145_0<=20)||LA145_0==32||LA145_0==43||(LA145_0>=47 && LA145_0<=53)||LA145_0==75||LA145_0==132||(LA145_0>=143 && LA145_0<=144)||LA145_0==146||LA145_0==148||(LA145_0>=151 && LA145_0<=159)||LA145_0==161||(LA145_0>=187 && LA145_0<=188)) ) {
+                    alt145=1;
+                }
+
+
+                switch (alt145) {
+            	case 1 :
+            	    // InternalTableDSL.g:21615:3: rule__XBlockExpression__Group_2__0
+            	    {
+            	    pushFollow(FOLLOW_150);
+            	    rule__XBlockExpression__Group_2__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop145;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group__3"
+    // InternalTableDSL.g:21623:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
+    public final void rule__XBlockExpression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21627:1: ( rule__XBlockExpression__Group__3__Impl )
+            // InternalTableDSL.g:21628:2: rule__XBlockExpression__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBlockExpression__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group__3"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group__3__Impl"
+    // InternalTableDSL.g:21634:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
+    public final void rule__XBlockExpression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21638:1: ( ( '}' ) )
+            // InternalTableDSL.g:21639:1: ( '}' )
+            {
+            // InternalTableDSL.g:21639:1: ( '}' )
+            // InternalTableDSL.g:21640:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
+            }
+            match(input,76,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group_2__0"
+    // InternalTableDSL.g:21650:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
+    public final void rule__XBlockExpression__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21654:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
+            // InternalTableDSL.g:21655:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
+            {
+            pushFollow(FOLLOW_99);
+            rule__XBlockExpression__Group_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBlockExpression__Group_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group_2__0"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group_2__0__Impl"
+    // InternalTableDSL.g:21662:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
+    public final void rule__XBlockExpression__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21666:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
+            // InternalTableDSL.g:21667:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            {
+            // InternalTableDSL.g:21667:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+            // InternalTableDSL.g:21668:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
+            }
+            // InternalTableDSL.g:21669:2: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+            // InternalTableDSL.g:21669:3: rule__XBlockExpression__ExpressionsAssignment_2_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBlockExpression__ExpressionsAssignment_2_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group_2__1"
+    // InternalTableDSL.g:21677:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
+    public final void rule__XBlockExpression__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21681:1: ( rule__XBlockExpression__Group_2__1__Impl )
+            // InternalTableDSL.g:21682:2: rule__XBlockExpression__Group_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBlockExpression__Group_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group_2__1"
+
+
+    // $ANTLR start "rule__XBlockExpression__Group_2__1__Impl"
+    // InternalTableDSL.g:21688:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
+    public final void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21692:1: ( ( ( ';' )? ) )
+            // InternalTableDSL.g:21693:1: ( ( ';' )? )
+            {
+            // InternalTableDSL.g:21693:1: ( ( ';' )? )
+            // InternalTableDSL.g:21694:2: ( ';' )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
+            }
+            // InternalTableDSL.g:21695:2: ( ';' )?
+            int alt146=2;
+            int LA146_0 = input.LA(1);
+
+            if ( (LA146_0==139) ) {
+                alt146=1;
+            }
+            switch (alt146) {
+                case 1 :
+                    // InternalTableDSL.g:21695:3: ';'
+                    {
+                    match(input,139,FOLLOW_2); if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group__0"
+    // InternalTableDSL.g:21704:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
+    public final void rule__XVariableDeclaration__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21708:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
+            // InternalTableDSL.g:21709:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
+            {
+            pushFollow(FOLLOW_166);
+            rule__XVariableDeclaration__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group__0"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group__0__Impl"
+    // InternalTableDSL.g:21716:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
+    public final void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21720:1: ( ( () ) )
+            // InternalTableDSL.g:21721:1: ( () )
+            {
+            // InternalTableDSL.g:21721:1: ( () )
+            // InternalTableDSL.g:21722:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
+            }
+            // InternalTableDSL.g:21723:2: ()
+            // InternalTableDSL.g:21723:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group__1"
+    // InternalTableDSL.g:21731:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
+    public final void rule__XVariableDeclaration__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21735:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
+            // InternalTableDSL.g:21736:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
+            {
+            pushFollow(FOLLOW_123);
+            rule__XVariableDeclaration__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group__1"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group__1__Impl"
+    // InternalTableDSL.g:21743:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
+    public final void rule__XVariableDeclaration__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21747:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
+            // InternalTableDSL.g:21748:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            {
+            // InternalTableDSL.g:21748:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+            // InternalTableDSL.g:21749:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
+            }
+            // InternalTableDSL.g:21750:2: ( rule__XVariableDeclaration__Alternatives_1 )
+            // InternalTableDSL.g:21750:3: rule__XVariableDeclaration__Alternatives_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Alternatives_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group__2"
+    // InternalTableDSL.g:21758:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
+    public final void rule__XVariableDeclaration__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21762:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
+            // InternalTableDSL.g:21763:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
+            {
+            pushFollow(FOLLOW_83);
+            rule__XVariableDeclaration__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group__2"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group__2__Impl"
+    // InternalTableDSL.g:21770:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
+    public final void rule__XVariableDeclaration__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21774:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
+            // InternalTableDSL.g:21775:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            {
+            // InternalTableDSL.g:21775:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+            // InternalTableDSL.g:21776:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
+            }
+            // InternalTableDSL.g:21777:2: ( rule__XVariableDeclaration__Alternatives_2 )
+            // InternalTableDSL.g:21777:3: rule__XVariableDeclaration__Alternatives_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Alternatives_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group__3"
+    // InternalTableDSL.g:21785:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
+    public final void rule__XVariableDeclaration__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21789:1: ( rule__XVariableDeclaration__Group__3__Impl )
+            // InternalTableDSL.g:21790:2: rule__XVariableDeclaration__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group__3"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group__3__Impl"
+    // InternalTableDSL.g:21796:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
+    public final void rule__XVariableDeclaration__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21800:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
+            // InternalTableDSL.g:21801:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:21801:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+            // InternalTableDSL.g:21802:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:21803:2: ( rule__XVariableDeclaration__Group_3__0 )?
+            int alt147=2;
+            int LA147_0 = input.LA(1);
+
+            if ( (LA147_0==15) ) {
+                alt147=1;
+            }
+            switch (alt147) {
+                case 1 :
+                    // InternalTableDSL.g:21803:3: rule__XVariableDeclaration__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XVariableDeclaration__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0"
+    // InternalTableDSL.g:21812:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
+    public final void rule__XVariableDeclaration__Group_2_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21816:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
+            // InternalTableDSL.g:21817:2: rule__XVariableDeclaration__Group_2_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group_2_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group_2_0__0"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0__Impl"
+    // InternalTableDSL.g:21823:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
+    public final void rule__XVariableDeclaration__Group_2_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21827:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
+            // InternalTableDSL.g:21828:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            {
+            // InternalTableDSL.g:21828:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+            // InternalTableDSL.g:21829:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
+            }
+            // InternalTableDSL.g:21830:2: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+            // InternalTableDSL.g:21830:3: rule__XVariableDeclaration__Group_2_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group_2_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group_2_0__0__Impl"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0"
+    // InternalTableDSL.g:21839:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
+    public final void rule__XVariableDeclaration__Group_2_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21843:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
+            // InternalTableDSL.g:21844:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__XVariableDeclaration__Group_2_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group_2_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__0"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
+    // InternalTableDSL.g:21851:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
+    public final void rule__XVariableDeclaration__Group_2_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21855:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
+            // InternalTableDSL.g:21856:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            {
+            // InternalTableDSL.g:21856:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+            // InternalTableDSL.g:21857:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
+            }
+            // InternalTableDSL.g:21858:2: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+            // InternalTableDSL.g:21858:3: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__TypeAssignment_2_0_0_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1"
+    // InternalTableDSL.g:21866:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
+    public final void rule__XVariableDeclaration__Group_2_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21870:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
+            // InternalTableDSL.g:21871:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group_2_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__1"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
+    // InternalTableDSL.g:21877:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
+    public final void rule__XVariableDeclaration__Group_2_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21881:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
+            // InternalTableDSL.g:21882:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            {
+            // InternalTableDSL.g:21882:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+            // InternalTableDSL.g:21883:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
+            }
+            // InternalTableDSL.g:21884:2: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+            // InternalTableDSL.g:21884:3: rule__XVariableDeclaration__NameAssignment_2_0_0_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__NameAssignment_2_0_0_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group_3__0"
+    // InternalTableDSL.g:21893:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
+    public final void rule__XVariableDeclaration__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21897:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
+            // InternalTableDSL.g:21898:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XVariableDeclaration__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group_3__0"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group_3__0__Impl"
+    // InternalTableDSL.g:21905:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
+    public final void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21909:1: ( ( '=' ) )
+            // InternalTableDSL.g:21910:1: ( '=' )
+            {
+            // InternalTableDSL.g:21910:1: ( '=' )
+            // InternalTableDSL.g:21911:2: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
+            }
+            match(input,15,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group_3__1"
+    // InternalTableDSL.g:21920:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
+    public final void rule__XVariableDeclaration__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21924:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
+            // InternalTableDSL.g:21925:2: rule__XVariableDeclaration__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group_3__1"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__Group_3__1__Impl"
+    // InternalTableDSL.g:21931:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
+    public final void rule__XVariableDeclaration__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21935:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
+            // InternalTableDSL.g:21936:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            {
+            // InternalTableDSL.g:21936:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+            // InternalTableDSL.g:21937:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
+            }
+            // InternalTableDSL.g:21938:2: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+            // InternalTableDSL.g:21938:3: rule__XVariableDeclaration__RightAssignment_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XVariableDeclaration__RightAssignment_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__JvmFormalParameter__Group__0"
+    // InternalTableDSL.g:21947:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
+    public final void rule__JvmFormalParameter__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21951:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
+            // InternalTableDSL.g:21952:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__JvmFormalParameter__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmFormalParameter__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmFormalParameter__Group__0"
+
+
+    // $ANTLR start "rule__JvmFormalParameter__Group__0__Impl"
+    // InternalTableDSL.g:21959:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
+    public final void rule__JvmFormalParameter__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21963:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
+            // InternalTableDSL.g:21964:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            {
+            // InternalTableDSL.g:21964:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+            // InternalTableDSL.g:21965:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
+            }
+            // InternalTableDSL.g:21966:2: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+            int alt148=2;
+            int LA148_0 = input.LA(1);
+
+            if ( (LA148_0==RULE_ID) ) {
+                int LA148_1 = input.LA(2);
+
+                if ( (LA148_1==RULE_ID||LA148_1==32||LA148_1==46||LA148_1==144) ) {
+                    alt148=1;
+                }
+            }
+            else if ( (LA148_0==36||LA148_0==132) ) {
+                alt148=1;
+            }
+            switch (alt148) {
+                case 1 :
+                    // InternalTableDSL.g:21966:3: rule__JvmFormalParameter__ParameterTypeAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__JvmFormalParameter__ParameterTypeAssignment_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmFormalParameter__Group__0__Impl"
+
+
+    // $ANTLR start "rule__JvmFormalParameter__Group__1"
+    // InternalTableDSL.g:21974:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
+    public final void rule__JvmFormalParameter__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21978:1: ( rule__JvmFormalParameter__Group__1__Impl )
+            // InternalTableDSL.g:21979:2: rule__JvmFormalParameter__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmFormalParameter__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmFormalParameter__Group__1"
+
+
+    // $ANTLR start "rule__JvmFormalParameter__Group__1__Impl"
+    // InternalTableDSL.g:21985:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
+    public final void rule__JvmFormalParameter__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:21989:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalTableDSL.g:21990:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            {
+            // InternalTableDSL.g:21990:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+            // InternalTableDSL.g:21991:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
+            }
+            // InternalTableDSL.g:21992:2: ( rule__JvmFormalParameter__NameAssignment_1 )
+            // InternalTableDSL.g:21992:3: rule__JvmFormalParameter__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmFormalParameter__NameAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmFormalParameter__Group__1__Impl"
+
+
+    // $ANTLR start "rule__FullJvmFormalParameter__Group__0"
+    // InternalTableDSL.g:22001:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
+    public final void rule__FullJvmFormalParameter__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22005:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
+            // InternalTableDSL.g:22006:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__FullJvmFormalParameter__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__FullJvmFormalParameter__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FullJvmFormalParameter__Group__0"
+
+
+    // $ANTLR start "rule__FullJvmFormalParameter__Group__0__Impl"
+    // InternalTableDSL.g:22013:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
+    public final void rule__FullJvmFormalParameter__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22017:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
+            // InternalTableDSL.g:22018:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            {
+            // InternalTableDSL.g:22018:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+            // InternalTableDSL.g:22019:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
+            }
+            // InternalTableDSL.g:22020:2: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+            // InternalTableDSL.g:22020:3: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__FullJvmFormalParameter__ParameterTypeAssignment_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FullJvmFormalParameter__Group__0__Impl"
+
+
+    // $ANTLR start "rule__FullJvmFormalParameter__Group__1"
+    // InternalTableDSL.g:22028:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
+    public final void rule__FullJvmFormalParameter__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22032:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
+            // InternalTableDSL.g:22033:2: rule__FullJvmFormalParameter__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__FullJvmFormalParameter__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FullJvmFormalParameter__Group__1"
+
+
+    // $ANTLR start "rule__FullJvmFormalParameter__Group__1__Impl"
+    // InternalTableDSL.g:22039:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
+    public final void rule__FullJvmFormalParameter__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22043:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
+            // InternalTableDSL.g:22044:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            {
+            // InternalTableDSL.g:22044:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+            // InternalTableDSL.g:22045:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
+            }
+            // InternalTableDSL.g:22046:2: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+            // InternalTableDSL.g:22046:3: rule__FullJvmFormalParameter__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__FullJvmFormalParameter__NameAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FullJvmFormalParameter__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group__0"
+    // InternalTableDSL.g:22055:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
+    public final void rule__XFeatureCall__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22059:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
+            // InternalTableDSL.g:22060:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
+            {
+            pushFollow(FOLLOW_141);
+            rule__XFeatureCall__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group__0"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group__0__Impl"
+    // InternalTableDSL.g:22067:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
+    public final void rule__XFeatureCall__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22071:1: ( ( () ) )
+            // InternalTableDSL.g:22072:1: ( () )
+            {
+            // InternalTableDSL.g:22072:1: ( () )
+            // InternalTableDSL.g:22073:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
+            }
+            // InternalTableDSL.g:22074:2: ()
+            // InternalTableDSL.g:22074:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group__1"
+    // InternalTableDSL.g:22082:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
+    public final void rule__XFeatureCall__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22086:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
+            // InternalTableDSL.g:22087:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
+            {
+            pushFollow(FOLLOW_141);
+            rule__XFeatureCall__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group__1"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group__1__Impl"
+    // InternalTableDSL.g:22094:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
+    public final void rule__XFeatureCall__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22098:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
+            // InternalTableDSL.g:22099:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            {
+            // InternalTableDSL.g:22099:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+            // InternalTableDSL.g:22100:2: ( rule__XFeatureCall__Group_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:22101:2: ( rule__XFeatureCall__Group_1__0 )?
+            int alt149=2;
+            int LA149_0 = input.LA(1);
+
+            if ( (LA149_0==32) ) {
+                alt149=1;
+            }
+            switch (alt149) {
+                case 1 :
+                    // InternalTableDSL.g:22101:3: rule__XFeatureCall__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XFeatureCall__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group__2"
+    // InternalTableDSL.g:22109:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
+    public final void rule__XFeatureCall__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22113:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
+            // InternalTableDSL.g:22114:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
+            {
+            pushFollow(FOLLOW_142);
+            rule__XFeatureCall__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group__2"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group__2__Impl"
+    // InternalTableDSL.g:22121:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
+    public final void rule__XFeatureCall__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22125:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
+            // InternalTableDSL.g:22126:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            {
+            // InternalTableDSL.g:22126:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+            // InternalTableDSL.g:22127:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
+            }
+            // InternalTableDSL.g:22128:2: ( rule__XFeatureCall__FeatureAssignment_2 )
+            // InternalTableDSL.g:22128:3: rule__XFeatureCall__FeatureAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__FeatureAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group__3"
+    // InternalTableDSL.g:22136:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
+    public final void rule__XFeatureCall__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22140:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
+            // InternalTableDSL.g:22141:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
+            {
+            pushFollow(FOLLOW_142);
+            rule__XFeatureCall__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group__3"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group__3__Impl"
+    // InternalTableDSL.g:22148:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
+    public final void rule__XFeatureCall__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22152:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
+            // InternalTableDSL.g:22153:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:22153:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+            // InternalTableDSL.g:22154:2: ( rule__XFeatureCall__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:22155:2: ( rule__XFeatureCall__Group_3__0 )?
+            int alt150=2;
+            alt150 = dfa150.predict(input);
+            switch (alt150) {
+                case 1 :
+                    // InternalTableDSL.g:22155:3: rule__XFeatureCall__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XFeatureCall__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group__4"
+    // InternalTableDSL.g:22163:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
+    public final void rule__XFeatureCall__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22167:1: ( rule__XFeatureCall__Group__4__Impl )
+            // InternalTableDSL.g:22168:2: rule__XFeatureCall__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group__4"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group__4__Impl"
+    // InternalTableDSL.g:22174:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
+    public final void rule__XFeatureCall__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22178:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
+            // InternalTableDSL.g:22179:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            {
+            // InternalTableDSL.g:22179:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+            // InternalTableDSL.g:22180:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
+            }
+            // InternalTableDSL.g:22181:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+            int alt151=2;
+            alt151 = dfa151.predict(input);
+            switch (alt151) {
+                case 1 :
+                    // InternalTableDSL.g:22181:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group__4__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1__0"
+    // InternalTableDSL.g:22190:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
+    public final void rule__XFeatureCall__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22194:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
+            // InternalTableDSL.g:22195:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__XFeatureCall__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1__0"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1__0__Impl"
+    // InternalTableDSL.g:22202:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
+    public final void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22206:1: ( ( '<' ) )
+            // InternalTableDSL.g:22207:1: ( '<' )
+            {
+            // InternalTableDSL.g:22207:1: ( '<' )
+            // InternalTableDSL.g:22208:2: '<'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
+            }
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1__1"
+    // InternalTableDSL.g:22217:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
+    public final void rule__XFeatureCall__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22221:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
+            // InternalTableDSL.g:22222:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
+            {
+            pushFollow(FOLLOW_144);
+            rule__XFeatureCall__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_1__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1__1"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1__1__Impl"
+    // InternalTableDSL.g:22229:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
+    public final void rule__XFeatureCall__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22233:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
+            // InternalTableDSL.g:22234:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            {
+            // InternalTableDSL.g:22234:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+            // InternalTableDSL.g:22235:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
+            }
+            // InternalTableDSL.g:22236:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+            // InternalTableDSL.g:22236:3: rule__XFeatureCall__TypeArgumentsAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__TypeArgumentsAssignment_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1__2"
+    // InternalTableDSL.g:22244:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
+    public final void rule__XFeatureCall__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22248:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
+            // InternalTableDSL.g:22249:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
+            {
+            pushFollow(FOLLOW_144);
+            rule__XFeatureCall__Group_1__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_1__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1__2"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1__2__Impl"
+    // InternalTableDSL.g:22256:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
+    public final void rule__XFeatureCall__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22260:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
+            // InternalTableDSL.g:22261:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            {
+            // InternalTableDSL.g:22261:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+            // InternalTableDSL.g:22262:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
+            }
+            // InternalTableDSL.g:22263:2: ( rule__XFeatureCall__Group_1_2__0 )*
+            loop152:
+            do {
+                int alt152=2;
+                int LA152_0 = input.LA(1);
+
+                if ( (LA152_0==141) ) {
+                    alt152=1;
+                }
+
+
+                switch (alt152) {
+            	case 1 :
+            	    // InternalTableDSL.g:22263:3: rule__XFeatureCall__Group_1_2__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XFeatureCall__Group_1_2__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop152;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1__3"
+    // InternalTableDSL.g:22271:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
+    public final void rule__XFeatureCall__Group_1__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22275:1: ( rule__XFeatureCall__Group_1__3__Impl )
+            // InternalTableDSL.g:22276:2: rule__XFeatureCall__Group_1__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_1__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1__3"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1__3__Impl"
+    // InternalTableDSL.g:22282:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
+    public final void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22286:1: ( ( '>' ) )
+            // InternalTableDSL.g:22287:1: ( '>' )
+            {
+            // InternalTableDSL.g:22287:1: ( '>' )
+            // InternalTableDSL.g:22288:2: '>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
+            }
+            match(input,31,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1__3__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1_2__0"
+    // InternalTableDSL.g:22298:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
+    public final void rule__XFeatureCall__Group_1_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22302:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
+            // InternalTableDSL.g:22303:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__XFeatureCall__Group_1_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_1_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1_2__0"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1_2__0__Impl"
+    // InternalTableDSL.g:22310:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
+    public final void rule__XFeatureCall__Group_1_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22314:1: ( ( ',' ) )
+            // InternalTableDSL.g:22315:1: ( ',' )
+            {
+            // InternalTableDSL.g:22315:1: ( ',' )
+            // InternalTableDSL.g:22316:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1_2__0__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1_2__1"
+    // InternalTableDSL.g:22325:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
+    public final void rule__XFeatureCall__Group_1_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22329:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
+            // InternalTableDSL.g:22330:2: rule__XFeatureCall__Group_1_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_1_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1_2__1"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_1_2__1__Impl"
+    // InternalTableDSL.g:22336:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
+    public final void rule__XFeatureCall__Group_1_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22340:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
+            // InternalTableDSL.g:22341:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            {
+            // InternalTableDSL.g:22341:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+            // InternalTableDSL.g:22342:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
+            }
+            // InternalTableDSL.g:22343:2: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+            // InternalTableDSL.g:22343:3: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__TypeArgumentsAssignment_1_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_1_2__1__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3__0"
+    // InternalTableDSL.g:22352:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
+    public final void rule__XFeatureCall__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22356:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
+            // InternalTableDSL.g:22357:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
+            {
+            pushFollow(FOLLOW_145);
+            rule__XFeatureCall__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3__0"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3__0__Impl"
+    // InternalTableDSL.g:22364:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
+    public final void rule__XFeatureCall__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22368:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
+            // InternalTableDSL.g:22369:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            {
+            // InternalTableDSL.g:22369:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+            // InternalTableDSL.g:22370:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
+            }
+            // InternalTableDSL.g:22371:2: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+            // InternalTableDSL.g:22371:3: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__ExplicitOperationCallAssignment_3_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3__1"
+    // InternalTableDSL.g:22379:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
+    public final void rule__XFeatureCall__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22383:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
+            // InternalTableDSL.g:22384:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
+            {
+            pushFollow(FOLLOW_145);
+            rule__XFeatureCall__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_3__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3__1"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3__1__Impl"
+    // InternalTableDSL.g:22391:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
+    public final void rule__XFeatureCall__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22395:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
+            // InternalTableDSL.g:22396:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            {
+            // InternalTableDSL.g:22396:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+            // InternalTableDSL.g:22397:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
+            }
+            // InternalTableDSL.g:22398:2: ( rule__XFeatureCall__Alternatives_3_1 )?
+            int alt153=2;
+            int LA153_0 = input.LA(1);
+
+            if ( ((LA153_0>=RULE_STRING && LA153_0<=RULE_DECIMAL)||(LA153_0>=19 && LA153_0<=20)||LA153_0==32||LA153_0==36||LA153_0==43||(LA153_0>=48 && LA153_0<=53)||LA153_0==75||LA153_0==132||(LA153_0>=143 && LA153_0<=144)||LA153_0==146||LA153_0==148||(LA153_0>=151 && LA153_0<=159)||LA153_0==161||LA153_0==186||LA153_0==188) ) {
+                alt153=1;
+            }
+            switch (alt153) {
+                case 1 :
+                    // InternalTableDSL.g:22398:3: rule__XFeatureCall__Alternatives_3_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XFeatureCall__Alternatives_3_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3__2"
+    // InternalTableDSL.g:22406:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
+    public final void rule__XFeatureCall__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22410:1: ( rule__XFeatureCall__Group_3__2__Impl )
+            // InternalTableDSL.g:22411:2: rule__XFeatureCall__Group_3__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_3__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3__2"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3__2__Impl"
+    // InternalTableDSL.g:22417:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
+    public final void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22421:1: ( ( ')' ) )
+            // InternalTableDSL.g:22422:1: ( ')' )
+            {
+            // InternalTableDSL.g:22422:1: ( ')' )
+            // InternalTableDSL.g:22423:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0"
+    // InternalTableDSL.g:22433:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
+    public final void rule__XFeatureCall__Group_3_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22437:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
+            // InternalTableDSL.g:22438:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XFeatureCall__Group_3_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_3_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3_1_1__0"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0__Impl"
+    // InternalTableDSL.g:22445:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
+    public final void rule__XFeatureCall__Group_3_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22449:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
+            // InternalTableDSL.g:22450:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            {
+            // InternalTableDSL.g:22450:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+            // InternalTableDSL.g:22451:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
+            }
+            // InternalTableDSL.g:22452:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+            // InternalTableDSL.g:22452:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1"
+    // InternalTableDSL.g:22460:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
+    public final void rule__XFeatureCall__Group_3_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22464:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
+            // InternalTableDSL.g:22465:2: rule__XFeatureCall__Group_3_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_3_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3_1_1__1"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1__Impl"
+    // InternalTableDSL.g:22471:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
+    public final void rule__XFeatureCall__Group_3_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22475:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
+            // InternalTableDSL.g:22476:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            {
+            // InternalTableDSL.g:22476:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+            // InternalTableDSL.g:22477:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
+            }
+            // InternalTableDSL.g:22478:2: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+            loop154:
+            do {
+                int alt154=2;
+                int LA154_0 = input.LA(1);
+
+                if ( (LA154_0==141) ) {
+                    alt154=1;
+                }
+
+
+                switch (alt154) {
+            	case 1 :
+            	    // InternalTableDSL.g:22478:3: rule__XFeatureCall__Group_3_1_1_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XFeatureCall__Group_3_1_1_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop154;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0"
+    // InternalTableDSL.g:22487:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
+    public final void rule__XFeatureCall__Group_3_1_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22491:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
+            // InternalTableDSL.g:22492:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XFeatureCall__Group_3_1_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_3_1_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__0"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
+    // InternalTableDSL.g:22499:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
+    public final void rule__XFeatureCall__Group_3_1_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22503:1: ( ( ',' ) )
+            // InternalTableDSL.g:22504:1: ( ',' )
+            {
+            // InternalTableDSL.g:22504:1: ( ',' )
+            // InternalTableDSL.g:22505:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1"
+    // InternalTableDSL.g:22514:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
+    public final void rule__XFeatureCall__Group_3_1_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22518:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
+            // InternalTableDSL.g:22519:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__Group_3_1_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__1"
+
+
+    // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
+    // InternalTableDSL.g:22525:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
+    public final void rule__XFeatureCall__Group_3_1_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22529:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
+            // InternalTableDSL.g:22530:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            {
+            // InternalTableDSL.g:22530:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+            // InternalTableDSL.g:22531:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
+            }
+            // InternalTableDSL.g:22532:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+            // InternalTableDSL.g:22532:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__0"
+    // InternalTableDSL.g:22541:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
+    public final void rule__XConstructorCall__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22545:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
+            // InternalTableDSL.g:22546:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
+            {
+            pushFollow(FOLLOW_167);
+            rule__XConstructorCall__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__0"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__0__Impl"
+    // InternalTableDSL.g:22553:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
+    public final void rule__XConstructorCall__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22557:1: ( ( () ) )
+            // InternalTableDSL.g:22558:1: ( () )
+            {
+            // InternalTableDSL.g:22558:1: ( () )
+            // InternalTableDSL.g:22559:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
+            }
+            // InternalTableDSL.g:22560:2: ()
+            // InternalTableDSL.g:22560:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__1"
+    // InternalTableDSL.g:22568:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
+    public final void rule__XConstructorCall__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22572:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
+            // InternalTableDSL.g:22573:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__XConstructorCall__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__1"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__1__Impl"
+    // InternalTableDSL.g:22580:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
+    public final void rule__XConstructorCall__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22584:1: ( ( 'new' ) )
+            // InternalTableDSL.g:22585:1: ( 'new' )
+            {
+            // InternalTableDSL.g:22585:1: ( 'new' )
+            // InternalTableDSL.g:22586:2: 'new'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
+            }
+            match(input,154,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__2"
+    // InternalTableDSL.g:22595:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
+    public final void rule__XConstructorCall__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22599:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
+            // InternalTableDSL.g:22600:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
+            {
+            pushFollow(FOLLOW_168);
+            rule__XConstructorCall__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__2"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__2__Impl"
+    // InternalTableDSL.g:22607:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
+    public final void rule__XConstructorCall__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22611:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
+            // InternalTableDSL.g:22612:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            {
+            // InternalTableDSL.g:22612:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+            // InternalTableDSL.g:22613:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
+            }
+            // InternalTableDSL.g:22614:2: ( rule__XConstructorCall__ConstructorAssignment_2 )
+            // InternalTableDSL.g:22614:3: rule__XConstructorCall__ConstructorAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__ConstructorAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__3"
+    // InternalTableDSL.g:22622:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
+    public final void rule__XConstructorCall__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22626:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
+            // InternalTableDSL.g:22627:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
+            {
+            pushFollow(FOLLOW_168);
+            rule__XConstructorCall__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__3"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__3__Impl"
+    // InternalTableDSL.g:22634:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
+    public final void rule__XConstructorCall__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22638:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
+            // InternalTableDSL.g:22639:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            {
+            // InternalTableDSL.g:22639:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+            // InternalTableDSL.g:22640:2: ( rule__XConstructorCall__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
+            }
+            // InternalTableDSL.g:22641:2: ( rule__XConstructorCall__Group_3__0 )?
+            int alt155=2;
+            alt155 = dfa155.predict(input);
+            switch (alt155) {
+                case 1 :
+                    // InternalTableDSL.g:22641:3: rule__XConstructorCall__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XConstructorCall__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__4"
+    // InternalTableDSL.g:22649:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
+    public final void rule__XConstructorCall__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22653:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
+            // InternalTableDSL.g:22654:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
+            {
+            pushFollow(FOLLOW_168);
+            rule__XConstructorCall__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__4"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__4__Impl"
+    // InternalTableDSL.g:22661:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
+    public final void rule__XConstructorCall__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22665:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
+            // InternalTableDSL.g:22666:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            {
+            // InternalTableDSL.g:22666:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+            // InternalTableDSL.g:22667:2: ( rule__XConstructorCall__Group_4__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
+            }
+            // InternalTableDSL.g:22668:2: ( rule__XConstructorCall__Group_4__0 )?
+            int alt156=2;
+            alt156 = dfa156.predict(input);
+            switch (alt156) {
+                case 1 :
+                    // InternalTableDSL.g:22668:3: rule__XConstructorCall__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XConstructorCall__Group_4__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__4__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__5"
+    // InternalTableDSL.g:22676:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
+    public final void rule__XConstructorCall__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22680:1: ( rule__XConstructorCall__Group__5__Impl )
+            // InternalTableDSL.g:22681:2: rule__XConstructorCall__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__5"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group__5__Impl"
+    // InternalTableDSL.g:22687:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
+    public final void rule__XConstructorCall__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22691:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
+            // InternalTableDSL.g:22692:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            {
+            // InternalTableDSL.g:22692:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+            // InternalTableDSL.g:22693:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
+            }
+            // InternalTableDSL.g:22694:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+            int alt157=2;
+            alt157 = dfa157.predict(input);
+            switch (alt157) {
+                case 1 :
+                    // InternalTableDSL.g:22694:3: rule__XConstructorCall__ArgumentsAssignment_5
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XConstructorCall__ArgumentsAssignment_5();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group__5__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3__0"
+    // InternalTableDSL.g:22703:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
+    public final void rule__XConstructorCall__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22707:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
+            // InternalTableDSL.g:22708:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__XConstructorCall__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3__0"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3__0__Impl"
+    // InternalTableDSL.g:22715:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
+    public final void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22719:1: ( ( ( '<' ) ) )
+            // InternalTableDSL.g:22720:1: ( ( '<' ) )
+            {
+            // InternalTableDSL.g:22720:1: ( ( '<' ) )
+            // InternalTableDSL.g:22721:2: ( '<' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
+            }
+            // InternalTableDSL.g:22722:2: ( '<' )
+            // InternalTableDSL.g:22722:3: '<'
+            {
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3__1"
+    // InternalTableDSL.g:22730:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
+    public final void rule__XConstructorCall__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22734:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
+            // InternalTableDSL.g:22735:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
+            {
+            pushFollow(FOLLOW_144);
+            rule__XConstructorCall__Group_3__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_3__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3__1"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3__1__Impl"
+    // InternalTableDSL.g:22742:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
+    public final void rule__XConstructorCall__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22746:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
+            // InternalTableDSL.g:22747:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            {
+            // InternalTableDSL.g:22747:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+            // InternalTableDSL.g:22748:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
+            }
+            // InternalTableDSL.g:22749:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+            // InternalTableDSL.g:22749:3: rule__XConstructorCall__TypeArgumentsAssignment_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__TypeArgumentsAssignment_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3__2"
+    // InternalTableDSL.g:22757:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
+    public final void rule__XConstructorCall__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22761:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
+            // InternalTableDSL.g:22762:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
+            {
+            pushFollow(FOLLOW_144);
+            rule__XConstructorCall__Group_3__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_3__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3__2"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3__2__Impl"
+    // InternalTableDSL.g:22769:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
+    public final void rule__XConstructorCall__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22773:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
+            // InternalTableDSL.g:22774:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            {
+            // InternalTableDSL.g:22774:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+            // InternalTableDSL.g:22775:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
+            }
+            // InternalTableDSL.g:22776:2: ( rule__XConstructorCall__Group_3_2__0 )*
+            loop158:
+            do {
+                int alt158=2;
+                int LA158_0 = input.LA(1);
+
+                if ( (LA158_0==141) ) {
+                    alt158=1;
+                }
+
+
+                switch (alt158) {
+            	case 1 :
+            	    // InternalTableDSL.g:22776:3: rule__XConstructorCall__Group_3_2__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XConstructorCall__Group_3_2__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop158;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3__3"
+    // InternalTableDSL.g:22784:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
+    public final void rule__XConstructorCall__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22788:1: ( rule__XConstructorCall__Group_3__3__Impl )
+            // InternalTableDSL.g:22789:2: rule__XConstructorCall__Group_3__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_3__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3__3"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3__3__Impl"
+    // InternalTableDSL.g:22795:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
+    public final void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22799:1: ( ( '>' ) )
+            // InternalTableDSL.g:22800:1: ( '>' )
+            {
+            // InternalTableDSL.g:22800:1: ( '>' )
+            // InternalTableDSL.g:22801:2: '>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
+            }
+            match(input,31,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3_2__0"
+    // InternalTableDSL.g:22811:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
+    public final void rule__XConstructorCall__Group_3_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22815:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
+            // InternalTableDSL.g:22816:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__XConstructorCall__Group_3_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_3_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3_2__0"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3_2__0__Impl"
+    // InternalTableDSL.g:22823:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
+    public final void rule__XConstructorCall__Group_3_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22827:1: ( ( ',' ) )
+            // InternalTableDSL.g:22828:1: ( ',' )
+            {
+            // InternalTableDSL.g:22828:1: ( ',' )
+            // InternalTableDSL.g:22829:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3_2__0__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3_2__1"
+    // InternalTableDSL.g:22838:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
+    public final void rule__XConstructorCall__Group_3_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22842:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
+            // InternalTableDSL.g:22843:2: rule__XConstructorCall__Group_3_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_3_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3_2__1"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_3_2__1__Impl"
+    // InternalTableDSL.g:22849:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
+    public final void rule__XConstructorCall__Group_3_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22853:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
+            // InternalTableDSL.g:22854:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            {
+            // InternalTableDSL.g:22854:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+            // InternalTableDSL.g:22855:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
+            }
+            // InternalTableDSL.g:22856:2: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+            // InternalTableDSL.g:22856:3: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__TypeArgumentsAssignment_3_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_3_2__1__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4__0"
+    // InternalTableDSL.g:22865:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
+    public final void rule__XConstructorCall__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22869:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
+            // InternalTableDSL.g:22870:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
+            {
+            pushFollow(FOLLOW_145);
+            rule__XConstructorCall__Group_4__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_4__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4__0"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4__0__Impl"
+    // InternalTableDSL.g:22877:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
+    public final void rule__XConstructorCall__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22881:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
+            // InternalTableDSL.g:22882:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            {
+            // InternalTableDSL.g:22882:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
+            // InternalTableDSL.g:22883:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
+            }
+            // InternalTableDSL.g:22884:2: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
+            // InternalTableDSL.g:22884:3: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4__1"
+    // InternalTableDSL.g:22892:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
+    public final void rule__XConstructorCall__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22896:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
+            // InternalTableDSL.g:22897:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
+            {
+            pushFollow(FOLLOW_145);
+            rule__XConstructorCall__Group_4__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_4__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4__1"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4__1__Impl"
+    // InternalTableDSL.g:22904:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
+    public final void rule__XConstructorCall__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22908:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
+            // InternalTableDSL.g:22909:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            {
+            // InternalTableDSL.g:22909:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+            // InternalTableDSL.g:22910:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
+            }
+            // InternalTableDSL.g:22911:2: ( rule__XConstructorCall__Alternatives_4_1 )?
+            int alt159=2;
+            int LA159_0 = input.LA(1);
+
+            if ( ((LA159_0>=RULE_STRING && LA159_0<=RULE_DECIMAL)||(LA159_0>=19 && LA159_0<=20)||LA159_0==32||LA159_0==36||LA159_0==43||(LA159_0>=48 && LA159_0<=53)||LA159_0==75||LA159_0==132||(LA159_0>=143 && LA159_0<=144)||LA159_0==146||LA159_0==148||(LA159_0>=151 && LA159_0<=159)||LA159_0==161||LA159_0==186||LA159_0==188) ) {
+                alt159=1;
+            }
+            switch (alt159) {
+                case 1 :
+                    // InternalTableDSL.g:22911:3: rule__XConstructorCall__Alternatives_4_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XConstructorCall__Alternatives_4_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4__2"
+    // InternalTableDSL.g:22919:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
+    public final void rule__XConstructorCall__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22923:1: ( rule__XConstructorCall__Group_4__2__Impl )
+            // InternalTableDSL.g:22924:2: rule__XConstructorCall__Group_4__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_4__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4__2"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4__2__Impl"
+    // InternalTableDSL.g:22930:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
+    public final void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22934:1: ( ( ')' ) )
+            // InternalTableDSL.g:22935:1: ( ')' )
+            {
+            // InternalTableDSL.g:22935:1: ( ')' )
+            // InternalTableDSL.g:22936:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0"
+    // InternalTableDSL.g:22946:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
+    public final void rule__XConstructorCall__Group_4_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22950:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
+            // InternalTableDSL.g:22951:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XConstructorCall__Group_4_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_4_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4_1_1__0"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0__Impl"
+    // InternalTableDSL.g:22958:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
+    public final void rule__XConstructorCall__Group_4_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22962:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
+            // InternalTableDSL.g:22963:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            {
+            // InternalTableDSL.g:22963:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+            // InternalTableDSL.g:22964:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
+            }
+            // InternalTableDSL.g:22965:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+            // InternalTableDSL.g:22965:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__ArgumentsAssignment_4_1_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1"
+    // InternalTableDSL.g:22973:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
+    public final void rule__XConstructorCall__Group_4_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22977:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
+            // InternalTableDSL.g:22978:2: rule__XConstructorCall__Group_4_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_4_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4_1_1__1"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1__Impl"
+    // InternalTableDSL.g:22984:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
+    public final void rule__XConstructorCall__Group_4_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:22988:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
+            // InternalTableDSL.g:22989:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            {
+            // InternalTableDSL.g:22989:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+            // InternalTableDSL.g:22990:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
+            }
+            // InternalTableDSL.g:22991:2: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+            loop160:
+            do {
+                int alt160=2;
+                int LA160_0 = input.LA(1);
+
+                if ( (LA160_0==141) ) {
+                    alt160=1;
+                }
+
+
+                switch (alt160) {
+            	case 1 :
+            	    // InternalTableDSL.g:22991:3: rule__XConstructorCall__Group_4_1_1_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XConstructorCall__Group_4_1_1_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop160;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0"
+    // InternalTableDSL.g:23000:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
+    public final void rule__XConstructorCall__Group_4_1_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23004:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
+            // InternalTableDSL.g:23005:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XConstructorCall__Group_4_1_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_4_1_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__0"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
+    // InternalTableDSL.g:23012:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
+    public final void rule__XConstructorCall__Group_4_1_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23016:1: ( ( ',' ) )
+            // InternalTableDSL.g:23017:1: ( ',' )
+            {
+            // InternalTableDSL.g:23017:1: ( ',' )
+            // InternalTableDSL.g:23018:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1"
+    // InternalTableDSL.g:23027:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
+    public final void rule__XConstructorCall__Group_4_1_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23031:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
+            // InternalTableDSL.g:23032:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__Group_4_1_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__1"
+
+
+    // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
+    // InternalTableDSL.g:23038:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
+    public final void rule__XConstructorCall__Group_4_1_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23042:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
+            // InternalTableDSL.g:23043:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            {
+            // InternalTableDSL.g:23043:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+            // InternalTableDSL.g:23044:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
+            }
+            // InternalTableDSL.g:23045:2: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+            // InternalTableDSL.g:23045:3: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__XBooleanLiteral__Group__0"
+    // InternalTableDSL.g:23054:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
+    public final void rule__XBooleanLiteral__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23058:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
+            // InternalTableDSL.g:23059:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
+            {
+            pushFollow(FOLLOW_169);
+            rule__XBooleanLiteral__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XBooleanLiteral__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBooleanLiteral__Group__0"
+
+
+    // $ANTLR start "rule__XBooleanLiteral__Group__0__Impl"
+    // InternalTableDSL.g:23066:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
+    public final void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23070:1: ( ( () ) )
+            // InternalTableDSL.g:23071:1: ( () )
+            {
+            // InternalTableDSL.g:23071:1: ( () )
+            // InternalTableDSL.g:23072:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
+            }
+            // InternalTableDSL.g:23073:2: ()
+            // InternalTableDSL.g:23073:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBooleanLiteral__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XBooleanLiteral__Group__1"
+    // InternalTableDSL.g:23081:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
+    public final void rule__XBooleanLiteral__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23085:1: ( rule__XBooleanLiteral__Group__1__Impl )
+            // InternalTableDSL.g:23086:2: rule__XBooleanLiteral__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBooleanLiteral__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBooleanLiteral__Group__1"
+
+
+    // $ANTLR start "rule__XBooleanLiteral__Group__1__Impl"
+    // InternalTableDSL.g:23092:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
+    public final void rule__XBooleanLiteral__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23096:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
+            // InternalTableDSL.g:23097:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            {
+            // InternalTableDSL.g:23097:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+            // InternalTableDSL.g:23098:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
+            }
+            // InternalTableDSL.g:23099:2: ( rule__XBooleanLiteral__Alternatives_1 )
+            // InternalTableDSL.g:23099:3: rule__XBooleanLiteral__Alternatives_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XBooleanLiteral__Alternatives_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBooleanLiteral__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XNullLiteral__Group__0"
+    // InternalTableDSL.g:23108:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
+    public final void rule__XNullLiteral__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23112:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
+            // InternalTableDSL.g:23113:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
+            {
+            pushFollow(FOLLOW_170);
+            rule__XNullLiteral__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XNullLiteral__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XNullLiteral__Group__0"
+
+
+    // $ANTLR start "rule__XNullLiteral__Group__0__Impl"
+    // InternalTableDSL.g:23120:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
+    public final void rule__XNullLiteral__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23124:1: ( ( () ) )
+            // InternalTableDSL.g:23125:1: ( () )
+            {
+            // InternalTableDSL.g:23125:1: ( () )
+            // InternalTableDSL.g:23126:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
+            }
+            // InternalTableDSL.g:23127:2: ()
+            // InternalTableDSL.g:23127:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XNullLiteral__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XNullLiteral__Group__1"
+    // InternalTableDSL.g:23135:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
+    public final void rule__XNullLiteral__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23139:1: ( rule__XNullLiteral__Group__1__Impl )
+            // InternalTableDSL.g:23140:2: rule__XNullLiteral__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XNullLiteral__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XNullLiteral__Group__1"
+
+
+    // $ANTLR start "rule__XNullLiteral__Group__1__Impl"
+    // InternalTableDSL.g:23146:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
+    public final void rule__XNullLiteral__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23150:1: ( ( 'null' ) )
+            // InternalTableDSL.g:23151:1: ( 'null' )
+            {
+            // InternalTableDSL.g:23151:1: ( 'null' )
+            // InternalTableDSL.g:23152:2: 'null'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
+            }
+            match(input,155,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XNullLiteral__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XNumberLiteral__Group__0"
+    // InternalTableDSL.g:23162:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
+    public final void rule__XNumberLiteral__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23166:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
+            // InternalTableDSL.g:23167:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
+            {
+            pushFollow(FOLLOW_20);
+            rule__XNumberLiteral__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XNumberLiteral__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XNumberLiteral__Group__0"
+
+
+    // $ANTLR start "rule__XNumberLiteral__Group__0__Impl"
+    // InternalTableDSL.g:23174:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
+    public final void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23178:1: ( ( () ) )
+            // InternalTableDSL.g:23179:1: ( () )
+            {
+            // InternalTableDSL.g:23179:1: ( () )
+            // InternalTableDSL.g:23180:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
+            }
+            // InternalTableDSL.g:23181:2: ()
+            // InternalTableDSL.g:23181:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XNumberLiteral__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XNumberLiteral__Group__1"
+    // InternalTableDSL.g:23189:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
+    public final void rule__XNumberLiteral__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23193:1: ( rule__XNumberLiteral__Group__1__Impl )
+            // InternalTableDSL.g:23194:2: rule__XNumberLiteral__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XNumberLiteral__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XNumberLiteral__Group__1"
+
+
+    // $ANTLR start "rule__XNumberLiteral__Group__1__Impl"
+    // InternalTableDSL.g:23200:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
+    public final void rule__XNumberLiteral__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23204:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
+            // InternalTableDSL.g:23205:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            {
+            // InternalTableDSL.g:23205:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+            // InternalTableDSL.g:23206:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
+            }
+            // InternalTableDSL.g:23207:2: ( rule__XNumberLiteral__ValueAssignment_1 )
+            // InternalTableDSL.g:23207:3: rule__XNumberLiteral__ValueAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XNumberLiteral__ValueAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XNumberLiteral__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XStringLiteral__Group__0"
+    // InternalTableDSL.g:23216:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
+    public final void rule__XStringLiteral__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23220:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
+            // InternalTableDSL.g:23221:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
+            {
+            pushFollow(FOLLOW_14);
+            rule__XStringLiteral__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XStringLiteral__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XStringLiteral__Group__0"
+
+
+    // $ANTLR start "rule__XStringLiteral__Group__0__Impl"
+    // InternalTableDSL.g:23228:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
+    public final void rule__XStringLiteral__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23232:1: ( ( () ) )
+            // InternalTableDSL.g:23233:1: ( () )
+            {
+            // InternalTableDSL.g:23233:1: ( () )
+            // InternalTableDSL.g:23234:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
+            }
+            // InternalTableDSL.g:23235:2: ()
+            // InternalTableDSL.g:23235:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XStringLiteral__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XStringLiteral__Group__1"
+    // InternalTableDSL.g:23243:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
+    public final void rule__XStringLiteral__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23247:1: ( rule__XStringLiteral__Group__1__Impl )
+            // InternalTableDSL.g:23248:2: rule__XStringLiteral__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XStringLiteral__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XStringLiteral__Group__1"
+
+
+    // $ANTLR start "rule__XStringLiteral__Group__1__Impl"
+    // InternalTableDSL.g:23254:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
+    public final void rule__XStringLiteral__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23258:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
+            // InternalTableDSL.g:23259:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            {
+            // InternalTableDSL.g:23259:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+            // InternalTableDSL.g:23260:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
+            }
+            // InternalTableDSL.g:23261:2: ( rule__XStringLiteral__ValueAssignment_1 )
+            // InternalTableDSL.g:23261:3: rule__XStringLiteral__ValueAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XStringLiteral__ValueAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XStringLiteral__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__0"
+    // InternalTableDSL.g:23270:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
+    public final void rule__XTypeLiteral__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23274:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
+            // InternalTableDSL.g:23275:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
+            {
+            pushFollow(FOLLOW_171);
+            rule__XTypeLiteral__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTypeLiteral__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__0"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__0__Impl"
+    // InternalTableDSL.g:23282:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
+    public final void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23286:1: ( ( () ) )
+            // InternalTableDSL.g:23287:1: ( () )
+            {
+            // InternalTableDSL.g:23287:1: ( () )
+            // InternalTableDSL.g:23288:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
+            }
+            // InternalTableDSL.g:23289:2: ()
+            // InternalTableDSL.g:23289:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__1"
+    // InternalTableDSL.g:23297:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
+    public final void rule__XTypeLiteral__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23301:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
+            // InternalTableDSL.g:23302:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
+            {
+            pushFollow(FOLLOW_103);
+            rule__XTypeLiteral__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTypeLiteral__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__1"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__1__Impl"
+    // InternalTableDSL.g:23309:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
+    public final void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23313:1: ( ( 'typeof' ) )
+            // InternalTableDSL.g:23314:1: ( 'typeof' )
+            {
+            // InternalTableDSL.g:23314:1: ( 'typeof' )
+            // InternalTableDSL.g:23315:2: 'typeof'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
+            }
+            match(input,156,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__2"
+    // InternalTableDSL.g:23324:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
+    public final void rule__XTypeLiteral__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23328:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
+            // InternalTableDSL.g:23329:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
+            {
+            pushFollow(FOLLOW_7);
+            rule__XTypeLiteral__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTypeLiteral__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__2"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__2__Impl"
+    // InternalTableDSL.g:23336:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
+    public final void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23340:1: ( ( '(' ) )
+            // InternalTableDSL.g:23341:1: ( '(' )
+            {
+            // InternalTableDSL.g:23341:1: ( '(' )
+            // InternalTableDSL.g:23342:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__3"
+    // InternalTableDSL.g:23351:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
+    public final void rule__XTypeLiteral__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23355:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
+            // InternalTableDSL.g:23356:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
+            {
+            pushFollow(FOLLOW_172);
+            rule__XTypeLiteral__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTypeLiteral__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__3"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__3__Impl"
+    // InternalTableDSL.g:23363:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
+    public final void rule__XTypeLiteral__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23367:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
+            // InternalTableDSL.g:23368:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            {
+            // InternalTableDSL.g:23368:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+            // InternalTableDSL.g:23369:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
+            }
+            // InternalTableDSL.g:23370:2: ( rule__XTypeLiteral__TypeAssignment_3 )
+            // InternalTableDSL.g:23370:3: rule__XTypeLiteral__TypeAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTypeLiteral__TypeAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__4"
+    // InternalTableDSL.g:23378:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
+    public final void rule__XTypeLiteral__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23382:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
+            // InternalTableDSL.g:23383:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
+            {
+            pushFollow(FOLLOW_172);
+            rule__XTypeLiteral__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTypeLiteral__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__4"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__4__Impl"
+    // InternalTableDSL.g:23390:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
+    public final void rule__XTypeLiteral__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23394:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
+            // InternalTableDSL.g:23395:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            {
+            // InternalTableDSL.g:23395:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+            // InternalTableDSL.g:23396:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
+            }
+            // InternalTableDSL.g:23397:2: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+            loop161:
+            do {
+                int alt161=2;
+                int LA161_0 = input.LA(1);
+
+                if ( (LA161_0==144) ) {
+                    alt161=1;
+                }
+
+
+                switch (alt161) {
+            	case 1 :
+            	    // InternalTableDSL.g:23397:3: rule__XTypeLiteral__ArrayDimensionsAssignment_4
+            	    {
+            	    pushFollow(FOLLOW_173);
+            	    rule__XTypeLiteral__ArrayDimensionsAssignment_4();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop161;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__4__Impl"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__5"
+    // InternalTableDSL.g:23405:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
+    public final void rule__XTypeLiteral__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23409:1: ( rule__XTypeLiteral__Group__5__Impl )
+            // InternalTableDSL.g:23410:2: rule__XTypeLiteral__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTypeLiteral__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__5"
+
+
+    // $ANTLR start "rule__XTypeLiteral__Group__5__Impl"
+    // InternalTableDSL.g:23416:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
+    public final void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23420:1: ( ( ')' ) )
+            // InternalTableDSL.g:23421:1: ( ')' )
+            {
+            // InternalTableDSL.g:23421:1: ( ')' )
+            // InternalTableDSL.g:23422:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__Group__5__Impl"
+
+
+    // $ANTLR start "rule__XThrowExpression__Group__0"
+    // InternalTableDSL.g:23432:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
+    public final void rule__XThrowExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23436:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
+            // InternalTableDSL.g:23437:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
+            {
+            pushFollow(FOLLOW_174);
+            rule__XThrowExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XThrowExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XThrowExpression__Group__0"
+
+
+    // $ANTLR start "rule__XThrowExpression__Group__0__Impl"
+    // InternalTableDSL.g:23444:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
+    public final void rule__XThrowExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23448:1: ( ( () ) )
+            // InternalTableDSL.g:23449:1: ( () )
+            {
+            // InternalTableDSL.g:23449:1: ( () )
+            // InternalTableDSL.g:23450:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
+            }
+            // InternalTableDSL.g:23451:2: ()
+            // InternalTableDSL.g:23451:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XThrowExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XThrowExpression__Group__1"
+    // InternalTableDSL.g:23459:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
+    public final void rule__XThrowExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23463:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
+            // InternalTableDSL.g:23464:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
+            {
+            pushFollow(FOLLOW_107);
+            rule__XThrowExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XThrowExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XThrowExpression__Group__1"
+
+
+    // $ANTLR start "rule__XThrowExpression__Group__1__Impl"
+    // InternalTableDSL.g:23471:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
+    public final void rule__XThrowExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23475:1: ( ( 'throw' ) )
+            // InternalTableDSL.g:23476:1: ( 'throw' )
+            {
+            // InternalTableDSL.g:23476:1: ( 'throw' )
+            // InternalTableDSL.g:23477:2: 'throw'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
+            }
+            match(input,157,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XThrowExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XThrowExpression__Group__2"
+    // InternalTableDSL.g:23486:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
+    public final void rule__XThrowExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23490:1: ( rule__XThrowExpression__Group__2__Impl )
+            // InternalTableDSL.g:23491:2: rule__XThrowExpression__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XThrowExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XThrowExpression__Group__2"
+
+
+    // $ANTLR start "rule__XThrowExpression__Group__2__Impl"
+    // InternalTableDSL.g:23497:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
+    public final void rule__XThrowExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23501:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
+            // InternalTableDSL.g:23502:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            {
+            // InternalTableDSL.g:23502:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+            // InternalTableDSL.g:23503:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
+            }
+            // InternalTableDSL.g:23504:2: ( rule__XThrowExpression__ExpressionAssignment_2 )
+            // InternalTableDSL.g:23504:3: rule__XThrowExpression__ExpressionAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XThrowExpression__ExpressionAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XThrowExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XReturnExpression__Group__0"
+    // InternalTableDSL.g:23513:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
+    public final void rule__XReturnExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23517:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
+            // InternalTableDSL.g:23518:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
+            {
+            pushFollow(FOLLOW_175);
+            rule__XReturnExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XReturnExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XReturnExpression__Group__0"
+
+
+    // $ANTLR start "rule__XReturnExpression__Group__0__Impl"
+    // InternalTableDSL.g:23525:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
+    public final void rule__XReturnExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23529:1: ( ( () ) )
+            // InternalTableDSL.g:23530:1: ( () )
+            {
+            // InternalTableDSL.g:23530:1: ( () )
+            // InternalTableDSL.g:23531:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
+            }
+            // InternalTableDSL.g:23532:2: ()
+            // InternalTableDSL.g:23532:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XReturnExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XReturnExpression__Group__1"
+    // InternalTableDSL.g:23540:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
+    public final void rule__XReturnExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23544:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
+            // InternalTableDSL.g:23545:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
+            {
+            pushFollow(FOLLOW_107);
+            rule__XReturnExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XReturnExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XReturnExpression__Group__1"
+
+
+    // $ANTLR start "rule__XReturnExpression__Group__1__Impl"
+    // InternalTableDSL.g:23552:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
+    public final void rule__XReturnExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23556:1: ( ( 'return' ) )
+            // InternalTableDSL.g:23557:1: ( 'return' )
+            {
+            // InternalTableDSL.g:23557:1: ( 'return' )
+            // InternalTableDSL.g:23558:2: 'return'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
+            }
+            match(input,158,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XReturnExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XReturnExpression__Group__2"
+    // InternalTableDSL.g:23567:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
+    public final void rule__XReturnExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23571:1: ( rule__XReturnExpression__Group__2__Impl )
+            // InternalTableDSL.g:23572:2: rule__XReturnExpression__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XReturnExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XReturnExpression__Group__2"
+
+
+    // $ANTLR start "rule__XReturnExpression__Group__2__Impl"
+    // InternalTableDSL.g:23578:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
+    public final void rule__XReturnExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23582:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
+            // InternalTableDSL.g:23583:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            {
+            // InternalTableDSL.g:23583:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+            // InternalTableDSL.g:23584:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
+            }
+            // InternalTableDSL.g:23585:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+            int alt162=2;
+            alt162 = dfa162.predict(input);
+            switch (alt162) {
+                case 1 :
+                    // InternalTableDSL.g:23585:3: rule__XReturnExpression__ExpressionAssignment_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XReturnExpression__ExpressionAssignment_2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XReturnExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0"
+    // InternalTableDSL.g:23594:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
+    public final void rule__XTryCatchFinallyExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23598:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
+            // InternalTableDSL.g:23599:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
+            {
+            pushFollow(FOLLOW_176);
+            rule__XTryCatchFinallyExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__0"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0__Impl"
+    // InternalTableDSL.g:23606:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
+    public final void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23610:1: ( ( () ) )
+            // InternalTableDSL.g:23611:1: ( () )
+            {
+            // InternalTableDSL.g:23611:1: ( () )
+            // InternalTableDSL.g:23612:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
+            }
+            // InternalTableDSL.g:23613:2: ()
+            // InternalTableDSL.g:23613:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1"
+    // InternalTableDSL.g:23621:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
+    public final void rule__XTryCatchFinallyExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23625:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
+            // InternalTableDSL.g:23626:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
+            {
+            pushFollow(FOLLOW_107);
+            rule__XTryCatchFinallyExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__1"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1__Impl"
+    // InternalTableDSL.g:23633:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
+    public final void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23637:1: ( ( 'try' ) )
+            // InternalTableDSL.g:23638:1: ( 'try' )
+            {
+            // InternalTableDSL.g:23638:1: ( 'try' )
+            // InternalTableDSL.g:23639:2: 'try'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
+            }
+            match(input,159,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2"
+    // InternalTableDSL.g:23648:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
+    public final void rule__XTryCatchFinallyExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23652:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
+            // InternalTableDSL.g:23653:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
+            {
+            pushFollow(FOLLOW_177);
+            rule__XTryCatchFinallyExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__2"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2__Impl"
+    // InternalTableDSL.g:23660:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
+    public final void rule__XTryCatchFinallyExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23664:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
+            // InternalTableDSL.g:23665:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            {
+            // InternalTableDSL.g:23665:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+            // InternalTableDSL.g:23666:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
+            }
+            // InternalTableDSL.g:23667:2: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+            // InternalTableDSL.g:23667:3: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__ExpressionAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3"
+    // InternalTableDSL.g:23675:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
+    public final void rule__XTryCatchFinallyExpression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23679:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
+            // InternalTableDSL.g:23680:2: rule__XTryCatchFinallyExpression__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__3"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3__Impl"
+    // InternalTableDSL.g:23686:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
+    public final void rule__XTryCatchFinallyExpression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23690:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
+            // InternalTableDSL.g:23691:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            {
+            // InternalTableDSL.g:23691:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+            // InternalTableDSL.g:23692:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
+            }
+            // InternalTableDSL.g:23693:2: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+            // InternalTableDSL.g:23693:3: rule__XTryCatchFinallyExpression__Alternatives_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Alternatives_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0"
+    // InternalTableDSL.g:23702:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23706:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
+            // InternalTableDSL.g:23707:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
+            {
+            pushFollow(FOLLOW_178);
+            rule__XTryCatchFinallyExpression__Group_3_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group_3_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__0"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
+    // InternalTableDSL.g:23714:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23718:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
+            // InternalTableDSL.g:23719:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            {
+            // InternalTableDSL.g:23719:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+            // InternalTableDSL.g:23720:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            {
+            // InternalTableDSL.g:23720:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
+            // InternalTableDSL.g:23721:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
+            }
+            // InternalTableDSL.g:23722:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+            // InternalTableDSL.g:23722:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            {
+            pushFollow(FOLLOW_179);
+            rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
+            }
+
+            }
+
+            // InternalTableDSL.g:23725:2: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+            // InternalTableDSL.g:23726:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
+            }
+            // InternalTableDSL.g:23727:3: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+            loop163:
+            do {
+                int alt163=2;
+                int LA163_0 = input.LA(1);
+
+                if ( (LA163_0==162) ) {
+                    int LA163_2 = input.LA(2);
+
+                    if ( (synpred243_InternalTableDSL()) ) {
+                        alt163=1;
+                    }
+
+
+                }
+
+
+                switch (alt163) {
+            	case 1 :
+            	    // InternalTableDSL.g:23727:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+            	    {
+            	    pushFollow(FOLLOW_179);
+            	    rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop163;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1"
+    // InternalTableDSL.g:23736:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23740:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
+            // InternalTableDSL.g:23741:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group_3_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__1"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
+    // InternalTableDSL.g:23747:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23751:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
+            // InternalTableDSL.g:23752:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            {
+            // InternalTableDSL.g:23752:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+            // InternalTableDSL.g:23753:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
+            }
+            // InternalTableDSL.g:23754:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+            int alt164=2;
+            int LA164_0 = input.LA(1);
+
+            if ( (LA164_0==160) ) {
+                int LA164_1 = input.LA(2);
+
+                if ( (synpred244_InternalTableDSL()) ) {
+                    alt164=1;
+                }
+            }
+            switch (alt164) {
+                case 1 :
+                    // InternalTableDSL.g:23754:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XTryCatchFinallyExpression__Group_3_0_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
+    // InternalTableDSL.g:23763:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23767:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
+            // InternalTableDSL.g:23768:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group_3_0_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
+    // InternalTableDSL.g:23775:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23779:1: ( ( ( 'finally' ) ) )
+            // InternalTableDSL.g:23780:1: ( ( 'finally' ) )
+            {
+            // InternalTableDSL.g:23780:1: ( ( 'finally' ) )
+            // InternalTableDSL.g:23781:2: ( 'finally' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
+            }
+            // InternalTableDSL.g:23782:2: ( 'finally' )
+            // InternalTableDSL.g:23782:3: 'finally'
+            {
+            match(input,160,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
+    // InternalTableDSL.g:23790:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23794:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
+            // InternalTableDSL.g:23795:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
+    // InternalTableDSL.g:23801:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23805:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
+            // InternalTableDSL.g:23806:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            {
+            // InternalTableDSL.g:23806:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+            // InternalTableDSL.g:23807:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
+            }
+            // InternalTableDSL.g:23808:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+            // InternalTableDSL.g:23808:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0"
+    // InternalTableDSL.g:23817:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23821:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
+            // InternalTableDSL.g:23822:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XTryCatchFinallyExpression__Group_3_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group_3_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__0"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
+    // InternalTableDSL.g:23829:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23833:1: ( ( 'finally' ) )
+            // InternalTableDSL.g:23834:1: ( 'finally' )
+            {
+            // InternalTableDSL.g:23834:1: ( 'finally' )
+            // InternalTableDSL.g:23835:2: 'finally'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
+            }
+            match(input,160,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1"
+    // InternalTableDSL.g:23844:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23848:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
+            // InternalTableDSL.g:23849:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__Group_3_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__1"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
+    // InternalTableDSL.g:23855:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
+    public final void rule__XTryCatchFinallyExpression__Group_3_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23859:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
+            // InternalTableDSL.g:23860:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            {
+            // InternalTableDSL.g:23860:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+            // InternalTableDSL.g:23861:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
+            }
+            // InternalTableDSL.g:23862:2: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+            // InternalTableDSL.g:23862:3: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group__0"
+    // InternalTableDSL.g:23871:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
+    public final void rule__XSynchronizedExpression__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23875:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
+            // InternalTableDSL.g:23876:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
+            {
+            pushFollow(FOLLOW_107);
+            rule__XSynchronizedExpression__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group__0"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group__0__Impl"
+    // InternalTableDSL.g:23883:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
+    public final void rule__XSynchronizedExpression__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23887:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
+            // InternalTableDSL.g:23888:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            {
+            // InternalTableDSL.g:23888:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
+            // InternalTableDSL.g:23889:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
+            }
+            // InternalTableDSL.g:23890:2: ( rule__XSynchronizedExpression__Group_0__0 )
+            // InternalTableDSL.g:23890:3: rule__XSynchronizedExpression__Group_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group__1"
+    // InternalTableDSL.g:23898:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
+    public final void rule__XSynchronizedExpression__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23902:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
+            // InternalTableDSL.g:23903:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
+            {
+            pushFollow(FOLLOW_85);
+            rule__XSynchronizedExpression__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group__1"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group__1__Impl"
+    // InternalTableDSL.g:23910:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
+    public final void rule__XSynchronizedExpression__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23914:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
+            // InternalTableDSL.g:23915:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            {
+            // InternalTableDSL.g:23915:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
+            // InternalTableDSL.g:23916:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
+            }
+            // InternalTableDSL.g:23917:2: ( rule__XSynchronizedExpression__ParamAssignment_1 )
+            // InternalTableDSL.g:23917:3: rule__XSynchronizedExpression__ParamAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__ParamAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group__2"
+    // InternalTableDSL.g:23925:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
+    public final void rule__XSynchronizedExpression__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23929:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
+            // InternalTableDSL.g:23930:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
+            {
+            pushFollow(FOLLOW_107);
+            rule__XSynchronizedExpression__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group__2"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group__2__Impl"
+    // InternalTableDSL.g:23937:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
+    public final void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23941:1: ( ( ')' ) )
+            // InternalTableDSL.g:23942:1: ( ')' )
+            {
+            // InternalTableDSL.g:23942:1: ( ')' )
+            // InternalTableDSL.g:23943:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group__3"
+    // InternalTableDSL.g:23952:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
+    public final void rule__XSynchronizedExpression__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23956:1: ( rule__XSynchronizedExpression__Group__3__Impl )
+            // InternalTableDSL.g:23957:2: rule__XSynchronizedExpression__Group__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group__3"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group__3__Impl"
+    // InternalTableDSL.g:23963:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
+    public final void rule__XSynchronizedExpression__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23967:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
+            // InternalTableDSL.g:23968:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            {
+            // InternalTableDSL.g:23968:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
+            // InternalTableDSL.g:23969:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
+            }
+            // InternalTableDSL.g:23970:2: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
+            // InternalTableDSL.g:23970:3: rule__XSynchronizedExpression__ExpressionAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__ExpressionAssignment_3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group_0__0"
+    // InternalTableDSL.g:23979:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
+    public final void rule__XSynchronizedExpression__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23983:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
+            // InternalTableDSL.g:23984:2: rule__XSynchronizedExpression__Group_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group_0__0"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group_0__0__Impl"
+    // InternalTableDSL.g:23990:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
+    public final void rule__XSynchronizedExpression__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:23994:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
+            // InternalTableDSL.g:23995:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            {
+            // InternalTableDSL.g:23995:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
+            // InternalTableDSL.g:23996:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
+            }
+            // InternalTableDSL.g:23997:2: ( rule__XSynchronizedExpression__Group_0_0__0 )
+            // InternalTableDSL.g:23997:3: rule__XSynchronizedExpression__Group_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0"
+    // InternalTableDSL.g:24006:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
+    public final void rule__XSynchronizedExpression__Group_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24010:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
+            // InternalTableDSL.g:24011:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
+            {
+            pushFollow(FOLLOW_180);
+            rule__XSynchronizedExpression__Group_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__0"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0__Impl"
+    // InternalTableDSL.g:24018:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
+    public final void rule__XSynchronizedExpression__Group_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24022:1: ( ( () ) )
+            // InternalTableDSL.g:24023:1: ( () )
+            {
+            // InternalTableDSL.g:24023:1: ( () )
+            // InternalTableDSL.g:24024:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
+            }
+            // InternalTableDSL.g:24025:2: ()
+            // InternalTableDSL.g:24025:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1"
+    // InternalTableDSL.g:24033:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
+    public final void rule__XSynchronizedExpression__Group_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24037:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
+            // InternalTableDSL.g:24038:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
+            {
+            pushFollow(FOLLOW_103);
+            rule__XSynchronizedExpression__Group_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group_0_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__1"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1__Impl"
+    // InternalTableDSL.g:24045:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
+    public final void rule__XSynchronizedExpression__Group_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24049:1: ( ( 'synchronized' ) )
+            // InternalTableDSL.g:24050:1: ( 'synchronized' )
+            {
+            // InternalTableDSL.g:24050:1: ( 'synchronized' )
+            // InternalTableDSL.g:24051:2: 'synchronized'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
+            }
+            match(input,161,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2"
+    // InternalTableDSL.g:24060:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
+    public final void rule__XSynchronizedExpression__Group_0_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24064:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
+            // InternalTableDSL.g:24065:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XSynchronizedExpression__Group_0_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__2"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2__Impl"
+    // InternalTableDSL.g:24071:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
+    public final void rule__XSynchronizedExpression__Group_0_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24075:1: ( ( '(' ) )
+            // InternalTableDSL.g:24076:1: ( '(' )
+            {
+            // InternalTableDSL.g:24076:1: ( '(' )
+            // InternalTableDSL.g:24077:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__2__Impl"
+
+
+    // $ANTLR start "rule__XCatchClause__Group__0"
+    // InternalTableDSL.g:24087:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
+    public final void rule__XCatchClause__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24091:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
+            // InternalTableDSL.g:24092:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
+            {
+            pushFollow(FOLLOW_103);
+            rule__XCatchClause__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCatchClause__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__Group__0"
+
+
+    // $ANTLR start "rule__XCatchClause__Group__0__Impl"
+    // InternalTableDSL.g:24099:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
+    public final void rule__XCatchClause__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24103:1: ( ( ( 'catch' ) ) )
+            // InternalTableDSL.g:24104:1: ( ( 'catch' ) )
+            {
+            // InternalTableDSL.g:24104:1: ( ( 'catch' ) )
+            // InternalTableDSL.g:24105:2: ( 'catch' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
+            }
+            // InternalTableDSL.g:24106:2: ( 'catch' )
+            // InternalTableDSL.g:24106:3: 'catch'
+            {
+            match(input,162,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XCatchClause__Group__1"
+    // InternalTableDSL.g:24114:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
+    public final void rule__XCatchClause__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24118:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
+            // InternalTableDSL.g:24119:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
+            {
+            pushFollow(FOLLOW_123);
+            rule__XCatchClause__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCatchClause__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__Group__1"
+
+
+    // $ANTLR start "rule__XCatchClause__Group__1__Impl"
+    // InternalTableDSL.g:24126:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
+    public final void rule__XCatchClause__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24130:1: ( ( '(' ) )
+            // InternalTableDSL.g:24131:1: ( '(' )
+            {
+            // InternalTableDSL.g:24131:1: ( '(' )
+            // InternalTableDSL.g:24132:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XCatchClause__Group__2"
+    // InternalTableDSL.g:24141:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
+    public final void rule__XCatchClause__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24145:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
+            // InternalTableDSL.g:24146:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
+            {
+            pushFollow(FOLLOW_85);
+            rule__XCatchClause__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCatchClause__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__Group__2"
+
+
+    // $ANTLR start "rule__XCatchClause__Group__2__Impl"
+    // InternalTableDSL.g:24153:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
+    public final void rule__XCatchClause__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24157:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
+            // InternalTableDSL.g:24158:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            {
+            // InternalTableDSL.g:24158:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+            // InternalTableDSL.g:24159:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
+            }
+            // InternalTableDSL.g:24160:2: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+            // InternalTableDSL.g:24160:3: rule__XCatchClause__DeclaredParamAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCatchClause__DeclaredParamAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XCatchClause__Group__3"
+    // InternalTableDSL.g:24168:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
+    public final void rule__XCatchClause__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24172:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
+            // InternalTableDSL.g:24173:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
+            {
+            pushFollow(FOLLOW_107);
+            rule__XCatchClause__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XCatchClause__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__Group__3"
+
+
+    // $ANTLR start "rule__XCatchClause__Group__3__Impl"
+    // InternalTableDSL.g:24180:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
+    public final void rule__XCatchClause__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24184:1: ( ( ')' ) )
+            // InternalTableDSL.g:24185:1: ( ')' )
+            {
+            // InternalTableDSL.g:24185:1: ( ')' )
+            // InternalTableDSL.g:24186:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__Group__3__Impl"
+
+
+    // $ANTLR start "rule__XCatchClause__Group__4"
+    // InternalTableDSL.g:24195:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
+    public final void rule__XCatchClause__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24199:1: ( rule__XCatchClause__Group__4__Impl )
+            // InternalTableDSL.g:24200:2: rule__XCatchClause__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCatchClause__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__Group__4"
+
+
+    // $ANTLR start "rule__XCatchClause__Group__4__Impl"
+    // InternalTableDSL.g:24206:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
+    public final void rule__XCatchClause__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24210:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
+            // InternalTableDSL.g:24211:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            {
+            // InternalTableDSL.g:24211:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+            // InternalTableDSL.g:24212:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
+            }
+            // InternalTableDSL.g:24213:2: ( rule__XCatchClause__ExpressionAssignment_4 )
+            // InternalTableDSL.g:24213:3: rule__XCatchClause__ExpressionAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__XCatchClause__ExpressionAssignment_4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__Group__4__Impl"
+
+
+    // $ANTLR start "rule__QualifiedName__Group__0"
+    // InternalTableDSL.g:24222:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    public final void rule__QualifiedName__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24226:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalTableDSL.g:24227:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            {
+            pushFollow(FOLLOW_68);
+            rule__QualifiedName__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__QualifiedName__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group__0"
+
+
+    // $ANTLR start "rule__QualifiedName__Group__0__Impl"
+    // InternalTableDSL.g:24234:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
+    public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24238:1: ( ( ruleValidID ) )
+            // InternalTableDSL.g:24239:1: ( ruleValidID )
+            {
+            // InternalTableDSL.g:24239:1: ( ruleValidID )
+            // InternalTableDSL.g:24240:2: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group__0__Impl"
+
+
+    // $ANTLR start "rule__QualifiedName__Group__1"
+    // InternalTableDSL.g:24249:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    public final void rule__QualifiedName__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24253:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalTableDSL.g:24254:2: rule__QualifiedName__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__QualifiedName__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group__1"
+
+
+    // $ANTLR start "rule__QualifiedName__Group__1__Impl"
+    // InternalTableDSL.g:24260:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24264:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalTableDSL.g:24265:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            {
+            // InternalTableDSL.g:24265:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalTableDSL.g:24266:2: ( rule__QualifiedName__Group_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:24267:2: ( rule__QualifiedName__Group_1__0 )*
+            loop165:
+            do {
+                int alt165=2;
+                int LA165_0 = input.LA(1);
+
+                if ( (LA165_0==46) ) {
+                    int LA165_2 = input.LA(2);
+
+                    if ( (LA165_2==RULE_ID) ) {
+                        int LA165_3 = input.LA(3);
+
+                        if ( (synpred245_InternalTableDSL()) ) {
+                            alt165=1;
+                        }
+
+
+                    }
+
+
+                }
+
+
+                switch (alt165) {
+            	case 1 :
+            	    // InternalTableDSL.g:24267:3: rule__QualifiedName__Group_1__0
+            	    {
+            	    pushFollow(FOLLOW_181);
+            	    rule__QualifiedName__Group_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop165;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group__1__Impl"
+
+
+    // $ANTLR start "rule__QualifiedName__Group_1__0"
+    // InternalTableDSL.g:24276:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    public final void rule__QualifiedName__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24280:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalTableDSL.g:24281:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__QualifiedName__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__QualifiedName__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group_1__0"
+
+
+    // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
+    // InternalTableDSL.g:24288:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
+    public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24292:1: ( ( ( '.' ) ) )
+            // InternalTableDSL.g:24293:1: ( ( '.' ) )
+            {
+            // InternalTableDSL.g:24293:1: ( ( '.' ) )
+            // InternalTableDSL.g:24294:2: ( '.' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
+            }
+            // InternalTableDSL.g:24295:2: ( '.' )
+            // InternalTableDSL.g:24295:3: '.'
+            {
+            match(input,46,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__QualifiedName__Group_1__1"
+    // InternalTableDSL.g:24303:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    public final void rule__QualifiedName__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24307:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalTableDSL.g:24308:2: rule__QualifiedName__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__QualifiedName__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group_1__1"
+
+
+    // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
+    // InternalTableDSL.g:24314:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
+    public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24318:1: ( ( ruleValidID ) )
+            // InternalTableDSL.g:24319:1: ( ruleValidID )
+            {
+            // InternalTableDSL.g:24319:1: ( ruleValidID )
+            // InternalTableDSL.g:24320:2: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__Number__Group_1__0"
+    // InternalTableDSL.g:24330:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
+    public final void rule__Number__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24334:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
+            // InternalTableDSL.g:24335:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
+            {
+            pushFollow(FOLLOW_68);
+            rule__Number__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Number__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Group_1__0"
+
+
+    // $ANTLR start "rule__Number__Group_1__0__Impl"
+    // InternalTableDSL.g:24342:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
+    public final void rule__Number__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24346:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
+            // InternalTableDSL.g:24347:1: ( ( rule__Number__Alternatives_1_0 ) )
+            {
+            // InternalTableDSL.g:24347:1: ( ( rule__Number__Alternatives_1_0 ) )
+            // InternalTableDSL.g:24348:2: ( rule__Number__Alternatives_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
+            }
+            // InternalTableDSL.g:24349:2: ( rule__Number__Alternatives_1_0 )
+            // InternalTableDSL.g:24349:3: rule__Number__Alternatives_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Number__Alternatives_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__Number__Group_1__1"
+    // InternalTableDSL.g:24357:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
+    public final void rule__Number__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24361:1: ( rule__Number__Group_1__1__Impl )
+            // InternalTableDSL.g:24362:2: rule__Number__Group_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Number__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Group_1__1"
+
+
+    // $ANTLR start "rule__Number__Group_1__1__Impl"
+    // InternalTableDSL.g:24368:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
+    public final void rule__Number__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24372:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
+            // InternalTableDSL.g:24373:1: ( ( rule__Number__Group_1_1__0 )? )
+            {
+            // InternalTableDSL.g:24373:1: ( ( rule__Number__Group_1_1__0 )? )
+            // InternalTableDSL.g:24374:2: ( rule__Number__Group_1_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumberAccess().getGroup_1_1()); 
+            }
+            // InternalTableDSL.g:24375:2: ( rule__Number__Group_1_1__0 )?
+            int alt166=2;
+            int LA166_0 = input.LA(1);
+
+            if ( (LA166_0==46) ) {
+                int LA166_1 = input.LA(2);
+
+                if ( ((LA166_1>=RULE_INT && LA166_1<=RULE_DECIMAL)) ) {
+                    alt166=1;
+                }
+            }
+            switch (alt166) {
+                case 1 :
+                    // InternalTableDSL.g:24375:3: rule__Number__Group_1_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Number__Group_1_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumberAccess().getGroup_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__Number__Group_1_1__0"
+    // InternalTableDSL.g:24384:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
+    public final void rule__Number__Group_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24388:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
+            // InternalTableDSL.g:24389:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
+            {
+            pushFollow(FOLLOW_182);
+            rule__Number__Group_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__Number__Group_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Group_1_1__0"
+
+
+    // $ANTLR start "rule__Number__Group_1_1__0__Impl"
+    // InternalTableDSL.g:24396:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
+    public final void rule__Number__Group_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24400:1: ( ( '.' ) )
+            // InternalTableDSL.g:24401:1: ( '.' )
+            {
+            // InternalTableDSL.g:24401:1: ( '.' )
+            // InternalTableDSL.g:24402:2: '.'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
+            }
+            match(input,46,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Group_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__Number__Group_1_1__1"
+    // InternalTableDSL.g:24411:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
+    public final void rule__Number__Group_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24415:1: ( rule__Number__Group_1_1__1__Impl )
+            // InternalTableDSL.g:24416:2: rule__Number__Group_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Number__Group_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Group_1_1__1"
+
+
+    // $ANTLR start "rule__Number__Group_1_1__1__Impl"
+    // InternalTableDSL.g:24422:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
+    public final void rule__Number__Group_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24426:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
+            // InternalTableDSL.g:24427:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            {
+            // InternalTableDSL.g:24427:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+            // InternalTableDSL.g:24428:2: ( rule__Number__Alternatives_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
+            }
+            // InternalTableDSL.g:24429:2: ( rule__Number__Alternatives_1_1_1 )
+            // InternalTableDSL.g:24429:3: rule__Number__Alternatives_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Number__Alternatives_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Number__Group_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Group_0__0"
+    // InternalTableDSL.g:24438:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
+    public final void rule__JvmTypeReference__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24442:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
+            // InternalTableDSL.g:24443:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
+            {
+            pushFollow(FOLLOW_110);
+            rule__JvmTypeReference__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmTypeReference__Group_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Group_0__0"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Group_0__0__Impl"
+    // InternalTableDSL.g:24450:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
+    public final void rule__JvmTypeReference__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24454:1: ( ( ruleJvmParameterizedTypeReference ) )
+            // InternalTableDSL.g:24455:1: ( ruleJvmParameterizedTypeReference )
+            {
+            // InternalTableDSL.g:24455:1: ( ruleJvmParameterizedTypeReference )
+            // InternalTableDSL.g:24456:2: ruleJvmParameterizedTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmParameterizedTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Group_0__1"
+    // InternalTableDSL.g:24465:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
+    public final void rule__JvmTypeReference__Group_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24469:1: ( rule__JvmTypeReference__Group_0__1__Impl )
+            // InternalTableDSL.g:24470:2: rule__JvmTypeReference__Group_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmTypeReference__Group_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Group_0__1"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Group_0__1__Impl"
+    // InternalTableDSL.g:24476:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
+    public final void rule__JvmTypeReference__Group_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24480:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
+            // InternalTableDSL.g:24481:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            {
+            // InternalTableDSL.g:24481:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+            // InternalTableDSL.g:24482:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
+            }
+            // InternalTableDSL.g:24483:2: ( rule__JvmTypeReference__Group_0_1__0 )*
+            loop167:
+            do {
+                int alt167=2;
+                int LA167_0 = input.LA(1);
+
+                if ( (LA167_0==144) ) {
+                    int LA167_2 = input.LA(2);
+
+                    if ( (LA167_2==142) ) {
+                        int LA167_3 = input.LA(3);
+
+                        if ( (synpred247_InternalTableDSL()) ) {
+                            alt167=1;
+                        }
+
+
+                    }
+
+
+                }
+
+
+                switch (alt167) {
+            	case 1 :
+            	    // InternalTableDSL.g:24483:3: rule__JvmTypeReference__Group_0_1__0
+            	    {
+            	    pushFollow(FOLLOW_173);
+            	    rule__JvmTypeReference__Group_0_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop167;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Group_0__1__Impl"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Group_0_1__0"
+    // InternalTableDSL.g:24492:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
+    public final void rule__JvmTypeReference__Group_0_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24496:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
+            // InternalTableDSL.g:24497:2: rule__JvmTypeReference__Group_0_1__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmTypeReference__Group_0_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Group_0_1__0"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Group_0_1__0__Impl"
+    // InternalTableDSL.g:24503:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
+    public final void rule__JvmTypeReference__Group_0_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24507:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
+            // InternalTableDSL.g:24508:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            {
+            // InternalTableDSL.g:24508:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+            // InternalTableDSL.g:24509:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
+            }
+            // InternalTableDSL.g:24510:2: ( rule__JvmTypeReference__Group_0_1_0__0 )
+            // InternalTableDSL.g:24510:3: rule__JvmTypeReference__Group_0_1_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmTypeReference__Group_0_1_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Group_0_1__0__Impl"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0"
+    // InternalTableDSL.g:24519:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
+    public final void rule__JvmTypeReference__Group_0_1_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24523:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
+            // InternalTableDSL.g:24524:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
+            {
+            pushFollow(FOLLOW_110);
+            rule__JvmTypeReference__Group_0_1_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmTypeReference__Group_0_1_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__0"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0__Impl"
+    // InternalTableDSL.g:24531:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
+    public final void rule__JvmTypeReference__Group_0_1_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24535:1: ( ( () ) )
+            // InternalTableDSL.g:24536:1: ( () )
+            {
+            // InternalTableDSL.g:24536:1: ( () )
+            // InternalTableDSL.g:24537:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
+            }
+            // InternalTableDSL.g:24538:2: ()
+            // InternalTableDSL.g:24538:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__0__Impl"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1"
+    // InternalTableDSL.g:24546:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
+    public final void rule__JvmTypeReference__Group_0_1_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24550:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
+            // InternalTableDSL.g:24551:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmTypeReference__Group_0_1_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__1"
+
+
+    // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1__Impl"
+    // InternalTableDSL.g:24557:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
+    public final void rule__JvmTypeReference__Group_0_1_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24561:1: ( ( ruleArrayBrackets ) )
+            // InternalTableDSL.g:24562:1: ( ruleArrayBrackets )
+            {
+            // InternalTableDSL.g:24562:1: ( ruleArrayBrackets )
+            // InternalTableDSL.g:24563:2: ruleArrayBrackets
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleArrayBrackets();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__1__Impl"
+
+
+    // $ANTLR start "rule__ArrayBrackets__Group__0"
+    // InternalTableDSL.g:24573:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
+    public final void rule__ArrayBrackets__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24577:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
+            // InternalTableDSL.g:24578:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
+            {
+            pushFollow(FOLLOW_148);
+            rule__ArrayBrackets__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__ArrayBrackets__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ArrayBrackets__Group__0"
+
+
+    // $ANTLR start "rule__ArrayBrackets__Group__0__Impl"
+    // InternalTableDSL.g:24585:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
+    public final void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24589:1: ( ( '[' ) )
+            // InternalTableDSL.g:24590:1: ( '[' )
+            {
+            // InternalTableDSL.g:24590:1: ( '[' )
+            // InternalTableDSL.g:24591:2: '['
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
+            }
+            match(input,144,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ArrayBrackets__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ArrayBrackets__Group__1"
+    // InternalTableDSL.g:24600:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
+    public final void rule__ArrayBrackets__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24604:1: ( rule__ArrayBrackets__Group__1__Impl )
+            // InternalTableDSL.g:24605:2: rule__ArrayBrackets__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ArrayBrackets__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ArrayBrackets__Group__1"
+
+
+    // $ANTLR start "rule__ArrayBrackets__Group__1__Impl"
+    // InternalTableDSL.g:24611:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
+    public final void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24615:1: ( ( ']' ) )
+            // InternalTableDSL.g:24616:1: ( ']' )
+            {
+            // InternalTableDSL.g:24616:1: ( ']' )
+            // InternalTableDSL.g:24617:2: ']'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
+            }
+            match(input,142,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ArrayBrackets__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group__0"
+    // InternalTableDSL.g:24627:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
+    public final void rule__XFunctionTypeRef__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24631:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
+            // InternalTableDSL.g:24632:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__XFunctionTypeRef__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group__0"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group__0__Impl"
+    // InternalTableDSL.g:24639:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
+    public final void rule__XFunctionTypeRef__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24643:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
+            // InternalTableDSL.g:24644:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            {
+            // InternalTableDSL.g:24644:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+            // InternalTableDSL.g:24645:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
+            }
+            // InternalTableDSL.g:24646:2: ( rule__XFunctionTypeRef__Group_0__0 )?
+            int alt168=2;
+            int LA168_0 = input.LA(1);
+
+            if ( (LA168_0==132) ) {
+                alt168=1;
+            }
+            switch (alt168) {
+                case 1 :
+                    // InternalTableDSL.g:24646:3: rule__XFunctionTypeRef__Group_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XFunctionTypeRef__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group__0__Impl"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group__1"
+    // InternalTableDSL.g:24654:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
+    public final void rule__XFunctionTypeRef__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24658:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
+            // InternalTableDSL.g:24659:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
+            {
+            pushFollow(FOLLOW_123);
+            rule__XFunctionTypeRef__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group__1"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group__1__Impl"
+    // InternalTableDSL.g:24666:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
+    public final void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24670:1: ( ( '=>' ) )
+            // InternalTableDSL.g:24671:1: ( '=>' )
+            {
+            // InternalTableDSL.g:24671:1: ( '=>' )
+            // InternalTableDSL.g:24672:2: '=>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
+            }
+            match(input,36,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group__1__Impl"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group__2"
+    // InternalTableDSL.g:24681:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
+    public final void rule__XFunctionTypeRef__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24685:1: ( rule__XFunctionTypeRef__Group__2__Impl )
+            // InternalTableDSL.g:24686:2: rule__XFunctionTypeRef__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group__2"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group__2__Impl"
+    // InternalTableDSL.g:24692:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
+    public final void rule__XFunctionTypeRef__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24696:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
+            // InternalTableDSL.g:24697:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            {
+            // InternalTableDSL.g:24697:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+            // InternalTableDSL.g:24698:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
+            }
+            // InternalTableDSL.g:24699:2: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+            // InternalTableDSL.g:24699:3: rule__XFunctionTypeRef__ReturnTypeAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__ReturnTypeAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group__2__Impl"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0__0"
+    // InternalTableDSL.g:24708:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
+    public final void rule__XFunctionTypeRef__Group_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24712:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
+            // InternalTableDSL.g:24713:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
+            {
+            pushFollow(FOLLOW_183);
+            rule__XFunctionTypeRef__Group_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0__0"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0__0__Impl"
+    // InternalTableDSL.g:24720:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
+    public final void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24724:1: ( ( '(' ) )
+            // InternalTableDSL.g:24725:1: ( '(' )
+            {
+            // InternalTableDSL.g:24725:1: ( '(' )
+            // InternalTableDSL.g:24726:2: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0__0__Impl"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0__1"
+    // InternalTableDSL.g:24735:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
+    public final void rule__XFunctionTypeRef__Group_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24739:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
+            // InternalTableDSL.g:24740:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
+            {
+            pushFollow(FOLLOW_183);
+            rule__XFunctionTypeRef__Group_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group_0__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0__1"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0__1__Impl"
+    // InternalTableDSL.g:24747:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
+    public final void rule__XFunctionTypeRef__Group_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24751:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
+            // InternalTableDSL.g:24752:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            {
+            // InternalTableDSL.g:24752:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+            // InternalTableDSL.g:24753:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
+            }
+            // InternalTableDSL.g:24754:2: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+            int alt169=2;
+            int LA169_0 = input.LA(1);
+
+            if ( (LA169_0==RULE_ID||LA169_0==36||LA169_0==132) ) {
+                alt169=1;
+            }
+            switch (alt169) {
+                case 1 :
+                    // InternalTableDSL.g:24754:3: rule__XFunctionTypeRef__Group_0_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__XFunctionTypeRef__Group_0_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0__1__Impl"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0__2"
+    // InternalTableDSL.g:24762:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
+    public final void rule__XFunctionTypeRef__Group_0__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24766:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
+            // InternalTableDSL.g:24767:2: rule__XFunctionTypeRef__Group_0__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group_0__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0__2"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0__2__Impl"
+    // InternalTableDSL.g:24773:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
+    public final void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24777:1: ( ( ')' ) )
+            // InternalTableDSL.g:24778:1: ( ')' )
+            {
+            // InternalTableDSL.g:24778:1: ( ')' )
+            // InternalTableDSL.g:24779:2: ')'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
+            }
+            match(input,133,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0__2__Impl"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0"
+    // InternalTableDSL.g:24789:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
+    public final void rule__XFunctionTypeRef__Group_0_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24793:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
+            // InternalTableDSL.g:24794:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
+            {
+            pushFollow(FOLLOW_105);
+            rule__XFunctionTypeRef__Group_0_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group_0_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__0"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0__Impl"
+    // InternalTableDSL.g:24801:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
+    public final void rule__XFunctionTypeRef__Group_0_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24805:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
+            // InternalTableDSL.g:24806:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            {
+            // InternalTableDSL.g:24806:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+            // InternalTableDSL.g:24807:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
+            }
+            // InternalTableDSL.g:24808:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+            // InternalTableDSL.g:24808:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__0__Impl"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1"
+    // InternalTableDSL.g:24816:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
+    public final void rule__XFunctionTypeRef__Group_0_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24820:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
+            // InternalTableDSL.g:24821:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group_0_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__1"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1__Impl"
+    // InternalTableDSL.g:24827:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
+    public final void rule__XFunctionTypeRef__Group_0_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24831:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
+            // InternalTableDSL.g:24832:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            {
+            // InternalTableDSL.g:24832:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+            // InternalTableDSL.g:24833:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
+            }
+            // InternalTableDSL.g:24834:2: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+            loop170:
+            do {
+                int alt170=2;
+                int LA170_0 = input.LA(1);
+
+                if ( (LA170_0==141) ) {
+                    alt170=1;
+                }
+
+
+                switch (alt170) {
+            	case 1 :
+            	    // InternalTableDSL.g:24834:3: rule__XFunctionTypeRef__Group_0_1_1__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__XFunctionTypeRef__Group_0_1_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop170;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__1__Impl"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0"
+    // InternalTableDSL.g:24843:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
+    public final void rule__XFunctionTypeRef__Group_0_1_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24847:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
+            // InternalTableDSL.g:24848:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__XFunctionTypeRef__Group_0_1_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group_0_1_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__0"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
+    // InternalTableDSL.g:24855:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
+    public final void rule__XFunctionTypeRef__Group_0_1_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24859:1: ( ( ',' ) )
+            // InternalTableDSL.g:24860:1: ( ',' )
+            {
+            // InternalTableDSL.g:24860:1: ( ',' )
+            // InternalTableDSL.g:24861:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1"
+    // InternalTableDSL.g:24870:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
+    public final void rule__XFunctionTypeRef__Group_0_1_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24874:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
+            // InternalTableDSL.g:24875:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__Group_0_1_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__1"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
+    // InternalTableDSL.g:24881:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
+    public final void rule__XFunctionTypeRef__Group_0_1_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24885:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
+            // InternalTableDSL.g:24886:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            {
+            // InternalTableDSL.g:24886:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+            // InternalTableDSL.g:24887:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
+            }
+            // InternalTableDSL.g:24888:2: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+            // InternalTableDSL.g:24888:3: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0"
+    // InternalTableDSL.g:24897:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
+    public final void rule__JvmParameterizedTypeReference__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24901:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
+            // InternalTableDSL.g:24902:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
+            {
+            pushFollow(FOLLOW_113);
+            rule__JvmParameterizedTypeReference__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group__0"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0__Impl"
+    // InternalTableDSL.g:24909:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
+    public final void rule__JvmParameterizedTypeReference__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24913:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
+            // InternalTableDSL.g:24914:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            {
+            // InternalTableDSL.g:24914:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+            // InternalTableDSL.g:24915:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
+            }
+            // InternalTableDSL.g:24916:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+            // InternalTableDSL.g:24916:3: rule__JvmParameterizedTypeReference__TypeAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__TypeAssignment_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group__0__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1"
+    // InternalTableDSL.g:24924:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
+    public final void rule__JvmParameterizedTypeReference__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24928:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
+            // InternalTableDSL.g:24929:2: rule__JvmParameterizedTypeReference__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group__1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1__Impl"
+    // InternalTableDSL.g:24935:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
+    public final void rule__JvmParameterizedTypeReference__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24939:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
+            // InternalTableDSL.g:24940:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            {
+            // InternalTableDSL.g:24940:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+            // InternalTableDSL.g:24941:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
+            }
+            // InternalTableDSL.g:24942:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+            int alt171=2;
+            alt171 = dfa171.predict(input);
+            switch (alt171) {
+                case 1 :
+                    // InternalTableDSL.g:24942:3: rule__JvmParameterizedTypeReference__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__JvmParameterizedTypeReference__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group__1__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0"
+    // InternalTableDSL.g:24951:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24955:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
+            // InternalTableDSL.g:24956:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__JvmParameterizedTypeReference__Group_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__0"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
+    // InternalTableDSL.g:24963:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24967:1: ( ( ( '<' ) ) )
+            // InternalTableDSL.g:24968:1: ( ( '<' ) )
+            {
+            // InternalTableDSL.g:24968:1: ( ( '<' ) )
+            // InternalTableDSL.g:24969:2: ( '<' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
+            }
+            // InternalTableDSL.g:24970:2: ( '<' )
+            // InternalTableDSL.g:24970:3: '<'
+            {
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1"
+    // InternalTableDSL.g:24978:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24982:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
+            // InternalTableDSL.g:24983:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
+            {
+            pushFollow(FOLLOW_144);
+            rule__JvmParameterizedTypeReference__Group_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
+    // InternalTableDSL.g:24990:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:24994:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
+            // InternalTableDSL.g:24995:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            {
+            // InternalTableDSL.g:24995:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+            // InternalTableDSL.g:24996:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
+            }
+            // InternalTableDSL.g:24997:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+            // InternalTableDSL.g:24997:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2"
+    // InternalTableDSL.g:25005:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25009:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
+            // InternalTableDSL.g:25010:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
+            {
+            pushFollow(FOLLOW_144);
+            rule__JvmParameterizedTypeReference__Group_1__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__2"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
+    // InternalTableDSL.g:25017:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25021:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
+            // InternalTableDSL.g:25022:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            {
+            // InternalTableDSL.g:25022:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+            // InternalTableDSL.g:25023:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
+            }
+            // InternalTableDSL.g:25024:2: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+            loop172:
+            do {
+                int alt172=2;
+                int LA172_0 = input.LA(1);
+
+                if ( (LA172_0==141) ) {
+                    alt172=1;
+                }
+
+
+                switch (alt172) {
+            	case 1 :
+            	    // InternalTableDSL.g:25024:3: rule__JvmParameterizedTypeReference__Group_1_2__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__JvmParameterizedTypeReference__Group_1_2__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop172;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3"
+    // InternalTableDSL.g:25032:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25036:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
+            // InternalTableDSL.g:25037:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
+            {
+            pushFollow(FOLLOW_68);
+            rule__JvmParameterizedTypeReference__Group_1__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__3"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
+    // InternalTableDSL.g:25044:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25048:1: ( ( '>' ) )
+            // InternalTableDSL.g:25049:1: ( '>' )
+            {
+            // InternalTableDSL.g:25049:1: ( '>' )
+            // InternalTableDSL.g:25050:2: '>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
+            }
+            match(input,31,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4"
+    // InternalTableDSL.g:25059:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
+    public final void rule__JvmParameterizedTypeReference__Group_1__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25063:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
+            // InternalTableDSL.g:25064:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__4"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4__Impl"
+    // InternalTableDSL.g:25070:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25074:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
+            // InternalTableDSL.g:25075:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            {
+            // InternalTableDSL.g:25075:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
+            // InternalTableDSL.g:25076:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
+            }
+            // InternalTableDSL.g:25077:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
+            loop173:
+            do {
+                int alt173=2;
+                int LA173_0 = input.LA(1);
+
+                if ( (LA173_0==46) ) {
+                    int LA173_2 = input.LA(2);
+
+                    if ( (LA173_2==RULE_ID) ) {
+                        int LA173_3 = input.LA(3);
+
+                        if ( (synpred253_InternalTableDSL()) ) {
+                            alt173=1;
+                        }
+
+
+                    }
+
+
+                }
+
+
+                switch (alt173) {
+            	case 1 :
+            	    // InternalTableDSL.g:25077:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+            	    {
+            	    pushFollow(FOLLOW_181);
+            	    rule__JvmParameterizedTypeReference__Group_1_4__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop173;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__4__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0"
+    // InternalTableDSL.g:25086:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25090:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
+            // InternalTableDSL.g:25091:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__JvmParameterizedTypeReference__Group_1_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__0"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
+    // InternalTableDSL.g:25098:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25102:1: ( ( ',' ) )
+            // InternalTableDSL.g:25103:1: ( ',' )
+            {
+            // InternalTableDSL.g:25103:1: ( ',' )
+            // InternalTableDSL.g:25104:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1"
+    // InternalTableDSL.g:25113:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25117:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
+            // InternalTableDSL.g:25118:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
+    // InternalTableDSL.g:25124:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25128:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
+            // InternalTableDSL.g:25129:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            {
+            // InternalTableDSL.g:25129:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+            // InternalTableDSL.g:25130:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
+            }
+            // InternalTableDSL.g:25131:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+            // InternalTableDSL.g:25131:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0"
+    // InternalTableDSL.g:25140:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25144:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
+            // InternalTableDSL.g:25145:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__JvmParameterizedTypeReference__Group_1_4__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__0"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0__Impl"
+    // InternalTableDSL.g:25152:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25156:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
+            // InternalTableDSL.g:25157:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            {
+            // InternalTableDSL.g:25157:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
+            // InternalTableDSL.g:25158:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
+            }
+            // InternalTableDSL.g:25159:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
+            // InternalTableDSL.g:25159:3: rule__JvmParameterizedTypeReference__Group_1_4_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__0__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1"
+    // InternalTableDSL.g:25167:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25171:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
+            // InternalTableDSL.g:25172:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
+            {
+            pushFollow(FOLLOW_113);
+            rule__JvmParameterizedTypeReference__Group_1_4__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1__Impl"
+    // InternalTableDSL.g:25179:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25183:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
+            // InternalTableDSL.g:25184:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            {
+            // InternalTableDSL.g:25184:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
+            // InternalTableDSL.g:25185:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
+            }
+            // InternalTableDSL.g:25186:2: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
+            // InternalTableDSL.g:25186:3: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__1__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2"
+    // InternalTableDSL.g:25194:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25198:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
+            // InternalTableDSL.g:25199:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__2"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2__Impl"
+    // InternalTableDSL.g:25205:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25209:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
+            // InternalTableDSL.g:25210:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            {
+            // InternalTableDSL.g:25210:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
+            // InternalTableDSL.g:25211:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
+            }
+            // InternalTableDSL.g:25212:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
+            int alt174=2;
+            alt174 = dfa174.predict(input);
+            switch (alt174) {
+                case 1 :
+                    // InternalTableDSL.g:25212:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__JvmParameterizedTypeReference__Group_1_4_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__2__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0"
+    // InternalTableDSL.g:25221:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25225:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
+            // InternalTableDSL.g:25226:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0__0"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl"
+    // InternalTableDSL.g:25232:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25236:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
+            // InternalTableDSL.g:25237:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            {
+            // InternalTableDSL.g:25237:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
+            // InternalTableDSL.g:25238:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
+            }
+            // InternalTableDSL.g:25239:2: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
+            // InternalTableDSL.g:25239:3: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_0_0__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0"
+    // InternalTableDSL.g:25248:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25252:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
+            // InternalTableDSL.g:25253:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
+            {
+            pushFollow(FOLLOW_68);
+            rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_0_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl"
+    // InternalTableDSL.g:25260:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25264:1: ( ( () ) )
+            // InternalTableDSL.g:25265:1: ( () )
+            {
+            // InternalTableDSL.g:25265:1: ( () )
+            // InternalTableDSL.g:25266:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
+            }
+            // InternalTableDSL.g:25267:2: ()
+            // InternalTableDSL.g:25267:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1"
+    // InternalTableDSL.g:25275:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25279:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
+            // InternalTableDSL.g:25280:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl"
+    // InternalTableDSL.g:25286:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25290:1: ( ( '.' ) )
+            // InternalTableDSL.g:25291:1: ( '.' )
+            {
+            // InternalTableDSL.g:25291:1: ( '.' )
+            // InternalTableDSL.g:25292:2: '.'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
+            }
+            match(input,46,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0"
+    // InternalTableDSL.g:25302:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25306:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
+            // InternalTableDSL.g:25307:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__0"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl"
+    // InternalTableDSL.g:25314:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25318:1: ( ( ( '<' ) ) )
+            // InternalTableDSL.g:25319:1: ( ( '<' ) )
+            {
+            // InternalTableDSL.g:25319:1: ( ( '<' ) )
+            // InternalTableDSL.g:25320:2: ( '<' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
+            }
+            // InternalTableDSL.g:25321:2: ( '<' )
+            // InternalTableDSL.g:25321:3: '<'
+            {
+            match(input,32,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1"
+    // InternalTableDSL.g:25329:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25333:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
+            // InternalTableDSL.g:25334:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
+            {
+            pushFollow(FOLLOW_144);
+            rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_2__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl"
+    // InternalTableDSL.g:25341:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25345:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
+            // InternalTableDSL.g:25346:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            {
+            // InternalTableDSL.g:25346:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
+            // InternalTableDSL.g:25347:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
+            }
+            // InternalTableDSL.g:25348:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
+            // InternalTableDSL.g:25348:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2"
+    // InternalTableDSL.g:25356:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25360:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
+            // InternalTableDSL.g:25361:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
+            {
+            pushFollow(FOLLOW_144);
+            rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_2__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__2"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl"
+    // InternalTableDSL.g:25368:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25372:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
+            // InternalTableDSL.g:25373:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            {
+            // InternalTableDSL.g:25373:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
+            // InternalTableDSL.g:25374:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
+            }
+            // InternalTableDSL.g:25375:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
+            loop175:
+            do {
+                int alt175=2;
+                int LA175_0 = input.LA(1);
+
+                if ( (LA175_0==141) ) {
+                    alt175=1;
+                }
+
+
+                switch (alt175) {
+            	case 1 :
+            	    // InternalTableDSL.g:25375:3: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
+            	    {
+            	    pushFollow(FOLLOW_106);
+            	    rule__JvmParameterizedTypeReference__Group_1_4_2_2__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop175;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3"
+    // InternalTableDSL.g:25383:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25387:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
+            // InternalTableDSL.g:25388:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__3"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl"
+    // InternalTableDSL.g:25394:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25398:1: ( ( '>' ) )
+            // InternalTableDSL.g:25399:1: ( '>' )
+            {
+            // InternalTableDSL.g:25399:1: ( '>' )
+            // InternalTableDSL.g:25400:2: '>'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
+            }
+            match(input,31,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0"
+    // InternalTableDSL.g:25410:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25414:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
+            // InternalTableDSL.g:25415:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_2_2__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl"
+    // InternalTableDSL.g:25422:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25426:1: ( ( ',' ) )
+            // InternalTableDSL.g:25427:1: ( ',' )
+            {
+            // InternalTableDSL.g:25427:1: ( ',' )
+            // InternalTableDSL.g:25428:2: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1"
+    // InternalTableDSL.g:25437:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25441:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
+            // InternalTableDSL.g:25442:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl"
+    // InternalTableDSL.g:25448:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
+    public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25452:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
+            // InternalTableDSL.g:25453:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            {
+            // InternalTableDSL.g:25453:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
+            // InternalTableDSL.g:25454:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
+            }
+            // InternalTableDSL.g:25455:2: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
+            // InternalTableDSL.g:25455:3: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group__0"
+    // InternalTableDSL.g:25464:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
+    public final void rule__JvmWildcardTypeReference__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25468:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
+            // InternalTableDSL.g:25469:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
+            {
+            pushFollow(FOLLOW_143);
+            rule__JvmWildcardTypeReference__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmWildcardTypeReference__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group__0"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group__0__Impl"
+    // InternalTableDSL.g:25476:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
+    public final void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25480:1: ( ( () ) )
+            // InternalTableDSL.g:25481:1: ( () )
+            {
+            // InternalTableDSL.g:25481:1: ( () )
+            // InternalTableDSL.g:25482:2: ()
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
+            }
+            // InternalTableDSL.g:25483:2: ()
+            // InternalTableDSL.g:25483:3: 
+            {
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group__0__Impl"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group__1"
+    // InternalTableDSL.g:25491:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
+    public final void rule__JvmWildcardTypeReference__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25495:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
+            // InternalTableDSL.g:25496:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
+            {
+            pushFollow(FOLLOW_184);
+            rule__JvmWildcardTypeReference__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmWildcardTypeReference__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group__1"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group__1__Impl"
+    // InternalTableDSL.g:25503:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
+    public final void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25507:1: ( ( '?' ) )
+            // InternalTableDSL.g:25508:1: ( '?' )
+            {
+            // InternalTableDSL.g:25508:1: ( '?' )
+            // InternalTableDSL.g:25509:2: '?'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
+            }
+            match(input,163,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group__1__Impl"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group__2"
+    // InternalTableDSL.g:25518:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
+    public final void rule__JvmWildcardTypeReference__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25522:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
+            // InternalTableDSL.g:25523:2: rule__JvmWildcardTypeReference__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmWildcardTypeReference__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group__2"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group__2__Impl"
+    // InternalTableDSL.g:25529:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
+    public final void rule__JvmWildcardTypeReference__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25533:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
+            // InternalTableDSL.g:25534:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            {
+            // InternalTableDSL.g:25534:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+            // InternalTableDSL.g:25535:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
+            }
+            // InternalTableDSL.g:25536:2: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+            int alt176=2;
+            int LA176_0 = input.LA(1);
+
+            if ( (LA176_0==48||LA176_0==52) ) {
+                alt176=1;
+            }
+            switch (alt176) {
+                case 1 :
+                    // InternalTableDSL.g:25536:3: rule__JvmWildcardTypeReference__Alternatives_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__JvmWildcardTypeReference__Alternatives_2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group__2__Impl"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0"
+    // InternalTableDSL.g:25545:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
+    public final void rule__JvmWildcardTypeReference__Group_2_0__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25549:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
+            // InternalTableDSL.g:25550:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
+            {
+            pushFollow(FOLLOW_185);
+            rule__JvmWildcardTypeReference__Group_2_0__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmWildcardTypeReference__Group_2_0__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_0__0"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0__Impl"
+    // InternalTableDSL.g:25557:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
+    public final void rule__JvmWildcardTypeReference__Group_2_0__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25561:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
+            // InternalTableDSL.g:25562:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            {
+            // InternalTableDSL.g:25562:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
+            // InternalTableDSL.g:25563:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
+            }
+            // InternalTableDSL.g:25564:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
+            // InternalTableDSL.g:25564:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_0__0__Impl"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1"
+    // InternalTableDSL.g:25572:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
+    public final void rule__JvmWildcardTypeReference__Group_2_0__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25576:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
+            // InternalTableDSL.g:25577:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmWildcardTypeReference__Group_2_0__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_0__1"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1__Impl"
+    // InternalTableDSL.g:25583:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
+    public final void rule__JvmWildcardTypeReference__Group_2_0__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25587:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
+            // InternalTableDSL.g:25588:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            {
+            // InternalTableDSL.g:25588:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
+            // InternalTableDSL.g:25589:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
+            }
+            // InternalTableDSL.g:25590:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
+            loop177:
+            do {
+                int alt177=2;
+                int LA177_0 = input.LA(1);
+
+                if ( (LA177_0==164) ) {
+                    alt177=1;
+                }
+
+
+                switch (alt177) {
+            	case 1 :
+            	    // InternalTableDSL.g:25590:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
+            	    {
+            	    pushFollow(FOLLOW_186);
+            	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop177;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_0__1__Impl"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0"
+    // InternalTableDSL.g:25599:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
+    public final void rule__JvmWildcardTypeReference__Group_2_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25603:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
+            // InternalTableDSL.g:25604:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
+            {
+            pushFollow(FOLLOW_185);
+            rule__JvmWildcardTypeReference__Group_2_1__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmWildcardTypeReference__Group_2_1__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_1__0"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0__Impl"
+    // InternalTableDSL.g:25611:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
+    public final void rule__JvmWildcardTypeReference__Group_2_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25615:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
+            // InternalTableDSL.g:25616:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            {
+            // InternalTableDSL.g:25616:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
+            // InternalTableDSL.g:25617:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
+            }
+            // InternalTableDSL.g:25618:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
+            // InternalTableDSL.g:25618:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_1__0__Impl"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1"
+    // InternalTableDSL.g:25626:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
+    public final void rule__JvmWildcardTypeReference__Group_2_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25630:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
+            // InternalTableDSL.g:25631:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmWildcardTypeReference__Group_2_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_1__1"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1__Impl"
+    // InternalTableDSL.g:25637:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
+    public final void rule__JvmWildcardTypeReference__Group_2_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25641:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
+            // InternalTableDSL.g:25642:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            {
+            // InternalTableDSL.g:25642:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
+            // InternalTableDSL.g:25643:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
+            }
+            // InternalTableDSL.g:25644:2: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
+            loop178:
+            do {
+                int alt178=2;
+                int LA178_0 = input.LA(1);
+
+                if ( (LA178_0==164) ) {
+                    alt178=1;
+                }
+
+
+                switch (alt178) {
+            	case 1 :
+            	    // InternalTableDSL.g:25644:3: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
+            	    {
+            	    pushFollow(FOLLOW_186);
+            	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop178;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_1__1__Impl"
+
+
+    // $ANTLR start "rule__JvmUpperBound__Group__0"
+    // InternalTableDSL.g:25653:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
+    public final void rule__JvmUpperBound__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25657:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
+            // InternalTableDSL.g:25658:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__JvmUpperBound__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmUpperBound__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmUpperBound__Group__0"
+
+
+    // $ANTLR start "rule__JvmUpperBound__Group__0__Impl"
+    // InternalTableDSL.g:25665:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
+    public final void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25669:1: ( ( 'extends' ) )
+            // InternalTableDSL.g:25670:1: ( 'extends' )
+            {
+            // InternalTableDSL.g:25670:1: ( 'extends' )
+            // InternalTableDSL.g:25671:2: 'extends'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
+            }
+            match(input,48,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmUpperBound__Group__0__Impl"
+
+
+    // $ANTLR start "rule__JvmUpperBound__Group__1"
+    // InternalTableDSL.g:25680:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
+    public final void rule__JvmUpperBound__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25684:1: ( rule__JvmUpperBound__Group__1__Impl )
+            // InternalTableDSL.g:25685:2: rule__JvmUpperBound__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmUpperBound__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmUpperBound__Group__1"
+
+
+    // $ANTLR start "rule__JvmUpperBound__Group__1__Impl"
+    // InternalTableDSL.g:25691:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
+    public final void rule__JvmUpperBound__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25695:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
+            // InternalTableDSL.g:25696:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            {
+            // InternalTableDSL.g:25696:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+            // InternalTableDSL.g:25697:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
+            }
+            // InternalTableDSL.g:25698:2: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+            // InternalTableDSL.g:25698:3: rule__JvmUpperBound__TypeReferenceAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmUpperBound__TypeReferenceAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmUpperBound__Group__1__Impl"
+
+
+    // $ANTLR start "rule__JvmUpperBoundAnded__Group__0"
+    // InternalTableDSL.g:25707:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
+    public final void rule__JvmUpperBoundAnded__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25711:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
+            // InternalTableDSL.g:25712:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__JvmUpperBoundAnded__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmUpperBoundAnded__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmUpperBoundAnded__Group__0"
+
+
+    // $ANTLR start "rule__JvmUpperBoundAnded__Group__0__Impl"
+    // InternalTableDSL.g:25719:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
+    public final void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25723:1: ( ( '&' ) )
+            // InternalTableDSL.g:25724:1: ( '&' )
+            {
+            // InternalTableDSL.g:25724:1: ( '&' )
+            // InternalTableDSL.g:25725:2: '&'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
+            }
+            match(input,164,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmUpperBoundAnded__Group__0__Impl"
+
+
+    // $ANTLR start "rule__JvmUpperBoundAnded__Group__1"
+    // InternalTableDSL.g:25734:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
+    public final void rule__JvmUpperBoundAnded__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25738:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
+            // InternalTableDSL.g:25739:2: rule__JvmUpperBoundAnded__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmUpperBoundAnded__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmUpperBoundAnded__Group__1"
+
+
+    // $ANTLR start "rule__JvmUpperBoundAnded__Group__1__Impl"
+    // InternalTableDSL.g:25745:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    public final void rule__JvmUpperBoundAnded__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25749:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalTableDSL.g:25750:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            {
+            // InternalTableDSL.g:25750:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalTableDSL.g:25751:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
+            }
+            // InternalTableDSL.g:25752:2: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+            // InternalTableDSL.g:25752:3: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmUpperBoundAnded__TypeReferenceAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmUpperBoundAnded__Group__1__Impl"
+
+
+    // $ANTLR start "rule__JvmLowerBound__Group__0"
+    // InternalTableDSL.g:25761:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
+    public final void rule__JvmLowerBound__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25765:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
+            // InternalTableDSL.g:25766:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__JvmLowerBound__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmLowerBound__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmLowerBound__Group__0"
+
+
+    // $ANTLR start "rule__JvmLowerBound__Group__0__Impl"
+    // InternalTableDSL.g:25773:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
+    public final void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25777:1: ( ( 'super' ) )
+            // InternalTableDSL.g:25778:1: ( 'super' )
+            {
+            // InternalTableDSL.g:25778:1: ( 'super' )
+            // InternalTableDSL.g:25779:2: 'super'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
+            }
+            match(input,52,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmLowerBound__Group__0__Impl"
+
+
+    // $ANTLR start "rule__JvmLowerBound__Group__1"
+    // InternalTableDSL.g:25788:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
+    public final void rule__JvmLowerBound__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25792:1: ( rule__JvmLowerBound__Group__1__Impl )
+            // InternalTableDSL.g:25793:2: rule__JvmLowerBound__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmLowerBound__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmLowerBound__Group__1"
+
+
+    // $ANTLR start "rule__JvmLowerBound__Group__1__Impl"
+    // InternalTableDSL.g:25799:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
+    public final void rule__JvmLowerBound__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25803:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
+            // InternalTableDSL.g:25804:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            {
+            // InternalTableDSL.g:25804:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+            // InternalTableDSL.g:25805:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
+            }
+            // InternalTableDSL.g:25806:2: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+            // InternalTableDSL.g:25806:3: rule__JvmLowerBound__TypeReferenceAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmLowerBound__TypeReferenceAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmLowerBound__Group__1__Impl"
+
+
+    // $ANTLR start "rule__JvmLowerBoundAnded__Group__0"
+    // InternalTableDSL.g:25815:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
+    public final void rule__JvmLowerBoundAnded__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25819:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
+            // InternalTableDSL.g:25820:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
+            {
+            pushFollow(FOLLOW_123);
+            rule__JvmLowerBoundAnded__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__JvmLowerBoundAnded__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmLowerBoundAnded__Group__0"
+
+
+    // $ANTLR start "rule__JvmLowerBoundAnded__Group__0__Impl"
+    // InternalTableDSL.g:25827:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
+    public final void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25831:1: ( ( '&' ) )
+            // InternalTableDSL.g:25832:1: ( '&' )
+            {
+            // InternalTableDSL.g:25832:1: ( '&' )
+            // InternalTableDSL.g:25833:2: '&'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
+            }
+            match(input,164,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmLowerBoundAnded__Group__0__Impl"
+
+
+    // $ANTLR start "rule__JvmLowerBoundAnded__Group__1"
+    // InternalTableDSL.g:25842:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
+    public final void rule__JvmLowerBoundAnded__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25846:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
+            // InternalTableDSL.g:25847:2: rule__JvmLowerBoundAnded__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmLowerBoundAnded__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmLowerBoundAnded__Group__1"
+
+
+    // $ANTLR start "rule__JvmLowerBoundAnded__Group__1__Impl"
+    // InternalTableDSL.g:25853:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
+    public final void rule__JvmLowerBoundAnded__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25857:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
+            // InternalTableDSL.g:25858:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            {
+            // InternalTableDSL.g:25858:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
+            // InternalTableDSL.g:25859:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
+            }
+            // InternalTableDSL.g:25860:2: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
+            // InternalTableDSL.g:25860:3: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__JvmLowerBoundAnded__TypeReferenceAssignment_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmLowerBoundAnded__Group__1__Impl"
+
+
+    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
+    // InternalTableDSL.g:25869:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
+    public final void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25873:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
+            // InternalTableDSL.g:25874:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
+            {
+            pushFollow(FOLLOW_68);
+            rule__QualifiedNameWithWildcard__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__QualifiedNameWithWildcard__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__0"
+
+
+    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
+    // InternalTableDSL.g:25881:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
+    public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25885:1: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:25886:1: ( ruleQualifiedName )
+            {
+            // InternalTableDSL.g:25886:1: ( ruleQualifiedName )
+            // InternalTableDSL.g:25887:2: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__0__Impl"
+
+
+    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
+    // InternalTableDSL.g:25896:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
+    public final void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25900:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
+            // InternalTableDSL.g:25901:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
+            {
+            pushFollow(FOLLOW_187);
+            rule__QualifiedNameWithWildcard__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__QualifiedNameWithWildcard__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__1"
+
+
+    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
+    // InternalTableDSL.g:25908:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
+    public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25912:1: ( ( '.' ) )
+            // InternalTableDSL.g:25913:1: ( '.' )
+            {
+            // InternalTableDSL.g:25913:1: ( '.' )
+            // InternalTableDSL.g:25914:2: '.'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
+            }
+            match(input,46,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__1__Impl"
+
+
+    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2"
+    // InternalTableDSL.g:25923:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
+    public final void rule__QualifiedNameWithWildcard__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25927:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
+            // InternalTableDSL.g:25928:2: rule__QualifiedNameWithWildcard__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__QualifiedNameWithWildcard__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__2"
+
+
+    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2__Impl"
+    // InternalTableDSL.g:25934:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
+    public final void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25938:1: ( ( '*' ) )
+            // InternalTableDSL.g:25939:1: ( '*' )
+            {
+            // InternalTableDSL.g:25939:1: ( '*' )
+            // InternalTableDSL.g:25940:2: '*'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
+            }
+            match(input,39,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__2__Impl"
+
+
+    // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0"
+    // InternalTableDSL.g:25950:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
+    public final void rule__QualifiedNameInStaticImport__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25954:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
+            // InternalTableDSL.g:25955:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
+            {
+            pushFollow(FOLLOW_68);
+            rule__QualifiedNameInStaticImport__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__QualifiedNameInStaticImport__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedNameInStaticImport__Group__0"
+
+
+    // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0__Impl"
+    // InternalTableDSL.g:25962:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
+    public final void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25966:1: ( ( ruleValidID ) )
+            // InternalTableDSL.g:25967:1: ( ruleValidID )
+            {
+            // InternalTableDSL.g:25967:1: ( ruleValidID )
+            // InternalTableDSL.g:25968:2: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedNameInStaticImport__Group__0__Impl"
+
+
+    // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1"
+    // InternalTableDSL.g:25977:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
+    public final void rule__QualifiedNameInStaticImport__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25981:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
+            // InternalTableDSL.g:25982:2: rule__QualifiedNameInStaticImport__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__QualifiedNameInStaticImport__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedNameInStaticImport__Group__1"
+
+
+    // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1__Impl"
+    // InternalTableDSL.g:25988:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
+    public final void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:25992:1: ( ( '.' ) )
+            // InternalTableDSL.g:25993:1: ( '.' )
+            {
+            // InternalTableDSL.g:25993:1: ( '.' )
+            // InternalTableDSL.g:25994:2: '.'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
+            }
+            match(input,46,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedNameInStaticImport__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__UnorderedGroup_3"
+    // InternalTableDSL.g:26004:1: rule__TableSelection__UnorderedGroup_3 : ( rule__TableSelection__UnorderedGroup_3__0 )? ;
+    public final void rule__TableSelection__UnorderedGroup_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		getUnorderedGroupHelper().enter(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+        	
+        try {
+            // InternalTableDSL.g:26009:1: ( ( rule__TableSelection__UnorderedGroup_3__0 )? )
+            // InternalTableDSL.g:26010:2: ( rule__TableSelection__UnorderedGroup_3__0 )?
+            {
+            // InternalTableDSL.g:26010:2: ( rule__TableSelection__UnorderedGroup_3__0 )?
+            int alt179=2;
+            int LA179_0 = input.LA(1);
+
+            if ( LA179_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
+                alt179=1;
+            }
+            else if ( LA179_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
+                alt179=1;
+            }
+            else if ( LA179_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+                alt179=1;
+            }
+            else if ( LA179_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+                alt179=1;
+            }
+            else if ( LA179_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+                alt179=1;
+            }
+            else if ( LA179_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5) ) {
+                alt179=1;
+            }
+            switch (alt179) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableSelection__UnorderedGroup_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__UnorderedGroup_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	getUnorderedGroupHelper().leave(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__UnorderedGroup_3"
+
+
+    // $ANTLR start "rule__TableSelection__UnorderedGroup_3__Impl"
+    // InternalTableDSL.g:26018:1: rule__TableSelection__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_5__0 ) ) ) ) ) ;
+    public final void rule__TableSelection__UnorderedGroup_3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		boolean selected = false;
+        	
+        try {
+            // InternalTableDSL.g:26023:1: ( ( ({...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_5__0 ) ) ) ) ) )
+            // InternalTableDSL.g:26024:3: ( ({...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_5__0 ) ) ) ) )
+            {
+            // InternalTableDSL.g:26024:3: ( ({...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) ) ) | ({...}? => ( ( ( rule__TableSelection__Group_3_5__0 ) ) ) ) )
+            int alt180=6;
+            int LA180_0 = input.LA(1);
+
+            if ( LA180_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
+                alt180=1;
+            }
+            else if ( LA180_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
+                alt180=2;
+            }
+            else if ( LA180_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+                alt180=3;
+            }
+            else if ( LA180_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+                alt180=4;
+            }
+            else if ( LA180_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+                alt180=5;
+            }
+            else if ( LA180_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5) ) {
+                alt180=6;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 180, 0, input);
+
+                throw nvae;
+            }
+            switch (alt180) {
+                case 1 :
+                    // InternalTableDSL.g:26025:3: ({...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26025:3: ({...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) ) )
+                    // InternalTableDSL.g:26026:4: {...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableSelection__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0)");
+                    }
+                    // InternalTableDSL.g:26026:110: ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) )
+                    // InternalTableDSL.g:26027:5: ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0);
+                    selected = true;
+                    // InternalTableDSL.g:26033:5: ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) )
+                    // InternalTableDSL.g:26034:6: ( rule__TableSelection__SelectalwaysAssignment_3_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableSelectionAccess().getSelectalwaysAssignment_3_0()); 
+                    }
+                    // InternalTableDSL.g:26035:6: ( rule__TableSelection__SelectalwaysAssignment_3_0 )
+                    // InternalTableDSL.g:26035:7: rule__TableSelection__SelectalwaysAssignment_3_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__SelectalwaysAssignment_3_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableSelectionAccess().getSelectalwaysAssignment_3_0()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:26040:3: ({...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26040:3: ({...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) ) )
+                    // InternalTableDSL.g:26041:4: {...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableSelection__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1)");
+                    }
+                    // InternalTableDSL.g:26041:110: ( ( ( rule__TableSelection__Group_3_1__0 ) ) )
+                    // InternalTableDSL.g:26042:5: ( ( rule__TableSelection__Group_3_1__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1);
+                    selected = true;
+                    // InternalTableDSL.g:26048:5: ( ( rule__TableSelection__Group_3_1__0 ) )
+                    // InternalTableDSL.g:26049:6: ( rule__TableSelection__Group_3_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableSelectionAccess().getGroup_3_1()); 
+                    }
+                    // InternalTableDSL.g:26050:6: ( rule__TableSelection__Group_3_1__0 )
+                    // InternalTableDSL.g:26050:7: rule__TableSelection__Group_3_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__Group_3_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableSelectionAccess().getGroup_3_1()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:26055:3: ({...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26055:3: ({...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) ) )
+                    // InternalTableDSL.g:26056:4: {...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableSelection__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2)");
+                    }
+                    // InternalTableDSL.g:26056:110: ( ( ( rule__TableSelection__Group_3_2__0 ) ) )
+                    // InternalTableDSL.g:26057:5: ( ( rule__TableSelection__Group_3_2__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2);
+                    selected = true;
+                    // InternalTableDSL.g:26063:5: ( ( rule__TableSelection__Group_3_2__0 ) )
+                    // InternalTableDSL.g:26064:6: ( rule__TableSelection__Group_3_2__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableSelectionAccess().getGroup_3_2()); 
+                    }
+                    // InternalTableDSL.g:26065:6: ( rule__TableSelection__Group_3_2__0 )
+                    // InternalTableDSL.g:26065:7: rule__TableSelection__Group_3_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__Group_3_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableSelectionAccess().getGroup_3_2()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:26070:3: ({...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26070:3: ({...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) ) )
+                    // InternalTableDSL.g:26071:4: {...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableSelection__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3)");
+                    }
+                    // InternalTableDSL.g:26071:110: ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) )
+                    // InternalTableDSL.g:26072:5: ( ( rule__TableSelection__FilteringAssignment_3_3 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3);
+                    selected = true;
+                    // InternalTableDSL.g:26078:5: ( ( rule__TableSelection__FilteringAssignment_3_3 ) )
+                    // InternalTableDSL.g:26079:6: ( rule__TableSelection__FilteringAssignment_3_3 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableSelectionAccess().getFilteringAssignment_3_3()); 
+                    }
+                    // InternalTableDSL.g:26080:6: ( rule__TableSelection__FilteringAssignment_3_3 )
+                    // InternalTableDSL.g:26080:7: rule__TableSelection__FilteringAssignment_3_3
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__FilteringAssignment_3_3();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableSelectionAccess().getFilteringAssignment_3_3()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:26085:3: ({...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26085:3: ({...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) ) )
+                    // InternalTableDSL.g:26086:4: {...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableSelection__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4)");
+                    }
+                    // InternalTableDSL.g:26086:110: ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) )
+                    // InternalTableDSL.g:26087:5: ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4);
+                    selected = true;
+                    // InternalTableDSL.g:26093:5: ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) )
+                    // InternalTableDSL.g:26094:6: ( rule__TableSelection__EmbeddedAssignment_3_4 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableSelectionAccess().getEmbeddedAssignment_3_4()); 
+                    }
+                    // InternalTableDSL.g:26095:6: ( rule__TableSelection__EmbeddedAssignment_3_4 )
+                    // InternalTableDSL.g:26095:7: rule__TableSelection__EmbeddedAssignment_3_4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__EmbeddedAssignment_3_4();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableSelectionAccess().getEmbeddedAssignment_3_4()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:26100:3: ({...}? => ( ( ( rule__TableSelection__Group_3_5__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26100:3: ({...}? => ( ( ( rule__TableSelection__Group_3_5__0 ) ) ) )
+                    // InternalTableDSL.g:26101:4: {...}? => ( ( ( rule__TableSelection__Group_3_5__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableSelection__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5)");
+                    }
+                    // InternalTableDSL.g:26101:110: ( ( ( rule__TableSelection__Group_3_5__0 ) ) )
+                    // InternalTableDSL.g:26102:5: ( ( rule__TableSelection__Group_3_5__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5);
+                    selected = true;
+                    // InternalTableDSL.g:26108:5: ( ( rule__TableSelection__Group_3_5__0 ) )
+                    // InternalTableDSL.g:26109:6: ( rule__TableSelection__Group_3_5__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableSelectionAccess().getGroup_3_5()); 
+                    }
+                    // InternalTableDSL.g:26110:6: ( rule__TableSelection__Group_3_5__0 )
+                    // InternalTableDSL.g:26110:7: rule__TableSelection__Group_3_5__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__Group_3_5__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableSelectionAccess().getGroup_3_5()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	if (selected)
+            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__UnorderedGroup_3__Impl"
+
+
+    // $ANTLR start "rule__TableSelection__UnorderedGroup_3__0"
+    // InternalTableDSL.g:26123:1: rule__TableSelection__UnorderedGroup_3__0 : rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__1 )? ;
+    public final void rule__TableSelection__UnorderedGroup_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26127:1: ( rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__1 )? )
+            // InternalTableDSL.g:26128:2: rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__1 )?
+            {
+            pushFollow(FOLLOW_188);
+            rule__TableSelection__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26129:2: ( rule__TableSelection__UnorderedGroup_3__1 )?
+            int alt181=2;
+            int LA181_0 = input.LA(1);
+
+            if ( LA181_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
+                alt181=1;
+            }
+            else if ( LA181_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
+                alt181=1;
+            }
+            else if ( LA181_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+                alt181=1;
+            }
+            else if ( LA181_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+                alt181=1;
+            }
+            else if ( LA181_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+                alt181=1;
+            }
+            else if ( LA181_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5) ) {
+                alt181=1;
+            }
+            switch (alt181) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableSelection__UnorderedGroup_3__1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__UnorderedGroup_3__1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__UnorderedGroup_3__0"
+
+
+    // $ANTLR start "rule__TableSelection__UnorderedGroup_3__1"
+    // InternalTableDSL.g:26135:1: rule__TableSelection__UnorderedGroup_3__1 : rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__2 )? ;
+    public final void rule__TableSelection__UnorderedGroup_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26139:1: ( rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__2 )? )
+            // InternalTableDSL.g:26140:2: rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__2 )?
+            {
+            pushFollow(FOLLOW_188);
+            rule__TableSelection__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26141:2: ( rule__TableSelection__UnorderedGroup_3__2 )?
+            int alt182=2;
+            int LA182_0 = input.LA(1);
+
+            if ( LA182_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
+                alt182=1;
+            }
+            else if ( LA182_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
+                alt182=1;
+            }
+            else if ( LA182_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+                alt182=1;
+            }
+            else if ( LA182_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+                alt182=1;
+            }
+            else if ( LA182_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+                alt182=1;
+            }
+            else if ( LA182_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5) ) {
+                alt182=1;
+            }
+            switch (alt182) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableSelection__UnorderedGroup_3__2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__UnorderedGroup_3__2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__UnorderedGroup_3__1"
+
+
+    // $ANTLR start "rule__TableSelection__UnorderedGroup_3__2"
+    // InternalTableDSL.g:26147:1: rule__TableSelection__UnorderedGroup_3__2 : rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__3 )? ;
+    public final void rule__TableSelection__UnorderedGroup_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26151:1: ( rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__3 )? )
+            // InternalTableDSL.g:26152:2: rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__3 )?
+            {
+            pushFollow(FOLLOW_188);
+            rule__TableSelection__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26153:2: ( rule__TableSelection__UnorderedGroup_3__3 )?
+            int alt183=2;
+            int LA183_0 = input.LA(1);
+
+            if ( LA183_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
+                alt183=1;
+            }
+            else if ( LA183_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
+                alt183=1;
+            }
+            else if ( LA183_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+                alt183=1;
+            }
+            else if ( LA183_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+                alt183=1;
+            }
+            else if ( LA183_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+                alt183=1;
+            }
+            else if ( LA183_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5) ) {
+                alt183=1;
+            }
+            switch (alt183) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableSelection__UnorderedGroup_3__3
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__UnorderedGroup_3__3();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__UnorderedGroup_3__2"
+
+
+    // $ANTLR start "rule__TableSelection__UnorderedGroup_3__3"
+    // InternalTableDSL.g:26159:1: rule__TableSelection__UnorderedGroup_3__3 : rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__4 )? ;
+    public final void rule__TableSelection__UnorderedGroup_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26163:1: ( rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__4 )? )
+            // InternalTableDSL.g:26164:2: rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__4 )?
+            {
+            pushFollow(FOLLOW_188);
+            rule__TableSelection__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26165:2: ( rule__TableSelection__UnorderedGroup_3__4 )?
+            int alt184=2;
+            int LA184_0 = input.LA(1);
+
+            if ( LA184_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
+                alt184=1;
+            }
+            else if ( LA184_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
+                alt184=1;
+            }
+            else if ( LA184_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+                alt184=1;
+            }
+            else if ( LA184_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+                alt184=1;
+            }
+            else if ( LA184_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+                alt184=1;
+            }
+            else if ( LA184_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5) ) {
+                alt184=1;
+            }
+            switch (alt184) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableSelection__UnorderedGroup_3__4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__UnorderedGroup_3__4();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__UnorderedGroup_3__3"
+
+
+    // $ANTLR start "rule__TableSelection__UnorderedGroup_3__4"
+    // InternalTableDSL.g:26171:1: rule__TableSelection__UnorderedGroup_3__4 : rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__5 )? ;
+    public final void rule__TableSelection__UnorderedGroup_3__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26175:1: ( rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__5 )? )
+            // InternalTableDSL.g:26176:2: rule__TableSelection__UnorderedGroup_3__Impl ( rule__TableSelection__UnorderedGroup_3__5 )?
+            {
+            pushFollow(FOLLOW_188);
+            rule__TableSelection__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26177:2: ( rule__TableSelection__UnorderedGroup_3__5 )?
+            int alt185=2;
+            int LA185_0 = input.LA(1);
+
+            if ( LA185_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
+                alt185=1;
+            }
+            else if ( LA185_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
+                alt185=1;
+            }
+            else if ( LA185_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+                alt185=1;
+            }
+            else if ( LA185_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+                alt185=1;
+            }
+            else if ( LA185_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+                alt185=1;
+            }
+            else if ( LA185_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5) ) {
+                alt185=1;
+            }
+            switch (alt185) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableSelection__UnorderedGroup_3__5
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableSelection__UnorderedGroup_3__5();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__UnorderedGroup_3__4"
+
+
+    // $ANTLR start "rule__TableSelection__UnorderedGroup_3__5"
+    // InternalTableDSL.g:26183:1: rule__TableSelection__UnorderedGroup_3__5 : rule__TableSelection__UnorderedGroup_3__Impl ;
+    public final void rule__TableSelection__UnorderedGroup_3__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26187:1: ( rule__TableSelection__UnorderedGroup_3__Impl )
+            // InternalTableDSL.g:26188:2: rule__TableSelection__UnorderedGroup_3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableSelection__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__UnorderedGroup_3__5"
+
+
+    // $ANTLR start "rule__TableTable__UnorderedGroup_2"
+    // InternalTableDSL.g:26195:1: rule__TableTable__UnorderedGroup_2 : ( rule__TableTable__UnorderedGroup_2__0 )? ;
+    public final void rule__TableTable__UnorderedGroup_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		getUnorderedGroupHelper().enter(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+        	
+        try {
+            // InternalTableDSL.g:26200:1: ( ( rule__TableTable__UnorderedGroup_2__0 )? )
+            // InternalTableDSL.g:26201:2: ( rule__TableTable__UnorderedGroup_2__0 )?
+            {
+            // InternalTableDSL.g:26201:2: ( rule__TableTable__UnorderedGroup_2__0 )?
+            int alt186=2;
+            int LA186_0 = input.LA(1);
+
+            if ( LA186_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+                alt186=1;
+            }
+            else if ( LA186_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+                alt186=1;
+            }
+            else if ( LA186_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+                alt186=1;
+            }
+            else if ( LA186_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+                alt186=1;
+            }
+            else if ( LA186_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+                alt186=1;
+            }
+            else if ( LA186_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+                alt186=1;
+            }
+            else if ( LA186_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+                alt186=1;
+            }
+            switch (alt186) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableTable__UnorderedGroup_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__UnorderedGroup_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	getUnorderedGroupHelper().leave(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__UnorderedGroup_2"
+
+
+    // $ANTLR start "rule__TableTable__UnorderedGroup_2__Impl"
+    // InternalTableDSL.g:26209:1: rule__TableTable__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_6__0 ) ) ) ) ) ;
+    public final void rule__TableTable__UnorderedGroup_2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		boolean selected = false;
+        	
+        try {
+            // InternalTableDSL.g:26214:1: ( ( ({...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_6__0 ) ) ) ) ) )
+            // InternalTableDSL.g:26215:3: ( ({...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_6__0 ) ) ) ) )
+            {
+            // InternalTableDSL.g:26215:3: ( ({...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__TableTable__Group_2_6__0 ) ) ) ) )
+            int alt187=7;
+            int LA187_0 = input.LA(1);
+
+            if ( LA187_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+                alt187=1;
+            }
+            else if ( LA187_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+                alt187=2;
+            }
+            else if ( LA187_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+                alt187=3;
+            }
+            else if ( LA187_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+                alt187=4;
+            }
+            else if ( LA187_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+                alt187=5;
+            }
+            else if ( LA187_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+                alt187=6;
+            }
+            else if ( LA187_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+                alt187=7;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 187, 0, input);
+
+                throw nvae;
+            }
+            switch (alt187) {
+                case 1 :
+                    // InternalTableDSL.g:26216:3: ({...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26216:3: ({...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) ) )
+                    // InternalTableDSL.g:26217:4: {...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableTable__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0)");
+                    }
+                    // InternalTableDSL.g:26217:106: ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) )
+                    // InternalTableDSL.g:26218:5: ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0);
+                    selected = true;
+                    // InternalTableDSL.g:26224:5: ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) )
+                    // InternalTableDSL.g:26225:6: ( rule__TableTable__SelectalwaysAssignment_2_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableTableAccess().getSelectalwaysAssignment_2_0()); 
+                    }
+                    // InternalTableDSL.g:26226:6: ( rule__TableTable__SelectalwaysAssignment_2_0 )
+                    // InternalTableDSL.g:26226:7: rule__TableTable__SelectalwaysAssignment_2_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__SelectalwaysAssignment_2_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableTableAccess().getSelectalwaysAssignment_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:26231:3: ({...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26231:3: ({...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) ) )
+                    // InternalTableDSL.g:26232:4: {...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableTable__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1)");
+                    }
+                    // InternalTableDSL.g:26232:106: ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) )
+                    // InternalTableDSL.g:26233:5: ( ( rule__TableTable__SelectByIdAssignment_2_1 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1);
+                    selected = true;
+                    // InternalTableDSL.g:26239:5: ( ( rule__TableTable__SelectByIdAssignment_2_1 ) )
+                    // InternalTableDSL.g:26240:6: ( rule__TableTable__SelectByIdAssignment_2_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableTableAccess().getSelectByIdAssignment_2_1()); 
+                    }
+                    // InternalTableDSL.g:26241:6: ( rule__TableTable__SelectByIdAssignment_2_1 )
+                    // InternalTableDSL.g:26241:7: rule__TableTable__SelectByIdAssignment_2_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__SelectByIdAssignment_2_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableTableAccess().getSelectByIdAssignment_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:26246:3: ({...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26246:3: ({...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) ) )
+                    // InternalTableDSL.g:26247:4: {...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableTable__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2)");
+                    }
+                    // InternalTableDSL.g:26247:106: ( ( ( rule__TableTable__Group_2_2__0 ) ) )
+                    // InternalTableDSL.g:26248:5: ( ( rule__TableTable__Group_2_2__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2);
+                    selected = true;
+                    // InternalTableDSL.g:26254:5: ( ( rule__TableTable__Group_2_2__0 ) )
+                    // InternalTableDSL.g:26255:6: ( rule__TableTable__Group_2_2__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableTableAccess().getGroup_2_2()); 
+                    }
+                    // InternalTableDSL.g:26256:6: ( rule__TableTable__Group_2_2__0 )
+                    // InternalTableDSL.g:26256:7: rule__TableTable__Group_2_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__Group_2_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableTableAccess().getGroup_2_2()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:26261:3: ({...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26261:3: ({...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) ) )
+                    // InternalTableDSL.g:26262:4: {...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableTable__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3)");
+                    }
+                    // InternalTableDSL.g:26262:106: ( ( ( rule__TableTable__Group_2_3__0 ) ) )
+                    // InternalTableDSL.g:26263:5: ( ( rule__TableTable__Group_2_3__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3);
+                    selected = true;
+                    // InternalTableDSL.g:26269:5: ( ( rule__TableTable__Group_2_3__0 ) )
+                    // InternalTableDSL.g:26270:6: ( rule__TableTable__Group_2_3__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableTableAccess().getGroup_2_3()); 
+                    }
+                    // InternalTableDSL.g:26271:6: ( rule__TableTable__Group_2_3__0 )
+                    // InternalTableDSL.g:26271:7: rule__TableTable__Group_2_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__Group_2_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableTableAccess().getGroup_2_3()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:26276:3: ({...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26276:3: ({...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) ) )
+                    // InternalTableDSL.g:26277:4: {...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableTable__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4)");
+                    }
+                    // InternalTableDSL.g:26277:106: ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) )
+                    // InternalTableDSL.g:26278:5: ( ( rule__TableTable__FilteringAssignment_2_4 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4);
+                    selected = true;
+                    // InternalTableDSL.g:26284:5: ( ( rule__TableTable__FilteringAssignment_2_4 ) )
+                    // InternalTableDSL.g:26285:6: ( rule__TableTable__FilteringAssignment_2_4 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableTableAccess().getFilteringAssignment_2_4()); 
+                    }
+                    // InternalTableDSL.g:26286:6: ( rule__TableTable__FilteringAssignment_2_4 )
+                    // InternalTableDSL.g:26286:7: rule__TableTable__FilteringAssignment_2_4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__FilteringAssignment_2_4();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableTableAccess().getFilteringAssignment_2_4()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:26291:3: ({...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26291:3: ({...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) ) )
+                    // InternalTableDSL.g:26292:4: {...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableTable__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5)");
+                    }
+                    // InternalTableDSL.g:26292:106: ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) )
+                    // InternalTableDSL.g:26293:5: ( ( rule__TableTable__EmbeddedAssignment_2_5 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5);
+                    selected = true;
+                    // InternalTableDSL.g:26299:5: ( ( rule__TableTable__EmbeddedAssignment_2_5 ) )
+                    // InternalTableDSL.g:26300:6: ( rule__TableTable__EmbeddedAssignment_2_5 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableTableAccess().getEmbeddedAssignment_2_5()); 
+                    }
+                    // InternalTableDSL.g:26301:6: ( rule__TableTable__EmbeddedAssignment_2_5 )
+                    // InternalTableDSL.g:26301:7: rule__TableTable__EmbeddedAssignment_2_5
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__EmbeddedAssignment_2_5();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableTableAccess().getEmbeddedAssignment_2_5()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:26306:3: ({...}? => ( ( ( rule__TableTable__Group_2_6__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26306:3: ({...}? => ( ( ( rule__TableTable__Group_2_6__0 ) ) ) )
+                    // InternalTableDSL.g:26307:4: {...}? => ( ( ( rule__TableTable__Group_2_6__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableTable__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6)");
+                    }
+                    // InternalTableDSL.g:26307:106: ( ( ( rule__TableTable__Group_2_6__0 ) ) )
+                    // InternalTableDSL.g:26308:5: ( ( rule__TableTable__Group_2_6__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6);
+                    selected = true;
+                    // InternalTableDSL.g:26314:5: ( ( rule__TableTable__Group_2_6__0 ) )
+                    // InternalTableDSL.g:26315:6: ( rule__TableTable__Group_2_6__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableTableAccess().getGroup_2_6()); 
+                    }
+                    // InternalTableDSL.g:26316:6: ( rule__TableTable__Group_2_6__0 )
+                    // InternalTableDSL.g:26316:7: rule__TableTable__Group_2_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__Group_2_6__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableTableAccess().getGroup_2_6()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	if (selected)
+            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__UnorderedGroup_2__Impl"
+
+
+    // $ANTLR start "rule__TableTable__UnorderedGroup_2__0"
+    // InternalTableDSL.g:26329:1: rule__TableTable__UnorderedGroup_2__0 : rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__1 )? ;
+    public final void rule__TableTable__UnorderedGroup_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26333:1: ( rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__1 )? )
+            // InternalTableDSL.g:26334:2: rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__1 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableTable__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26335:2: ( rule__TableTable__UnorderedGroup_2__1 )?
+            int alt188=2;
+            int LA188_0 = input.LA(1);
+
+            if ( LA188_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+                alt188=1;
+            }
+            else if ( LA188_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+                alt188=1;
+            }
+            else if ( LA188_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+                alt188=1;
+            }
+            else if ( LA188_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+                alt188=1;
+            }
+            else if ( LA188_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+                alt188=1;
+            }
+            else if ( LA188_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+                alt188=1;
+            }
+            else if ( LA188_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+                alt188=1;
+            }
+            switch (alt188) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableTable__UnorderedGroup_2__1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__UnorderedGroup_2__1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__UnorderedGroup_2__0"
+
+
+    // $ANTLR start "rule__TableTable__UnorderedGroup_2__1"
+    // InternalTableDSL.g:26341:1: rule__TableTable__UnorderedGroup_2__1 : rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__2 )? ;
+    public final void rule__TableTable__UnorderedGroup_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26345:1: ( rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__2 )? )
+            // InternalTableDSL.g:26346:2: rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__2 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableTable__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26347:2: ( rule__TableTable__UnorderedGroup_2__2 )?
+            int alt189=2;
+            int LA189_0 = input.LA(1);
+
+            if ( LA189_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+                alt189=1;
+            }
+            else if ( LA189_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+                alt189=1;
+            }
+            else if ( LA189_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+                alt189=1;
+            }
+            else if ( LA189_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+                alt189=1;
+            }
+            else if ( LA189_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+                alt189=1;
+            }
+            else if ( LA189_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+                alt189=1;
+            }
+            else if ( LA189_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+                alt189=1;
+            }
+            switch (alt189) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableTable__UnorderedGroup_2__2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__UnorderedGroup_2__2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__UnorderedGroup_2__1"
+
+
+    // $ANTLR start "rule__TableTable__UnorderedGroup_2__2"
+    // InternalTableDSL.g:26353:1: rule__TableTable__UnorderedGroup_2__2 : rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__3 )? ;
+    public final void rule__TableTable__UnorderedGroup_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26357:1: ( rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__3 )? )
+            // InternalTableDSL.g:26358:2: rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__3 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableTable__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26359:2: ( rule__TableTable__UnorderedGroup_2__3 )?
+            int alt190=2;
+            int LA190_0 = input.LA(1);
+
+            if ( LA190_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+                alt190=1;
+            }
+            else if ( LA190_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+                alt190=1;
+            }
+            else if ( LA190_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+                alt190=1;
+            }
+            else if ( LA190_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+                alt190=1;
+            }
+            else if ( LA190_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+                alt190=1;
+            }
+            else if ( LA190_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+                alt190=1;
+            }
+            else if ( LA190_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+                alt190=1;
+            }
+            switch (alt190) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableTable__UnorderedGroup_2__3
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__UnorderedGroup_2__3();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__UnorderedGroup_2__2"
+
+
+    // $ANTLR start "rule__TableTable__UnorderedGroup_2__3"
+    // InternalTableDSL.g:26365:1: rule__TableTable__UnorderedGroup_2__3 : rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__4 )? ;
+    public final void rule__TableTable__UnorderedGroup_2__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26369:1: ( rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__4 )? )
+            // InternalTableDSL.g:26370:2: rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__4 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableTable__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26371:2: ( rule__TableTable__UnorderedGroup_2__4 )?
+            int alt191=2;
+            int LA191_0 = input.LA(1);
+
+            if ( LA191_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+                alt191=1;
+            }
+            else if ( LA191_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+                alt191=1;
+            }
+            else if ( LA191_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+                alt191=1;
+            }
+            else if ( LA191_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+                alt191=1;
+            }
+            else if ( LA191_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+                alt191=1;
+            }
+            else if ( LA191_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+                alt191=1;
+            }
+            else if ( LA191_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+                alt191=1;
+            }
+            switch (alt191) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableTable__UnorderedGroup_2__4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__UnorderedGroup_2__4();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__UnorderedGroup_2__3"
+
+
+    // $ANTLR start "rule__TableTable__UnorderedGroup_2__4"
+    // InternalTableDSL.g:26377:1: rule__TableTable__UnorderedGroup_2__4 : rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__5 )? ;
+    public final void rule__TableTable__UnorderedGroup_2__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26381:1: ( rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__5 )? )
+            // InternalTableDSL.g:26382:2: rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__5 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableTable__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26383:2: ( rule__TableTable__UnorderedGroup_2__5 )?
+            int alt192=2;
+            int LA192_0 = input.LA(1);
+
+            if ( LA192_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+                alt192=1;
+            }
+            else if ( LA192_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+                alt192=1;
+            }
+            else if ( LA192_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+                alt192=1;
+            }
+            else if ( LA192_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+                alt192=1;
+            }
+            else if ( LA192_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+                alt192=1;
+            }
+            else if ( LA192_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+                alt192=1;
+            }
+            else if ( LA192_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+                alt192=1;
+            }
+            switch (alt192) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableTable__UnorderedGroup_2__5
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__UnorderedGroup_2__5();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__UnorderedGroup_2__4"
+
+
+    // $ANTLR start "rule__TableTable__UnorderedGroup_2__5"
+    // InternalTableDSL.g:26389:1: rule__TableTable__UnorderedGroup_2__5 : rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__6 )? ;
+    public final void rule__TableTable__UnorderedGroup_2__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26393:1: ( rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__6 )? )
+            // InternalTableDSL.g:26394:2: rule__TableTable__UnorderedGroup_2__Impl ( rule__TableTable__UnorderedGroup_2__6 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableTable__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26395:2: ( rule__TableTable__UnorderedGroup_2__6 )?
+            int alt193=2;
+            int LA193_0 = input.LA(1);
+
+            if ( LA193_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+                alt193=1;
+            }
+            else if ( LA193_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+                alt193=1;
+            }
+            else if ( LA193_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+                alt193=1;
+            }
+            else if ( LA193_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+                alt193=1;
+            }
+            else if ( LA193_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+                alt193=1;
+            }
+            else if ( LA193_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+                alt193=1;
+            }
+            else if ( LA193_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+                alt193=1;
+            }
+            switch (alt193) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableTable__UnorderedGroup_2__6
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableTable__UnorderedGroup_2__6();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__UnorderedGroup_2__5"
+
+
+    // $ANTLR start "rule__TableTable__UnorderedGroup_2__6"
+    // InternalTableDSL.g:26401:1: rule__TableTable__UnorderedGroup_2__6 : rule__TableTable__UnorderedGroup_2__Impl ;
+    public final void rule__TableTable__UnorderedGroup_2__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26405:1: ( rule__TableTable__UnorderedGroup_2__Impl )
+            // InternalTableDSL.g:26406:2: rule__TableTable__UnorderedGroup_2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableTable__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__UnorderedGroup_2__6"
+
+
+    // $ANTLR start "rule__TableBean__UnorderedGroup_2"
+    // InternalTableDSL.g:26413:1: rule__TableBean__UnorderedGroup_2 : ( rule__TableBean__UnorderedGroup_2__0 )? ;
+    public final void rule__TableBean__UnorderedGroup_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		getUnorderedGroupHelper().enter(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+        	
+        try {
+            // InternalTableDSL.g:26418:1: ( ( rule__TableBean__UnorderedGroup_2__0 )? )
+            // InternalTableDSL.g:26419:2: ( rule__TableBean__UnorderedGroup_2__0 )?
+            {
+            // InternalTableDSL.g:26419:2: ( rule__TableBean__UnorderedGroup_2__0 )?
+            int alt194=2;
+            int LA194_0 = input.LA(1);
+
+            if ( LA194_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
+                alt194=1;
+            }
+            else if ( LA194_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
+                alt194=1;
+            }
+            else if ( LA194_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
+                alt194=1;
+            }
+            else if ( LA194_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
+                alt194=1;
+            }
+            else if ( LA194_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+                alt194=1;
+            }
+            else if ( LA194_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+                alt194=1;
+            }
+            else if ( LA194_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+                alt194=1;
+            }
+            switch (alt194) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableBean__UnorderedGroup_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__UnorderedGroup_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	getUnorderedGroupHelper().leave(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__UnorderedGroup_2"
+
+
+    // $ANTLR start "rule__TableBean__UnorderedGroup_2__Impl"
+    // InternalTableDSL.g:26427:1: rule__TableBean__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_6__0 ) ) ) ) ) ;
+    public final void rule__TableBean__UnorderedGroup_2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		boolean selected = false;
+        	
+        try {
+            // InternalTableDSL.g:26432:1: ( ( ({...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_6__0 ) ) ) ) ) )
+            // InternalTableDSL.g:26433:3: ( ({...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_6__0 ) ) ) ) )
+            {
+            // InternalTableDSL.g:26433:3: ( ({...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__TableBean__Group_2_6__0 ) ) ) ) )
+            int alt195=7;
+            int LA195_0 = input.LA(1);
+
+            if ( LA195_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
+                alt195=1;
+            }
+            else if ( LA195_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
+                alt195=2;
+            }
+            else if ( LA195_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
+                alt195=3;
+            }
+            else if ( LA195_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
+                alt195=4;
+            }
+            else if ( LA195_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+                alt195=5;
+            }
+            else if ( LA195_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+                alt195=6;
+            }
+            else if ( LA195_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+                alt195=7;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 195, 0, input);
+
+                throw nvae;
+            }
+            switch (alt195) {
+                case 1 :
+                    // InternalTableDSL.g:26434:3: ({...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26434:3: ({...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) ) )
+                    // InternalTableDSL.g:26435:4: {...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableBean__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0)");
+                    }
+                    // InternalTableDSL.g:26435:105: ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) )
+                    // InternalTableDSL.g:26436:5: ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0);
+                    selected = true;
+                    // InternalTableDSL.g:26442:5: ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) )
+                    // InternalTableDSL.g:26443:6: ( rule__TableBean__SelectalwaysAssignment_2_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableBeanAccess().getSelectalwaysAssignment_2_0()); 
+                    }
+                    // InternalTableDSL.g:26444:6: ( rule__TableBean__SelectalwaysAssignment_2_0 )
+                    // InternalTableDSL.g:26444:7: rule__TableBean__SelectalwaysAssignment_2_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__SelectalwaysAssignment_2_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableBeanAccess().getSelectalwaysAssignment_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:26449:3: ({...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26449:3: ({...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) ) )
+                    // InternalTableDSL.g:26450:4: {...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableBean__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1)");
+                    }
+                    // InternalTableDSL.g:26450:105: ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) )
+                    // InternalTableDSL.g:26451:5: ( ( rule__TableBean__SelectByIdAssignment_2_1 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1);
+                    selected = true;
+                    // InternalTableDSL.g:26457:5: ( ( rule__TableBean__SelectByIdAssignment_2_1 ) )
+                    // InternalTableDSL.g:26458:6: ( rule__TableBean__SelectByIdAssignment_2_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableBeanAccess().getSelectByIdAssignment_2_1()); 
+                    }
+                    // InternalTableDSL.g:26459:6: ( rule__TableBean__SelectByIdAssignment_2_1 )
+                    // InternalTableDSL.g:26459:7: rule__TableBean__SelectByIdAssignment_2_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__SelectByIdAssignment_2_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableBeanAccess().getSelectByIdAssignment_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:26464:3: ({...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26464:3: ({...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) ) )
+                    // InternalTableDSL.g:26465:4: {...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableBean__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2)");
+                    }
+                    // InternalTableDSL.g:26465:105: ( ( ( rule__TableBean__Group_2_2__0 ) ) )
+                    // InternalTableDSL.g:26466:5: ( ( rule__TableBean__Group_2_2__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2);
+                    selected = true;
+                    // InternalTableDSL.g:26472:5: ( ( rule__TableBean__Group_2_2__0 ) )
+                    // InternalTableDSL.g:26473:6: ( rule__TableBean__Group_2_2__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableBeanAccess().getGroup_2_2()); 
+                    }
+                    // InternalTableDSL.g:26474:6: ( rule__TableBean__Group_2_2__0 )
+                    // InternalTableDSL.g:26474:7: rule__TableBean__Group_2_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__Group_2_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableBeanAccess().getGroup_2_2()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:26479:3: ({...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26479:3: ({...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) ) )
+                    // InternalTableDSL.g:26480:4: {...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableBean__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3)");
+                    }
+                    // InternalTableDSL.g:26480:105: ( ( ( rule__TableBean__Group_2_3__0 ) ) )
+                    // InternalTableDSL.g:26481:5: ( ( rule__TableBean__Group_2_3__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3);
+                    selected = true;
+                    // InternalTableDSL.g:26487:5: ( ( rule__TableBean__Group_2_3__0 ) )
+                    // InternalTableDSL.g:26488:6: ( rule__TableBean__Group_2_3__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableBeanAccess().getGroup_2_3()); 
+                    }
+                    // InternalTableDSL.g:26489:6: ( rule__TableBean__Group_2_3__0 )
+                    // InternalTableDSL.g:26489:7: rule__TableBean__Group_2_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__Group_2_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableBeanAccess().getGroup_2_3()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:26494:3: ({...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26494:3: ({...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) ) )
+                    // InternalTableDSL.g:26495:4: {...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableBean__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4)");
+                    }
+                    // InternalTableDSL.g:26495:105: ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) )
+                    // InternalTableDSL.g:26496:5: ( ( rule__TableBean__FilteringAssignment_2_4 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4);
+                    selected = true;
+                    // InternalTableDSL.g:26502:5: ( ( rule__TableBean__FilteringAssignment_2_4 ) )
+                    // InternalTableDSL.g:26503:6: ( rule__TableBean__FilteringAssignment_2_4 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableBeanAccess().getFilteringAssignment_2_4()); 
+                    }
+                    // InternalTableDSL.g:26504:6: ( rule__TableBean__FilteringAssignment_2_4 )
+                    // InternalTableDSL.g:26504:7: rule__TableBean__FilteringAssignment_2_4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__FilteringAssignment_2_4();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableBeanAccess().getFilteringAssignment_2_4()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:26509:3: ({...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26509:3: ({...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) ) )
+                    // InternalTableDSL.g:26510:4: {...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableBean__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5)");
+                    }
+                    // InternalTableDSL.g:26510:105: ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) )
+                    // InternalTableDSL.g:26511:5: ( ( rule__TableBean__EmbeddedAssignment_2_5 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5);
+                    selected = true;
+                    // InternalTableDSL.g:26517:5: ( ( rule__TableBean__EmbeddedAssignment_2_5 ) )
+                    // InternalTableDSL.g:26518:6: ( rule__TableBean__EmbeddedAssignment_2_5 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableBeanAccess().getEmbeddedAssignment_2_5()); 
+                    }
+                    // InternalTableDSL.g:26519:6: ( rule__TableBean__EmbeddedAssignment_2_5 )
+                    // InternalTableDSL.g:26519:7: rule__TableBean__EmbeddedAssignment_2_5
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__EmbeddedAssignment_2_5();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableBeanAccess().getEmbeddedAssignment_2_5()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:26524:3: ({...}? => ( ( ( rule__TableBean__Group_2_6__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26524:3: ({...}? => ( ( ( rule__TableBean__Group_2_6__0 ) ) ) )
+                    // InternalTableDSL.g:26525:4: {...}? => ( ( ( rule__TableBean__Group_2_6__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableBean__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6)");
+                    }
+                    // InternalTableDSL.g:26525:105: ( ( ( rule__TableBean__Group_2_6__0 ) ) )
+                    // InternalTableDSL.g:26526:5: ( ( rule__TableBean__Group_2_6__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6);
+                    selected = true;
+                    // InternalTableDSL.g:26532:5: ( ( rule__TableBean__Group_2_6__0 ) )
+                    // InternalTableDSL.g:26533:6: ( rule__TableBean__Group_2_6__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableBeanAccess().getGroup_2_6()); 
+                    }
+                    // InternalTableDSL.g:26534:6: ( rule__TableBean__Group_2_6__0 )
+                    // InternalTableDSL.g:26534:7: rule__TableBean__Group_2_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__Group_2_6__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableBeanAccess().getGroup_2_6()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	if (selected)
+            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__UnorderedGroup_2__Impl"
+
+
+    // $ANTLR start "rule__TableBean__UnorderedGroup_2__0"
+    // InternalTableDSL.g:26547:1: rule__TableBean__UnorderedGroup_2__0 : rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__1 )? ;
+    public final void rule__TableBean__UnorderedGroup_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26551:1: ( rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__1 )? )
+            // InternalTableDSL.g:26552:2: rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__1 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableBean__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26553:2: ( rule__TableBean__UnorderedGroup_2__1 )?
+            int alt196=2;
+            int LA196_0 = input.LA(1);
+
+            if ( LA196_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
+                alt196=1;
+            }
+            else if ( LA196_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
+                alt196=1;
+            }
+            else if ( LA196_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
+                alt196=1;
+            }
+            else if ( LA196_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
+                alt196=1;
+            }
+            else if ( LA196_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+                alt196=1;
+            }
+            else if ( LA196_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+                alt196=1;
+            }
+            else if ( LA196_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+                alt196=1;
+            }
+            switch (alt196) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableBean__UnorderedGroup_2__1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__UnorderedGroup_2__1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__UnorderedGroup_2__0"
+
+
+    // $ANTLR start "rule__TableBean__UnorderedGroup_2__1"
+    // InternalTableDSL.g:26559:1: rule__TableBean__UnorderedGroup_2__1 : rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__2 )? ;
+    public final void rule__TableBean__UnorderedGroup_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26563:1: ( rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__2 )? )
+            // InternalTableDSL.g:26564:2: rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__2 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableBean__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26565:2: ( rule__TableBean__UnorderedGroup_2__2 )?
+            int alt197=2;
+            int LA197_0 = input.LA(1);
+
+            if ( LA197_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
+                alt197=1;
+            }
+            else if ( LA197_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
+                alt197=1;
+            }
+            else if ( LA197_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
+                alt197=1;
+            }
+            else if ( LA197_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
+                alt197=1;
+            }
+            else if ( LA197_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+                alt197=1;
+            }
+            else if ( LA197_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+                alt197=1;
+            }
+            else if ( LA197_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+                alt197=1;
+            }
+            switch (alt197) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableBean__UnorderedGroup_2__2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__UnorderedGroup_2__2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__UnorderedGroup_2__1"
+
+
+    // $ANTLR start "rule__TableBean__UnorderedGroup_2__2"
+    // InternalTableDSL.g:26571:1: rule__TableBean__UnorderedGroup_2__2 : rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__3 )? ;
+    public final void rule__TableBean__UnorderedGroup_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26575:1: ( rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__3 )? )
+            // InternalTableDSL.g:26576:2: rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__3 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableBean__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26577:2: ( rule__TableBean__UnorderedGroup_2__3 )?
+            int alt198=2;
+            int LA198_0 = input.LA(1);
+
+            if ( LA198_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
+                alt198=1;
+            }
+            else if ( LA198_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
+                alt198=1;
+            }
+            else if ( LA198_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
+                alt198=1;
+            }
+            else if ( LA198_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
+                alt198=1;
+            }
+            else if ( LA198_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+                alt198=1;
+            }
+            else if ( LA198_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+                alt198=1;
+            }
+            else if ( LA198_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+                alt198=1;
+            }
+            switch (alt198) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableBean__UnorderedGroup_2__3
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__UnorderedGroup_2__3();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__UnorderedGroup_2__2"
+
+
+    // $ANTLR start "rule__TableBean__UnorderedGroup_2__3"
+    // InternalTableDSL.g:26583:1: rule__TableBean__UnorderedGroup_2__3 : rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__4 )? ;
+    public final void rule__TableBean__UnorderedGroup_2__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26587:1: ( rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__4 )? )
+            // InternalTableDSL.g:26588:2: rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__4 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableBean__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26589:2: ( rule__TableBean__UnorderedGroup_2__4 )?
+            int alt199=2;
+            int LA199_0 = input.LA(1);
+
+            if ( LA199_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
+                alt199=1;
+            }
+            else if ( LA199_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
+                alt199=1;
+            }
+            else if ( LA199_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
+                alt199=1;
+            }
+            else if ( LA199_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
+                alt199=1;
+            }
+            else if ( LA199_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+                alt199=1;
+            }
+            else if ( LA199_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+                alt199=1;
+            }
+            else if ( LA199_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+                alt199=1;
+            }
+            switch (alt199) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableBean__UnorderedGroup_2__4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__UnorderedGroup_2__4();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__UnorderedGroup_2__3"
+
+
+    // $ANTLR start "rule__TableBean__UnorderedGroup_2__4"
+    // InternalTableDSL.g:26595:1: rule__TableBean__UnorderedGroup_2__4 : rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__5 )? ;
+    public final void rule__TableBean__UnorderedGroup_2__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26599:1: ( rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__5 )? )
+            // InternalTableDSL.g:26600:2: rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__5 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableBean__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26601:2: ( rule__TableBean__UnorderedGroup_2__5 )?
+            int alt200=2;
+            int LA200_0 = input.LA(1);
+
+            if ( LA200_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
+                alt200=1;
+            }
+            else if ( LA200_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
+                alt200=1;
+            }
+            else if ( LA200_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
+                alt200=1;
+            }
+            else if ( LA200_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
+                alt200=1;
+            }
+            else if ( LA200_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+                alt200=1;
+            }
+            else if ( LA200_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+                alt200=1;
+            }
+            else if ( LA200_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+                alt200=1;
+            }
+            switch (alt200) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableBean__UnorderedGroup_2__5
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__UnorderedGroup_2__5();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__UnorderedGroup_2__4"
+
+
+    // $ANTLR start "rule__TableBean__UnorderedGroup_2__5"
+    // InternalTableDSL.g:26607:1: rule__TableBean__UnorderedGroup_2__5 : rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__6 )? ;
+    public final void rule__TableBean__UnorderedGroup_2__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26611:1: ( rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__6 )? )
+            // InternalTableDSL.g:26612:2: rule__TableBean__UnorderedGroup_2__Impl ( rule__TableBean__UnorderedGroup_2__6 )?
+            {
+            pushFollow(FOLLOW_189);
+            rule__TableBean__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26613:2: ( rule__TableBean__UnorderedGroup_2__6 )?
+            int alt201=2;
+            int LA201_0 = input.LA(1);
+
+            if ( LA201_0 == 167 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
+                alt201=1;
+            }
+            else if ( LA201_0 == 171 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
+                alt201=1;
+            }
+            else if ( LA201_0 == 80 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
+                alt201=1;
+            }
+            else if ( LA201_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
+                alt201=1;
+            }
+            else if ( LA201_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+                alt201=1;
+            }
+            else if ( LA201_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+                alt201=1;
+            }
+            else if ( LA201_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+                alt201=1;
+            }
+            switch (alt201) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableBean__UnorderedGroup_2__6
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableBean__UnorderedGroup_2__6();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__UnorderedGroup_2__5"
+
+
+    // $ANTLR start "rule__TableBean__UnorderedGroup_2__6"
+    // InternalTableDSL.g:26619:1: rule__TableBean__UnorderedGroup_2__6 : rule__TableBean__UnorderedGroup_2__Impl ;
+    public final void rule__TableBean__UnorderedGroup_2__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26623:1: ( rule__TableBean__UnorderedGroup_2__Impl )
+            // InternalTableDSL.g:26624:2: rule__TableBean__UnorderedGroup_2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableBean__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__UnorderedGroup_2__6"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_3"
+    // InternalTableDSL.g:26631:1: rule__TableValue__UnorderedGroup_3 : ( rule__TableValue__UnorderedGroup_3__0 )? ;
+    public final void rule__TableValue__UnorderedGroup_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		getUnorderedGroupHelper().enter(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+        	
+        try {
+            // InternalTableDSL.g:26636:1: ( ( rule__TableValue__UnorderedGroup_3__0 )? )
+            // InternalTableDSL.g:26637:2: ( rule__TableValue__UnorderedGroup_3__0 )?
+            {
+            // InternalTableDSL.g:26637:2: ( rule__TableValue__UnorderedGroup_3__0 )?
+            int alt202=2;
+            int LA202_0 = input.LA(1);
+
+            if ( LA202_0 == 173 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
+                alt202=1;
+            }
+            else if ( LA202_0 == 86 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
+                alt202=1;
+            }
+            else if ( LA202_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
+                alt202=1;
+            }
+            else if ( LA202_0 == 174 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
+                alt202=1;
+            }
+            else if ( LA202_0 == 91 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4) ) {
+                alt202=1;
+            }
+            switch (alt202) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableValue__UnorderedGroup_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__UnorderedGroup_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	getUnorderedGroupHelper().leave(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_3"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_3__Impl"
+    // InternalTableDSL.g:26645:1: rule__TableValue__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__TooltipPatternAssignment_3_4 ) ) ) ) ) ;
+    public final void rule__TableValue__UnorderedGroup_3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		boolean selected = false;
+        	
+        try {
+            // InternalTableDSL.g:26650:1: ( ( ({...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__TooltipPatternAssignment_3_4 ) ) ) ) ) )
+            // InternalTableDSL.g:26651:3: ( ({...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__TooltipPatternAssignment_3_4 ) ) ) ) )
+            {
+            // InternalTableDSL.g:26651:3: ( ({...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__TooltipPatternAssignment_3_4 ) ) ) ) )
+            int alt203=5;
+            int LA203_0 = input.LA(1);
+
+            if ( LA203_0 == 173 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
+                alt203=1;
+            }
+            else if ( LA203_0 == 86 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
+                alt203=2;
+            }
+            else if ( LA203_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
+                alt203=3;
+            }
+            else if ( LA203_0 == 174 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
+                alt203=4;
+            }
+            else if ( LA203_0 == 91 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4) ) {
+                alt203=5;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 203, 0, input);
+
+                throw nvae;
+            }
+            switch (alt203) {
+                case 1 :
+                    // InternalTableDSL.g:26652:3: ({...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26652:3: ({...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) ) )
+                    // InternalTableDSL.g:26653:4: {...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableValue__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0)");
+                    }
+                    // InternalTableDSL.g:26653:106: ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) )
+                    // InternalTableDSL.g:26654:5: ( ( rule__TableValue__CollapsedAssignment_3_0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0);
+                    selected = true;
+                    // InternalTableDSL.g:26660:5: ( ( rule__TableValue__CollapsedAssignment_3_0 ) )
+                    // InternalTableDSL.g:26661:6: ( rule__TableValue__CollapsedAssignment_3_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueAccess().getCollapsedAssignment_3_0()); 
+                    }
+                    // InternalTableDSL.g:26662:6: ( rule__TableValue__CollapsedAssignment_3_0 )
+                    // InternalTableDSL.g:26662:7: rule__TableValue__CollapsedAssignment_3_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__CollapsedAssignment_3_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueAccess().getCollapsedAssignment_3_0()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:26667:3: ({...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26667:3: ({...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) ) )
+                    // InternalTableDSL.g:26668:4: {...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableValue__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1)");
+                    }
+                    // InternalTableDSL.g:26668:106: ( ( ( rule__TableValue__Group_3_1__0 ) ) )
+                    // InternalTableDSL.g:26669:5: ( ( rule__TableValue__Group_3_1__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1);
+                    selected = true;
+                    // InternalTableDSL.g:26675:5: ( ( rule__TableValue__Group_3_1__0 ) )
+                    // InternalTableDSL.g:26676:6: ( rule__TableValue__Group_3_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueAccess().getGroup_3_1()); 
+                    }
+                    // InternalTableDSL.g:26677:6: ( rule__TableValue__Group_3_1__0 )
+                    // InternalTableDSL.g:26677:7: rule__TableValue__Group_3_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__Group_3_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueAccess().getGroup_3_1()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:26682:3: ({...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26682:3: ({...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) ) )
+                    // InternalTableDSL.g:26683:4: {...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableValue__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2)");
+                    }
+                    // InternalTableDSL.g:26683:106: ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) )
+                    // InternalTableDSL.g:26684:5: ( ( rule__TableValue__FormatterAssignment_3_2 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2);
+                    selected = true;
+                    // InternalTableDSL.g:26690:5: ( ( rule__TableValue__FormatterAssignment_3_2 ) )
+                    // InternalTableDSL.g:26691:6: ( rule__TableValue__FormatterAssignment_3_2 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueAccess().getFormatterAssignment_3_2()); 
+                    }
+                    // InternalTableDSL.g:26692:6: ( rule__TableValue__FormatterAssignment_3_2 )
+                    // InternalTableDSL.g:26692:7: rule__TableValue__FormatterAssignment_3_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__FormatterAssignment_3_2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueAccess().getFormatterAssignment_3_2()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:26697:3: ({...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26697:3: ({...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) ) )
+                    // InternalTableDSL.g:26698:4: {...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableValue__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3)");
+                    }
+                    // InternalTableDSL.g:26698:106: ( ( ( rule__TableValue__Group_3_3__0 ) ) )
+                    // InternalTableDSL.g:26699:5: ( ( rule__TableValue__Group_3_3__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3);
+                    selected = true;
+                    // InternalTableDSL.g:26705:5: ( ( rule__TableValue__Group_3_3__0 ) )
+                    // InternalTableDSL.g:26706:6: ( rule__TableValue__Group_3_3__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueAccess().getGroup_3_3()); 
+                    }
+                    // InternalTableDSL.g:26707:6: ( rule__TableValue__Group_3_3__0 )
+                    // InternalTableDSL.g:26707:7: rule__TableValue__Group_3_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__Group_3_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueAccess().getGroup_3_3()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:26712:3: ({...}? => ( ( ( rule__TableValue__TooltipPatternAssignment_3_4 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26712:3: ({...}? => ( ( ( rule__TableValue__TooltipPatternAssignment_3_4 ) ) ) )
+                    // InternalTableDSL.g:26713:4: {...}? => ( ( ( rule__TableValue__TooltipPatternAssignment_3_4 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableValue__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4)");
+                    }
+                    // InternalTableDSL.g:26713:106: ( ( ( rule__TableValue__TooltipPatternAssignment_3_4 ) ) )
+                    // InternalTableDSL.g:26714:5: ( ( rule__TableValue__TooltipPatternAssignment_3_4 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4);
+                    selected = true;
+                    // InternalTableDSL.g:26720:5: ( ( rule__TableValue__TooltipPatternAssignment_3_4 ) )
+                    // InternalTableDSL.g:26721:6: ( rule__TableValue__TooltipPatternAssignment_3_4 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueAccess().getTooltipPatternAssignment_3_4()); 
+                    }
+                    // InternalTableDSL.g:26722:6: ( rule__TableValue__TooltipPatternAssignment_3_4 )
+                    // InternalTableDSL.g:26722:7: rule__TableValue__TooltipPatternAssignment_3_4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__TooltipPatternAssignment_3_4();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueAccess().getTooltipPatternAssignment_3_4()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	if (selected)
+            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_3__Impl"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_3__0"
+    // InternalTableDSL.g:26735:1: rule__TableValue__UnorderedGroup_3__0 : rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__1 )? ;
+    public final void rule__TableValue__UnorderedGroup_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26739:1: ( rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__1 )? )
+            // InternalTableDSL.g:26740:2: rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__1 )?
+            {
+            pushFollow(FOLLOW_190);
+            rule__TableValue__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26741:2: ( rule__TableValue__UnorderedGroup_3__1 )?
+            int alt204=2;
+            int LA204_0 = input.LA(1);
+
+            if ( LA204_0 == 173 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
+                alt204=1;
+            }
+            else if ( LA204_0 == 86 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
+                alt204=1;
+            }
+            else if ( LA204_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
+                alt204=1;
+            }
+            else if ( LA204_0 == 174 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
+                alt204=1;
+            }
+            else if ( LA204_0 == 91 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4) ) {
+                alt204=1;
+            }
+            switch (alt204) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableValue__UnorderedGroup_3__1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__UnorderedGroup_3__1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_3__0"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_3__1"
+    // InternalTableDSL.g:26747:1: rule__TableValue__UnorderedGroup_3__1 : rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__2 )? ;
+    public final void rule__TableValue__UnorderedGroup_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26751:1: ( rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__2 )? )
+            // InternalTableDSL.g:26752:2: rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__2 )?
+            {
+            pushFollow(FOLLOW_190);
+            rule__TableValue__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26753:2: ( rule__TableValue__UnorderedGroup_3__2 )?
+            int alt205=2;
+            int LA205_0 = input.LA(1);
+
+            if ( LA205_0 == 173 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
+                alt205=1;
+            }
+            else if ( LA205_0 == 86 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
+                alt205=1;
+            }
+            else if ( LA205_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
+                alt205=1;
+            }
+            else if ( LA205_0 == 174 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
+                alt205=1;
+            }
+            else if ( LA205_0 == 91 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4) ) {
+                alt205=1;
+            }
+            switch (alt205) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableValue__UnorderedGroup_3__2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__UnorderedGroup_3__2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_3__1"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_3__2"
+    // InternalTableDSL.g:26759:1: rule__TableValue__UnorderedGroup_3__2 : rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__3 )? ;
+    public final void rule__TableValue__UnorderedGroup_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26763:1: ( rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__3 )? )
+            // InternalTableDSL.g:26764:2: rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__3 )?
+            {
+            pushFollow(FOLLOW_190);
+            rule__TableValue__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26765:2: ( rule__TableValue__UnorderedGroup_3__3 )?
+            int alt206=2;
+            int LA206_0 = input.LA(1);
+
+            if ( LA206_0 == 173 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
+                alt206=1;
+            }
+            else if ( LA206_0 == 86 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
+                alt206=1;
+            }
+            else if ( LA206_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
+                alt206=1;
+            }
+            else if ( LA206_0 == 174 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
+                alt206=1;
+            }
+            else if ( LA206_0 == 91 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4) ) {
+                alt206=1;
+            }
+            switch (alt206) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableValue__UnorderedGroup_3__3
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__UnorderedGroup_3__3();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_3__2"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_3__3"
+    // InternalTableDSL.g:26771:1: rule__TableValue__UnorderedGroup_3__3 : rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__4 )? ;
+    public final void rule__TableValue__UnorderedGroup_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26775:1: ( rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__4 )? )
+            // InternalTableDSL.g:26776:2: rule__TableValue__UnorderedGroup_3__Impl ( rule__TableValue__UnorderedGroup_3__4 )?
+            {
+            pushFollow(FOLLOW_190);
+            rule__TableValue__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26777:2: ( rule__TableValue__UnorderedGroup_3__4 )?
+            int alt207=2;
+            int LA207_0 = input.LA(1);
+
+            if ( LA207_0 == 173 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
+                alt207=1;
+            }
+            else if ( LA207_0 == 86 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
+                alt207=1;
+            }
+            else if ( LA207_0 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
+                alt207=1;
+            }
+            else if ( LA207_0 == 174 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
+                alt207=1;
+            }
+            else if ( LA207_0 == 91 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4) ) {
+                alt207=1;
+            }
+            switch (alt207) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableValue__UnorderedGroup_3__4
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__UnorderedGroup_3__4();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_3__3"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_3__4"
+    // InternalTableDSL.g:26783:1: rule__TableValue__UnorderedGroup_3__4 : rule__TableValue__UnorderedGroup_3__Impl ;
+    public final void rule__TableValue__UnorderedGroup_3__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26787:1: ( rule__TableValue__UnorderedGroup_3__Impl )
+            // InternalTableDSL.g:26788:2: rule__TableValue__UnorderedGroup_3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_3__4"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_4"
+    // InternalTableDSL.g:26795:1: rule__TableValue__UnorderedGroup_4 : ( rule__TableValue__UnorderedGroup_4__0 )? ;
+    public final void rule__TableValue__UnorderedGroup_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		getUnorderedGroupHelper().enter(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
+        	
+        try {
+            // InternalTableDSL.g:26800:1: ( ( rule__TableValue__UnorderedGroup_4__0 )? )
+            // InternalTableDSL.g:26801:2: ( rule__TableValue__UnorderedGroup_4__0 )?
+            {
+            // InternalTableDSL.g:26801:2: ( rule__TableValue__UnorderedGroup_4__0 )?
+            int alt208=2;
+            int LA208_0 = input.LA(1);
+
+            if ( LA208_0 == 87 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0) ) {
+                alt208=1;
+            }
+            else if ( LA208_0 == 88 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1) ) {
+                alt208=1;
+            }
+            switch (alt208) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableValue__UnorderedGroup_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__UnorderedGroup_4__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	getUnorderedGroupHelper().leave(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_4"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_4__Impl"
+    // InternalTableDSL.g:26809:1: rule__TableValue__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_4_1__0 ) ) ) ) ) ;
+    public final void rule__TableValue__UnorderedGroup_4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		boolean selected = false;
+        	
+        try {
+            // InternalTableDSL.g:26814:1: ( ( ({...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_4_1__0 ) ) ) ) ) )
+            // InternalTableDSL.g:26815:3: ( ({...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_4_1__0 ) ) ) ) )
+            {
+            // InternalTableDSL.g:26815:3: ( ({...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableValue__Group_4_1__0 ) ) ) ) )
+            int alt209=2;
+            int LA209_0 = input.LA(1);
+
+            if ( LA209_0 == 87 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0) ) {
+                alt209=1;
+            }
+            else if ( LA209_0 == 88 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1) ) {
+                alt209=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 209, 0, input);
+
+                throw nvae;
+            }
+            switch (alt209) {
+                case 1 :
+                    // InternalTableDSL.g:26816:3: ({...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26816:3: ({...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) ) )
+                    // InternalTableDSL.g:26817:4: {...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableValue__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0)");
+                    }
+                    // InternalTableDSL.g:26817:106: ( ( ( rule__TableValue__Group_4_0__0 ) ) )
+                    // InternalTableDSL.g:26818:5: ( ( rule__TableValue__Group_4_0__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0);
+                    selected = true;
+                    // InternalTableDSL.g:26824:5: ( ( rule__TableValue__Group_4_0__0 ) )
+                    // InternalTableDSL.g:26825:6: ( rule__TableValue__Group_4_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueAccess().getGroup_4_0()); 
+                    }
+                    // InternalTableDSL.g:26826:6: ( rule__TableValue__Group_4_0__0 )
+                    // InternalTableDSL.g:26826:7: rule__TableValue__Group_4_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__Group_4_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueAccess().getGroup_4_0()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:26831:3: ({...}? => ( ( ( rule__TableValue__Group_4_1__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26831:3: ({...}? => ( ( ( rule__TableValue__Group_4_1__0 ) ) ) )
+                    // InternalTableDSL.g:26832:4: {...}? => ( ( ( rule__TableValue__Group_4_1__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableValue__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1)");
+                    }
+                    // InternalTableDSL.g:26832:106: ( ( ( rule__TableValue__Group_4_1__0 ) ) )
+                    // InternalTableDSL.g:26833:5: ( ( rule__TableValue__Group_4_1__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1);
+                    selected = true;
+                    // InternalTableDSL.g:26839:5: ( ( rule__TableValue__Group_4_1__0 ) )
+                    // InternalTableDSL.g:26840:6: ( rule__TableValue__Group_4_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableValueAccess().getGroup_4_1()); 
+                    }
+                    // InternalTableDSL.g:26841:6: ( rule__TableValue__Group_4_1__0 )
+                    // InternalTableDSL.g:26841:7: rule__TableValue__Group_4_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__Group_4_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableValueAccess().getGroup_4_1()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	if (selected)
+            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_4__Impl"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_4__0"
+    // InternalTableDSL.g:26854:1: rule__TableValue__UnorderedGroup_4__0 : rule__TableValue__UnorderedGroup_4__Impl ( rule__TableValue__UnorderedGroup_4__1 )? ;
+    public final void rule__TableValue__UnorderedGroup_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26858:1: ( rule__TableValue__UnorderedGroup_4__Impl ( rule__TableValue__UnorderedGroup_4__1 )? )
+            // InternalTableDSL.g:26859:2: rule__TableValue__UnorderedGroup_4__Impl ( rule__TableValue__UnorderedGroup_4__1 )?
+            {
+            pushFollow(FOLLOW_191);
+            rule__TableValue__UnorderedGroup_4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26860:2: ( rule__TableValue__UnorderedGroup_4__1 )?
+            int alt210=2;
+            int LA210_0 = input.LA(1);
+
+            if ( LA210_0 == 87 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0) ) {
+                alt210=1;
+            }
+            else if ( LA210_0 == 88 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1) ) {
+                alt210=1;
+            }
+            switch (alt210) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableValue__UnorderedGroup_4__1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableValue__UnorderedGroup_4__1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_4__0"
+
+
+    // $ANTLR start "rule__TableValue__UnorderedGroup_4__1"
+    // InternalTableDSL.g:26866:1: rule__TableValue__UnorderedGroup_4__1 : rule__TableValue__UnorderedGroup_4__Impl ;
+    public final void rule__TableValue__UnorderedGroup_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26870:1: ( rule__TableValue__UnorderedGroup_4__Impl )
+            // InternalTableDSL.g:26871:2: rule__TableValue__UnorderedGroup_4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableValue__UnorderedGroup_4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__UnorderedGroup_4__1"
+
+
+    // $ANTLR start "rule__TableImage__UnorderedGroup_3"
+    // InternalTableDSL.g:26878:1: rule__TableImage__UnorderedGroup_3 : ( rule__TableImage__UnorderedGroup_3__0 )? ;
+    public final void rule__TableImage__UnorderedGroup_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		getUnorderedGroupHelper().enter(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+        	
+        try {
+            // InternalTableDSL.g:26883:1: ( ( rule__TableImage__UnorderedGroup_3__0 )? )
+            // InternalTableDSL.g:26884:2: ( rule__TableImage__UnorderedGroup_3__0 )?
+            {
+            // InternalTableDSL.g:26884:2: ( rule__TableImage__UnorderedGroup_3__0 )?
+            int alt211=2;
+            int LA211_0 = input.LA(1);
+
+            if ( LA211_0 == 176 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0) ) {
+                alt211=1;
+            }
+            else if ( LA211_0 == 175 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1) ) {
+                alt211=1;
+            }
+            else if ( LA211_0 == 177 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2) ) {
+                alt211=1;
+            }
+            switch (alt211) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableImage__UnorderedGroup_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableImage__UnorderedGroup_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	getUnorderedGroupHelper().leave(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__UnorderedGroup_3"
+
+
+    // $ANTLR start "rule__TableImage__UnorderedGroup_3__Impl"
+    // InternalTableDSL.g:26892:1: rule__TableImage__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__TableImage__Group_3_2__0 ) ) ) ) ) ;
+    public final void rule__TableImage__UnorderedGroup_3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		boolean selected = false;
+        	
+        try {
+            // InternalTableDSL.g:26897:1: ( ( ({...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__TableImage__Group_3_2__0 ) ) ) ) ) )
+            // InternalTableDSL.g:26898:3: ( ({...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__TableImage__Group_3_2__0 ) ) ) ) )
+            {
+            // InternalTableDSL.g:26898:3: ( ({...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__TableImage__Group_3_2__0 ) ) ) ) )
+            int alt212=3;
+            int LA212_0 = input.LA(1);
+
+            if ( LA212_0 == 176 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0) ) {
+                alt212=1;
+            }
+            else if ( LA212_0 == 175 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1) ) {
+                alt212=2;
+            }
+            else if ( LA212_0 == 177 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2) ) {
+                alt212=3;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 212, 0, input);
+
+                throw nvae;
+            }
+            switch (alt212) {
+                case 1 :
+                    // InternalTableDSL.g:26899:3: ({...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26899:3: ({...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) ) )
+                    // InternalTableDSL.g:26900:4: {...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableImage__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0)");
+                    }
+                    // InternalTableDSL.g:26900:106: ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) )
+                    // InternalTableDSL.g:26901:5: ( ( rule__TableImage__HasParameterAssignment_3_0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0);
+                    selected = true;
+                    // InternalTableDSL.g:26907:5: ( ( rule__TableImage__HasParameterAssignment_3_0 ) )
+                    // InternalTableDSL.g:26908:6: ( rule__TableImage__HasParameterAssignment_3_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableImageAccess().getHasParameterAssignment_3_0()); 
+                    }
+                    // InternalTableDSL.g:26909:6: ( rule__TableImage__HasParameterAssignment_3_0 )
+                    // InternalTableDSL.g:26909:7: rule__TableImage__HasParameterAssignment_3_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableImage__HasParameterAssignment_3_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableImageAccess().getHasParameterAssignment_3_0()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:26914:3: ({...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26914:3: ({...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) ) )
+                    // InternalTableDSL.g:26915:4: {...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableImage__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1)");
+                    }
+                    // InternalTableDSL.g:26915:106: ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) )
+                    // InternalTableDSL.g:26916:5: ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1);
+                    selected = true;
+                    // InternalTableDSL.g:26922:5: ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) )
+                    // InternalTableDSL.g:26923:6: ( rule__TableImage__HideImageLabelAssignment_3_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableImageAccess().getHideImageLabelAssignment_3_1()); 
+                    }
+                    // InternalTableDSL.g:26924:6: ( rule__TableImage__HideImageLabelAssignment_3_1 )
+                    // InternalTableDSL.g:26924:7: rule__TableImage__HideImageLabelAssignment_3_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableImage__HideImageLabelAssignment_3_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableImageAccess().getHideImageLabelAssignment_3_1()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:26929:3: ({...}? => ( ( ( rule__TableImage__Group_3_2__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:26929:3: ({...}? => ( ( ( rule__TableImage__Group_3_2__0 ) ) ) )
+                    // InternalTableDSL.g:26930:4: {...}? => ( ( ( rule__TableImage__Group_3_2__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableImage__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2)");
+                    }
+                    // InternalTableDSL.g:26930:106: ( ( ( rule__TableImage__Group_3_2__0 ) ) )
+                    // InternalTableDSL.g:26931:5: ( ( rule__TableImage__Group_3_2__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2);
+                    selected = true;
+                    // InternalTableDSL.g:26937:5: ( ( rule__TableImage__Group_3_2__0 ) )
+                    // InternalTableDSL.g:26938:6: ( rule__TableImage__Group_3_2__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableImageAccess().getGroup_3_2()); 
+                    }
+                    // InternalTableDSL.g:26939:6: ( rule__TableImage__Group_3_2__0 )
+                    // InternalTableDSL.g:26939:7: rule__TableImage__Group_3_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableImage__Group_3_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableImageAccess().getGroup_3_2()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	if (selected)
+            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__UnorderedGroup_3__Impl"
+
+
+    // $ANTLR start "rule__TableImage__UnorderedGroup_3__0"
+    // InternalTableDSL.g:26952:1: rule__TableImage__UnorderedGroup_3__0 : rule__TableImage__UnorderedGroup_3__Impl ( rule__TableImage__UnorderedGroup_3__1 )? ;
+    public final void rule__TableImage__UnorderedGroup_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26956:1: ( rule__TableImage__UnorderedGroup_3__Impl ( rule__TableImage__UnorderedGroup_3__1 )? )
+            // InternalTableDSL.g:26957:2: rule__TableImage__UnorderedGroup_3__Impl ( rule__TableImage__UnorderedGroup_3__1 )?
+            {
+            pushFollow(FOLLOW_192);
+            rule__TableImage__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26958:2: ( rule__TableImage__UnorderedGroup_3__1 )?
+            int alt213=2;
+            int LA213_0 = input.LA(1);
+
+            if ( LA213_0 == 176 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0) ) {
+                alt213=1;
+            }
+            else if ( LA213_0 == 175 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1) ) {
+                alt213=1;
+            }
+            else if ( LA213_0 == 177 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2) ) {
+                alt213=1;
+            }
+            switch (alt213) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableImage__UnorderedGroup_3__1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableImage__UnorderedGroup_3__1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__UnorderedGroup_3__0"
+
+
+    // $ANTLR start "rule__TableImage__UnorderedGroup_3__1"
+    // InternalTableDSL.g:26964:1: rule__TableImage__UnorderedGroup_3__1 : rule__TableImage__UnorderedGroup_3__Impl ( rule__TableImage__UnorderedGroup_3__2 )? ;
+    public final void rule__TableImage__UnorderedGroup_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26968:1: ( rule__TableImage__UnorderedGroup_3__Impl ( rule__TableImage__UnorderedGroup_3__2 )? )
+            // InternalTableDSL.g:26969:2: rule__TableImage__UnorderedGroup_3__Impl ( rule__TableImage__UnorderedGroup_3__2 )?
+            {
+            pushFollow(FOLLOW_192);
+            rule__TableImage__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:26970:2: ( rule__TableImage__UnorderedGroup_3__2 )?
+            int alt214=2;
+            int LA214_0 = input.LA(1);
+
+            if ( LA214_0 == 176 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0) ) {
+                alt214=1;
+            }
+            else if ( LA214_0 == 175 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1) ) {
+                alt214=1;
+            }
+            else if ( LA214_0 == 177 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2) ) {
+                alt214=1;
+            }
+            switch (alt214) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableImage__UnorderedGroup_3__2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableImage__UnorderedGroup_3__2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__UnorderedGroup_3__1"
+
+
+    // $ANTLR start "rule__TableImage__UnorderedGroup_3__2"
+    // InternalTableDSL.g:26976:1: rule__TableImage__UnorderedGroup_3__2 : rule__TableImage__UnorderedGroup_3__Impl ;
+    public final void rule__TableImage__UnorderedGroup_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:26980:1: ( rule__TableImage__UnorderedGroup_3__Impl )
+            // InternalTableDSL.g:26981:2: rule__TableImage__UnorderedGroup_3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableImage__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__UnorderedGroup_3__2"
+
+
+    // $ANTLR start "rule__TableAxis__UnorderedGroup_2"
+    // InternalTableDSL.g:26988:1: rule__TableAxis__UnorderedGroup_2 : ( rule__TableAxis__UnorderedGroup_2__0 )? ;
+    public final void rule__TableAxis__UnorderedGroup_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		getUnorderedGroupHelper().enter(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
+        	
+        try {
+            // InternalTableDSL.g:26993:1: ( ( rule__TableAxis__UnorderedGroup_2__0 )? )
+            // InternalTableDSL.g:26994:2: ( rule__TableAxis__UnorderedGroup_2__0 )?
+            {
+            // InternalTableDSL.g:26994:2: ( rule__TableAxis__UnorderedGroup_2__0 )?
+            int alt215=2;
+            int LA215_0 = input.LA(1);
+
+            if ( LA215_0 == 178 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0) ) {
+                alt215=1;
+            }
+            else if ( LA215_0 == 84 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1) ) {
+                alt215=1;
+            }
+            switch (alt215) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableAxis__UnorderedGroup_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableAxis__UnorderedGroup_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	getUnorderedGroupHelper().leave(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__UnorderedGroup_2"
+
+
+    // $ANTLR start "rule__TableAxis__UnorderedGroup_2__Impl"
+    // InternalTableDSL.g:27002:1: rule__TableAxis__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableAxis__PreOrderAssignment_2_1 ) ) ) ) ) ;
+    public final void rule__TableAxis__UnorderedGroup_2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		boolean selected = false;
+        	
+        try {
+            // InternalTableDSL.g:27007:1: ( ( ({...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableAxis__PreOrderAssignment_2_1 ) ) ) ) ) )
+            // InternalTableDSL.g:27008:3: ( ({...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableAxis__PreOrderAssignment_2_1 ) ) ) ) )
+            {
+            // InternalTableDSL.g:27008:3: ( ({...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableAxis__PreOrderAssignment_2_1 ) ) ) ) )
+            int alt216=2;
+            int LA216_0 = input.LA(1);
+
+            if ( LA216_0 == 178 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0) ) {
+                alt216=1;
+            }
+            else if ( LA216_0 == 84 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1) ) {
+                alt216=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 216, 0, input);
+
+                throw nvae;
+            }
+            switch (alt216) {
+                case 1 :
+                    // InternalTableDSL.g:27009:3: ({...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:27009:3: ({...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) ) )
+                    // InternalTableDSL.g:27010:4: {...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableAxis__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0)");
+                    }
+                    // InternalTableDSL.g:27010:105: ( ( ( rule__TableAxis__Group_2_0__0 ) ) )
+                    // InternalTableDSL.g:27011:5: ( ( rule__TableAxis__Group_2_0__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0);
+                    selected = true;
+                    // InternalTableDSL.g:27017:5: ( ( rule__TableAxis__Group_2_0__0 ) )
+                    // InternalTableDSL.g:27018:6: ( rule__TableAxis__Group_2_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableAxisAccess().getGroup_2_0()); 
+                    }
+                    // InternalTableDSL.g:27019:6: ( rule__TableAxis__Group_2_0__0 )
+                    // InternalTableDSL.g:27019:7: rule__TableAxis__Group_2_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableAxis__Group_2_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableAxisAccess().getGroup_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:27024:3: ({...}? => ( ( ( rule__TableAxis__PreOrderAssignment_2_1 ) ) ) )
+                    {
+                    // InternalTableDSL.g:27024:3: ({...}? => ( ( ( rule__TableAxis__PreOrderAssignment_2_1 ) ) ) )
+                    // InternalTableDSL.g:27025:4: {...}? => ( ( ( rule__TableAxis__PreOrderAssignment_2_1 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableAxis__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1)");
+                    }
+                    // InternalTableDSL.g:27025:105: ( ( ( rule__TableAxis__PreOrderAssignment_2_1 ) ) )
+                    // InternalTableDSL.g:27026:5: ( ( rule__TableAxis__PreOrderAssignment_2_1 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1);
+                    selected = true;
+                    // InternalTableDSL.g:27032:5: ( ( rule__TableAxis__PreOrderAssignment_2_1 ) )
+                    // InternalTableDSL.g:27033:6: ( rule__TableAxis__PreOrderAssignment_2_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableAxisAccess().getPreOrderAssignment_2_1()); 
+                    }
+                    // InternalTableDSL.g:27034:6: ( rule__TableAxis__PreOrderAssignment_2_1 )
+                    // InternalTableDSL.g:27034:7: rule__TableAxis__PreOrderAssignment_2_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableAxis__PreOrderAssignment_2_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableAxisAccess().getPreOrderAssignment_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	if (selected)
+            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__UnorderedGroup_2__Impl"
+
+
+    // $ANTLR start "rule__TableAxis__UnorderedGroup_2__0"
+    // InternalTableDSL.g:27047:1: rule__TableAxis__UnorderedGroup_2__0 : rule__TableAxis__UnorderedGroup_2__Impl ( rule__TableAxis__UnorderedGroup_2__1 )? ;
+    public final void rule__TableAxis__UnorderedGroup_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27051:1: ( rule__TableAxis__UnorderedGroup_2__Impl ( rule__TableAxis__UnorderedGroup_2__1 )? )
+            // InternalTableDSL.g:27052:2: rule__TableAxis__UnorderedGroup_2__Impl ( rule__TableAxis__UnorderedGroup_2__1 )?
+            {
+            pushFollow(FOLLOW_193);
+            rule__TableAxis__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:27053:2: ( rule__TableAxis__UnorderedGroup_2__1 )?
+            int alt217=2;
+            int LA217_0 = input.LA(1);
+
+            if ( LA217_0 == 178 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0) ) {
+                alt217=1;
+            }
+            else if ( LA217_0 == 84 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1) ) {
+                alt217=1;
+            }
+            switch (alt217) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableAxis__UnorderedGroup_2__1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableAxis__UnorderedGroup_2__1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__UnorderedGroup_2__0"
+
+
+    // $ANTLR start "rule__TableAxis__UnorderedGroup_2__1"
+    // InternalTableDSL.g:27059:1: rule__TableAxis__UnorderedGroup_2__1 : rule__TableAxis__UnorderedGroup_2__Impl ;
+    public final void rule__TableAxis__UnorderedGroup_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27063:1: ( rule__TableAxis__UnorderedGroup_2__Impl )
+            // InternalTableDSL.g:27064:2: rule__TableAxis__UnorderedGroup_2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableAxis__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__UnorderedGroup_2__1"
+
+
+    // $ANTLR start "rule__TableGrid__UnorderedGroup_2"
+    // InternalTableDSL.g:27071:1: rule__TableGrid__UnorderedGroup_2 : ( rule__TableGrid__UnorderedGroup_2__0 )? ;
+    public final void rule__TableGrid__UnorderedGroup_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		getUnorderedGroupHelper().enter(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
+        	
+        try {
+            // InternalTableDSL.g:27076:1: ( ( rule__TableGrid__UnorderedGroup_2__0 )? )
+            // InternalTableDSL.g:27077:2: ( rule__TableGrid__UnorderedGroup_2__0 )?
+            {
+            // InternalTableDSL.g:27077:2: ( rule__TableGrid__UnorderedGroup_2__0 )?
+            int alt218=2;
+            int LA218_0 = input.LA(1);
+
+            if ( LA218_0 == 181 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0) ) {
+                alt218=1;
+            }
+            else if ( LA218_0 == 114 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1) ) {
+                alt218=1;
+            }
+            switch (alt218) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableGrid__UnorderedGroup_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__UnorderedGroup_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	getUnorderedGroupHelper().leave(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__UnorderedGroup_2"
+
+
+    // $ANTLR start "rule__TableGrid__UnorderedGroup_2__Impl"
+    // InternalTableDSL.g:27085:1: rule__TableGrid__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__Group_2_1__0 ) ) ) ) ) ;
+    public final void rule__TableGrid__UnorderedGroup_2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		boolean selected = false;
+        	
+        try {
+            // InternalTableDSL.g:27090:1: ( ( ({...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__Group_2_1__0 ) ) ) ) ) )
+            // InternalTableDSL.g:27091:3: ( ({...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__Group_2_1__0 ) ) ) ) )
+            {
+            // InternalTableDSL.g:27091:3: ( ({...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__Group_2_1__0 ) ) ) ) )
+            int alt219=2;
+            int LA219_0 = input.LA(1);
+
+            if ( LA219_0 == 181 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0) ) {
+                alt219=1;
+            }
+            else if ( LA219_0 == 114 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1) ) {
+                alt219=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 219, 0, input);
+
+                throw nvae;
+            }
+            switch (alt219) {
+                case 1 :
+                    // InternalTableDSL.g:27092:3: ({...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:27092:3: ({...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) ) )
+                    // InternalTableDSL.g:27093:4: {...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableGrid__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0)");
+                    }
+                    // InternalTableDSL.g:27093:105: ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) )
+                    // InternalTableDSL.g:27094:5: ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0);
+                    selected = true;
+                    // InternalTableDSL.g:27100:5: ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) )
+                    // InternalTableDSL.g:27101:6: ( rule__TableGrid__SelectalwaysAssignment_2_0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableGridAccess().getSelectalwaysAssignment_2_0()); 
+                    }
+                    // InternalTableDSL.g:27102:6: ( rule__TableGrid__SelectalwaysAssignment_2_0 )
+                    // InternalTableDSL.g:27102:7: rule__TableGrid__SelectalwaysAssignment_2_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__SelectalwaysAssignment_2_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableGridAccess().getSelectalwaysAssignment_2_0()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:27107:3: ({...}? => ( ( ( rule__TableGrid__Group_2_1__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:27107:3: ({...}? => ( ( ( rule__TableGrid__Group_2_1__0 ) ) ) )
+                    // InternalTableDSL.g:27108:4: {...}? => ( ( ( rule__TableGrid__Group_2_1__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableGrid__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1)");
+                    }
+                    // InternalTableDSL.g:27108:105: ( ( ( rule__TableGrid__Group_2_1__0 ) ) )
+                    // InternalTableDSL.g:27109:5: ( ( rule__TableGrid__Group_2_1__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1);
+                    selected = true;
+                    // InternalTableDSL.g:27115:5: ( ( rule__TableGrid__Group_2_1__0 ) )
+                    // InternalTableDSL.g:27116:6: ( rule__TableGrid__Group_2_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableGridAccess().getGroup_2_1()); 
+                    }
+                    // InternalTableDSL.g:27117:6: ( rule__TableGrid__Group_2_1__0 )
+                    // InternalTableDSL.g:27117:7: rule__TableGrid__Group_2_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__Group_2_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableGridAccess().getGroup_2_1()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	if (selected)
+            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__UnorderedGroup_2__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__UnorderedGroup_2__0"
+    // InternalTableDSL.g:27130:1: rule__TableGrid__UnorderedGroup_2__0 : rule__TableGrid__UnorderedGroup_2__Impl ( rule__TableGrid__UnorderedGroup_2__1 )? ;
+    public final void rule__TableGrid__UnorderedGroup_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27134:1: ( rule__TableGrid__UnorderedGroup_2__Impl ( rule__TableGrid__UnorderedGroup_2__1 )? )
+            // InternalTableDSL.g:27135:2: rule__TableGrid__UnorderedGroup_2__Impl ( rule__TableGrid__UnorderedGroup_2__1 )?
+            {
+            pushFollow(FOLLOW_194);
+            rule__TableGrid__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:27136:2: ( rule__TableGrid__UnorderedGroup_2__1 )?
+            int alt220=2;
+            int LA220_0 = input.LA(1);
+
+            if ( LA220_0 == 181 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0) ) {
+                alt220=1;
+            }
+            else if ( LA220_0 == 114 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1) ) {
+                alt220=1;
+            }
+            switch (alt220) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableGrid__UnorderedGroup_2__1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__UnorderedGroup_2__1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__UnorderedGroup_2__0"
+
+
+    // $ANTLR start "rule__TableGrid__UnorderedGroup_2__1"
+    // InternalTableDSL.g:27142:1: rule__TableGrid__UnorderedGroup_2__1 : rule__TableGrid__UnorderedGroup_2__Impl ;
+    public final void rule__TableGrid__UnorderedGroup_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27146:1: ( rule__TableGrid__UnorderedGroup_2__Impl )
+            // InternalTableDSL.g:27147:2: rule__TableGrid__UnorderedGroup_2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__UnorderedGroup_2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__UnorderedGroup_2__1"
+
+
+    // $ANTLR start "rule__TableGrid__UnorderedGroup_3"
+    // InternalTableDSL.g:27154:1: rule__TableGrid__UnorderedGroup_3 : ( rule__TableGrid__UnorderedGroup_3__0 )? ;
+    public final void rule__TableGrid__UnorderedGroup_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		getUnorderedGroupHelper().enter(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+        	
+        try {
+            // InternalTableDSL.g:27159:1: ( ( rule__TableGrid__UnorderedGroup_3__0 )? )
+            // InternalTableDSL.g:27160:2: ( rule__TableGrid__UnorderedGroup_3__0 )?
+            {
+            // InternalTableDSL.g:27160:2: ( rule__TableGrid__UnorderedGroup_3__0 )?
+            int alt221=2;
+            int LA221_0 = input.LA(1);
+
+            if ( LA221_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0) ) {
+                alt221=1;
+            }
+            else if ( LA221_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1) ) {
+                alt221=1;
+            }
+            else if ( LA221_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2) ) {
+                alt221=1;
+            }
+            else if ( LA221_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3) ) {
+                alt221=1;
+            }
+            switch (alt221) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableGrid__UnorderedGroup_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__UnorderedGroup_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	getUnorderedGroupHelper().leave(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__UnorderedGroup_3"
+
+
+    // $ANTLR start "rule__TableGrid__UnorderedGroup_3__Impl"
+    // InternalTableDSL.g:27168:1: rule__TableGrid__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__Group_3_3__0 ) ) ) ) ) ;
+    public final void rule__TableGrid__UnorderedGroup_3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        		boolean selected = false;
+        	
+        try {
+            // InternalTableDSL.g:27173:1: ( ( ({...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__Group_3_3__0 ) ) ) ) ) )
+            // InternalTableDSL.g:27174:3: ( ({...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__Group_3_3__0 ) ) ) ) )
+            {
+            // InternalTableDSL.g:27174:3: ( ({...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__TableGrid__Group_3_3__0 ) ) ) ) )
+            int alt222=4;
+            int LA222_0 = input.LA(1);
+
+            if ( LA222_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0) ) {
+                alt222=1;
+            }
+            else if ( LA222_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1) ) {
+                alt222=2;
+            }
+            else if ( LA222_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2) ) {
+                alt222=3;
+            }
+            else if ( LA222_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3) ) {
+                alt222=4;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 222, 0, input);
+
+                throw nvae;
+            }
+            switch (alt222) {
+                case 1 :
+                    // InternalTableDSL.g:27175:3: ({...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:27175:3: ({...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) ) )
+                    // InternalTableDSL.g:27176:4: {...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableGrid__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0)");
+                    }
+                    // InternalTableDSL.g:27176:105: ( ( ( rule__TableGrid__Group_3_0__0 ) ) )
+                    // InternalTableDSL.g:27177:5: ( ( rule__TableGrid__Group_3_0__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0);
+                    selected = true;
+                    // InternalTableDSL.g:27183:5: ( ( rule__TableGrid__Group_3_0__0 ) )
+                    // InternalTableDSL.g:27184:6: ( rule__TableGrid__Group_3_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableGridAccess().getGroup_3_0()); 
+                    }
+                    // InternalTableDSL.g:27185:6: ( rule__TableGrid__Group_3_0__0 )
+                    // InternalTableDSL.g:27185:7: rule__TableGrid__Group_3_0__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__Group_3_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableGridAccess().getGroup_3_0()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:27190:3: ({...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) ) )
+                    {
+                    // InternalTableDSL.g:27190:3: ({...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) ) )
+                    // InternalTableDSL.g:27191:4: {...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableGrid__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1)");
+                    }
+                    // InternalTableDSL.g:27191:105: ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) )
+                    // InternalTableDSL.g:27192:5: ( ( rule__TableGrid__FilteringAssignment_3_1 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1);
+                    selected = true;
+                    // InternalTableDSL.g:27198:5: ( ( rule__TableGrid__FilteringAssignment_3_1 ) )
+                    // InternalTableDSL.g:27199:6: ( rule__TableGrid__FilteringAssignment_3_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableGridAccess().getFilteringAssignment_3_1()); 
+                    }
+                    // InternalTableDSL.g:27200:6: ( rule__TableGrid__FilteringAssignment_3_1 )
+                    // InternalTableDSL.g:27200:7: rule__TableGrid__FilteringAssignment_3_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__FilteringAssignment_3_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableGridAccess().getFilteringAssignment_3_1()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:27205:3: ({...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) ) )
+                    {
+                    // InternalTableDSL.g:27205:3: ({...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) ) )
+                    // InternalTableDSL.g:27206:4: {...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableGrid__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2)");
+                    }
+                    // InternalTableDSL.g:27206:105: ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) )
+                    // InternalTableDSL.g:27207:5: ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2);
+                    selected = true;
+                    // InternalTableDSL.g:27213:5: ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) )
+                    // InternalTableDSL.g:27214:6: ( rule__TableGrid__EmbeddedAssignment_3_2 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableGridAccess().getEmbeddedAssignment_3_2()); 
+                    }
+                    // InternalTableDSL.g:27215:6: ( rule__TableGrid__EmbeddedAssignment_3_2 )
+                    // InternalTableDSL.g:27215:7: rule__TableGrid__EmbeddedAssignment_3_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__EmbeddedAssignment_3_2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableGridAccess().getEmbeddedAssignment_3_2()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:27220:3: ({...}? => ( ( ( rule__TableGrid__Group_3_3__0 ) ) ) )
+                    {
+                    // InternalTableDSL.g:27220:3: ({...}? => ( ( ( rule__TableGrid__Group_3_3__0 ) ) ) )
+                    // InternalTableDSL.g:27221:4: {...}? => ( ( ( rule__TableGrid__Group_3_3__0 ) ) )
+                    {
+                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3) ) {
+                        if (state.backtracking>0) {state.failed=true; return ;}
+                        throw new FailedPredicateException(input, "rule__TableGrid__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3)");
+                    }
+                    // InternalTableDSL.g:27221:105: ( ( ( rule__TableGrid__Group_3_3__0 ) ) )
+                    // InternalTableDSL.g:27222:5: ( ( rule__TableGrid__Group_3_3__0 ) )
+                    {
+                    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3);
+                    selected = true;
+                    // InternalTableDSL.g:27228:5: ( ( rule__TableGrid__Group_3_3__0 ) )
+                    // InternalTableDSL.g:27229:6: ( rule__TableGrid__Group_3_3__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getTableGridAccess().getGroup_3_3()); 
+                    }
+                    // InternalTableDSL.g:27230:6: ( rule__TableGrid__Group_3_3__0 )
+                    // InternalTableDSL.g:27230:7: rule__TableGrid__Group_3_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__Group_3_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getTableGridAccess().getGroup_3_3()); 
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	if (selected)
+            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__UnorderedGroup_3__Impl"
+
+
+    // $ANTLR start "rule__TableGrid__UnorderedGroup_3__0"
+    // InternalTableDSL.g:27243:1: rule__TableGrid__UnorderedGroup_3__0 : rule__TableGrid__UnorderedGroup_3__Impl ( rule__TableGrid__UnorderedGroup_3__1 )? ;
+    public final void rule__TableGrid__UnorderedGroup_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27247:1: ( rule__TableGrid__UnorderedGroup_3__Impl ( rule__TableGrid__UnorderedGroup_3__1 )? )
+            // InternalTableDSL.g:27248:2: rule__TableGrid__UnorderedGroup_3__Impl ( rule__TableGrid__UnorderedGroup_3__1 )?
+            {
+            pushFollow(FOLLOW_195);
+            rule__TableGrid__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:27249:2: ( rule__TableGrid__UnorderedGroup_3__1 )?
+            int alt223=2;
+            int LA223_0 = input.LA(1);
+
+            if ( LA223_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0) ) {
+                alt223=1;
+            }
+            else if ( LA223_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1) ) {
+                alt223=1;
+            }
+            else if ( LA223_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2) ) {
+                alt223=1;
+            }
+            else if ( LA223_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3) ) {
+                alt223=1;
+            }
+            switch (alt223) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableGrid__UnorderedGroup_3__1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__UnorderedGroup_3__1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__UnorderedGroup_3__0"
+
+
+    // $ANTLR start "rule__TableGrid__UnorderedGroup_3__1"
+    // InternalTableDSL.g:27255:1: rule__TableGrid__UnorderedGroup_3__1 : rule__TableGrid__UnorderedGroup_3__Impl ( rule__TableGrid__UnorderedGroup_3__2 )? ;
+    public final void rule__TableGrid__UnorderedGroup_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27259:1: ( rule__TableGrid__UnorderedGroup_3__Impl ( rule__TableGrid__UnorderedGroup_3__2 )? )
+            // InternalTableDSL.g:27260:2: rule__TableGrid__UnorderedGroup_3__Impl ( rule__TableGrid__UnorderedGroup_3__2 )?
+            {
+            pushFollow(FOLLOW_195);
+            rule__TableGrid__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:27261:2: ( rule__TableGrid__UnorderedGroup_3__2 )?
+            int alt224=2;
+            int LA224_0 = input.LA(1);
+
+            if ( LA224_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0) ) {
+                alt224=1;
+            }
+            else if ( LA224_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1) ) {
+                alt224=1;
+            }
+            else if ( LA224_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2) ) {
+                alt224=1;
+            }
+            else if ( LA224_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3) ) {
+                alt224=1;
+            }
+            switch (alt224) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableGrid__UnorderedGroup_3__2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__UnorderedGroup_3__2();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__UnorderedGroup_3__1"
+
+
+    // $ANTLR start "rule__TableGrid__UnorderedGroup_3__2"
+    // InternalTableDSL.g:27267:1: rule__TableGrid__UnorderedGroup_3__2 : rule__TableGrid__UnorderedGroup_3__Impl ( rule__TableGrid__UnorderedGroup_3__3 )? ;
+    public final void rule__TableGrid__UnorderedGroup_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27271:1: ( rule__TableGrid__UnorderedGroup_3__Impl ( rule__TableGrid__UnorderedGroup_3__3 )? )
+            // InternalTableDSL.g:27272:2: rule__TableGrid__UnorderedGroup_3__Impl ( rule__TableGrid__UnorderedGroup_3__3 )?
+            {
+            pushFollow(FOLLOW_195);
+            rule__TableGrid__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            // InternalTableDSL.g:27273:2: ( rule__TableGrid__UnorderedGroup_3__3 )?
+            int alt225=2;
+            int LA225_0 = input.LA(1);
+
+            if ( LA225_0 == 168 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0) ) {
+                alt225=1;
+            }
+            else if ( LA225_0 == 169 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1) ) {
+                alt225=1;
+            }
+            else if ( LA225_0 == 170 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2) ) {
+                alt225=1;
+            }
+            else if ( LA225_0 == 81 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3) ) {
+                alt225=1;
+            }
+            switch (alt225) {
+                case 1 :
+                    // InternalTableDSL.g:0:0: rule__TableGrid__UnorderedGroup_3__3
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TableGrid__UnorderedGroup_3__3();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__UnorderedGroup_3__2"
+
+
+    // $ANTLR start "rule__TableGrid__UnorderedGroup_3__3"
+    // InternalTableDSL.g:27279:1: rule__TableGrid__UnorderedGroup_3__3 : rule__TableGrid__UnorderedGroup_3__Impl ;
+    public final void rule__TableGrid__UnorderedGroup_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27283:1: ( rule__TableGrid__UnorderedGroup_3__Impl )
+            // InternalTableDSL.g:27284:2: rule__TableGrid__UnorderedGroup_3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TableGrid__UnorderedGroup_3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__UnorderedGroup_3__3"
+
+
+    // $ANTLR start "rule__TableModel__ImportSectionAssignment_0"
+    // InternalTableDSL.g:27291:1: rule__TableModel__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
+    public final void rule__TableModel__ImportSectionAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27295:1: ( ( ruleXImportSection ) )
+            // InternalTableDSL.g:27296:2: ( ruleXImportSection )
+            {
+            // InternalTableDSL.g:27296:2: ( ruleXImportSection )
+            // InternalTableDSL.g:27297:3: ruleXImportSection
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXImportSection();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableModel__ImportSectionAssignment_0"
+
+
+    // $ANTLR start "rule__TableModel__PackagesAssignment_1"
+    // InternalTableDSL.g:27306:1: rule__TableModel__PackagesAssignment_1 : ( ruleTablePackage ) ;
+    public final void rule__TableModel__PackagesAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27310:1: ( ( ruleTablePackage ) )
+            // InternalTableDSL.g:27311:2: ( ruleTablePackage )
+            {
+            // InternalTableDSL.g:27311:2: ( ruleTablePackage )
+            // InternalTableDSL.g:27312:3: ruleTablePackage
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableModelAccess().getPackagesTablePackageParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTablePackage();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableModelAccess().getPackagesTablePackageParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableModel__PackagesAssignment_1"
+
+
+    // $ANTLR start "rule__TablePackage__NameAssignment_2"
+    // InternalTableDSL.g:27321:1: rule__TablePackage__NameAssignment_2 : ( ruleQualifiedName ) ;
+    public final void rule__TablePackage__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27325:1: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:27326:2: ( ruleQualifiedName )
+            {
+            // InternalTableDSL.g:27326:2: ( ruleQualifiedName )
+            // InternalTableDSL.g:27327:3: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__NameAssignment_2"
+
+
+    // $ANTLR start "rule__TablePackage__TablesAssignment_3_1"
+    // InternalTableDSL.g:27336:1: rule__TablePackage__TablesAssignment_3_1 : ( ruleTable ) ;
+    public final void rule__TablePackage__TablesAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27340:1: ( ( ruleTable ) )
+            // InternalTableDSL.g:27341:2: ( ruleTable )
+            {
+            // InternalTableDSL.g:27341:2: ( ruleTable )
+            // InternalTableDSL.g:27342:3: ruleTable
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePackageAccess().getTablesTableParserRuleCall_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTable();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePackageAccess().getTablesTableParserRuleCall_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePackage__TablesAssignment_3_1"
+
+
+    // $ANTLR start "rule__Table__NameAssignment_2"
+    // InternalTableDSL.g:27351:1: rule__Table__NameAssignment_2 : ( RULE_ID ) ;
+    public final void rule__Table__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27355:1: ( ( RULE_ID ) )
+            // InternalTableDSL.g:27356:2: ( RULE_ID )
+            {
+            // InternalTableDSL.g:27356:2: ( RULE_ID )
+            // InternalTableDSL.g:27357:3: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getNameIDTerminalRuleCall_2_0()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getNameIDTerminalRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__NameAssignment_2"
+
+
+    // $ANTLR start "rule__Table__DescriptionAssignment_3_0"
+    // InternalTableDSL.g:27366:1: rule__Table__DescriptionAssignment_3_0 : ( ( 'describedBy' ) ) ;
+    public final void rule__Table__DescriptionAssignment_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27370:1: ( ( ( 'describedBy' ) ) )
+            // InternalTableDSL.g:27371:2: ( ( 'describedBy' ) )
+            {
+            // InternalTableDSL.g:27371:2: ( ( 'describedBy' ) )
+            // InternalTableDSL.g:27372:3: ( 'describedBy' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0()); 
+            }
+            // InternalTableDSL.g:27373:3: ( 'describedBy' )
+            // InternalTableDSL.g:27374:4: 'describedBy'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0()); 
+            }
+            match(input,165,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__DescriptionAssignment_3_0"
+
+
+    // $ANTLR start "rule__Table__DescriptionValueAssignment_3_1"
+    // InternalTableDSL.g:27385:1: rule__Table__DescriptionValueAssignment_3_1 : ( ruleTRANSLATABLESTRING ) ;
+    public final void rule__Table__DescriptionValueAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27389:1: ( ( ruleTRANSLATABLESTRING ) )
+            // InternalTableDSL.g:27390:2: ( ruleTRANSLATABLESTRING )
+            {
+            // InternalTableDSL.g:27390:2: ( ruleTRANSLATABLESTRING )
+            // InternalTableDSL.g:27391:3: ruleTRANSLATABLESTRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTRANSLATABLESTRING();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__DescriptionValueAssignment_3_1"
+
+
+    // $ANTLR start "rule__Table__TabletypeAssignment_5"
+    // InternalTableDSL.g:27400:1: rule__Table__TabletypeAssignment_5 : ( ruleTableOption ) ;
+    public final void rule__Table__TabletypeAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27404:1: ( ( ruleTableOption ) )
+            // InternalTableDSL.g:27405:2: ( ruleTableOption )
+            {
+            // InternalTableDSL.g:27405:2: ( ruleTableOption )
+            // InternalTableDSL.g:27406:3: ruleTableOption
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAccess().getTabletypeTableOptionParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableOption();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAccess().getTabletypeTableOptionParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Table__TabletypeAssignment_5"
+
+
+    // $ANTLR start "rule__TableSelection__MultiSelectionAssignment_2_0"
+    // InternalTableDSL.g:27415:1: rule__TableSelection__MultiSelectionAssignment_2_0 : ( ( 'multiple' ) ) ;
+    public final void rule__TableSelection__MultiSelectionAssignment_2_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27419:1: ( ( ( 'multiple' ) ) )
+            // InternalTableDSL.g:27420:2: ( ( 'multiple' ) )
+            {
+            // InternalTableDSL.g:27420:2: ( ( 'multiple' ) )
+            // InternalTableDSL.g:27421:3: ( 'multiple' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getMultiSelectionMultipleKeyword_2_0_0()); 
+            }
+            // InternalTableDSL.g:27422:3: ( 'multiple' )
+            // InternalTableDSL.g:27423:4: 'multiple'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getMultiSelectionMultipleKeyword_2_0_0()); 
+            }
+            match(input,166,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getMultiSelectionMultipleKeyword_2_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getMultiSelectionMultipleKeyword_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__MultiSelectionAssignment_2_0"
+
+
+    // $ANTLR start "rule__TableSelection__SelectalwaysAssignment_3_0"
+    // InternalTableDSL.g:27434:1: rule__TableSelection__SelectalwaysAssignment_3_0 : ( ( 'alwaysSelected' ) ) ;
+    public final void rule__TableSelection__SelectalwaysAssignment_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27438:1: ( ( ( 'alwaysSelected' ) ) )
+            // InternalTableDSL.g:27439:2: ( ( 'alwaysSelected' ) )
+            {
+            // InternalTableDSL.g:27439:2: ( ( 'alwaysSelected' ) )
+            // InternalTableDSL.g:27440:3: ( 'alwaysSelected' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getSelectalwaysAlwaysSelectedKeyword_3_0_0()); 
+            }
+            // InternalTableDSL.g:27441:3: ( 'alwaysSelected' )
+            // InternalTableDSL.g:27442:4: 'alwaysSelected'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getSelectalwaysAlwaysSelectedKeyword_3_0_0()); 
+            }
+            match(input,167,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getSelectalwaysAlwaysSelectedKeyword_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getSelectalwaysAlwaysSelectedKeyword_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__SelectalwaysAssignment_3_0"
+
+
+    // $ANTLR start "rule__TableSelection__HeaderModeAssignment_3_1_1"
+    // InternalTableDSL.g:27453:1: rule__TableSelection__HeaderModeAssignment_3_1_1 : ( ruleRowHeaderMode ) ;
+    public final void rule__TableSelection__HeaderModeAssignment_3_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27457:1: ( ( ruleRowHeaderMode ) )
+            // InternalTableDSL.g:27458:2: ( ruleRowHeaderMode )
+            {
+            // InternalTableDSL.g:27458:2: ( ruleRowHeaderMode )
+            // InternalTableDSL.g:27459:3: ruleRowHeaderMode
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getHeaderModeRowHeaderModeEnumRuleCall_3_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleRowHeaderMode();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getHeaderModeRowHeaderModeEnumRuleCall_3_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__HeaderModeAssignment_3_1_1"
+
+
+    // $ANTLR start "rule__TableSelection__PollingAssignment_3_2_0"
+    // InternalTableDSL.g:27468:1: rule__TableSelection__PollingAssignment_3_2_0 : ( ( 'polling' ) ) ;
+    public final void rule__TableSelection__PollingAssignment_3_2_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27472:1: ( ( ( 'polling' ) ) )
+            // InternalTableDSL.g:27473:2: ( ( 'polling' ) )
+            {
+            // InternalTableDSL.g:27473:2: ( ( 'polling' ) )
+            // InternalTableDSL.g:27474:3: ( 'polling' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_2_0_0()); 
+            }
+            // InternalTableDSL.g:27475:3: ( 'polling' )
+            // InternalTableDSL.g:27476:4: 'polling'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_2_0_0()); 
+            }
+            match(input,168,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_2_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__PollingAssignment_3_2_0"
+
+
+    // $ANTLR start "rule__TableSelection__PollingTimeAssignment_3_2_1"
+    // InternalTableDSL.g:27487:1: rule__TableSelection__PollingTimeAssignment_3_2_1 : ( ruleNumber ) ;
+    public final void rule__TableSelection__PollingTimeAssignment_3_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27491:1: ( ( ruleNumber ) )
+            // InternalTableDSL.g:27492:2: ( ruleNumber )
+            {
+            // InternalTableDSL.g:27492:2: ( ruleNumber )
+            // InternalTableDSL.g:27493:3: ruleNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getPollingTimeNumberParserRuleCall_3_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getPollingTimeNumberParserRuleCall_3_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__PollingTimeAssignment_3_2_1"
+
+
+    // $ANTLR start "rule__TableSelection__FilteringAssignment_3_3"
+    // InternalTableDSL.g:27502:1: rule__TableSelection__FilteringAssignment_3_3 : ( ( 'filtering' ) ) ;
+    public final void rule__TableSelection__FilteringAssignment_3_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27506:1: ( ( ( 'filtering' ) ) )
+            // InternalTableDSL.g:27507:2: ( ( 'filtering' ) )
+            {
+            // InternalTableDSL.g:27507:2: ( ( 'filtering' ) )
+            // InternalTableDSL.g:27508:3: ( 'filtering' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_3_0()); 
+            }
+            // InternalTableDSL.g:27509:3: ( 'filtering' )
+            // InternalTableDSL.g:27510:4: 'filtering'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_3_0()); 
+            }
+            match(input,169,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_3_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__FilteringAssignment_3_3"
+
+
+    // $ANTLR start "rule__TableSelection__EmbeddedAssignment_3_4"
+    // InternalTableDSL.g:27521:1: rule__TableSelection__EmbeddedAssignment_3_4 : ( ( 'embedded' ) ) ;
+    public final void rule__TableSelection__EmbeddedAssignment_3_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27525:1: ( ( ( 'embedded' ) ) )
+            // InternalTableDSL.g:27526:2: ( ( 'embedded' ) )
+            {
+            // InternalTableDSL.g:27526:2: ( ( 'embedded' ) )
+            // InternalTableDSL.g:27527:3: ( 'embedded' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_4_0()); 
+            }
+            // InternalTableDSL.g:27528:3: ( 'embedded' )
+            // InternalTableDSL.g:27529:4: 'embedded'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_4_0()); 
+            }
+            match(input,170,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_4_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__EmbeddedAssignment_3_4"
+
+
+    // $ANTLR start "rule__TableSelection__ToolbarAssignment_3_5_1"
+    // InternalTableDSL.g:27540:1: rule__TableSelection__ToolbarAssignment_3_5_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableSelection__ToolbarAssignment_3_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27544:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:27545:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:27545:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:27546:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getToolbarActionToolbarCrossReference_3_5_1_0()); 
+            }
+            // InternalTableDSL.g:27547:3: ( RULE_ID )
+            // InternalTableDSL.g:27548:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getToolbarActionToolbarIDTerminalRuleCall_3_5_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getToolbarActionToolbarIDTerminalRuleCall_3_5_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getToolbarActionToolbarCrossReference_3_5_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__ToolbarAssignment_3_5_1"
+
+
+    // $ANTLR start "rule__TableSelection__SourceAssignment_4_1"
+    // InternalTableDSL.g:27559:1: rule__TableSelection__SourceAssignment_4_1 : ( ruleTableDatamart ) ;
+    public final void rule__TableSelection__SourceAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27563:1: ( ( ruleTableDatamart ) )
+            // InternalTableDSL.g:27564:2: ( ruleTableDatamart )
+            {
+            // InternalTableDSL.g:27564:2: ( ruleTableDatamart )
+            // InternalTableDSL.g:27565:3: ruleTableDatamart
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableSelectionAccess().getSourceTableDatamartParserRuleCall_4_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableDatamart();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableSelectionAccess().getSourceTableDatamartParserRuleCall_4_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableSelection__SourceAssignment_4_1"
+
+
+    // $ANTLR start "rule__TableTable__SelectalwaysAssignment_2_0"
+    // InternalTableDSL.g:27574:1: rule__TableTable__SelectalwaysAssignment_2_0 : ( ( 'alwaysSelected' ) ) ;
+    public final void rule__TableTable__SelectalwaysAssignment_2_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27578:1: ( ( ( 'alwaysSelected' ) ) )
+            // InternalTableDSL.g:27579:2: ( ( 'alwaysSelected' ) )
+            {
+            // InternalTableDSL.g:27579:2: ( ( 'alwaysSelected' ) )
+            // InternalTableDSL.g:27580:3: ( 'alwaysSelected' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); 
+            }
+            // InternalTableDSL.g:27581:3: ( 'alwaysSelected' )
+            // InternalTableDSL.g:27582:4: 'alwaysSelected'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); 
+            }
+            match(input,167,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__SelectalwaysAssignment_2_0"
+
+
+    // $ANTLR start "rule__TableTable__SelectByIdAssignment_2_1"
+    // InternalTableDSL.g:27593:1: rule__TableTable__SelectByIdAssignment_2_1 : ( ( 'selectById' ) ) ;
+    public final void rule__TableTable__SelectByIdAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27597:1: ( ( ( 'selectById' ) ) )
+            // InternalTableDSL.g:27598:2: ( ( 'selectById' ) )
+            {
+            // InternalTableDSL.g:27598:2: ( ( 'selectById' ) )
+            // InternalTableDSL.g:27599:3: ( 'selectById' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getSelectByIdSelectByIdKeyword_2_1_0()); 
+            }
+            // InternalTableDSL.g:27600:3: ( 'selectById' )
+            // InternalTableDSL.g:27601:4: 'selectById'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getSelectByIdSelectByIdKeyword_2_1_0()); 
+            }
+            match(input,171,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getSelectByIdSelectByIdKeyword_2_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getSelectByIdSelectByIdKeyword_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__SelectByIdAssignment_2_1"
+
+
+    // $ANTLR start "rule__TableTable__HeaderModeAssignment_2_2_1"
+    // InternalTableDSL.g:27612:1: rule__TableTable__HeaderModeAssignment_2_2_1 : ( ruleRowHeaderMode ) ;
+    public final void rule__TableTable__HeaderModeAssignment_2_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27616:1: ( ( ruleRowHeaderMode ) )
+            // InternalTableDSL.g:27617:2: ( ruleRowHeaderMode )
+            {
+            // InternalTableDSL.g:27617:2: ( ruleRowHeaderMode )
+            // InternalTableDSL.g:27618:3: ruleRowHeaderMode
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleRowHeaderMode();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__HeaderModeAssignment_2_2_1"
+
+
+    // $ANTLR start "rule__TableTable__PollingAssignment_2_3_0"
+    // InternalTableDSL.g:27627:1: rule__TableTable__PollingAssignment_2_3_0 : ( ( 'polling' ) ) ;
+    public final void rule__TableTable__PollingAssignment_2_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27631:1: ( ( ( 'polling' ) ) )
+            // InternalTableDSL.g:27632:2: ( ( 'polling' ) )
+            {
+            // InternalTableDSL.g:27632:2: ( ( 'polling' ) )
+            // InternalTableDSL.g:27633:3: ( 'polling' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getPollingPollingKeyword_2_3_0_0()); 
+            }
+            // InternalTableDSL.g:27634:3: ( 'polling' )
+            // InternalTableDSL.g:27635:4: 'polling'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getPollingPollingKeyword_2_3_0_0()); 
+            }
+            match(input,168,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getPollingPollingKeyword_2_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getPollingPollingKeyword_2_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__PollingAssignment_2_3_0"
+
+
+    // $ANTLR start "rule__TableTable__PollingTimeAssignment_2_3_1"
+    // InternalTableDSL.g:27646:1: rule__TableTable__PollingTimeAssignment_2_3_1 : ( ruleNumber ) ;
+    public final void rule__TableTable__PollingTimeAssignment_2_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27650:1: ( ( ruleNumber ) )
+            // InternalTableDSL.g:27651:2: ( ruleNumber )
+            {
+            // InternalTableDSL.g:27651:2: ( ruleNumber )
+            // InternalTableDSL.g:27652:3: ruleNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getPollingTimeNumberParserRuleCall_2_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getPollingTimeNumberParserRuleCall_2_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__PollingTimeAssignment_2_3_1"
+
+
+    // $ANTLR start "rule__TableTable__FilteringAssignment_2_4"
+    // InternalTableDSL.g:27661:1: rule__TableTable__FilteringAssignment_2_4 : ( ( 'filtering' ) ) ;
+    public final void rule__TableTable__FilteringAssignment_2_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27665:1: ( ( ( 'filtering' ) ) )
+            // InternalTableDSL.g:27666:2: ( ( 'filtering' ) )
+            {
+            // InternalTableDSL.g:27666:2: ( ( 'filtering' ) )
+            // InternalTableDSL.g:27667:3: ( 'filtering' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_2_4_0()); 
+            }
+            // InternalTableDSL.g:27668:3: ( 'filtering' )
+            // InternalTableDSL.g:27669:4: 'filtering'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_2_4_0()); 
+            }
+            match(input,169,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_2_4_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_2_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__FilteringAssignment_2_4"
+
+
+    // $ANTLR start "rule__TableTable__EmbeddedAssignment_2_5"
+    // InternalTableDSL.g:27680:1: rule__TableTable__EmbeddedAssignment_2_5 : ( ( 'embedded' ) ) ;
+    public final void rule__TableTable__EmbeddedAssignment_2_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27684:1: ( ( ( 'embedded' ) ) )
+            // InternalTableDSL.g:27685:2: ( ( 'embedded' ) )
+            {
+            // InternalTableDSL.g:27685:2: ( ( 'embedded' ) )
+            // InternalTableDSL.g:27686:3: ( 'embedded' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_2_5_0()); 
+            }
+            // InternalTableDSL.g:27687:3: ( 'embedded' )
+            // InternalTableDSL.g:27688:4: 'embedded'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_2_5_0()); 
+            }
+            match(input,170,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_2_5_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_2_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__EmbeddedAssignment_2_5"
+
+
+    // $ANTLR start "rule__TableTable__ToolbarAssignment_2_6_1"
+    // InternalTableDSL.g:27699:1: rule__TableTable__ToolbarAssignment_2_6_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableTable__ToolbarAssignment_2_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27703:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:27704:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:27704:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:27705:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getToolbarActionToolbarCrossReference_2_6_1_0()); 
+            }
+            // InternalTableDSL.g:27706:3: ( RULE_ID )
+            // InternalTableDSL.g:27707:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getToolbarActionToolbarCrossReference_2_6_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__ToolbarAssignment_2_6_1"
+
+
+    // $ANTLR start "rule__TableTable__SourceAssignment_3_1"
+    // InternalTableDSL.g:27718:1: rule__TableTable__SourceAssignment_3_1 : ( ruleTableDatamart ) ;
+    public final void rule__TableTable__SourceAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27722:1: ( ( ruleTableDatamart ) )
+            // InternalTableDSL.g:27723:2: ( ruleTableDatamart )
+            {
+            // InternalTableDSL.g:27723:2: ( ruleTableDatamart )
+            // InternalTableDSL.g:27724:3: ruleTableDatamart
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTableAccess().getSourceTableDatamartParserRuleCall_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableDatamart();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTableAccess().getSourceTableDatamartParserRuleCall_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTable__SourceAssignment_3_1"
+
+
+    // $ANTLR start "rule__TableBean__SelectalwaysAssignment_2_0"
+    // InternalTableDSL.g:27733:1: rule__TableBean__SelectalwaysAssignment_2_0 : ( ( 'alwaysSelected' ) ) ;
+    public final void rule__TableBean__SelectalwaysAssignment_2_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27737:1: ( ( ( 'alwaysSelected' ) ) )
+            // InternalTableDSL.g:27738:2: ( ( 'alwaysSelected' ) )
+            {
+            // InternalTableDSL.g:27738:2: ( ( 'alwaysSelected' ) )
+            // InternalTableDSL.g:27739:3: ( 'alwaysSelected' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); 
+            }
+            // InternalTableDSL.g:27740:3: ( 'alwaysSelected' )
+            // InternalTableDSL.g:27741:4: 'alwaysSelected'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); 
+            }
+            match(input,167,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__SelectalwaysAssignment_2_0"
+
+
+    // $ANTLR start "rule__TableBean__SelectByIdAssignment_2_1"
+    // InternalTableDSL.g:27752:1: rule__TableBean__SelectByIdAssignment_2_1 : ( ( 'selectById' ) ) ;
+    public final void rule__TableBean__SelectByIdAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27756:1: ( ( ( 'selectById' ) ) )
+            // InternalTableDSL.g:27757:2: ( ( 'selectById' ) )
+            {
+            // InternalTableDSL.g:27757:2: ( ( 'selectById' ) )
+            // InternalTableDSL.g:27758:3: ( 'selectById' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getSelectByIdSelectByIdKeyword_2_1_0()); 
+            }
+            // InternalTableDSL.g:27759:3: ( 'selectById' )
+            // InternalTableDSL.g:27760:4: 'selectById'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getSelectByIdSelectByIdKeyword_2_1_0()); 
+            }
+            match(input,171,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getSelectByIdSelectByIdKeyword_2_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getSelectByIdSelectByIdKeyword_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__SelectByIdAssignment_2_1"
+
+
+    // $ANTLR start "rule__TableBean__HeaderModeAssignment_2_2_1"
+    // InternalTableDSL.g:27771:1: rule__TableBean__HeaderModeAssignment_2_2_1 : ( ruleRowHeaderMode ) ;
+    public final void rule__TableBean__HeaderModeAssignment_2_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27775:1: ( ( ruleRowHeaderMode ) )
+            // InternalTableDSL.g:27776:2: ( ruleRowHeaderMode )
+            {
+            // InternalTableDSL.g:27776:2: ( ruleRowHeaderMode )
+            // InternalTableDSL.g:27777:3: ruleRowHeaderMode
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleRowHeaderMode();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__HeaderModeAssignment_2_2_1"
+
+
+    // $ANTLR start "rule__TableBean__PollingAssignment_2_3_0"
+    // InternalTableDSL.g:27786:1: rule__TableBean__PollingAssignment_2_3_0 : ( ( 'polling' ) ) ;
+    public final void rule__TableBean__PollingAssignment_2_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27790:1: ( ( ( 'polling' ) ) )
+            // InternalTableDSL.g:27791:2: ( ( 'polling' ) )
+            {
+            // InternalTableDSL.g:27791:2: ( ( 'polling' ) )
+            // InternalTableDSL.g:27792:3: ( 'polling' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getPollingPollingKeyword_2_3_0_0()); 
+            }
+            // InternalTableDSL.g:27793:3: ( 'polling' )
+            // InternalTableDSL.g:27794:4: 'polling'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getPollingPollingKeyword_2_3_0_0()); 
+            }
+            match(input,168,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getPollingPollingKeyword_2_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getPollingPollingKeyword_2_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__PollingAssignment_2_3_0"
+
+
+    // $ANTLR start "rule__TableBean__PollingTimeAssignment_2_3_1"
+    // InternalTableDSL.g:27805:1: rule__TableBean__PollingTimeAssignment_2_3_1 : ( ruleNumber ) ;
+    public final void rule__TableBean__PollingTimeAssignment_2_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27809:1: ( ( ruleNumber ) )
+            // InternalTableDSL.g:27810:2: ( ruleNumber )
+            {
+            // InternalTableDSL.g:27810:2: ( ruleNumber )
+            // InternalTableDSL.g:27811:3: ruleNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getPollingTimeNumberParserRuleCall_2_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getPollingTimeNumberParserRuleCall_2_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__PollingTimeAssignment_2_3_1"
+
+
+    // $ANTLR start "rule__TableBean__FilteringAssignment_2_4"
+    // InternalTableDSL.g:27820:1: rule__TableBean__FilteringAssignment_2_4 : ( ( 'filtering' ) ) ;
+    public final void rule__TableBean__FilteringAssignment_2_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27824:1: ( ( ( 'filtering' ) ) )
+            // InternalTableDSL.g:27825:2: ( ( 'filtering' ) )
+            {
+            // InternalTableDSL.g:27825:2: ( ( 'filtering' ) )
+            // InternalTableDSL.g:27826:3: ( 'filtering' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getFilteringFilteringKeyword_2_4_0()); 
+            }
+            // InternalTableDSL.g:27827:3: ( 'filtering' )
+            // InternalTableDSL.g:27828:4: 'filtering'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getFilteringFilteringKeyword_2_4_0()); 
+            }
+            match(input,169,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getFilteringFilteringKeyword_2_4_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getFilteringFilteringKeyword_2_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__FilteringAssignment_2_4"
+
+
+    // $ANTLR start "rule__TableBean__EmbeddedAssignment_2_5"
+    // InternalTableDSL.g:27839:1: rule__TableBean__EmbeddedAssignment_2_5 : ( ( 'embedded' ) ) ;
+    public final void rule__TableBean__EmbeddedAssignment_2_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27843:1: ( ( ( 'embedded' ) ) )
+            // InternalTableDSL.g:27844:2: ( ( 'embedded' ) )
+            {
+            // InternalTableDSL.g:27844:2: ( ( 'embedded' ) )
+            // InternalTableDSL.g:27845:3: ( 'embedded' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getEmbeddedEmbeddedKeyword_2_5_0()); 
+            }
+            // InternalTableDSL.g:27846:3: ( 'embedded' )
+            // InternalTableDSL.g:27847:4: 'embedded'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getEmbeddedEmbeddedKeyword_2_5_0()); 
+            }
+            match(input,170,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getEmbeddedEmbeddedKeyword_2_5_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getEmbeddedEmbeddedKeyword_2_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__EmbeddedAssignment_2_5"
+
+
+    // $ANTLR start "rule__TableBean__ToolbarAssignment_2_6_1"
+    // InternalTableDSL.g:27858:1: rule__TableBean__ToolbarAssignment_2_6_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableBean__ToolbarAssignment_2_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27862:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:27863:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:27863:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:27864:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getToolbarActionToolbarCrossReference_2_6_1_0()); 
+            }
+            // InternalTableDSL.g:27865:3: ( RULE_ID )
+            // InternalTableDSL.g:27866:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getToolbarActionToolbarCrossReference_2_6_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__ToolbarAssignment_2_6_1"
+
+
+    // $ANTLR start "rule__TableBean__SourceAssignment_3_1"
+    // InternalTableDSL.g:27877:1: rule__TableBean__SourceAssignment_3_1 : ( ruleTableDatamart ) ;
+    public final void rule__TableBean__SourceAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27881:1: ( ( ruleTableDatamart ) )
+            // InternalTableDSL.g:27882:2: ( ruleTableDatamart )
+            {
+            // InternalTableDSL.g:27882:2: ( ruleTableDatamart )
+            // InternalTableDSL.g:27883:3: ruleTableDatamart
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableBeanAccess().getSourceTableDatamartParserRuleCall_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableDatamart();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableBeanAccess().getSourceTableDatamartParserRuleCall_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableBean__SourceAssignment_3_1"
+
+
+    // $ANTLR start "rule__TablePreorder__ColumnAssignment_2"
+    // InternalTableDSL.g:27892:1: rule__TablePreorder__ColumnAssignment_2 : ( ruleTableValueElement ) ;
+    public final void rule__TablePreorder__ColumnAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27896:1: ( ( ruleTableValueElement ) )
+            // InternalTableDSL.g:27897:2: ( ruleTableValueElement )
+            {
+            // InternalTableDSL.g:27897:2: ( ruleTableValueElement )
+            // InternalTableDSL.g:27898:3: ruleTableValueElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePreorderAccess().getColumnTableValueElementParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableValueElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePreorderAccess().getColumnTableValueElementParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePreorder__ColumnAssignment_2"
+
+
+    // $ANTLR start "rule__TablePreorder__AscendingAssignment_3"
+    // InternalTableDSL.g:27907:1: rule__TablePreorder__AscendingAssignment_3 : ( ( 'ascending' ) ) ;
+    public final void rule__TablePreorder__AscendingAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27911:1: ( ( ( 'ascending' ) ) )
+            // InternalTableDSL.g:27912:2: ( ( 'ascending' ) )
+            {
+            // InternalTableDSL.g:27912:2: ( ( 'ascending' ) )
+            // InternalTableDSL.g:27913:3: ( 'ascending' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0()); 
+            }
+            // InternalTableDSL.g:27914:3: ( 'ascending' )
+            // InternalTableDSL.g:27915:4: 'ascending'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0()); 
+            }
+            match(input,172,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TablePreorder__AscendingAssignment_3"
+
+
+    // $ANTLR start "rule__TableValue__ColumnAssignment_2"
+    // InternalTableDSL.g:27926:1: rule__TableValue__ColumnAssignment_2 : ( ruleTableValueElement ) ;
+    public final void rule__TableValue__ColumnAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27930:1: ( ( ruleTableValueElement ) )
+            // InternalTableDSL.g:27931:2: ( ruleTableValueElement )
+            {
+            // InternalTableDSL.g:27931:2: ( ruleTableValueElement )
+            // InternalTableDSL.g:27932:3: ruleTableValueElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getColumnTableValueElementParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableValueElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getColumnTableValueElementParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__ColumnAssignment_2"
+
+
+    // $ANTLR start "rule__TableValue__CollapsedAssignment_3_0"
+    // InternalTableDSL.g:27941:1: rule__TableValue__CollapsedAssignment_3_0 : ( ( 'collapse' ) ) ;
+    public final void rule__TableValue__CollapsedAssignment_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27945:1: ( ( ( 'collapse' ) ) )
+            // InternalTableDSL.g:27946:2: ( ( 'collapse' ) )
+            {
+            // InternalTableDSL.g:27946:2: ( ( 'collapse' ) )
+            // InternalTableDSL.g:27947:3: ( 'collapse' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0()); 
+            }
+            // InternalTableDSL.g:27948:3: ( 'collapse' )
+            // InternalTableDSL.g:27949:4: 'collapse'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0()); 
+            }
+            match(input,173,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__CollapsedAssignment_3_0"
+
+
+    // $ANTLR start "rule__TableValue__IconNameAssignment_3_1_1"
+    // InternalTableDSL.g:27960:1: rule__TableValue__IconNameAssignment_3_1_1 : ( RULE_STRING ) ;
+    public final void rule__TableValue__IconNameAssignment_3_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27964:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:27965:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:27965:2: ( RULE_STRING )
+            // InternalTableDSL.g:27966:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getIconNameSTRINGTerminalRuleCall_3_1_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getIconNameSTRINGTerminalRuleCall_3_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__IconNameAssignment_3_1_1"
+
+
+    // $ANTLR start "rule__TableValue__FormatterAssignment_3_2"
+    // InternalTableDSL.g:27975:1: rule__TableValue__FormatterAssignment_3_2 : ( ruleTableFormatter ) ;
+    public final void rule__TableValue__FormatterAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27979:1: ( ( ruleTableFormatter ) )
+            // InternalTableDSL.g:27980:2: ( ruleTableFormatter )
+            {
+            // InternalTableDSL.g:27980:2: ( ruleTableFormatter )
+            // InternalTableDSL.g:27981:3: ruleTableFormatter
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getFormatterTableFormatterParserRuleCall_3_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableFormatter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getFormatterTableFormatterParserRuleCall_3_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__FormatterAssignment_3_2"
+
+
+    // $ANTLR start "rule__TableValue__HasImageAssignment_3_3_0"
+    // InternalTableDSL.g:27990:1: rule__TableValue__HasImageAssignment_3_3_0 : ( ( 'image' ) ) ;
+    public final void rule__TableValue__HasImageAssignment_3_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:27994:1: ( ( ( 'image' ) ) )
+            // InternalTableDSL.g:27995:2: ( ( 'image' ) )
+            {
+            // InternalTableDSL.g:27995:2: ( ( 'image' ) )
+            // InternalTableDSL.g:27996:3: ( 'image' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0()); 
+            }
+            // InternalTableDSL.g:27997:3: ( 'image' )
+            // InternalTableDSL.g:27998:4: 'image'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0()); 
+            }
+            match(input,174,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__HasImageAssignment_3_3_0"
+
+
+    // $ANTLR start "rule__TableValue__ImageAssignment_3_3_1"
+    // InternalTableDSL.g:28009:1: rule__TableValue__ImageAssignment_3_3_1 : ( ruleTableImage ) ;
+    public final void rule__TableValue__ImageAssignment_3_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28013:1: ( ( ruleTableImage ) )
+            // InternalTableDSL.g:28014:2: ( ruleTableImage )
+            {
+            // InternalTableDSL.g:28014:2: ( ruleTableImage )
+            // InternalTableDSL.g:28015:3: ruleTableImage
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getImageTableImageParserRuleCall_3_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableImage();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getImageTableImageParserRuleCall_3_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__ImageAssignment_3_3_1"
+
+
+    // $ANTLR start "rule__TableValue__TooltipPatternAssignment_3_4"
+    // InternalTableDSL.g:28024:1: rule__TableValue__TooltipPatternAssignment_3_4 : ( ruleTableTooltipPattern ) ;
+    public final void rule__TableValue__TooltipPatternAssignment_3_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28028:1: ( ( ruleTableTooltipPattern ) )
+            // InternalTableDSL.g:28029:2: ( ruleTableTooltipPattern )
+            {
+            // InternalTableDSL.g:28029:2: ( ruleTableTooltipPattern )
+            // InternalTableDSL.g:28030:3: ruleTableTooltipPattern
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getTooltipPatternTableTooltipPatternParserRuleCall_3_4_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableTooltipPattern();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getTooltipPatternTableTooltipPatternParserRuleCall_3_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__TooltipPatternAssignment_3_4"
+
+
+    // $ANTLR start "rule__TableValue__HideLabelIntervalAssignment_4_0_1"
+    // InternalTableDSL.g:28039:1: rule__TableValue__HideLabelIntervalAssignment_4_0_1 : ( ( 'hidelabel' ) ) ;
+    public final void rule__TableValue__HideLabelIntervalAssignment_4_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28043:1: ( ( ( 'hidelabel' ) ) )
+            // InternalTableDSL.g:28044:2: ( ( 'hidelabel' ) )
+            {
+            // InternalTableDSL.g:28044:2: ( ( 'hidelabel' ) )
+            // InternalTableDSL.g:28045:3: ( 'hidelabel' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0()); 
+            }
+            // InternalTableDSL.g:28046:3: ( 'hidelabel' )
+            // InternalTableDSL.g:28047:4: 'hidelabel'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0()); 
+            }
+            match(input,175,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__HideLabelIntervalAssignment_4_0_1"
+
+
+    // $ANTLR start "rule__TableValue__IntervalsAssignment_4_0_3"
+    // InternalTableDSL.g:28058:1: rule__TableValue__IntervalsAssignment_4_0_3 : ( ruleTableInterval ) ;
+    public final void rule__TableValue__IntervalsAssignment_4_0_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28062:1: ( ( ruleTableInterval ) )
+            // InternalTableDSL.g:28063:2: ( ruleTableInterval )
+            {
+            // InternalTableDSL.g:28063:2: ( ruleTableInterval )
+            // InternalTableDSL.g:28064:3: ruleTableInterval
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getIntervalsTableIntervalParserRuleCall_4_0_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableInterval();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getIntervalsTableIntervalParserRuleCall_4_0_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__IntervalsAssignment_4_0_3"
+
+
+    // $ANTLR start "rule__TableValue__HideLabelLookupAssignment_4_1_1"
+    // InternalTableDSL.g:28073:1: rule__TableValue__HideLabelLookupAssignment_4_1_1 : ( ( 'hidelabel' ) ) ;
+    public final void rule__TableValue__HideLabelLookupAssignment_4_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28077:1: ( ( ( 'hidelabel' ) ) )
+            // InternalTableDSL.g:28078:2: ( ( 'hidelabel' ) )
+            {
+            // InternalTableDSL.g:28078:2: ( ( 'hidelabel' ) )
+            // InternalTableDSL.g:28079:3: ( 'hidelabel' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0()); 
+            }
+            // InternalTableDSL.g:28080:3: ( 'hidelabel' )
+            // InternalTableDSL.g:28081:4: 'hidelabel'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0()); 
+            }
+            match(input,175,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__HideLabelLookupAssignment_4_1_1"
+
+
+    // $ANTLR start "rule__TableValue__LookupsAssignment_4_1_3"
+    // InternalTableDSL.g:28092:1: rule__TableValue__LookupsAssignment_4_1_3 : ( ruleTableLookup ) ;
+    public final void rule__TableValue__LookupsAssignment_4_1_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28096:1: ( ( ruleTableLookup ) )
+            // InternalTableDSL.g:28097:2: ( ruleTableLookup )
+            {
+            // InternalTableDSL.g:28097:2: ( ruleTableLookup )
+            // InternalTableDSL.g:28098:3: ruleTableLookup
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableValueAccess().getLookupsTableLookupParserRuleCall_4_1_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableLookup();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableValueAccess().getLookupsTableLookupParserRuleCall_4_1_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableValue__LookupsAssignment_4_1_3"
+
+
+    // $ANTLR start "rule__TableFormatter__FormatAssignment_2"
+    // InternalTableDSL.g:28107:1: rule__TableFormatter__FormatAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__TableFormatter__FormatAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28111:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:28112:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:28112:2: ( RULE_STRING )
+            // InternalTableDSL.g:28113:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableFormatterAccess().getFormatSTRINGTerminalRuleCall_2_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableFormatterAccess().getFormatSTRINGTerminalRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableFormatter__FormatAssignment_2"
+
+
+    // $ANTLR start "rule__TableImage__ImagePathPatternAssignment_2"
+    // InternalTableDSL.g:28122:1: rule__TableImage__ImagePathPatternAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__TableImage__ImagePathPatternAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28126:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:28127:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:28127:2: ( RULE_STRING )
+            // InternalTableDSL.g:28128:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getImagePathPatternSTRINGTerminalRuleCall_2_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getImagePathPatternSTRINGTerminalRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__ImagePathPatternAssignment_2"
+
+
+    // $ANTLR start "rule__TableImage__HasParameterAssignment_3_0"
+    // InternalTableDSL.g:28137:1: rule__TableImage__HasParameterAssignment_3_0 : ( ( 'dynamic' ) ) ;
+    public final void rule__TableImage__HasParameterAssignment_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28141:1: ( ( ( 'dynamic' ) ) )
+            // InternalTableDSL.g:28142:2: ( ( 'dynamic' ) )
+            {
+            // InternalTableDSL.g:28142:2: ( ( 'dynamic' ) )
+            // InternalTableDSL.g:28143:3: ( 'dynamic' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0()); 
+            }
+            // InternalTableDSL.g:28144:3: ( 'dynamic' )
+            // InternalTableDSL.g:28145:4: 'dynamic'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0()); 
+            }
+            match(input,176,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__HasParameterAssignment_3_0"
+
+
+    // $ANTLR start "rule__TableImage__HideImageLabelAssignment_3_1"
+    // InternalTableDSL.g:28156:1: rule__TableImage__HideImageLabelAssignment_3_1 : ( ( 'hidelabel' ) ) ;
+    public final void rule__TableImage__HideImageLabelAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28160:1: ( ( ( 'hidelabel' ) ) )
+            // InternalTableDSL.g:28161:2: ( ( 'hidelabel' ) )
+            {
+            // InternalTableDSL.g:28161:2: ( ( 'hidelabel' ) )
+            // InternalTableDSL.g:28162:3: ( 'hidelabel' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0()); 
+            }
+            // InternalTableDSL.g:28163:3: ( 'hidelabel' )
+            // InternalTableDSL.g:28164:4: 'hidelabel'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0()); 
+            }
+            match(input,175,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__HideImageLabelAssignment_3_1"
+
+
+    // $ANTLR start "rule__TableImage__ResizeAssignment_3_2_0"
+    // InternalTableDSL.g:28175:1: rule__TableImage__ResizeAssignment_3_2_0 : ( ( 'resize' ) ) ;
+    public final void rule__TableImage__ResizeAssignment_3_2_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28179:1: ( ( ( 'resize' ) ) )
+            // InternalTableDSL.g:28180:2: ( ( 'resize' ) )
+            {
+            // InternalTableDSL.g:28180:2: ( ( 'resize' ) )
+            // InternalTableDSL.g:28181:3: ( 'resize' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0()); 
+            }
+            // InternalTableDSL.g:28182:3: ( 'resize' )
+            // InternalTableDSL.g:28183:4: 'resize'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0()); 
+            }
+            match(input,177,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__ResizeAssignment_3_2_0"
+
+
+    // $ANTLR start "rule__TableImage__ResizeStringAssignment_3_2_1"
+    // InternalTableDSL.g:28194:1: rule__TableImage__ResizeStringAssignment_3_2_1 : ( RULE_STRING ) ;
+    public final void rule__TableImage__ResizeStringAssignment_3_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28198:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:28199:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:28199:2: ( RULE_STRING )
+            // InternalTableDSL.g:28200:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableImageAccess().getResizeStringSTRINGTerminalRuleCall_3_2_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableImageAccess().getResizeStringSTRINGTerminalRuleCall_3_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableImage__ResizeStringAssignment_3_2_1"
+
+
+    // $ANTLR start "rule__TableTooltipPattern__TooltipPatternAssignment_2"
+    // InternalTableDSL.g:28209:1: rule__TableTooltipPattern__TooltipPatternAssignment_2 : ( ruleTRANSLATABLESTRING ) ;
+    public final void rule__TableTooltipPattern__TooltipPatternAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28213:1: ( ( ruleTRANSLATABLESTRING ) )
+            // InternalTableDSL.g:28214:2: ( ruleTRANSLATABLESTRING )
+            {
+            // InternalTableDSL.g:28214:2: ( ruleTRANSLATABLESTRING )
+            // InternalTableDSL.g:28215:3: ruleTRANSLATABLESTRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTRANSLATABLESTRING();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltipPattern__TooltipPatternAssignment_2"
+
+
+    // $ANTLR start "rule__TableOrdinal__ValueRefAssignment_1"
+    // InternalTableDSL.g:28224:1: rule__TableOrdinal__ValueRefAssignment_1 : ( ruleNumber ) ;
+    public final void rule__TableOrdinal__ValueRefAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28228:1: ( ( ruleNumber ) )
+            // InternalTableDSL.g:28229:2: ( ruleNumber )
+            {
+            // InternalTableDSL.g:28229:2: ( ruleNumber )
+            // InternalTableDSL.g:28230:3: ruleNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableOrdinalAccess().getValueRefNumberParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableOrdinalAccess().getValueRefNumberParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableOrdinal__ValueRefAssignment_1"
+
+
+    // $ANTLR start "rule__TableColumn__ValueRefAssignment_1"
+    // InternalTableDSL.g:28239:1: rule__TableColumn__ValueRefAssignment_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableColumn__ValueRefAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28243:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:28244:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:28244:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:28245:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableColumnAccess().getValueRefDatamartColumnCrossReference_1_0()); 
+            }
+            // InternalTableDSL.g:28246:3: ( RULE_ID )
+            // InternalTableDSL.g:28247:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableColumnAccess().getValueRefDatamartColumnIDTerminalRuleCall_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableColumnAccess().getValueRefDatamartColumnIDTerminalRuleCall_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableColumnAccess().getValueRefDatamartColumnCrossReference_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableColumn__ValueRefAssignment_1"
+
+
+    // $ANTLR start "rule__TableMeasure__ValueRefAssignment_1"
+    // InternalTableDSL.g:28258:1: rule__TableMeasure__ValueRefAssignment_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableMeasure__ValueRefAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28262:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:28263:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:28263:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:28264:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureCrossReference_1_0()); 
+            }
+            // InternalTableDSL.g:28265:3: ( RULE_ID )
+            // InternalTableDSL.g:28266:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureIDTerminalRuleCall_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureIDTerminalRuleCall_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureCrossReference_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableMeasure__ValueRefAssignment_1"
+
+
+    // $ANTLR start "rule__TableDerived__ValueRefAssignment_1"
+    // InternalTableDSL.g:28277:1: rule__TableDerived__ValueRefAssignment_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableDerived__ValueRefAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28281:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:28282:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:28282:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:28283:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureCrossReference_1_0()); 
+            }
+            // InternalTableDSL.g:28284:3: ( RULE_ID )
+            // InternalTableDSL.g:28285:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureIDTerminalRuleCall_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureIDTerminalRuleCall_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureCrossReference_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDerived__ValueRefAssignment_1"
+
+
+    // $ANTLR start "rule__TableHierarchy__ValueRefAssignment_1"
+    // InternalTableDSL.g:28296:1: rule__TableHierarchy__ValueRefAssignment_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableHierarchy__ValueRefAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28300:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:28301:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:28301:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:28302:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelCrossReference_1_0()); 
+            }
+            // InternalTableDSL.g:28303:3: ( RULE_ID )
+            // InternalTableDSL.g:28304:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelIDTerminalRuleCall_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelIDTerminalRuleCall_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelCrossReference_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableHierarchy__ValueRefAssignment_1"
+
+
+    // $ANTLR start "rule__TableAttribute__ValueRefAssignment_2"
+    // InternalTableDSL.g:28315:1: rule__TableAttribute__ValueRefAssignment_2 : ( ( RULE_ID ) ) ;
+    public final void rule__TableAttribute__ValueRefAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28319:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:28320:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:28320:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:28321:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeCrossReference_2_0()); 
+            }
+            // InternalTableDSL.g:28322:3: ( RULE_ID )
+            // InternalTableDSL.g:28323:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeIDTerminalRuleCall_2_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeIDTerminalRuleCall_2_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeCrossReference_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAttribute__ValueRefAssignment_2"
+
+
+    // $ANTLR start "rule__TableAggregation__ValueRefAssignment_1"
+    // InternalTableDSL.g:28334:1: rule__TableAggregation__ValueRefAssignment_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableAggregation__ValueRefAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28338:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:28339:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:28339:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:28340:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionCrossReference_1_0()); 
+            }
+            // InternalTableDSL.g:28341:3: ( RULE_ID )
+            // InternalTableDSL.g:28342:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionIDTerminalRuleCall_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionIDTerminalRuleCall_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionCrossReference_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAggregation__ValueRefAssignment_1"
+
+
+    // $ANTLR start "rule__TableNumberInterval__NumberIntervalValueAssignment_2"
+    // InternalTableDSL.g:28353:1: rule__TableNumberInterval__NumberIntervalValueAssignment_2 : ( ruleSignedNumber ) ;
+    public final void rule__TableNumberInterval__NumberIntervalValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28357:1: ( ( ruleSignedNumber ) )
+            // InternalTableDSL.g:28358:2: ( ruleSignedNumber )
+            {
+            // InternalTableDSL.g:28358:2: ( ruleSignedNumber )
+            // InternalTableDSL.g:28359:3: ruleSignedNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignedNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberInterval__NumberIntervalValueAssignment_2"
+
+
+    // $ANTLR start "rule__TableNumberInterval__NumberRangeAssignment_3"
+    // InternalTableDSL.g:28368:1: rule__TableNumberInterval__NumberRangeAssignment_3 : ( ruleTableRangeElement ) ;
+    public final void rule__TableNumberInterval__NumberRangeAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28372:1: ( ( ruleTableRangeElement ) )
+            // InternalTableDSL.g:28373:2: ( ruleTableRangeElement )
+            {
+            // InternalTableDSL.g:28373:2: ( ruleTableRangeElement )
+            // InternalTableDSL.g:28374:3: ruleTableRangeElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberIntervalAccess().getNumberRangeTableRangeElementParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableRangeElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberIntervalAccess().getNumberRangeTableRangeElementParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberInterval__NumberRangeAssignment_3"
+
+
+    // $ANTLR start "rule__TableIntInterval__IntIntervalValueAssignment_2"
+    // InternalTableDSL.g:28383:1: rule__TableIntInterval__IntIntervalValueAssignment_2 : ( ruleSignedInt ) ;
+    public final void rule__TableIntInterval__IntIntervalValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28387:1: ( ( ruleSignedInt ) )
+            // InternalTableDSL.g:28388:2: ( ruleSignedInt )
+            {
+            // InternalTableDSL.g:28388:2: ( ruleSignedInt )
+            // InternalTableDSL.g:28389:3: ruleSignedInt
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueSignedIntParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignedInt();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueSignedIntParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntInterval__IntIntervalValueAssignment_2"
+
+
+    // $ANTLR start "rule__TableIntInterval__IntRangeAssignment_3"
+    // InternalTableDSL.g:28398:1: rule__TableIntInterval__IntRangeAssignment_3 : ( ruleTableRangeElement ) ;
+    public final void rule__TableIntInterval__IntRangeAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28402:1: ( ( ruleTableRangeElement ) )
+            // InternalTableDSL.g:28403:2: ( ruleTableRangeElement )
+            {
+            // InternalTableDSL.g:28403:2: ( ruleTableRangeElement )
+            // InternalTableDSL.g:28404:3: ruleTableRangeElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntIntervalAccess().getIntRangeTableRangeElementParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableRangeElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntIntervalAccess().getIntRangeTableRangeElementParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntInterval__IntRangeAssignment_3"
+
+
+    // $ANTLR start "rule__TableDateDayInterval__DateIntervalValueAssignment_2"
+    // InternalTableDSL.g:28413:1: rule__TableDateDayInterval__DateIntervalValueAssignment_2 : ( ruleSignedInt ) ;
+    public final void rule__TableDateDayInterval__DateIntervalValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28417:1: ( ( ruleSignedInt ) )
+            // InternalTableDSL.g:28418:2: ( ruleSignedInt )
+            {
+            // InternalTableDSL.g:28418:2: ( ruleSignedInt )
+            // InternalTableDSL.g:28419:3: ruleSignedInt
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueSignedIntParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignedInt();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueSignedIntParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayInterval__DateIntervalValueAssignment_2"
+
+
+    // $ANTLR start "rule__TableDateDayInterval__DateRangeAssignment_3"
+    // InternalTableDSL.g:28428:1: rule__TableDateDayInterval__DateRangeAssignment_3 : ( ruleTableRangeElement ) ;
+    public final void rule__TableDateDayInterval__DateRangeAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28432:1: ( ( ruleTableRangeElement ) )
+            // InternalTableDSL.g:28433:2: ( ruleTableRangeElement )
+            {
+            // InternalTableDSL.g:28433:2: ( ruleTableRangeElement )
+            // InternalTableDSL.g:28434:3: ruleTableRangeElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayIntervalAccess().getDateRangeTableRangeElementParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableRangeElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayIntervalAccess().getDateRangeTableRangeElementParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayInterval__DateRangeAssignment_3"
+
+
+    // $ANTLR start "rule__TableIntLookup__LookupValueAssignment_2"
+    // InternalTableDSL.g:28443:1: rule__TableIntLookup__LookupValueAssignment_2 : ( ruleSignedInt ) ;
+    public final void rule__TableIntLookup__LookupValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28447:1: ( ( ruleSignedInt ) )
+            // InternalTableDSL.g:28448:2: ( ruleSignedInt )
+            {
+            // InternalTableDSL.g:28448:2: ( ruleSignedInt )
+            // InternalTableDSL.g:28449:3: ruleSignedInt
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntLookupAccess().getLookupValueSignedIntParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignedInt();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntLookupAccess().getLookupValueSignedIntParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntLookup__LookupValueAssignment_2"
+
+
+    // $ANTLR start "rule__TableIntLookup__DiscreteAssignment_3"
+    // InternalTableDSL.g:28458:1: rule__TableIntLookup__DiscreteAssignment_3 : ( ruleTableRangeElement ) ;
+    public final void rule__TableIntLookup__DiscreteAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28462:1: ( ( ruleTableRangeElement ) )
+            // InternalTableDSL.g:28463:2: ( ruleTableRangeElement )
+            {
+            // InternalTableDSL.g:28463:2: ( ruleTableRangeElement )
+            // InternalTableDSL.g:28464:3: ruleTableRangeElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIntLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableRangeElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIntLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIntLookup__DiscreteAssignment_3"
+
+
+    // $ANTLR start "rule__TableNumberLookup__LookupValueAssignment_2"
+    // InternalTableDSL.g:28473:1: rule__TableNumberLookup__LookupValueAssignment_2 : ( ruleSignedNumber ) ;
+    public final void rule__TableNumberLookup__LookupValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28477:1: ( ( ruleSignedNumber ) )
+            // InternalTableDSL.g:28478:2: ( ruleSignedNumber )
+            {
+            // InternalTableDSL.g:28478:2: ( ruleSignedNumber )
+            // InternalTableDSL.g:28479:3: ruleSignedNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignedNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberLookup__LookupValueAssignment_2"
+
+
+    // $ANTLR start "rule__TableNumberLookup__DiscreteAssignment_3"
+    // InternalTableDSL.g:28488:1: rule__TableNumberLookup__DiscreteAssignment_3 : ( ruleTableRangeElement ) ;
+    public final void rule__TableNumberLookup__DiscreteAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28492:1: ( ( ruleTableRangeElement ) )
+            // InternalTableDSL.g:28493:2: ( ruleTableRangeElement )
+            {
+            // InternalTableDSL.g:28493:2: ( ruleTableRangeElement )
+            // InternalTableDSL.g:28494:3: ruleTableRangeElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableNumberLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableRangeElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableNumberLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableNumberLookup__DiscreteAssignment_3"
+
+
+    // $ANTLR start "rule__TableStringLookup__LookupValueAssignment_2"
+    // InternalTableDSL.g:28503:1: rule__TableStringLookup__LookupValueAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__TableStringLookup__LookupValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28507:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:28508:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:28508:2: ( RULE_STRING )
+            // InternalTableDSL.g:28509:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableStringLookup__LookupValueAssignment_2"
+
+
+    // $ANTLR start "rule__TableStringLookup__DiscreteAssignment_3"
+    // InternalTableDSL.g:28518:1: rule__TableStringLookup__DiscreteAssignment_3 : ( ruleTableRangeElement ) ;
+    public final void rule__TableStringLookup__DiscreteAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28522:1: ( ( ruleTableRangeElement ) )
+            // InternalTableDSL.g:28523:2: ( ruleTableRangeElement )
+            {
+            // InternalTableDSL.g:28523:2: ( ruleTableRangeElement )
+            // InternalTableDSL.g:28524:3: ruleTableRangeElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableStringLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableRangeElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableStringLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableStringLookup__DiscreteAssignment_3"
+
+
+    // $ANTLR start "rule__TableDateDayLookup__LookupValueAssignment_2"
+    // InternalTableDSL.g:28533:1: rule__TableDateDayLookup__LookupValueAssignment_2 : ( ruleSignedInt ) ;
+    public final void rule__TableDateDayLookup__LookupValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28537:1: ( ( ruleSignedInt ) )
+            // InternalTableDSL.g:28538:2: ( ruleSignedInt )
+            {
+            // InternalTableDSL.g:28538:2: ( ruleSignedInt )
+            // InternalTableDSL.g:28539:3: ruleSignedInt
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedIntParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleSignedInt();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedIntParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayLookup__LookupValueAssignment_2"
+
+
+    // $ANTLR start "rule__TableDateDayLookup__DiscreteAssignment_3"
+    // InternalTableDSL.g:28548:1: rule__TableDateDayLookup__DiscreteAssignment_3 : ( ruleTableRangeElement ) ;
+    public final void rule__TableDateDayLookup__DiscreteAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28552:1: ( ( ruleTableRangeElement ) )
+            // InternalTableDSL.g:28553:2: ( ruleTableRangeElement )
+            {
+            // InternalTableDSL.g:28553:2: ( ruleTableRangeElement )
+            // InternalTableDSL.g:28554:3: ruleTableRangeElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDateDayLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableRangeElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDateDayLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDateDayLookup__DiscreteAssignment_3"
+
+
+    // $ANTLR start "rule__TableDatamart__DatamartRefAssignment_1"
+    // InternalTableDSL.g:28563:1: rule__TableDatamart__DatamartRefAssignment_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableDatamart__DatamartRefAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28567:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:28568:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:28568:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:28569:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionCrossReference_1_0()); 
+            }
+            // InternalTableDSL.g:28570:3: ( RULE_ID )
+            // InternalTableDSL.g:28571:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionIDTerminalRuleCall_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionIDTerminalRuleCall_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionCrossReference_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__DatamartRefAssignment_1"
+
+
+    // $ANTLR start "rule__TableDatamart__ElementsAssignment_2_1"
+    // InternalTableDSL.g:28582:1: rule__TableDatamart__ElementsAssignment_2_1 : ( ruleTableElement ) ;
+    public final void rule__TableDatamart__ElementsAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28586:1: ( ( ruleTableElement ) )
+            // InternalTableDSL.g:28587:2: ( ruleTableElement )
+            {
+            // InternalTableDSL.g:28587:2: ( ruleTableElement )
+            // InternalTableDSL.g:28588:3: ruleTableElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDatamartAccess().getElementsTableElementParserRuleCall_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDatamartAccess().getElementsTableElementParserRuleCall_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDatamart__ElementsAssignment_2_1"
+
+
+    // $ANTLR start "rule__TableEvent__SourceAssignment"
+    // InternalTableDSL.g:28597:1: rule__TableEvent__SourceAssignment : ( ruleTableValueElement ) ;
+    public final void rule__TableEvent__SourceAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28601:1: ( ( ruleTableValueElement ) )
+            // InternalTableDSL.g:28602:2: ( ruleTableValueElement )
+            {
+            // InternalTableDSL.g:28602:2: ( ruleTableValueElement )
+            // InternalTableDSL.g:28603:3: ruleTableValueElement
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableEventAccess().getSourceTableValueElementParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableValueElement();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableEventAccess().getSourceTableValueElementParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableEvent__SourceAssignment"
+
+
+    // $ANTLR start "rule__TableAxis__AxisAssignment_1"
+    // InternalTableDSL.g:28612:1: rule__TableAxis__AxisAssignment_1 : ( ruleAxisEnum ) ;
+    public final void rule__TableAxis__AxisAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28616:1: ( ( ruleAxisEnum ) )
+            // InternalTableDSL.g:28617:2: ( ruleAxisEnum )
+            {
+            // InternalTableDSL.g:28617:2: ( ruleAxisEnum )
+            // InternalTableDSL.g:28618:3: ruleAxisEnum
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getAxisAxisEnumEnumRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleAxisEnum();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getAxisAxisEnumEnumRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__AxisAssignment_1"
+
+
+    // $ANTLR start "rule__TableAxis__HasRowHeightAssignment_2_0_0"
+    // InternalTableDSL.g:28627:1: rule__TableAxis__HasRowHeightAssignment_2_0_0 : ( ( 'rowheight' ) ) ;
+    public final void rule__TableAxis__HasRowHeightAssignment_2_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28631:1: ( ( ( 'rowheight' ) ) )
+            // InternalTableDSL.g:28632:2: ( ( 'rowheight' ) )
+            {
+            // InternalTableDSL.g:28632:2: ( ( 'rowheight' ) )
+            // InternalTableDSL.g:28633:3: ( 'rowheight' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0()); 
+            }
+            // InternalTableDSL.g:28634:3: ( 'rowheight' )
+            // InternalTableDSL.g:28635:4: 'rowheight'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0()); 
+            }
+            match(input,178,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__HasRowHeightAssignment_2_0_0"
+
+
+    // $ANTLR start "rule__TableAxis__RowHeightAssignment_2_0_1"
+    // InternalTableDSL.g:28646:1: rule__TableAxis__RowHeightAssignment_2_0_1 : ( ruleNumber ) ;
+    public final void rule__TableAxis__RowHeightAssignment_2_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28650:1: ( ( ruleNumber ) )
+            // InternalTableDSL.g:28651:2: ( ruleNumber )
+            {
+            // InternalTableDSL.g:28651:2: ( ruleNumber )
+            // InternalTableDSL.g:28652:3: ruleNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getRowHeightNumberParserRuleCall_2_0_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getRowHeightNumberParserRuleCall_2_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__RowHeightAssignment_2_0_1"
+
+
+    // $ANTLR start "rule__TableAxis__PreOrderAssignment_2_1"
+    // InternalTableDSL.g:28661:1: rule__TableAxis__PreOrderAssignment_2_1 : ( ruleTablePreorder ) ;
+    public final void rule__TableAxis__PreOrderAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28665:1: ( ( ruleTablePreorder ) )
+            // InternalTableDSL.g:28666:2: ( ruleTablePreorder )
+            {
+            // InternalTableDSL.g:28666:2: ( ruleTablePreorder )
+            // InternalTableDSL.g:28667:3: ruleTablePreorder
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getPreOrderTablePreorderParserRuleCall_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTablePreorder();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getPreOrderTablePreorderParserRuleCall_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__PreOrderAssignment_2_1"
+
+
+    // $ANTLR start "rule__TableAxis__HasDetailsAssignment_3_0"
+    // InternalTableDSL.g:28676:1: rule__TableAxis__HasDetailsAssignment_3_0 : ( ( 'details' ) ) ;
+    public final void rule__TableAxis__HasDetailsAssignment_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28680:1: ( ( ( 'details' ) ) )
+            // InternalTableDSL.g:28681:2: ( ( 'details' ) )
+            {
+            // InternalTableDSL.g:28681:2: ( ( 'details' ) )
+            // InternalTableDSL.g:28682:3: ( 'details' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0()); 
+            }
+            // InternalTableDSL.g:28683:3: ( 'details' )
+            // InternalTableDSL.g:28684:4: 'details'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0()); 
+            }
+            match(input,179,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__HasDetailsAssignment_3_0"
+
+
+    // $ANTLR start "rule__TableAxis__ValuesAssignment_3_2"
+    // InternalTableDSL.g:28695:1: rule__TableAxis__ValuesAssignment_3_2 : ( ruleTableValue ) ;
+    public final void rule__TableAxis__ValuesAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28699:1: ( ( ruleTableValue ) )
+            // InternalTableDSL.g:28700:2: ( ruleTableValue )
+            {
+            // InternalTableDSL.g:28700:2: ( ruleTableValue )
+            // InternalTableDSL.g:28701:3: ruleTableValue
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getValuesTableValueParserRuleCall_3_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableValue();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getValuesTableValueParserRuleCall_3_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__ValuesAssignment_3_2"
+
+
+    // $ANTLR start "rule__TableAxis__HasEventsAssignment_4_0"
+    // InternalTableDSL.g:28710:1: rule__TableAxis__HasEventsAssignment_4_0 : ( ( 'notifyOnSelect' ) ) ;
+    public final void rule__TableAxis__HasEventsAssignment_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28714:1: ( ( ( 'notifyOnSelect' ) ) )
+            // InternalTableDSL.g:28715:2: ( ( 'notifyOnSelect' ) )
+            {
+            // InternalTableDSL.g:28715:2: ( ( 'notifyOnSelect' ) )
+            // InternalTableDSL.g:28716:3: ( 'notifyOnSelect' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getHasEventsNotifyOnSelectKeyword_4_0_0()); 
+            }
+            // InternalTableDSL.g:28717:3: ( 'notifyOnSelect' )
+            // InternalTableDSL.g:28718:4: 'notifyOnSelect'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getHasEventsNotifyOnSelectKeyword_4_0_0()); 
+            }
+            match(input,180,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getHasEventsNotifyOnSelectKeyword_4_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getHasEventsNotifyOnSelectKeyword_4_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__HasEventsAssignment_4_0"
+
+
+    // $ANTLR start "rule__TableAxis__EventsAssignment_4_2"
+    // InternalTableDSL.g:28729:1: rule__TableAxis__EventsAssignment_4_2 : ( ruleTableEvent ) ;
+    public final void rule__TableAxis__EventsAssignment_4_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28733:1: ( ( ruleTableEvent ) )
+            // InternalTableDSL.g:28734:2: ( ruleTableEvent )
+            {
+            // InternalTableDSL.g:28734:2: ( ruleTableEvent )
+            // InternalTableDSL.g:28735:3: ruleTableEvent
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableAxisAccess().getEventsTableEventParserRuleCall_4_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableEvent();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableAxisAccess().getEventsTableEventParserRuleCall_4_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableAxis__EventsAssignment_4_2"
+
+
+    // $ANTLR start "rule__TableTextColor__RgbAssignment_1"
+    // InternalTableDSL.g:28744:1: rule__TableTextColor__RgbAssignment_1 : ( RULE_STRING ) ;
+    public final void rule__TableTextColor__RgbAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28748:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:28749:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:28749:2: ( RULE_STRING )
+            // InternalTableDSL.g:28750:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTextColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTextColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTextColor__RgbAssignment_1"
+
+
+    // $ANTLR start "rule__TableCellColor__RgbAssignment_1"
+    // InternalTableDSL.g:28759:1: rule__TableCellColor__RgbAssignment_1 : ( RULE_STRING ) ;
+    public final void rule__TableCellColor__RgbAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28763:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:28764:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:28764:2: ( RULE_STRING )
+            // InternalTableDSL.g:28765:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableCellColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableCellColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableCellColor__RgbAssignment_1"
+
+
+    // $ANTLR start "rule__TableIcon__IconAssignment_1"
+    // InternalTableDSL.g:28774:1: rule__TableIcon__IconAssignment_1 : ( RULE_STRING ) ;
+    public final void rule__TableIcon__IconAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28778:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:28779:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:28779:2: ( RULE_STRING )
+            // InternalTableDSL.g:28780:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableIcon__IconAssignment_1"
+
+
+    // $ANTLR start "rule__TableTrend__IconAssignment_1"
+    // InternalTableDSL.g:28789:1: rule__TableTrend__IconAssignment_1 : ( ruleTrendIconEnum ) ;
+    public final void rule__TableTrend__IconAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28793:1: ( ( ruleTrendIconEnum ) )
+            // InternalTableDSL.g:28794:2: ( ruleTrendIconEnum )
+            {
+            // InternalTableDSL.g:28794:2: ( ruleTrendIconEnum )
+            // InternalTableDSL.g:28795:3: ruleTrendIconEnum
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTrendAccess().getIconTrendIconEnumEnumRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTrendIconEnum();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTrendAccess().getIconTrendIconEnumEnumRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTrend__IconAssignment_1"
+
+
+    // $ANTLR start "rule__TableTooltip__TooltipAssignment_1"
+    // InternalTableDSL.g:28804:1: rule__TableTooltip__TooltipAssignment_1 : ( ruleTRANSLATABLESTRING ) ;
+    public final void rule__TableTooltip__TooltipAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28808:1: ( ( ruleTRANSLATABLESTRING ) )
+            // InternalTableDSL.g:28809:2: ( ruleTRANSLATABLESTRING )
+            {
+            // InternalTableDSL.g:28809:2: ( ruleTRANSLATABLESTRING )
+            // InternalTableDSL.g:28810:3: ruleTRANSLATABLESTRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableTooltipAccess().getTooltipTRANSLATABLESTRINGParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTRANSLATABLESTRING();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableTooltipAccess().getTooltipTRANSLATABLESTRINGParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableTooltip__TooltipAssignment_1"
+
+
+    // $ANTLR start "rule__TableGrid__SelectalwaysAssignment_2_0"
+    // InternalTableDSL.g:28819:1: rule__TableGrid__SelectalwaysAssignment_2_0 : ( ( 'selectalways' ) ) ;
+    public final void rule__TableGrid__SelectalwaysAssignment_2_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28823:1: ( ( ( 'selectalways' ) ) )
+            // InternalTableDSL.g:28824:2: ( ( 'selectalways' ) )
+            {
+            // InternalTableDSL.g:28824:2: ( ( 'selectalways' ) )
+            // InternalTableDSL.g:28825:3: ( 'selectalways' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0()); 
+            }
+            // InternalTableDSL.g:28826:3: ( 'selectalways' )
+            // InternalTableDSL.g:28827:4: 'selectalways'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0()); 
+            }
+            match(input,181,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__SelectalwaysAssignment_2_0"
+
+
+    // $ANTLR start "rule__TableGrid__HeaderModeAssignment_2_1_1"
+    // InternalTableDSL.g:28838:1: rule__TableGrid__HeaderModeAssignment_2_1_1 : ( ruleRowHeaderMode ) ;
+    public final void rule__TableGrid__HeaderModeAssignment_2_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28842:1: ( ( ruleRowHeaderMode ) )
+            // InternalTableDSL.g:28843:2: ( ruleRowHeaderMode )
+            {
+            // InternalTableDSL.g:28843:2: ( ruleRowHeaderMode )
+            // InternalTableDSL.g:28844:3: ruleRowHeaderMode
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleRowHeaderMode();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__HeaderModeAssignment_2_1_1"
+
+
+    // $ANTLR start "rule__TableGrid__PollingAssignment_3_0_0"
+    // InternalTableDSL.g:28853:1: rule__TableGrid__PollingAssignment_3_0_0 : ( ( 'polling' ) ) ;
+    public final void rule__TableGrid__PollingAssignment_3_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28857:1: ( ( ( 'polling' ) ) )
+            // InternalTableDSL.g:28858:2: ( ( 'polling' ) )
+            {
+            // InternalTableDSL.g:28858:2: ( ( 'polling' ) )
+            // InternalTableDSL.g:28859:3: ( 'polling' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0()); 
+            }
+            // InternalTableDSL.g:28860:3: ( 'polling' )
+            // InternalTableDSL.g:28861:4: 'polling'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0()); 
+            }
+            match(input,168,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__PollingAssignment_3_0_0"
+
+
+    // $ANTLR start "rule__TableGrid__PollingTimeAssignment_3_0_1"
+    // InternalTableDSL.g:28872:1: rule__TableGrid__PollingTimeAssignment_3_0_1 : ( ruleNumber ) ;
+    public final void rule__TableGrid__PollingTimeAssignment_3_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28876:1: ( ( ruleNumber ) )
+            // InternalTableDSL.g:28877:2: ( ruleNumber )
+            {
+            // InternalTableDSL.g:28877:2: ( ruleNumber )
+            // InternalTableDSL.g:28878:3: ruleNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getPollingTimeNumberParserRuleCall_3_0_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getPollingTimeNumberParserRuleCall_3_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__PollingTimeAssignment_3_0_1"
+
+
+    // $ANTLR start "rule__TableGrid__FilteringAssignment_3_1"
+    // InternalTableDSL.g:28887:1: rule__TableGrid__FilteringAssignment_3_1 : ( ( 'filtering' ) ) ;
+    public final void rule__TableGrid__FilteringAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28891:1: ( ( ( 'filtering' ) ) )
+            // InternalTableDSL.g:28892:2: ( ( 'filtering' ) )
+            {
+            // InternalTableDSL.g:28892:2: ( ( 'filtering' ) )
+            // InternalTableDSL.g:28893:3: ( 'filtering' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0()); 
+            }
+            // InternalTableDSL.g:28894:3: ( 'filtering' )
+            // InternalTableDSL.g:28895:4: 'filtering'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0()); 
+            }
+            match(input,169,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__FilteringAssignment_3_1"
+
+
+    // $ANTLR start "rule__TableGrid__EmbeddedAssignment_3_2"
+    // InternalTableDSL.g:28906:1: rule__TableGrid__EmbeddedAssignment_3_2 : ( ( 'embedded' ) ) ;
+    public final void rule__TableGrid__EmbeddedAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28910:1: ( ( ( 'embedded' ) ) )
+            // InternalTableDSL.g:28911:2: ( ( 'embedded' ) )
+            {
+            // InternalTableDSL.g:28911:2: ( ( 'embedded' ) )
+            // InternalTableDSL.g:28912:3: ( 'embedded' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0()); 
+            }
+            // InternalTableDSL.g:28913:3: ( 'embedded' )
+            // InternalTableDSL.g:28914:4: 'embedded'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0()); 
+            }
+            match(input,170,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__EmbeddedAssignment_3_2"
+
+
+    // $ANTLR start "rule__TableGrid__ToolbarAssignment_3_3_1"
+    // InternalTableDSL.g:28925:1: rule__TableGrid__ToolbarAssignment_3_3_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableGrid__ToolbarAssignment_3_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28929:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:28930:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:28930:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:28931:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getToolbarActionToolbarCrossReference_3_3_1_0()); 
+            }
+            // InternalTableDSL.g:28932:3: ( RULE_ID )
+            // InternalTableDSL.g:28933:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getToolbarActionToolbarCrossReference_3_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__ToolbarAssignment_3_3_1"
+
+
+    // $ANTLR start "rule__TableGrid__SourceAssignment_4_1"
+    // InternalTableDSL.g:28944:1: rule__TableGrid__SourceAssignment_4_1 : ( ruleTableDtoDatasource ) ;
+    public final void rule__TableGrid__SourceAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28948:1: ( ( ruleTableDtoDatasource ) )
+            // InternalTableDSL.g:28949:2: ( ruleTableDtoDatasource )
+            {
+            // InternalTableDSL.g:28949:2: ( ruleTableDtoDatasource )
+            // InternalTableDSL.g:28950:3: ruleTableDtoDatasource
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableGridAccess().getSourceTableDtoDatasourceParserRuleCall_4_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleTableDtoDatasource();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableGridAccess().getSourceTableDtoDatasourceParserRuleCall_4_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableGrid__SourceAssignment_4_1"
+
+
+    // $ANTLR start "rule__Property__EditableAssignment_0"
+    // InternalTableDSL.g:28959:1: rule__Property__EditableAssignment_0 : ( ( 'editable' ) ) ;
+    public final void rule__Property__EditableAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28963:1: ( ( ( 'editable' ) ) )
+            // InternalTableDSL.g:28964:2: ( ( 'editable' ) )
+            {
+            // InternalTableDSL.g:28964:2: ( ( 'editable' ) )
+            // InternalTableDSL.g:28965:3: ( 'editable' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0()); 
+            }
+            // InternalTableDSL.g:28966:3: ( 'editable' )
+            // InternalTableDSL.g:28967:4: 'editable'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0()); 
+            }
+            match(input,182,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__EditableAssignment_0"
+
+
+    // $ANTLR start "rule__Property__PathAssignment_2"
+    // InternalTableDSL.g:28978:1: rule__Property__PathAssignment_2 : ( ruleNestedField ) ;
+    public final void rule__Property__PathAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28982:1: ( ( ruleNestedField ) )
+            // InternalTableDSL.g:28983:2: ( ruleNestedField )
+            {
+            // InternalTableDSL.g:28983:2: ( ruleNestedField )
+            // InternalTableDSL.g:28984:3: ruleNestedField
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyAccess().getPathNestedFieldParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyAccess().getPathNestedFieldParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__PathAssignment_2"
+
+
+    // $ANTLR start "rule__Property__StyleAssignment_4"
+    // InternalTableDSL.g:28993:1: rule__Property__StyleAssignment_4 : ( rulePropertyStyle ) ;
+    public final void rule__Property__StyleAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:28997:1: ( ( rulePropertyStyle ) )
+            // InternalTableDSL.g:28998:2: ( rulePropertyStyle )
+            {
+            // InternalTableDSL.g:28998:2: ( rulePropertyStyle )
+            // InternalTableDSL.g:28999:3: rulePropertyStyle
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyAccess().getStylePropertyStyleParserRuleCall_4_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            rulePropertyStyle();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyAccess().getStylePropertyStyleParserRuleCall_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Property__StyleAssignment_4"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__DtoSourceAssignment_1"
+    // InternalTableDSL.g:29008:1: rule__TableDtoDatasource__DtoSourceAssignment_1 : ( ( RULE_ID ) ) ;
+    public final void rule__TableDtoDatasource__DtoSourceAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29012:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:29013:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:29013:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:29014:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoCrossReference_1_0()); 
+            }
+            // InternalTableDSL.g:29015:3: ( RULE_ID )
+            // InternalTableDSL.g:29016:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoIDTerminalRuleCall_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoIDTerminalRuleCall_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoCrossReference_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__DtoSourceAssignment_1"
+
+
+    // $ANTLR start "rule__TableDtoDatasource__PropertiesAssignment_2_1"
+    // InternalTableDSL.g:29027:1: rule__TableDtoDatasource__PropertiesAssignment_2_1 : ( ruleProperty ) ;
+    public final void rule__TableDtoDatasource__PropertiesAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29031:1: ( ( ruleProperty ) )
+            // InternalTableDSL.g:29032:2: ( ruleProperty )
+            {
+            // InternalTableDSL.g:29032:2: ( ruleProperty )
+            // InternalTableDSL.g:29033:3: ruleProperty
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTableDtoDatasourceAccess().getPropertiesPropertyParserRuleCall_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleProperty();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTableDtoDatasourceAccess().getPropertiesPropertyParserRuleCall_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TableDtoDatasource__PropertiesAssignment_2_1"
+
+
+    // $ANTLR start "rule__NestedField__FieldAssignment_1"
+    // InternalTableDSL.g:29042:1: rule__NestedField__FieldAssignment_1 : ( ( RULE_ID ) ) ;
+    public final void rule__NestedField__FieldAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29046:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:29047:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:29047:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:29048:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedFieldAccess().getFieldJvmOperationCrossReference_1_0()); 
+            }
+            // InternalTableDSL.g:29049:3: ( RULE_ID )
+            // InternalTableDSL.g:29050:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedFieldAccess().getFieldJvmOperationIDTerminalRuleCall_1_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedFieldAccess().getFieldJvmOperationIDTerminalRuleCall_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedFieldAccess().getFieldJvmOperationCrossReference_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedField__FieldAssignment_1"
+
+
+    // $ANTLR start "rule__NestedField__PathAssignment_2"
+    // InternalTableDSL.g:29061:1: rule__NestedField__PathAssignment_2 : ( ruleNestedPath ) ;
+    public final void rule__NestedField__PathAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29065:1: ( ( ruleNestedPath ) )
+            // InternalTableDSL.g:29066:2: ( ruleNestedPath )
+            {
+            // InternalTableDSL.g:29066:2: ( ruleNestedPath )
+            // InternalTableDSL.g:29067:3: ruleNestedPath
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedFieldAccess().getPathNestedPathParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNestedPath();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedFieldAccess().getPathNestedPathParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedField__PathAssignment_2"
+
+
+    // $ANTLR start "rule__NestedPath__FieldAssignment_2"
+    // InternalTableDSL.g:29076:1: rule__NestedPath__FieldAssignment_2 : ( ( RULE_ID ) ) ;
+    public final void rule__NestedPath__FieldAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29080:1: ( ( ( RULE_ID ) ) )
+            // InternalTableDSL.g:29081:2: ( ( RULE_ID ) )
+            {
+            // InternalTableDSL.g:29081:2: ( ( RULE_ID ) )
+            // InternalTableDSL.g:29082:3: ( RULE_ID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedPathAccess().getFieldJvmOperationCrossReference_2_0()); 
+            }
+            // InternalTableDSL.g:29083:3: ( RULE_ID )
+            // InternalTableDSL.g:29084:4: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedPathAccess().getFieldJvmOperationIDTerminalRuleCall_2_0_1()); 
+            }
+            match(input,RULE_ID,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedPathAccess().getFieldJvmOperationIDTerminalRuleCall_2_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedPathAccess().getFieldJvmOperationCrossReference_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedPath__FieldAssignment_2"
+
+
+    // $ANTLR start "rule__NestedPath__PathAssignment_3"
+    // InternalTableDSL.g:29095:1: rule__NestedPath__PathAssignment_3 : ( ruleNestedPath ) ;
+    public final void rule__NestedPath__PathAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29099:1: ( ( ruleNestedPath ) )
+            // InternalTableDSL.g:29100:2: ( ruleNestedPath )
+            {
+            // InternalTableDSL.g:29100:2: ( ruleNestedPath )
+            // InternalTableDSL.g:29101:3: ruleNestedPath
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNestedPathAccess().getPathNestedPathParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNestedPath();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNestedPathAccess().getPathNestedPathParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NestedPath__PathAssignment_3"
+
+
+    // $ANTLR start "rule__PropertyButtonStyle__EventTopicAssignment_3"
+    // InternalTableDSL.g:29110:1: rule__PropertyButtonStyle__EventTopicAssignment_3 : ( RULE_STRING ) ;
+    public final void rule__PropertyButtonStyle__EventTopicAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29114:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:29115:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:29115:2: ( RULE_STRING )
+            // InternalTableDSL.g:29116:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyButtonStyleAccess().getEventTopicSTRINGTerminalRuleCall_3_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyButtonStyleAccess().getEventTopicSTRINGTerminalRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyButtonStyle__EventTopicAssignment_3"
+
+
+    // $ANTLR start "rule__PropertyDateStyle__DateFormatAssignment_3"
+    // InternalTableDSL.g:29125:1: rule__PropertyDateStyle__DateFormatAssignment_3 : ( RULE_STRING ) ;
+    public final void rule__PropertyDateStyle__DateFormatAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29129:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:29130:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:29130:2: ( RULE_STRING )
+            // InternalTableDSL.g:29131:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyDateStyleAccess().getDateFormatSTRINGTerminalRuleCall_3_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyDateStyleAccess().getDateFormatSTRINGTerminalRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyDateStyle__DateFormatAssignment_3"
+
+
+    // $ANTLR start "rule__PropertyNumberStyle__NumberFormatAssignment_3"
+    // InternalTableDSL.g:29140:1: rule__PropertyNumberStyle__NumberFormatAssignment_3 : ( RULE_STRING ) ;
+    public final void rule__PropertyNumberStyle__NumberFormatAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29144:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:29145:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:29145:2: ( RULE_STRING )
+            // InternalTableDSL.g:29146:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyNumberStyleAccess().getNumberFormatSTRINGTerminalRuleCall_3_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyNumberStyleAccess().getNumberFormatSTRINGTerminalRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyNumberStyle__NumberFormatAssignment_3"
+
+
+    // $ANTLR start "rule__PropertyProgressbarStyle__MaxValueAssignment_3"
+    // InternalTableDSL.g:29155:1: rule__PropertyProgressbarStyle__MaxValueAssignment_3 : ( ruleLDouble ) ;
+    public final void rule__PropertyProgressbarStyle__MaxValueAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29159:1: ( ( ruleLDouble ) )
+            // InternalTableDSL.g:29160:2: ( ruleLDouble )
+            {
+            // InternalTableDSL.g:29160:2: ( ruleLDouble )
+            // InternalTableDSL.g:29161:3: ruleLDouble
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueLDoubleParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleLDouble();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueLDoubleParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyProgressbarStyle__MaxValueAssignment_3"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__GreenStartsAssignment_3"
+    // InternalTableDSL.g:29170:1: rule__GridPropIndicatorStyle__GreenStartsAssignment_3 : ( ruleLDouble ) ;
+    public final void rule__GridPropIndicatorStyle__GreenStartsAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29174:1: ( ( ruleLDouble ) )
+            // InternalTableDSL.g:29175:2: ( ruleLDouble )
+            {
+            // InternalTableDSL.g:29175:2: ( ruleLDouble )
+            // InternalTableDSL.g:29176:3: ruleLDouble
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsLDoubleParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleLDouble();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsLDoubleParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__GreenStartsAssignment_3"
+
+
+    // $ANTLR start "rule__GridPropIndicatorStyle__RedEndsAssignment_5"
+    // InternalTableDSL.g:29185:1: rule__GridPropIndicatorStyle__RedEndsAssignment_5 : ( ruleLDouble ) ;
+    public final void rule__GridPropIndicatorStyle__RedEndsAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29189:1: ( ( ruleLDouble ) )
+            // InternalTableDSL.g:29190:2: ( ruleLDouble )
+            {
+            // InternalTableDSL.g:29190:2: ( ruleLDouble )
+            // InternalTableDSL.g:29191:3: ruleLDouble
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsLDoubleParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleLDouble();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsLDoubleParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GridPropIndicatorStyle__RedEndsAssignment_5"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__HtmlPatternAssignment_2"
+    // InternalTableDSL.g:29200:1: rule__PropertyQuantityStyle__HtmlPatternAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__PropertyQuantityStyle__HtmlPatternAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29204:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:29205:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:29205:2: ( RULE_STRING )
+            // InternalTableDSL.g:29206:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__HtmlPatternAssignment_2"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5"
+    // InternalTableDSL.g:29215:1: rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5 : ( ruleNestedField ) ;
+    public final void rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29219:1: ( ( ruleNestedField ) )
+            // InternalTableDSL.g:29220:2: ( ruleNestedField )
+            {
+            // InternalTableDSL.g:29220:2: ( ruleNestedField )
+            // InternalTableDSL.g:29221:3: ruleNestedField
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__ValuePropertyPathAssignment_5"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2"
+    // InternalTableDSL.g:29230:1: rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2 : ( RULE_STRING ) ;
+    public final void rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29234:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:29235:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:29235:2: ( RULE_STRING )
+            // InternalTableDSL.g:29236:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__ValueNumberFormatAssignment_6_2"
+
+
+    // $ANTLR start "rule__PropertyQuantityStyle__UomPropertyPathAssignment_9"
+    // InternalTableDSL.g:29245:1: rule__PropertyQuantityStyle__UomPropertyPathAssignment_9 : ( ruleNestedField ) ;
+    public final void rule__PropertyQuantityStyle__UomPropertyPathAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29249:1: ( ( ruleNestedField ) )
+            // InternalTableDSL.g:29250:2: ( ruleNestedField )
+            {
+            // InternalTableDSL.g:29250:2: ( ruleNestedField )
+            // InternalTableDSL.g:29251:3: ruleNestedField
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathNestedFieldParserRuleCall_9_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathNestedFieldParserRuleCall_9_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyQuantityStyle__UomPropertyPathAssignment_9"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__HtmlPatternAssignment_2"
+    // InternalTableDSL.g:29260:1: rule__PropertyPriceStyle__HtmlPatternAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__PropertyPriceStyle__HtmlPatternAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29264:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:29265:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:29265:2: ( RULE_STRING )
+            // InternalTableDSL.g:29266:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__HtmlPatternAssignment_2"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__ValuePropertyPathAssignment_5"
+    // InternalTableDSL.g:29275:1: rule__PropertyPriceStyle__ValuePropertyPathAssignment_5 : ( ruleNestedField ) ;
+    public final void rule__PropertyPriceStyle__ValuePropertyPathAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29279:1: ( ( ruleNestedField ) )
+            // InternalTableDSL.g:29280:2: ( ruleNestedField )
+            {
+            // InternalTableDSL.g:29280:2: ( ruleNestedField )
+            // InternalTableDSL.g:29281:3: ruleNestedField
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__ValuePropertyPathAssignment_5"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2"
+    // InternalTableDSL.g:29290:1: rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2 : ( RULE_STRING ) ;
+    public final void rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29294:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:29295:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:29295:2: ( RULE_STRING )
+            // InternalTableDSL.g:29296:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__ValueNumberFormatAssignment_6_2"
+
+
+    // $ANTLR start "rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9"
+    // InternalTableDSL.g:29305:1: rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9 : ( ruleNestedField ) ;
+    public final void rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29309:1: ( ( ruleNestedField ) )
+            // InternalTableDSL.g:29310:2: ( ruleNestedField )
+            {
+            // InternalTableDSL.g:29310:2: ( ruleNestedField )
+            // InternalTableDSL.g:29311:3: ruleNestedField
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathNestedFieldParserRuleCall_9_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathNestedFieldParserRuleCall_9_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyPriceStyle__CurrencyPropertyPathAssignment_9"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__EventTopicAssignment_2_1"
+    // InternalTableDSL.g:29320:1: rule__PropertyImageStyle__EventTopicAssignment_2_1 : ( RULE_STRING ) ;
+    public final void rule__PropertyImageStyle__EventTopicAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29324:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:29325:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:29325:2: ( RULE_STRING )
+            // InternalTableDSL.g:29326:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getEventTopicSTRINGTerminalRuleCall_2_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getEventTopicSTRINGTerminalRuleCall_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__EventTopicAssignment_2_1"
+
+
+    // $ANTLR start "rule__PropertyImageStyle__ConfigsAssignment_4"
+    // InternalTableDSL.g:29335:1: rule__PropertyImageStyle__ConfigsAssignment_4 : ( ruleStyleConfig ) ;
+    public final void rule__PropertyImageStyle__ConfigsAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29339:1: ( ( ruleStyleConfig ) )
+            // InternalTableDSL.g:29340:2: ( ruleStyleConfig )
+            {
+            // InternalTableDSL.g:29340:2: ( ruleStyleConfig )
+            // InternalTableDSL.g:29341:3: ruleStyleConfig
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getPropertyImageStyleAccess().getConfigsStyleConfigParserRuleCall_4_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleStyleConfig();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getPropertyImageStyleAccess().getConfigsStyleConfigParserRuleCall_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PropertyImageStyle__ConfigsAssignment_4"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__CompareAssignment_1"
+    // InternalTableDSL.g:29350:1: rule__NumericToResourceStyleConfig__CompareAssignment_1 : ( ruleStyleCompare ) ;
+    public final void rule__NumericToResourceStyleConfig__CompareAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29354:1: ( ( ruleStyleCompare ) )
+            // InternalTableDSL.g:29355:2: ( ruleStyleCompare )
+            {
+            // InternalTableDSL.g:29355:2: ( ruleStyleCompare )
+            // InternalTableDSL.g:29356:3: ruleStyleCompare
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleStyleCompare();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__CompareAssignment_1"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__ValueAssignment_2"
+    // InternalTableDSL.g:29365:1: rule__NumericToResourceStyleConfig__ValueAssignment_2 : ( ruleLDouble ) ;
+    public final void rule__NumericToResourceStyleConfig__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29369:1: ( ( ruleLDouble ) )
+            // InternalTableDSL.g:29370:2: ( ruleLDouble )
+            {
+            // InternalTableDSL.g:29370:2: ( ruleLDouble )
+            // InternalTableDSL.g:29371:3: ruleLDouble
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumericToResourceStyleConfigAccess().getValueLDoubleParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleLDouble();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumericToResourceStyleConfigAccess().getValueLDoubleParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4"
+    // InternalTableDSL.g:29380:1: rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4 : ( RULE_THEME_RESOURCE ) ;
+    public final void rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29384:1: ( ( RULE_THEME_RESOURCE ) )
+            // InternalTableDSL.g:29385:2: ( RULE_THEME_RESOURCE )
+            {
+            // InternalTableDSL.g:29385:2: ( RULE_THEME_RESOURCE )
+            // InternalTableDSL.g:29386:3: RULE_THEME_RESOURCE
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0()); 
+            }
+            match(input,RULE_THEME_RESOURCE,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NumericToResourceStyleConfig__ResourceThemePathAssignment_4"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__CompareAssignment_1"
+    // InternalTableDSL.g:29395:1: rule__StringToResourceStyleConfig__CompareAssignment_1 : ( ruleStyleCompare ) ;
+    public final void rule__StringToResourceStyleConfig__CompareAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29399:1: ( ( ruleStyleCompare ) )
+            // InternalTableDSL.g:29400:2: ( ruleStyleCompare )
+            {
+            // InternalTableDSL.g:29400:2: ( ruleStyleCompare )
+            // InternalTableDSL.g:29401:3: ruleStyleCompare
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStringToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleStyleCompare();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStringToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__CompareAssignment_1"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__ValueAssignment_2"
+    // InternalTableDSL.g:29410:1: rule__StringToResourceStyleConfig__ValueAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__StringToResourceStyleConfig__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29414:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:29415:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:29415:2: ( RULE_STRING )
+            // InternalTableDSL.g:29416:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStringToResourceStyleConfigAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStringToResourceStyleConfigAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4"
+    // InternalTableDSL.g:29425:1: rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4 : ( RULE_THEME_RESOURCE ) ;
+    public final void rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29429:1: ( ( RULE_THEME_RESOURCE ) )
+            // InternalTableDSL.g:29430:2: ( RULE_THEME_RESOURCE )
+            {
+            // InternalTableDSL.g:29430:2: ( RULE_THEME_RESOURCE )
+            // InternalTableDSL.g:29431:3: RULE_THEME_RESOURCE
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0()); 
+            }
+            match(input,RULE_THEME_RESOURCE,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringToResourceStyleConfig__ResourceThemePathAssignment_4"
+
+
+    // $ANTLR start "rule__XImportDeclaration__StaticAssignment_2_0_0"
+    // InternalTableDSL.g:29440:1: rule__XImportDeclaration__StaticAssignment_2_0_0 : ( ( 'static' ) ) ;
+    public final void rule__XImportDeclaration__StaticAssignment_2_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29444:1: ( ( ( 'static' ) ) )
+            // InternalTableDSL.g:29445:2: ( ( 'static' ) )
+            {
+            // InternalTableDSL.g:29445:2: ( ( 'static' ) )
+            // InternalTableDSL.g:29446:3: ( 'static' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
+            }
+            // InternalTableDSL.g:29447:3: ( 'static' )
+            // InternalTableDSL.g:29448:4: 'static'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
+            }
+            match(input,49,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__StaticAssignment_2_0_0"
+
+
+    // $ANTLR start "rule__XImportDeclaration__ExtensionAssignment_2_0_1"
+    // InternalTableDSL.g:29459:1: rule__XImportDeclaration__ExtensionAssignment_2_0_1 : ( ( 'extension' ) ) ;
+    public final void rule__XImportDeclaration__ExtensionAssignment_2_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29463:1: ( ( ( 'extension' ) ) )
+            // InternalTableDSL.g:29464:2: ( ( 'extension' ) )
+            {
+            // InternalTableDSL.g:29464:2: ( ( 'extension' ) )
+            // InternalTableDSL.g:29465:3: ( 'extension' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
+            }
+            // InternalTableDSL.g:29466:3: ( 'extension' )
+            // InternalTableDSL.g:29467:4: 'extension'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
+            }
+            match(input,51,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__ExtensionAssignment_2_0_1"
+
+
+    // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2"
+    // InternalTableDSL.g:29478:1: rule__XImportDeclaration__ImportedTypeAssignment_2_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
+    public final void rule__XImportDeclaration__ImportedTypeAssignment_2_0_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29482:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
+            // InternalTableDSL.g:29483:2: ( ( ruleQualifiedNameInStaticImport ) )
+            {
+            // InternalTableDSL.g:29483:2: ( ( ruleQualifiedNameInStaticImport ) )
+            // InternalTableDSL.g:29484:3: ( ruleQualifiedNameInStaticImport )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0()); 
+            }
+            // InternalTableDSL.g:29485:3: ( ruleQualifiedNameInStaticImport )
+            // InternalTableDSL.g:29486:4: ruleQualifiedNameInStaticImport
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_2_0_2_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedNameInStaticImport();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_2_0_2_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__ImportedTypeAssignment_2_0_2"
+
+
+    // $ANTLR start "rule__XImportDeclaration__WildcardAssignment_2_0_3_0"
+    // InternalTableDSL.g:29497:1: rule__XImportDeclaration__WildcardAssignment_2_0_3_0 : ( ( '*' ) ) ;
+    public final void rule__XImportDeclaration__WildcardAssignment_2_0_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29501:1: ( ( ( '*' ) ) )
+            // InternalTableDSL.g:29502:2: ( ( '*' ) )
+            {
+            // InternalTableDSL.g:29502:2: ( ( '*' ) )
+            // InternalTableDSL.g:29503:3: ( '*' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
+            }
+            // InternalTableDSL.g:29504:3: ( '*' )
+            // InternalTableDSL.g:29505:4: '*'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
+            }
+            match(input,39,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__WildcardAssignment_2_0_3_0"
+
+
+    // $ANTLR start "rule__XImportDeclaration__MemberNameAssignment_2_0_3_1"
+    // InternalTableDSL.g:29516:1: rule__XImportDeclaration__MemberNameAssignment_2_0_3_1 : ( ruleValidID ) ;
+    public final void rule__XImportDeclaration__MemberNameAssignment_2_0_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29520:1: ( ( ruleValidID ) )
+            // InternalTableDSL.g:29521:2: ( ruleValidID )
+            {
+            // InternalTableDSL.g:29521:2: ( ruleValidID )
+            // InternalTableDSL.g:29522:3: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__MemberNameAssignment_2_0_3_1"
+
+
+    // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_2_1"
+    // InternalTableDSL.g:29531:1: rule__XImportDeclaration__ImportedTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__XImportDeclaration__ImportedTypeAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29535:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalTableDSL.g:29536:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalTableDSL.g:29536:2: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:29537:3: ( ruleQualifiedName )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0()); 
+            }
+            // InternalTableDSL.g:29538:3: ( ruleQualifiedName )
+            // InternalTableDSL.g:29539:4: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_2_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_2_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__ImportedTypeAssignment_2_1"
+
+
+    // $ANTLR start "rule__XImportDeclaration__ImportedNamespaceAssignment_2_2"
+    // InternalTableDSL.g:29550:1: rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 : ( ruleQualifiedNameWithWildcard ) ;
+    public final void rule__XImportDeclaration__ImportedNamespaceAssignment_2_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29554:1: ( ( ruleQualifiedNameWithWildcard ) )
+            // InternalTableDSL.g:29555:2: ( ruleQualifiedNameWithWildcard )
+            {
+            // InternalTableDSL.g:29555:2: ( ruleQualifiedNameWithWildcard )
+            // InternalTableDSL.g:29556:3: ruleQualifiedNameWithWildcard
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedNameWithWildcard();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__ImportedNamespaceAssignment_2_2"
+
+
+    // $ANTLR start "rule__XImportDeclaration__FqnImportAssignment_2_3_0"
+    // InternalTableDSL.g:29565:1: rule__XImportDeclaration__FqnImportAssignment_2_3_0 : ( ( 'ns' ) ) ;
+    public final void rule__XImportDeclaration__FqnImportAssignment_2_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29569:1: ( ( ( 'ns' ) ) )
+            // InternalTableDSL.g:29570:2: ( ( 'ns' ) )
+            {
+            // InternalTableDSL.g:29570:2: ( ( 'ns' ) )
+            // InternalTableDSL.g:29571:3: ( 'ns' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
+            }
+            // InternalTableDSL.g:29572:3: ( 'ns' )
+            // InternalTableDSL.g:29573:4: 'ns'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
+            }
+            match(input,183,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__FqnImportAssignment_2_3_0"
+
+
+    // $ANTLR start "rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1"
+    // InternalTableDSL.g:29584:1: rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1 : ( ruleQualifiedName ) ;
+    public final void rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29588:1: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:29589:2: ( ruleQualifiedName )
+            {
+            // InternalTableDSL.g:29589:2: ( ruleQualifiedName )
+            // InternalTableDSL.g:29590:3: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportDeclaration__ImportedFullyQualifiedNameAssignment_2_3_1"
+
+
+    // $ANTLR start "rule__XAnnotation__AnnotationTypeAssignment_2"
+    // InternalTableDSL.g:29599:1: rule__XAnnotation__AnnotationTypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__XAnnotation__AnnotationTypeAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29603:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalTableDSL.g:29604:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalTableDSL.g:29604:2: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:29605:3: ( ruleQualifiedName )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
+            }
+            // InternalTableDSL.g:29606:3: ( ruleQualifiedName )
+            // InternalTableDSL.g:29607:4: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeQualifiedNameParserRuleCall_2_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeQualifiedNameParserRuleCall_2_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__AnnotationTypeAssignment_2"
+
+
+    // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0"
+    // InternalTableDSL.g:29618:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0 : ( ruleXAnnotationElementValuePair ) ;
+    public final void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29622:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalTableDSL.g:29623:2: ( ruleXAnnotationElementValuePair )
+            {
+            // InternalTableDSL.g:29623:2: ( ruleXAnnotationElementValuePair )
+            // InternalTableDSL.g:29624:3: ruleXAnnotationElementValuePair
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAnnotationElementValuePair();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0"
+
+
+    // $ANTLR start "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1"
+    // InternalTableDSL.g:29633:1: rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1 : ( ruleXAnnotationElementValuePair ) ;
+    public final void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29637:1: ( ( ruleXAnnotationElementValuePair ) )
+            // InternalTableDSL.g:29638:2: ( ruleXAnnotationElementValuePair )
+            {
+            // InternalTableDSL.g:29638:2: ( ruleXAnnotationElementValuePair )
+            // InternalTableDSL.g:29639:3: ruleXAnnotationElementValuePair
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAnnotationElementValuePair();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1"
+
+
+    // $ANTLR start "rule__XAnnotation__ValueAssignment_3_1_1"
+    // InternalTableDSL.g:29648:1: rule__XAnnotation__ValueAssignment_3_1_1 : ( ruleXAnnotationElementValueOrCommaList ) ;
+    public final void rule__XAnnotation__ValueAssignment_3_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29652:1: ( ( ruleXAnnotationElementValueOrCommaList ) )
+            // InternalTableDSL.g:29653:2: ( ruleXAnnotationElementValueOrCommaList )
+            {
+            // InternalTableDSL.g:29653:2: ( ruleXAnnotationElementValueOrCommaList )
+            // InternalTableDSL.g:29654:3: ruleXAnnotationElementValueOrCommaList
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAnnotationElementValueOrCommaList();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__ValueAssignment_3_1_1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0"
+    // InternalTableDSL.g:29663:1: rule__XAnnotationElementValuePair__ElementAssignment_0_0_0 : ( ( ruleValidID ) ) ;
+    public final void rule__XAnnotationElementValuePair__ElementAssignment_0_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29667:1: ( ( ( ruleValidID ) ) )
+            // InternalTableDSL.g:29668:2: ( ( ruleValidID ) )
+            {
+            // InternalTableDSL.g:29668:2: ( ( ruleValidID ) )
+            // InternalTableDSL.g:29669:3: ( ruleValidID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
+            }
+            // InternalTableDSL.g:29670:3: ( ruleValidID )
+            // InternalTableDSL.g:29671:4: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationValidIDParserRuleCall_0_0_0_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationValidIDParserRuleCall_0_0_0_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__ElementAssignment_0_0_0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValuePair__ValueAssignment_1"
+    // InternalTableDSL.g:29682:1: rule__XAnnotationElementValuePair__ValueAssignment_1 : ( ruleXAnnotationElementValue ) ;
+    public final void rule__XAnnotationElementValuePair__ValueAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29686:1: ( ( ruleXAnnotationElementValue ) )
+            // InternalTableDSL.g:29687:2: ( ruleXAnnotationElementValue )
+            {
+            // InternalTableDSL.g:29687:2: ( ruleXAnnotationElementValue )
+            // InternalTableDSL.g:29688:3: ruleXAnnotationElementValue
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAnnotationElementValue();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValuePair__ValueAssignment_1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0"
+    // InternalTableDSL.g:29697:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29701:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalTableDSL.g:29702:2: ( ruleXAnnotationOrExpression )
+            {
+            // InternalTableDSL.g:29702:2: ( ruleXAnnotationOrExpression )
+            // InternalTableDSL.g:29703:3: ruleXAnnotationOrExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1"
+    // InternalTableDSL.g:29712:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29716:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalTableDSL.g:29717:2: ( ruleXAnnotationOrExpression )
+            {
+            // InternalTableDSL.g:29717:2: ( ruleXAnnotationOrExpression )
+            // InternalTableDSL.g:29718:3: ruleXAnnotationOrExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1"
+    // InternalTableDSL.g:29727:1: rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    public final void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29731:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalTableDSL.g:29732:2: ( ruleXAnnotationOrExpression )
+            {
+            // InternalTableDSL.g:29732:2: ( ruleXAnnotationOrExpression )
+            // InternalTableDSL.g:29733:3: ruleXAnnotationOrExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_0"
+    // InternalTableDSL.g:29742:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_0 : ( ruleXAnnotationOrExpression ) ;
+    public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29746:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalTableDSL.g:29747:2: ( ruleXAnnotationOrExpression )
+            {
+            // InternalTableDSL.g:29747:2: ( ruleXAnnotationOrExpression )
+            // InternalTableDSL.g:29748:3: ruleXAnnotationOrExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__ElementsAssignment_0_1_0"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1"
+    // InternalTableDSL.g:29757:1: rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1 : ( ruleXAnnotationOrExpression ) ;
+    public final void rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29761:1: ( ( ruleXAnnotationOrExpression ) )
+            // InternalTableDSL.g:29762:2: ( ruleXAnnotationOrExpression )
+            {
+            // InternalTableDSL.g:29762:2: ( ruleXAnnotationOrExpression )
+            // InternalTableDSL.g:29763:3: ruleXAnnotationOrExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1"
+
+
+    // $ANTLR start "rule__XAssignment__FeatureAssignment_0_1"
+    // InternalTableDSL.g:29772:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
+    public final void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29776:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalTableDSL.g:29777:2: ( ( ruleFeatureCallID ) )
+            {
+            // InternalTableDSL.g:29777:2: ( ( ruleFeatureCallID ) )
+            // InternalTableDSL.g:29778:3: ( ruleFeatureCallID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
+            }
+            // InternalTableDSL.g:29779:3: ( ruleFeatureCallID )
+            // InternalTableDSL.g:29780:4: ruleFeatureCallID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleFeatureCallID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__FeatureAssignment_0_1"
+
+
+    // $ANTLR start "rule__XAssignment__ValueAssignment_0_3"
+    // InternalTableDSL.g:29791:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
+    public final void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29795:1: ( ( ruleXAssignment ) )
+            // InternalTableDSL.g:29796:2: ( ruleXAssignment )
+            {
+            // InternalTableDSL.g:29796:2: ( ruleXAssignment )
+            // InternalTableDSL.g:29797:3: ruleXAssignment
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__ValueAssignment_0_3"
+
+
+    // $ANTLR start "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
+    // InternalTableDSL.g:29806:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
+    public final void rule__XAssignment__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29810:1: ( ( ( ruleOpMultiAssign ) ) )
+            // InternalTableDSL.g:29811:2: ( ( ruleOpMultiAssign ) )
+            {
+            // InternalTableDSL.g:29811:2: ( ( ruleOpMultiAssign ) )
+            // InternalTableDSL.g:29812:3: ( ruleOpMultiAssign )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
+            }
+            // InternalTableDSL.g:29813:3: ( ruleOpMultiAssign )
+            // InternalTableDSL.g:29814:4: ruleOpMultiAssign
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpMultiAssign();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
+
+
+    // $ANTLR start "rule__XAssignment__RightOperandAssignment_1_1_1"
+    // InternalTableDSL.g:29825:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
+    public final void rule__XAssignment__RightOperandAssignment_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29829:1: ( ( ruleXAssignment ) )
+            // InternalTableDSL.g:29830:2: ( ruleXAssignment )
+            {
+            // InternalTableDSL.g:29830:2: ( ruleXAssignment )
+            // InternalTableDSL.g:29831:3: ruleXAssignment
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__RightOperandAssignment_1_1_1"
+
+
+    // $ANTLR start "rule__XOrExpression__FeatureAssignment_1_0_0_1"
+    // InternalTableDSL.g:29840:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
+    public final void rule__XOrExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29844:1: ( ( ( ruleOpOr ) ) )
+            // InternalTableDSL.g:29845:2: ( ( ruleOpOr ) )
+            {
+            // InternalTableDSL.g:29845:2: ( ( ruleOpOr ) )
+            // InternalTableDSL.g:29846:3: ( ruleOpOr )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+            // InternalTableDSL.g:29847:3: ( ruleOpOr )
+            // InternalTableDSL.g:29848:4: ruleOpOr
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpOr();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__FeatureAssignment_1_0_0_1"
+
+
+    // $ANTLR start "rule__XOrExpression__RightOperandAssignment_1_1"
+    // InternalTableDSL.g:29859:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
+    public final void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29863:1: ( ( ruleXAndExpression ) )
+            // InternalTableDSL.g:29864:2: ( ruleXAndExpression )
+            {
+            // InternalTableDSL.g:29864:2: ( ruleXAndExpression )
+            // InternalTableDSL.g:29865:3: ruleXAndExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOrExpression__RightOperandAssignment_1_1"
+
+
+    // $ANTLR start "rule__XAndExpression__FeatureAssignment_1_0_0_1"
+    // InternalTableDSL.g:29874:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
+    public final void rule__XAndExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29878:1: ( ( ( ruleOpAnd ) ) )
+            // InternalTableDSL.g:29879:2: ( ( ruleOpAnd ) )
+            {
+            // InternalTableDSL.g:29879:2: ( ( ruleOpAnd ) )
+            // InternalTableDSL.g:29880:3: ( ruleOpAnd )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+            // InternalTableDSL.g:29881:3: ( ruleOpAnd )
+            // InternalTableDSL.g:29882:4: ruleOpAnd
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpAnd();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__FeatureAssignment_1_0_0_1"
+
+
+    // $ANTLR start "rule__XAndExpression__RightOperandAssignment_1_1"
+    // InternalTableDSL.g:29893:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
+    public final void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29897:1: ( ( ruleXEqualityExpression ) )
+            // InternalTableDSL.g:29898:2: ( ruleXEqualityExpression )
+            {
+            // InternalTableDSL.g:29898:2: ( ruleXEqualityExpression )
+            // InternalTableDSL.g:29899:3: ruleXEqualityExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAndExpression__RightOperandAssignment_1_1"
+
+
+    // $ANTLR start "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
+    // InternalTableDSL.g:29908:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
+    public final void rule__XEqualityExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29912:1: ( ( ( ruleOpEquality ) ) )
+            // InternalTableDSL.g:29913:2: ( ( ruleOpEquality ) )
+            {
+            // InternalTableDSL.g:29913:2: ( ( ruleOpEquality ) )
+            // InternalTableDSL.g:29914:3: ( ruleOpEquality )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+            // InternalTableDSL.g:29915:3: ( ruleOpEquality )
+            // InternalTableDSL.g:29916:4: ruleOpEquality
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpEquality();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
+
+
+    // $ANTLR start "rule__XEqualityExpression__RightOperandAssignment_1_1"
+    // InternalTableDSL.g:29927:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
+    public final void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29931:1: ( ( ruleXRelationalExpression ) )
+            // InternalTableDSL.g:29932:2: ( ruleXRelationalExpression )
+            {
+            // InternalTableDSL.g:29932:2: ( ruleXRelationalExpression )
+            // InternalTableDSL.g:29933:3: ruleXRelationalExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XEqualityExpression__RightOperandAssignment_1_1"
+
+
+    // $ANTLR start "rule__XRelationalExpression__TypeAssignment_1_0_1"
+    // InternalTableDSL.g:29942:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
+    public final void rule__XRelationalExpression__TypeAssignment_1_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29946:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:29947:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:29947:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:29948:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__TypeAssignment_1_0_1"
+
+
+    // $ANTLR start "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
+    // InternalTableDSL.g:29957:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
+    public final void rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29961:1: ( ( ( ruleOpCompare ) ) )
+            // InternalTableDSL.g:29962:2: ( ( ruleOpCompare ) )
+            {
+            // InternalTableDSL.g:29962:2: ( ( ruleOpCompare ) )
+            // InternalTableDSL.g:29963:3: ( ruleOpCompare )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
+            }
+            // InternalTableDSL.g:29964:3: ( ruleOpCompare )
+            // InternalTableDSL.g:29965:4: ruleOpCompare
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpCompare();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
+
+
+    // $ANTLR start "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
+    // InternalTableDSL.g:29976:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
+    public final void rule__XRelationalExpression__RightOperandAssignment_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29980:1: ( ( ruleXOtherOperatorExpression ) )
+            // InternalTableDSL.g:29981:2: ( ruleXOtherOperatorExpression )
+            {
+            // InternalTableDSL.g:29981:2: ( ruleXOtherOperatorExpression )
+            // InternalTableDSL.g:29982:3: ruleXOtherOperatorExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
+    // InternalTableDSL.g:29991:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
+    public final void rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:29995:1: ( ( ( ruleOpOther ) ) )
+            // InternalTableDSL.g:29996:2: ( ( ruleOpOther ) )
+            {
+            // InternalTableDSL.g:29996:2: ( ( ruleOpOther ) )
+            // InternalTableDSL.g:29997:3: ( ruleOpOther )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+            // InternalTableDSL.g:29998:3: ( ruleOpOther )
+            // InternalTableDSL.g:29999:4: ruleOpOther
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpOther();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
+
+
+    // $ANTLR start "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
+    // InternalTableDSL.g:30010:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
+    public final void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30014:1: ( ( ruleXAdditiveExpression ) )
+            // InternalTableDSL.g:30015:2: ( ruleXAdditiveExpression )
+            {
+            // InternalTableDSL.g:30015:2: ( ruleXAdditiveExpression )
+            // InternalTableDSL.g:30016:3: ruleXAdditiveExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
+    // InternalTableDSL.g:30025:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
+    public final void rule__XAdditiveExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30029:1: ( ( ( ruleOpAdd ) ) )
+            // InternalTableDSL.g:30030:2: ( ( ruleOpAdd ) )
+            {
+            // InternalTableDSL.g:30030:2: ( ( ruleOpAdd ) )
+            // InternalTableDSL.g:30031:3: ( ruleOpAdd )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+            // InternalTableDSL.g:30032:3: ( ruleOpAdd )
+            // InternalTableDSL.g:30033:4: ruleOpAdd
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpAdd();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
+
+
+    // $ANTLR start "rule__XAdditiveExpression__RightOperandAssignment_1_1"
+    // InternalTableDSL.g:30044:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
+    public final void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30048:1: ( ( ruleXMultiplicativeExpression ) )
+            // InternalTableDSL.g:30049:2: ( ruleXMultiplicativeExpression )
+            {
+            // InternalTableDSL.g:30049:2: ( ruleXMultiplicativeExpression )
+            // InternalTableDSL.g:30050:3: ruleXMultiplicativeExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAdditiveExpression__RightOperandAssignment_1_1"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
+    // InternalTableDSL.g:30059:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
+    public final void rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30063:1: ( ( ( ruleOpMulti ) ) )
+            // InternalTableDSL.g:30064:2: ( ( ruleOpMulti ) )
+            {
+            // InternalTableDSL.g:30064:2: ( ( ruleOpMulti ) )
+            // InternalTableDSL.g:30065:3: ( ruleOpMulti )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+            // InternalTableDSL.g:30066:3: ( ruleOpMulti )
+            // InternalTableDSL.g:30067:4: ruleOpMulti
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpMulti();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
+
+
+    // $ANTLR start "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
+    // InternalTableDSL.g:30078:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
+    public final void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30082:1: ( ( ruleXUnaryOperation ) )
+            // InternalTableDSL.g:30083:2: ( ruleXUnaryOperation )
+            {
+            // InternalTableDSL.g:30083:2: ( ruleXUnaryOperation )
+            // InternalTableDSL.g:30084:3: ruleXUnaryOperation
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
+
+
+    // $ANTLR start "rule__XUnaryOperation__FeatureAssignment_0_1"
+    // InternalTableDSL.g:30093:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
+    public final void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30097:1: ( ( ( ruleOpUnary ) ) )
+            // InternalTableDSL.g:30098:2: ( ( ruleOpUnary ) )
+            {
+            // InternalTableDSL.g:30098:2: ( ( ruleOpUnary ) )
+            // InternalTableDSL.g:30099:3: ( ruleOpUnary )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
+            }
+            // InternalTableDSL.g:30100:3: ( ruleOpUnary )
+            // InternalTableDSL.g:30101:4: ruleOpUnary
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpUnary();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XUnaryOperation__FeatureAssignment_0_1"
+
+
+    // $ANTLR start "rule__XUnaryOperation__OperandAssignment_0_2"
+    // InternalTableDSL.g:30112:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
+    public final void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30116:1: ( ( ruleXUnaryOperation ) )
+            // InternalTableDSL.g:30117:2: ( ruleXUnaryOperation )
+            {
+            // InternalTableDSL.g:30117:2: ( ruleXUnaryOperation )
+            // InternalTableDSL.g:30118:3: ruleXUnaryOperation
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XUnaryOperation__OperandAssignment_0_2"
+
+
+    // $ANTLR start "rule__XCastedExpression__TypeAssignment_1_1"
+    // InternalTableDSL.g:30127:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
+    public final void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30131:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:30132:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:30132:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:30133:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCastedExpression__TypeAssignment_1_1"
+
+
+    // $ANTLR start "rule__XPostfixOperation__FeatureAssignment_1_0_1"
+    // InternalTableDSL.g:30142:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
+    public final void rule__XPostfixOperation__FeatureAssignment_1_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30146:1: ( ( ( ruleOpPostfix ) ) )
+            // InternalTableDSL.g:30147:2: ( ( ruleOpPostfix ) )
+            {
+            // InternalTableDSL.g:30147:2: ( ( ruleOpPostfix ) )
+            // InternalTableDSL.g:30148:3: ( ruleOpPostfix )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
+            }
+            // InternalTableDSL.g:30149:3: ( ruleOpPostfix )
+            // InternalTableDSL.g:30150:4: ruleOpPostfix
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleOpPostfix();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XPostfixOperation__FeatureAssignment_1_0_1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
+    // InternalTableDSL.g:30161:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
+    public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30165:1: ( ( ( '::' ) ) )
+            // InternalTableDSL.g:30166:2: ( ( '::' ) )
+            {
+            // InternalTableDSL.g:30166:2: ( ( '::' ) )
+            // InternalTableDSL.g:30167:3: ( '::' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
+            }
+            // InternalTableDSL.g:30168:3: ( '::' )
+            // InternalTableDSL.g:30169:4: '::'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
+            }
+            match(input,184,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
+    // InternalTableDSL.g:30180:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
+    public final void rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30184:1: ( ( ( ruleFeatureCallID ) ) )
+            // InternalTableDSL.g:30185:2: ( ( ruleFeatureCallID ) )
+            {
+            // InternalTableDSL.g:30185:2: ( ( ruleFeatureCallID ) )
+            // InternalTableDSL.g:30186:3: ( ruleFeatureCallID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
+            }
+            // InternalTableDSL.g:30187:3: ( ruleFeatureCallID )
+            // InternalTableDSL.g:30188:4: ruleFeatureCallID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleFeatureCallID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
+    // InternalTableDSL.g:30199:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
+    public final void rule__XMemberFeatureCall__ValueAssignment_1_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30203:1: ( ( ruleXAssignment ) )
+            // InternalTableDSL.g:30204:2: ( ruleXAssignment )
+            {
+            // InternalTableDSL.g:30204:2: ( ruleXAssignment )
+            // InternalTableDSL.g:30205:3: ruleXAssignment
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
+    // InternalTableDSL.g:30214:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
+    public final void rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30218:1: ( ( ( '?.' ) ) )
+            // InternalTableDSL.g:30219:2: ( ( '?.' ) )
+            {
+            // InternalTableDSL.g:30219:2: ( ( '?.' ) )
+            // InternalTableDSL.g:30220:3: ( '?.' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
+            }
+            // InternalTableDSL.g:30221:3: ( '?.' )
+            // InternalTableDSL.g:30222:4: '?.'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
+            }
+            match(input,185,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
+    // InternalTableDSL.g:30233:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
+    public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30237:1: ( ( ( '::' ) ) )
+            // InternalTableDSL.g:30238:2: ( ( '::' ) )
+            {
+            // InternalTableDSL.g:30238:2: ( ( '::' ) )
+            // InternalTableDSL.g:30239:3: ( '::' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
+            }
+            // InternalTableDSL.g:30240:3: ( '::' )
+            // InternalTableDSL.g:30241:4: '::'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
+            }
+            match(input,184,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
+    // InternalTableDSL.g:30252:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30256:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalTableDSL.g:30257:2: ( ruleJvmArgumentTypeReference )
+            {
+            // InternalTableDSL.g:30257:2: ( ruleJvmArgumentTypeReference )
+            // InternalTableDSL.g:30258:3: ruleJvmArgumentTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
+    // InternalTableDSL.g:30267:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30271:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalTableDSL.g:30272:2: ( ruleJvmArgumentTypeReference )
+            {
+            // InternalTableDSL.g:30272:2: ( ruleJvmArgumentTypeReference )
+            // InternalTableDSL.g:30273:3: ruleJvmArgumentTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
+    // InternalTableDSL.g:30282:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
+    public final void rule__XMemberFeatureCall__FeatureAssignment_1_1_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30286:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalTableDSL.g:30287:2: ( ( ruleIdOrSuper ) )
+            {
+            // InternalTableDSL.g:30287:2: ( ( ruleIdOrSuper ) )
+            // InternalTableDSL.g:30288:3: ( ruleIdOrSuper )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
+            }
+            // InternalTableDSL.g:30289:3: ( ruleIdOrSuper )
+            // InternalTableDSL.g:30290:4: ruleIdOrSuper
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleIdOrSuper();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
+    // InternalTableDSL.g:30301:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
+    public final void rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30305:1: ( ( ( '(' ) ) )
+            // InternalTableDSL.g:30306:2: ( ( '(' ) )
+            {
+            // InternalTableDSL.g:30306:2: ( ( '(' ) )
+            // InternalTableDSL.g:30307:3: ( '(' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
+            }
+            // InternalTableDSL.g:30308:3: ( '(' )
+            // InternalTableDSL.g:30309:4: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
+    // InternalTableDSL.g:30320:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
+    public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30324:1: ( ( ruleXShortClosure ) )
+            // InternalTableDSL.g:30325:2: ( ruleXShortClosure )
+            {
+            // InternalTableDSL.g:30325:2: ( ruleXShortClosure )
+            // InternalTableDSL.g:30326:3: ruleXShortClosure
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXShortClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
+    // InternalTableDSL.g:30335:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
+    public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30339:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30340:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30340:2: ( ruleXExpression )
+            // InternalTableDSL.g:30341:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
+    // InternalTableDSL.g:30350:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
+    public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30354:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30355:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30355:2: ( ruleXExpression )
+            // InternalTableDSL.g:30356:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
+
+
+    // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
+    // InternalTableDSL.g:30365:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
+    public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30369:1: ( ( ruleXClosure ) )
+            // InternalTableDSL.g:30370:2: ( ruleXClosure )
+            {
+            // InternalTableDSL.g:30370:2: ( ruleXClosure )
+            // InternalTableDSL.g:30371:3: ruleXClosure
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
+
+
+    // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_0"
+    // InternalTableDSL.g:30380:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    public final void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30384:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30385:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30385:2: ( ruleXExpression )
+            // InternalTableDSL.g:30386:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__ElementsAssignment_3_0"
+
+
+    // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_1_1"
+    // InternalTableDSL.g:30395:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    public final void rule__XSetLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30399:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30400:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30400:2: ( ruleXExpression )
+            // InternalTableDSL.g:30401:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSetLiteral__ElementsAssignment_3_1_1"
+
+
+    // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_0"
+    // InternalTableDSL.g:30410:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+    public final void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30414:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30415:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30415:2: ( ruleXExpression )
+            // InternalTableDSL.g:30416:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__ElementsAssignment_3_0"
+
+
+    // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_1_1"
+    // InternalTableDSL.g:30425:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+    public final void rule__XListLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30429:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30430:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30430:2: ( ruleXExpression )
+            // InternalTableDSL.g:30431:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XListLiteral__ElementsAssignment_3_1_1"
+
+
+    // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
+    // InternalTableDSL.g:30440:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30444:1: ( ( ruleJvmFormalParameter ) )
+            // InternalTableDSL.g:30445:2: ( ruleJvmFormalParameter )
+            {
+            // InternalTableDSL.g:30445:2: ( ruleJvmFormalParameter )
+            // InternalTableDSL.g:30446:3: ruleJvmFormalParameter
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
+
+
+    // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
+    // InternalTableDSL.g:30455:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
+    public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30459:1: ( ( ruleJvmFormalParameter ) )
+            // InternalTableDSL.g:30460:2: ( ruleJvmFormalParameter )
+            {
+            // InternalTableDSL.g:30460:2: ( ruleJvmFormalParameter )
+            // InternalTableDSL.g:30461:3: ruleJvmFormalParameter
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
+
+
+    // $ANTLR start "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
+    // InternalTableDSL.g:30470:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
+    public final void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30474:1: ( ( ( '|' ) ) )
+            // InternalTableDSL.g:30475:2: ( ( '|' ) )
+            {
+            // InternalTableDSL.g:30475:2: ( ( '|' ) )
+            // InternalTableDSL.g:30476:3: ( '|' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
+            }
+            // InternalTableDSL.g:30477:3: ( '|' )
+            // InternalTableDSL.g:30478:4: '|'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
+            }
+            match(input,186,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
+
+
+    // $ANTLR start "rule__XClosure__ExpressionAssignment_2"
+    // InternalTableDSL.g:30489:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
+    public final void rule__XClosure__ExpressionAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30493:1: ( ( ruleXExpressionInClosure ) )
+            // InternalTableDSL.g:30494:2: ( ruleXExpressionInClosure )
+            {
+            // InternalTableDSL.g:30494:2: ( ruleXExpressionInClosure )
+            // InternalTableDSL.g:30495:3: ruleXExpressionInClosure
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpressionInClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XClosure__ExpressionAssignment_2"
+
+
+    // $ANTLR start "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
+    // InternalTableDSL.g:30504:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    public final void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30508:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalTableDSL.g:30509:2: ( ruleXExpressionOrVarDeclaration )
+            {
+            // InternalTableDSL.g:30509:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalTableDSL.g:30510:3: ruleXExpressionOrVarDeclaration
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpressionOrVarDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
+
+
+    // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
+    // InternalTableDSL.g:30519:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
+    public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30523:1: ( ( ruleJvmFormalParameter ) )
+            // InternalTableDSL.g:30524:2: ( ruleJvmFormalParameter )
+            {
+            // InternalTableDSL.g:30524:2: ( ruleJvmFormalParameter )
+            // InternalTableDSL.g:30525:3: ruleJvmFormalParameter
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
+
+
+    // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
+    // InternalTableDSL.g:30534:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
+    public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30538:1: ( ( ruleJvmFormalParameter ) )
+            // InternalTableDSL.g:30539:2: ( ruleJvmFormalParameter )
+            {
+            // InternalTableDSL.g:30539:2: ( ruleJvmFormalParameter )
+            // InternalTableDSL.g:30540:3: ruleJvmFormalParameter
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
+
+
+    // $ANTLR start "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
+    // InternalTableDSL.g:30549:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
+    public final void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30553:1: ( ( ( '|' ) ) )
+            // InternalTableDSL.g:30554:2: ( ( '|' ) )
+            {
+            // InternalTableDSL.g:30554:2: ( ( '|' ) )
+            // InternalTableDSL.g:30555:3: ( '|' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
+            }
+            // InternalTableDSL.g:30556:3: ( '|' )
+            // InternalTableDSL.g:30557:4: '|'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
+            }
+            match(input,186,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
+
+
+    // $ANTLR start "rule__XShortClosure__ExpressionAssignment_1"
+    // InternalTableDSL.g:30568:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
+    public final void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30572:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30573:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30573:2: ( ruleXExpression )
+            // InternalTableDSL.g:30574:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XShortClosure__ExpressionAssignment_1"
+
+
+    // $ANTLR start "rule__XIfExpression__IfAssignment_3"
+    // InternalTableDSL.g:30583:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
+    public final void rule__XIfExpression__IfAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30587:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30588:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30588:2: ( ruleXExpression )
+            // InternalTableDSL.g:30589:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__IfAssignment_3"
+
+
+    // $ANTLR start "rule__XIfExpression__ThenAssignment_5"
+    // InternalTableDSL.g:30598:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
+    public final void rule__XIfExpression__ThenAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30602:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30603:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30603:2: ( ruleXExpression )
+            // InternalTableDSL.g:30604:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__ThenAssignment_5"
+
+
+    // $ANTLR start "rule__XIfExpression__ElseAssignment_6_1"
+    // InternalTableDSL.g:30613:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
+    public final void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30617:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30618:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30618:2: ( ruleXExpression )
+            // InternalTableDSL.g:30619:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XIfExpression__ElseAssignment_6_1"
+
+
+    // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1"
+    // InternalTableDSL.g:30628:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
+    public final void rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30632:1: ( ( ruleJvmFormalParameter ) )
+            // InternalTableDSL.g:30633:2: ( ruleJvmFormalParameter )
+            {
+            // InternalTableDSL.g:30633:2: ( ruleJvmFormalParameter )
+            // InternalTableDSL.g:30634:3: ruleJvmFormalParameter
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1"
+
+
+    // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_0_1"
+    // InternalTableDSL.g:30643:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
+    public final void rule__XSwitchExpression__SwitchAssignment_2_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30647:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30648:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30648:2: ( ruleXExpression )
+            // InternalTableDSL.g:30649:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__SwitchAssignment_2_0_1"
+
+
+    // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0"
+    // InternalTableDSL.g:30658:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+    public final void rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30662:1: ( ( ruleJvmFormalParameter ) )
+            // InternalTableDSL.g:30663:2: ( ruleJvmFormalParameter )
+            {
+            // InternalTableDSL.g:30663:2: ( ruleJvmFormalParameter )
+            // InternalTableDSL.g:30664:3: ruleJvmFormalParameter
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0"
+
+
+    // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_1_1"
+    // InternalTableDSL.g:30673:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
+    public final void rule__XSwitchExpression__SwitchAssignment_2_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30677:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30678:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30678:2: ( ruleXExpression )
+            // InternalTableDSL.g:30679:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__SwitchAssignment_2_1_1"
+
+
+    // $ANTLR start "rule__XSwitchExpression__CasesAssignment_4"
+    // InternalTableDSL.g:30688:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
+    public final void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30692:1: ( ( ruleXCasePart ) )
+            // InternalTableDSL.g:30693:2: ( ruleXCasePart )
+            {
+            // InternalTableDSL.g:30693:2: ( ruleXCasePart )
+            // InternalTableDSL.g:30694:3: ruleXCasePart
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXCasePart();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__CasesAssignment_4"
+
+
+    // $ANTLR start "rule__XSwitchExpression__DefaultAssignment_5_2"
+    // InternalTableDSL.g:30703:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
+    public final void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30707:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30708:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30708:2: ( ruleXExpression )
+            // InternalTableDSL.g:30709:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSwitchExpression__DefaultAssignment_5_2"
+
+
+    // $ANTLR start "rule__XCasePart__TypeGuardAssignment_1"
+    // InternalTableDSL.g:30718:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
+    public final void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30722:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:30723:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:30723:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:30724:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__TypeGuardAssignment_1"
+
+
+    // $ANTLR start "rule__XCasePart__CaseAssignment_2_1"
+    // InternalTableDSL.g:30733:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
+    public final void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30737:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30738:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30738:2: ( ruleXExpression )
+            // InternalTableDSL.g:30739:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__CaseAssignment_2_1"
+
+
+    // $ANTLR start "rule__XCasePart__ThenAssignment_3_0_1"
+    // InternalTableDSL.g:30748:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
+    public final void rule__XCasePart__ThenAssignment_3_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30752:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30753:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30753:2: ( ruleXExpression )
+            // InternalTableDSL.g:30754:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__ThenAssignment_3_0_1"
+
+
+    // $ANTLR start "rule__XCasePart__FallThroughAssignment_3_1"
+    // InternalTableDSL.g:30763:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
+    public final void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30767:1: ( ( ( ',' ) ) )
+            // InternalTableDSL.g:30768:2: ( ( ',' ) )
+            {
+            // InternalTableDSL.g:30768:2: ( ( ',' ) )
+            // InternalTableDSL.g:30769:3: ( ',' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
+            }
+            // InternalTableDSL.g:30770:3: ( ',' )
+            // InternalTableDSL.g:30771:4: ','
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
+            }
+            match(input,141,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCasePart__FallThroughAssignment_3_1"
+
+
+    // $ANTLR start "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3"
+    // InternalTableDSL.g:30782:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
+    public final void rule__XForLoopExpression__DeclaredParamAssignment_0_0_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30786:1: ( ( ruleJvmFormalParameter ) )
+            // InternalTableDSL.g:30787:2: ( ruleJvmFormalParameter )
+            {
+            // InternalTableDSL.g:30787:2: ( ruleJvmFormalParameter )
+            // InternalTableDSL.g:30788:3: ruleJvmFormalParameter
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3"
+
+
+    // $ANTLR start "rule__XForLoopExpression__ForExpressionAssignment_1"
+    // InternalTableDSL.g:30797:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
+    public final void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30801:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30802:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30802:2: ( ruleXExpression )
+            // InternalTableDSL.g:30803:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__ForExpressionAssignment_1"
+
+
+    // $ANTLR start "rule__XForLoopExpression__EachExpressionAssignment_3"
+    // InternalTableDSL.g:30812:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
+    public final void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30816:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30817:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30817:2: ( ruleXExpression )
+            // InternalTableDSL.g:30818:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XForLoopExpression__EachExpressionAssignment_3"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0"
+    // InternalTableDSL.g:30827:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30831:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalTableDSL.g:30832:2: ( ruleXExpressionOrVarDeclaration )
+            {
+            // InternalTableDSL.g:30832:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalTableDSL.g:30833:3: ruleXExpressionOrVarDeclaration
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpressionOrVarDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1"
+    // InternalTableDSL.g:30842:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
+    public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30846:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalTableDSL.g:30847:2: ( ruleXExpressionOrVarDeclaration )
+            {
+            // InternalTableDSL.g:30847:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalTableDSL.g:30848:3: ruleXExpressionOrVarDeclaration
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpressionOrVarDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__ExpressionAssignment_5"
+    // InternalTableDSL.g:30857:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
+    public final void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30861:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30862:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30862:2: ( ruleXExpression )
+            // InternalTableDSL.g:30863:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__ExpressionAssignment_5"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0"
+    // InternalTableDSL.g:30872:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
+    public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30876:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30877:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30877:2: ( ruleXExpression )
+            // InternalTableDSL.g:30878:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1"
+    // InternalTableDSL.g:30887:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
+    public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30891:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30892:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30892:2: ( ruleXExpression )
+            // InternalTableDSL.g:30893:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1"
+
+
+    // $ANTLR start "rule__XBasicForLoopExpression__EachExpressionAssignment_9"
+    // InternalTableDSL.g:30902:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
+    public final void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30906:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30907:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30907:2: ( ruleXExpression )
+            // InternalTableDSL.g:30908:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBasicForLoopExpression__EachExpressionAssignment_9"
+
+
+    // $ANTLR start "rule__XWhileExpression__PredicateAssignment_3"
+    // InternalTableDSL.g:30917:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
+    public final void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30921:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30922:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30922:2: ( ruleXExpression )
+            // InternalTableDSL.g:30923:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__PredicateAssignment_3"
+
+
+    // $ANTLR start "rule__XWhileExpression__BodyAssignment_5"
+    // InternalTableDSL.g:30932:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
+    public final void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30936:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30937:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30937:2: ( ruleXExpression )
+            // InternalTableDSL.g:30938:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XWhileExpression__BodyAssignment_5"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__BodyAssignment_2"
+    // InternalTableDSL.g:30947:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
+    public final void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30951:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30952:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30952:2: ( ruleXExpression )
+            // InternalTableDSL.g:30953:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__BodyAssignment_2"
+
+
+    // $ANTLR start "rule__XDoWhileExpression__PredicateAssignment_5"
+    // InternalTableDSL.g:30962:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
+    public final void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30966:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:30967:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:30967:2: ( ruleXExpression )
+            // InternalTableDSL.g:30968:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XDoWhileExpression__PredicateAssignment_5"
+
+
+    // $ANTLR start "rule__XBlockExpression__ExpressionsAssignment_2_0"
+    // InternalTableDSL.g:30977:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
+    public final void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30981:1: ( ( ruleXExpressionOrVarDeclaration ) )
+            // InternalTableDSL.g:30982:2: ( ruleXExpressionOrVarDeclaration )
+            {
+            // InternalTableDSL.g:30982:2: ( ruleXExpressionOrVarDeclaration )
+            // InternalTableDSL.g:30983:3: ruleXExpressionOrVarDeclaration
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpressionOrVarDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBlockExpression__ExpressionsAssignment_2_0"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__WriteableAssignment_1_0"
+    // InternalTableDSL.g:30992:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
+    public final void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:30996:1: ( ( ( 'var' ) ) )
+            // InternalTableDSL.g:30997:2: ( ( 'var' ) )
+            {
+            // InternalTableDSL.g:30997:2: ( ( 'var' ) )
+            // InternalTableDSL.g:30998:3: ( 'var' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
+            }
+            // InternalTableDSL.g:30999:3: ( 'var' )
+            // InternalTableDSL.g:31000:4: 'var'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
+            }
+            match(input,187,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__WriteableAssignment_1_0"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
+    // InternalTableDSL.g:31011:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
+    public final void rule__XVariableDeclaration__TypeAssignment_2_0_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31015:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:31016:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:31016:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:31017:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
+    // InternalTableDSL.g:31026:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
+    public final void rule__XVariableDeclaration__NameAssignment_2_0_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31030:1: ( ( ruleValidID ) )
+            // InternalTableDSL.g:31031:2: ( ruleValidID )
+            {
+            // InternalTableDSL.g:31031:2: ( ruleValidID )
+            // InternalTableDSL.g:31032:3: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_1"
+    // InternalTableDSL.g:31041:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
+    public final void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31045:1: ( ( ruleValidID ) )
+            // InternalTableDSL.g:31046:2: ( ruleValidID )
+            {
+            // InternalTableDSL.g:31046:2: ( ruleValidID )
+            // InternalTableDSL.g:31047:3: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__NameAssignment_2_1"
+
+
+    // $ANTLR start "rule__XVariableDeclaration__RightAssignment_3_1"
+    // InternalTableDSL.g:31056:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
+    public final void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31060:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31061:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31061:2: ( ruleXExpression )
+            // InternalTableDSL.g:31062:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XVariableDeclaration__RightAssignment_3_1"
+
+
+    // $ANTLR start "rule__JvmFormalParameter__ParameterTypeAssignment_0"
+    // InternalTableDSL.g:31071:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    public final void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31075:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:31076:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:31076:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:31077:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmFormalParameter__ParameterTypeAssignment_0"
+
+
+    // $ANTLR start "rule__JvmFormalParameter__NameAssignment_1"
+    // InternalTableDSL.g:31086:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    public final void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31090:1: ( ( ruleValidID ) )
+            // InternalTableDSL.g:31091:2: ( ruleValidID )
+            {
+            // InternalTableDSL.g:31091:2: ( ruleValidID )
+            // InternalTableDSL.g:31092:3: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmFormalParameter__NameAssignment_1"
+
+
+    // $ANTLR start "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
+    // InternalTableDSL.g:31101:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+    public final void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31105:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:31106:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:31106:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:31107:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
+
+
+    // $ANTLR start "rule__FullJvmFormalParameter__NameAssignment_1"
+    // InternalTableDSL.g:31116:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+    public final void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31120:1: ( ( ruleValidID ) )
+            // InternalTableDSL.g:31121:2: ( ruleValidID )
+            {
+            // InternalTableDSL.g:31121:2: ( ruleValidID )
+            // InternalTableDSL.g:31122:3: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FullJvmFormalParameter__NameAssignment_1"
+
+
+    // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
+    // InternalTableDSL.g:31131:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    public final void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31135:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalTableDSL.g:31136:2: ( ruleJvmArgumentTypeReference )
+            {
+            // InternalTableDSL.g:31136:2: ( ruleJvmArgumentTypeReference )
+            // InternalTableDSL.g:31137:3: ruleJvmArgumentTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
+
+
+    // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
+    // InternalTableDSL.g:31146:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    public final void rule__XFeatureCall__TypeArgumentsAssignment_1_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31150:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalTableDSL.g:31151:2: ( ruleJvmArgumentTypeReference )
+            {
+            // InternalTableDSL.g:31151:2: ( ruleJvmArgumentTypeReference )
+            // InternalTableDSL.g:31152:3: ruleJvmArgumentTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
+
+
+    // $ANTLR start "rule__XFeatureCall__FeatureAssignment_2"
+    // InternalTableDSL.g:31161:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
+    public final void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31165:1: ( ( ( ruleIdOrSuper ) ) )
+            // InternalTableDSL.g:31166:2: ( ( ruleIdOrSuper ) )
+            {
+            // InternalTableDSL.g:31166:2: ( ( ruleIdOrSuper ) )
+            // InternalTableDSL.g:31167:3: ( ruleIdOrSuper )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
+            }
+            // InternalTableDSL.g:31168:3: ( ruleIdOrSuper )
+            // InternalTableDSL.g:31169:4: ruleIdOrSuper
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleIdOrSuper();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__FeatureAssignment_2"
+
+
+    // $ANTLR start "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
+    // InternalTableDSL.g:31180:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
+    public final void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31184:1: ( ( ( '(' ) ) )
+            // InternalTableDSL.g:31185:2: ( ( '(' ) )
+            {
+            // InternalTableDSL.g:31185:2: ( ( '(' ) )
+            // InternalTableDSL.g:31186:3: ( '(' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
+            }
+            // InternalTableDSL.g:31187:3: ( '(' )
+            // InternalTableDSL.g:31188:4: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
+
+
+    // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
+    // InternalTableDSL.g:31199:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
+    public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31203:1: ( ( ruleXShortClosure ) )
+            // InternalTableDSL.g:31204:2: ( ruleXShortClosure )
+            {
+            // InternalTableDSL.g:31204:2: ( ruleXShortClosure )
+            // InternalTableDSL.g:31205:3: ruleXShortClosure
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXShortClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
+
+
+    // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
+    // InternalTableDSL.g:31214:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
+    public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31218:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31219:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31219:2: ( ruleXExpression )
+            // InternalTableDSL.g:31220:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
+
+
+    // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
+    // InternalTableDSL.g:31229:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
+    public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31233:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31234:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31234:2: ( ruleXExpression )
+            // InternalTableDSL.g:31235:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
+
+
+    // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
+    // InternalTableDSL.g:31244:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
+    public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31248:1: ( ( ruleXClosure ) )
+            // InternalTableDSL.g:31249:2: ( ruleXClosure )
+            {
+            // InternalTableDSL.g:31249:2: ( ruleXClosure )
+            // InternalTableDSL.g:31250:3: ruleXClosure
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
+
+
+    // $ANTLR start "rule__XConstructorCall__ConstructorAssignment_2"
+    // InternalTableDSL.g:31259:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31263:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalTableDSL.g:31264:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalTableDSL.g:31264:2: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:31265:3: ( ruleQualifiedName )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
+            }
+            // InternalTableDSL.g:31266:3: ( ruleQualifiedName )
+            // InternalTableDSL.g:31267:4: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__ConstructorAssignment_2"
+
+
+    // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
+    // InternalTableDSL.g:31278:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
+    public final void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31282:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalTableDSL.g:31283:2: ( ruleJvmArgumentTypeReference )
+            {
+            // InternalTableDSL.g:31283:2: ( ruleJvmArgumentTypeReference )
+            // InternalTableDSL.g:31284:3: ruleJvmArgumentTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
+
+
+    // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
+    // InternalTableDSL.g:31293:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    public final void rule__XConstructorCall__TypeArgumentsAssignment_3_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31297:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalTableDSL.g:31298:2: ( ruleJvmArgumentTypeReference )
+            {
+            // InternalTableDSL.g:31298:2: ( ruleJvmArgumentTypeReference )
+            // InternalTableDSL.g:31299:3: ruleJvmArgumentTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
+
+
+    // $ANTLR start "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0"
+    // InternalTableDSL.g:31308:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
+    public final void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31312:1: ( ( ( '(' ) ) )
+            // InternalTableDSL.g:31313:2: ( ( '(' ) )
+            {
+            // InternalTableDSL.g:31313:2: ( ( '(' ) )
+            // InternalTableDSL.g:31314:3: ( '(' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
+            }
+            // InternalTableDSL.g:31315:3: ( '(' )
+            // InternalTableDSL.g:31316:4: '('
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
+            }
+            match(input,132,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0"
+
+
+    // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
+    // InternalTableDSL.g:31327:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
+    public final void rule__XConstructorCall__ArgumentsAssignment_4_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31331:1: ( ( ruleXShortClosure ) )
+            // InternalTableDSL.g:31332:2: ( ruleXShortClosure )
+            {
+            // InternalTableDSL.g:31332:2: ( ruleXShortClosure )
+            // InternalTableDSL.g:31333:3: ruleXShortClosure
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXShortClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
+
+
+    // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
+    // InternalTableDSL.g:31342:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
+    public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31346:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31347:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31347:2: ( ruleXExpression )
+            // InternalTableDSL.g:31348:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
+
+
+    // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
+    // InternalTableDSL.g:31357:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
+    public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31361:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31362:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31362:2: ( ruleXExpression )
+            // InternalTableDSL.g:31363:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
+
+
+    // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_5"
+    // InternalTableDSL.g:31372:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
+    public final void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31376:1: ( ( ruleXClosure ) )
+            // InternalTableDSL.g:31377:2: ( ruleXClosure )
+            {
+            // InternalTableDSL.g:31377:2: ( ruleXClosure )
+            // InternalTableDSL.g:31378:3: ruleXClosure
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_5"
+
+
+    // $ANTLR start "rule__XBooleanLiteral__IsTrueAssignment_1_1"
+    // InternalTableDSL.g:31387:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
+    public final void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31391:1: ( ( ( 'true' ) ) )
+            // InternalTableDSL.g:31392:2: ( ( 'true' ) )
+            {
+            // InternalTableDSL.g:31392:2: ( ( 'true' ) )
+            // InternalTableDSL.g:31393:3: ( 'true' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
+            }
+            // InternalTableDSL.g:31394:3: ( 'true' )
+            // InternalTableDSL.g:31395:4: 'true'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
+            }
+            match(input,188,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XBooleanLiteral__IsTrueAssignment_1_1"
+
+
+    // $ANTLR start "rule__XNumberLiteral__ValueAssignment_1"
+    // InternalTableDSL.g:31406:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
+    public final void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31410:1: ( ( ruleNumber ) )
+            // InternalTableDSL.g:31411:2: ( ruleNumber )
+            {
+            // InternalTableDSL.g:31411:2: ( ruleNumber )
+            // InternalTableDSL.g:31412:3: ruleNumber
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XNumberLiteral__ValueAssignment_1"
+
+
+    // $ANTLR start "rule__XStringLiteral__ValueAssignment_1"
+    // InternalTableDSL.g:31421:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
+    public final void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31425:1: ( ( RULE_STRING ) )
+            // InternalTableDSL.g:31426:2: ( RULE_STRING )
+            {
+            // InternalTableDSL.g:31426:2: ( RULE_STRING )
+            // InternalTableDSL.g:31427:3: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
+            }
+            match(input,RULE_STRING,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XStringLiteral__ValueAssignment_1"
+
+
+    // $ANTLR start "rule__XTypeLiteral__TypeAssignment_3"
+    // InternalTableDSL.g:31436:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31440:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalTableDSL.g:31441:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalTableDSL.g:31441:2: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:31442:3: ( ruleQualifiedName )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
+            }
+            // InternalTableDSL.g:31443:3: ( ruleQualifiedName )
+            // InternalTableDSL.g:31444:4: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__TypeAssignment_3"
+
+
+    // $ANTLR start "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
+    // InternalTableDSL.g:31455:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
+    public final void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31459:1: ( ( ruleArrayBrackets ) )
+            // InternalTableDSL.g:31460:2: ( ruleArrayBrackets )
+            {
+            // InternalTableDSL.g:31460:2: ( ruleArrayBrackets )
+            // InternalTableDSL.g:31461:3: ruleArrayBrackets
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleArrayBrackets();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
+
+
+    // $ANTLR start "rule__XThrowExpression__ExpressionAssignment_2"
+    // InternalTableDSL.g:31470:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    public final void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31474:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31475:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31475:2: ( ruleXExpression )
+            // InternalTableDSL.g:31476:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XThrowExpression__ExpressionAssignment_2"
+
+
+    // $ANTLR start "rule__XReturnExpression__ExpressionAssignment_2"
+    // InternalTableDSL.g:31485:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    public final void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31489:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31490:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31490:2: ( ruleXExpression )
+            // InternalTableDSL.g:31491:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XReturnExpression__ExpressionAssignment_2"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
+    // InternalTableDSL.g:31500:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+    public final void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31504:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31505:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31505:2: ( ruleXExpression )
+            // InternalTableDSL.g:31506:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
+    // InternalTableDSL.g:31515:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
+    public final void rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31519:1: ( ( ruleXCatchClause ) )
+            // InternalTableDSL.g:31520:2: ( ruleXCatchClause )
+            {
+            // InternalTableDSL.g:31520:2: ( ruleXCatchClause )
+            // InternalTableDSL.g:31521:3: ruleXCatchClause
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXCatchClause();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
+    // InternalTableDSL.g:31530:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
+    public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31534:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31535:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31535:2: ( ruleXExpression )
+            // InternalTableDSL.g:31536:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
+
+
+    // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
+    // InternalTableDSL.g:31545:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
+    public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31549:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31550:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31550:2: ( ruleXExpression )
+            // InternalTableDSL.g:31551:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__ParamAssignment_1"
+    // InternalTableDSL.g:31560:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
+    public final void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31564:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31565:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31565:2: ( ruleXExpression )
+            // InternalTableDSL.g:31566:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__ParamAssignment_1"
+
+
+    // $ANTLR start "rule__XSynchronizedExpression__ExpressionAssignment_3"
+    // InternalTableDSL.g:31575:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
+    public final void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31579:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31580:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31580:2: ( ruleXExpression )
+            // InternalTableDSL.g:31581:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XSynchronizedExpression__ExpressionAssignment_3"
+
+
+    // $ANTLR start "rule__XCatchClause__DeclaredParamAssignment_2"
+    // InternalTableDSL.g:31590:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
+    public final void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31594:1: ( ( ruleFullJvmFormalParameter ) )
+            // InternalTableDSL.g:31595:2: ( ruleFullJvmFormalParameter )
+            {
+            // InternalTableDSL.g:31595:2: ( ruleFullJvmFormalParameter )
+            // InternalTableDSL.g:31596:3: ruleFullJvmFormalParameter
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleFullJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__DeclaredParamAssignment_2"
+
+
+    // $ANTLR start "rule__XCatchClause__ExpressionAssignment_4"
+    // InternalTableDSL.g:31605:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
+    public final void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31609:1: ( ( ruleXExpression ) )
+            // InternalTableDSL.g:31610:2: ( ruleXExpression )
+            {
+            // InternalTableDSL.g:31610:2: ( ruleXExpression )
+            // InternalTableDSL.g:31611:3: ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XCatchClause__ExpressionAssignment_4"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
+    // InternalTableDSL.g:31620:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
+    public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31624:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:31625:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:31625:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:31626:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
+    // InternalTableDSL.g:31635:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
+    public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31639:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:31640:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:31640:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:31641:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
+
+
+    // $ANTLR start "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
+    // InternalTableDSL.g:31650:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
+    public final void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31654:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:31655:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:31655:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:31656:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_0"
+    // InternalTableDSL.g:31665:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31669:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalTableDSL.g:31670:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalTableDSL.g:31670:2: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:31671:3: ( ruleQualifiedName )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
+            }
+            // InternalTableDSL.g:31672:3: ( ruleQualifiedName )
+            // InternalTableDSL.g:31673:4: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__TypeAssignment_0"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
+    // InternalTableDSL.g:31684:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+    public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31688:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalTableDSL.g:31689:2: ( ruleJvmArgumentTypeReference )
+            {
+            // InternalTableDSL.g:31689:2: ( ruleJvmArgumentTypeReference )
+            // InternalTableDSL.g:31690:3: ruleJvmArgumentTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
+    // InternalTableDSL.g:31699:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31703:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalTableDSL.g:31704:2: ( ruleJvmArgumentTypeReference )
+            {
+            // InternalTableDSL.g:31704:2: ( ruleJvmArgumentTypeReference )
+            // InternalTableDSL.g:31705:3: ruleJvmArgumentTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1"
+    // InternalTableDSL.g:31714:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
+    public final void rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31718:1: ( ( ( ruleValidID ) ) )
+            // InternalTableDSL.g:31719:2: ( ( ruleValidID ) )
+            {
+            // InternalTableDSL.g:31719:2: ( ( ruleValidID ) )
+            // InternalTableDSL.g:31720:3: ( ruleValidID )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
+            }
+            // InternalTableDSL.g:31721:3: ( ruleValidID )
+            // InternalTableDSL.g:31722:4: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1"
+    // InternalTableDSL.g:31733:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31737:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalTableDSL.g:31738:2: ( ruleJvmArgumentTypeReference )
+            {
+            // InternalTableDSL.g:31738:2: ( ruleJvmArgumentTypeReference )
+            // InternalTableDSL.g:31739:3: ruleJvmArgumentTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1"
+
+
+    // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1"
+    // InternalTableDSL.g:31748:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
+    public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31752:1: ( ( ruleJvmArgumentTypeReference ) )
+            // InternalTableDSL.g:31753:2: ( ruleJvmArgumentTypeReference )
+            {
+            // InternalTableDSL.g:31753:2: ( ruleJvmArgumentTypeReference )
+            // InternalTableDSL.g:31754:3: ruleJvmArgumentTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0"
+    // InternalTableDSL.g:31763:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
+    public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31767:1: ( ( ruleJvmUpperBound ) )
+            // InternalTableDSL.g:31768:2: ( ruleJvmUpperBound )
+            {
+            // InternalTableDSL.g:31768:2: ( ruleJvmUpperBound )
+            // InternalTableDSL.g:31769:3: ruleJvmUpperBound
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmUpperBound();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1"
+    // InternalTableDSL.g:31778:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
+    public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31782:1: ( ( ruleJvmUpperBoundAnded ) )
+            // InternalTableDSL.g:31783:2: ( ruleJvmUpperBoundAnded )
+            {
+            // InternalTableDSL.g:31783:2: ( ruleJvmUpperBoundAnded )
+            // InternalTableDSL.g:31784:3: ruleJvmUpperBoundAnded
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmUpperBoundAnded();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0"
+    // InternalTableDSL.g:31793:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
+    public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31797:1: ( ( ruleJvmLowerBound ) )
+            // InternalTableDSL.g:31798:2: ( ruleJvmLowerBound )
+            {
+            // InternalTableDSL.g:31798:2: ( ruleJvmLowerBound )
+            // InternalTableDSL.g:31799:3: ruleJvmLowerBound
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmLowerBound();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0"
+
+
+    // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1"
+    // InternalTableDSL.g:31808:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
+    public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31812:1: ( ( ruleJvmLowerBoundAnded ) )
+            // InternalTableDSL.g:31813:2: ( ruleJvmLowerBoundAnded )
+            {
+            // InternalTableDSL.g:31813:2: ( ruleJvmLowerBoundAnded )
+            // InternalTableDSL.g:31814:3: ruleJvmLowerBoundAnded
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmLowerBoundAnded();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1"
+
+
+    // $ANTLR start "rule__JvmUpperBound__TypeReferenceAssignment_1"
+    // InternalTableDSL.g:31823:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    public final void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31827:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:31828:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:31828:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:31829:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmUpperBound__TypeReferenceAssignment_1"
+
+
+    // $ANTLR start "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
+    // InternalTableDSL.g:31838:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    public final void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31842:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:31843:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:31843:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:31844:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
+
+
+    // $ANTLR start "rule__JvmLowerBound__TypeReferenceAssignment_1"
+    // InternalTableDSL.g:31853:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    public final void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31857:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:31858:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:31858:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:31859:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmLowerBound__TypeReferenceAssignment_1"
+
+
+    // $ANTLR start "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1"
+    // InternalTableDSL.g:31868:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+    public final void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31872:1: ( ( ruleJvmTypeReference ) )
+            // InternalTableDSL.g:31873:2: ( ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:31873:2: ( ruleJvmTypeReference )
+            // InternalTableDSL.g:31874:3: ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1"
+
+
+    // $ANTLR start "rule__XImportSection__ImportDeclarationsAssignment"
+    // InternalTableDSL.g:31883:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
+    public final void rule__XImportSection__ImportDeclarationsAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTableDSL.g:31887:1: ( ( ruleXImportDeclaration ) )
+            // InternalTableDSL.g:31888:2: ( ruleXImportDeclaration )
+            {
+            // InternalTableDSL.g:31888:2: ( ruleXImportDeclaration )
+            // InternalTableDSL.g:31889:3: ruleXImportDeclaration
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleXImportDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XImportSection__ImportDeclarationsAssignment"
+
+    // $ANTLR start synpred40_InternalTableDSL
+    public final void synpred40_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:4206:2: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) )
+        // InternalTableDSL.g:4206:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+        {
+        // InternalTableDSL.g:4206:2: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+        // InternalTableDSL.g:4207:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
+        }
+        // InternalTableDSL.g:4208:3: ( rule__XAnnotation__Group_3_1_0__0 )
+        // InternalTableDSL.g:4208:4: rule__XAnnotation__Group_3_1_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAnnotation__Group_3_1_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred40_InternalTableDSL
+
+    // $ANTLR start synpred41_InternalTableDSL
+    public final void synpred41_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:4227:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) )
+        // InternalTableDSL.g:4227:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        {
+        // InternalTableDSL.g:4227:2: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+        // InternalTableDSL.g:4228:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
+        }
+        // InternalTableDSL.g:4229:3: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+        // InternalTableDSL.g:4229:4: rule__XAnnotationElementValueOrCommaList__Group_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAnnotationElementValueOrCommaList__Group_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred41_InternalTableDSL
+
+    // $ANTLR start synpred42_InternalTableDSL
+    public final void synpred42_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:4248:2: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) )
+        // InternalTableDSL.g:4248:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        {
+        // InternalTableDSL.g:4248:2: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+        // InternalTableDSL.g:4249:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
+        }
+        // InternalTableDSL.g:4250:3: ( rule__XAnnotationElementValue__Group_0__0 )
+        // InternalTableDSL.g:4250:4: rule__XAnnotationElementValue__Group_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAnnotationElementValue__Group_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred42_InternalTableDSL
+
+    // $ANTLR start synpred67_InternalTableDSL
+    public final void synpred67_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:4533:2: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
+        // InternalTableDSL.g:4533:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+        {
+        // InternalTableDSL.g:4533:2: ( ( rule__OpOther__Group_6_1_0__0 ) )
+        // InternalTableDSL.g:4534:3: ( rule__OpOther__Group_6_1_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
+        }
+        // InternalTableDSL.g:4535:3: ( rule__OpOther__Group_6_1_0__0 )
+        // InternalTableDSL.g:4535:4: rule__OpOther__Group_6_1_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__OpOther__Group_6_1_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred67_InternalTableDSL
+
+    // $ANTLR start synpred68_InternalTableDSL
+    public final void synpred68_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:4539:2: ( ( '<' ) )
+        // InternalTableDSL.g:4539:2: ( '<' )
+        {
+        // InternalTableDSL.g:4539:2: ( '<' )
+        // InternalTableDSL.g:4540:3: '<'
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
+        }
+        match(input,32,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred68_InternalTableDSL
+
+    // $ANTLR start synpred81_InternalTableDSL
+    public final void synpred81_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:4752:2: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
+        // InternalTableDSL.g:4752:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+        {
+        // InternalTableDSL.g:4752:2: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+        // InternalTableDSL.g:4753:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
+        }
+        // InternalTableDSL.g:4754:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+        // InternalTableDSL.g:4754:4: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred81_InternalTableDSL
+
+    // $ANTLR start synpred89_InternalTableDSL
+    public final void synpred89_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:4815:2: ( ( ( ruleXForLoopExpression ) ) )
+        // InternalTableDSL.g:4815:2: ( ( ruleXForLoopExpression ) )
+        {
+        // InternalTableDSL.g:4815:2: ( ( ruleXForLoopExpression ) )
+        // InternalTableDSL.g:4816:3: ( ruleXForLoopExpression )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
+        }
+        // InternalTableDSL.g:4817:3: ( ruleXForLoopExpression )
+        // InternalTableDSL.g:4817:4: ruleXForLoopExpression
+        {
+        pushFollow(FOLLOW_2);
+        ruleXForLoopExpression();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred89_InternalTableDSL
+
+    // $ANTLR start synpred90_InternalTableDSL
+    public final void synpred90_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:4821:2: ( ( ruleXBasicForLoopExpression ) )
+        // InternalTableDSL.g:4821:2: ( ruleXBasicForLoopExpression )
+        {
+        // InternalTableDSL.g:4821:2: ( ruleXBasicForLoopExpression )
+        // InternalTableDSL.g:4822:3: ruleXBasicForLoopExpression
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
+        }
+        pushFollow(FOLLOW_2);
+        ruleXBasicForLoopExpression();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred90_InternalTableDSL
+
+    // $ANTLR start synpred103_InternalTableDSL
+    public final void synpred103_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:4944:2: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
+        // InternalTableDSL.g:4944:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+        {
+        // InternalTableDSL.g:4944:2: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+        // InternalTableDSL.g:4945:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
+        }
+        // InternalTableDSL.g:4946:3: ( rule__XSwitchExpression__Group_2_0__0 )
+        // InternalTableDSL.g:4946:4: rule__XSwitchExpression__Group_2_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XSwitchExpression__Group_2_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred103_InternalTableDSL
+
+    // $ANTLR start synpred107_InternalTableDSL
+    public final void synpred107_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:5028:2: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
+        // InternalTableDSL.g:5028:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+        {
+        // InternalTableDSL.g:5028:2: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+        // InternalTableDSL.g:5029:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
+        }
+        // InternalTableDSL.g:5030:3: ( rule__XVariableDeclaration__Group_2_0__0 )
+        // InternalTableDSL.g:5030:4: rule__XVariableDeclaration__Group_2_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XVariableDeclaration__Group_2_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred107_InternalTableDSL
+
+    // $ANTLR start synpred108_InternalTableDSL
+    public final void synpred108_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:5049:2: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
+        // InternalTableDSL.g:5049:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+        {
+        // InternalTableDSL.g:5049:2: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+        // InternalTableDSL.g:5050:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
+        }
+        // InternalTableDSL.g:5051:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+        // InternalTableDSL.g:5051:4: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred108_InternalTableDSL
+
+    // $ANTLR start synpred114_InternalTableDSL
+    public final void synpred114_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:5130:2: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
+        // InternalTableDSL.g:5130:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+        {
+        // InternalTableDSL.g:5130:2: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+        // InternalTableDSL.g:5131:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
+        }
+        // InternalTableDSL.g:5132:3: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+        // InternalTableDSL.g:5132:4: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XConstructorCall__ArgumentsAssignment_4_1_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred114_InternalTableDSL
+
+    // $ANTLR start synpred185_InternalTableDSL
+    public final void synpred185_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:14702:3: ( rule__XAssignment__Group_1_1__0 )
+        // InternalTableDSL.g:14702:3: rule__XAssignment__Group_1_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAssignment__Group_1_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred185_InternalTableDSL
+
+    // $ANTLR start synpred187_InternalTableDSL
+    public final void synpred187_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:15053:3: ( rule__XOrExpression__Group_1__0 )
+        // InternalTableDSL.g:15053:3: rule__XOrExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XOrExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred187_InternalTableDSL
+
+    // $ANTLR start synpred188_InternalTableDSL
+    public final void synpred188_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:15242:3: ( rule__XAndExpression__Group_1__0 )
+        // InternalTableDSL.g:15242:3: rule__XAndExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAndExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred188_InternalTableDSL
+
+    // $ANTLR start synpred189_InternalTableDSL
+    public final void synpred189_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:15431:3: ( rule__XEqualityExpression__Group_1__0 )
+        // InternalTableDSL.g:15431:3: rule__XEqualityExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XEqualityExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred189_InternalTableDSL
+
+    // $ANTLR start synpred190_InternalTableDSL
+    public final void synpred190_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:15620:3: ( rule__XRelationalExpression__Alternatives_1 )
+        // InternalTableDSL.g:15620:3: rule__XRelationalExpression__Alternatives_1
+        {
+        pushFollow(FOLLOW_2);
+        rule__XRelationalExpression__Alternatives_1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred190_InternalTableDSL
+
+    // $ANTLR start synpred191_InternalTableDSL
+    public final void synpred191_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:15998:3: ( rule__XOtherOperatorExpression__Group_1__0 )
+        // InternalTableDSL.g:15998:3: rule__XOtherOperatorExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XOtherOperatorExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred191_InternalTableDSL
+
+    // $ANTLR start synpred192_InternalTableDSL
+    public final void synpred192_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:16511:3: ( rule__XAdditiveExpression__Group_1__0 )
+        // InternalTableDSL.g:16511:3: rule__XAdditiveExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XAdditiveExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred192_InternalTableDSL
+
+    // $ANTLR start synpred193_InternalTableDSL
+    public final void synpred193_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:16700:3: ( rule__XMultiplicativeExpression__Group_1__0 )
+        // InternalTableDSL.g:16700:3: rule__XMultiplicativeExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XMultiplicativeExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred193_InternalTableDSL
+
+    // $ANTLR start synpred194_InternalTableDSL
+    public final void synpred194_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:16970:3: ( rule__XCastedExpression__Group_1__0 )
+        // InternalTableDSL.g:16970:3: rule__XCastedExpression__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XCastedExpression__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred194_InternalTableDSL
+
+    // $ANTLR start synpred195_InternalTableDSL
+    public final void synpred195_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:17159:3: ( rule__XPostfixOperation__Group_1__0 )
+        // InternalTableDSL.g:17159:3: rule__XPostfixOperation__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XPostfixOperation__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred195_InternalTableDSL
+
+    // $ANTLR start synpred196_InternalTableDSL
+    public final void synpred196_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:17294:3: ( rule__XMemberFeatureCall__Alternatives_1 )
+        // InternalTableDSL.g:17294:3: rule__XMemberFeatureCall__Alternatives_1
+        {
+        pushFollow(FOLLOW_2);
+        rule__XMemberFeatureCall__Alternatives_1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred196_InternalTableDSL
+
+    // $ANTLR start synpred198_InternalTableDSL
+    public final void synpred198_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:17592:3: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
+        // InternalTableDSL.g:17592:3: rule__XMemberFeatureCall__Group_1_1_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XMemberFeatureCall__Group_1_1_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred198_InternalTableDSL
+
+    // $ANTLR start synpred199_InternalTableDSL
+    public final void synpred199_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:17618:3: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
+        // InternalTableDSL.g:17618:3: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+        {
+        pushFollow(FOLLOW_2);
+        rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred199_InternalTableDSL
+
+    // $ANTLR start synpred207_InternalTableDSL
+    public final void synpred207_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:18591:3: ( rule__XClosure__Group_1__0 )
+        // InternalTableDSL.g:18591:3: rule__XClosure__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XClosure__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred207_InternalTableDSL
+
+    // $ANTLR start synpred214_InternalTableDSL
+    public final void synpred214_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:19562:3: ( rule__XIfExpression__Group_6__0 )
+        // InternalTableDSL.g:19562:3: rule__XIfExpression__Group_6__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XIfExpression__Group_6__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred214_InternalTableDSL
+
+    // $ANTLR start synpred217_InternalTableDSL
+    public final void synpred217_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:20022:3: ( rule__XSwitchExpression__Group_2_1_0__0 )
+        // InternalTableDSL.g:20022:3: rule__XSwitchExpression__Group_2_1_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XSwitchExpression__Group_2_1_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred217_InternalTableDSL
+
+    // $ANTLR start synpred230_InternalTableDSL
+    public final void synpred230_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:22155:3: ( rule__XFeatureCall__Group_3__0 )
+        // InternalTableDSL.g:22155:3: rule__XFeatureCall__Group_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XFeatureCall__Group_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred230_InternalTableDSL
+
+    // $ANTLR start synpred231_InternalTableDSL
+    public final void synpred231_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:22181:3: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
+        // InternalTableDSL.g:22181:3: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+        {
+        pushFollow(FOLLOW_2);
+        rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred231_InternalTableDSL
+
+    // $ANTLR start synpred235_InternalTableDSL
+    public final void synpred235_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:22641:3: ( rule__XConstructorCall__Group_3__0 )
+        // InternalTableDSL.g:22641:3: rule__XConstructorCall__Group_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XConstructorCall__Group_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred235_InternalTableDSL
+
+    // $ANTLR start synpred236_InternalTableDSL
+    public final void synpred236_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:22668:3: ( rule__XConstructorCall__Group_4__0 )
+        // InternalTableDSL.g:22668:3: rule__XConstructorCall__Group_4__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XConstructorCall__Group_4__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred236_InternalTableDSL
+
+    // $ANTLR start synpred237_InternalTableDSL
+    public final void synpred237_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:22694:3: ( rule__XConstructorCall__ArgumentsAssignment_5 )
+        // InternalTableDSL.g:22694:3: rule__XConstructorCall__ArgumentsAssignment_5
+        {
+        pushFollow(FOLLOW_2);
+        rule__XConstructorCall__ArgumentsAssignment_5();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred237_InternalTableDSL
+
+    // $ANTLR start synpred242_InternalTableDSL
+    public final void synpred242_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:23585:3: ( rule__XReturnExpression__ExpressionAssignment_2 )
+        // InternalTableDSL.g:23585:3: rule__XReturnExpression__ExpressionAssignment_2
+        {
+        pushFollow(FOLLOW_2);
+        rule__XReturnExpression__ExpressionAssignment_2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred242_InternalTableDSL
+
+    // $ANTLR start synpred243_InternalTableDSL
+    public final void synpred243_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:23727:4: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+        // InternalTableDSL.g:23727:4: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred243_InternalTableDSL
+
+    // $ANTLR start synpred244_InternalTableDSL
+    public final void synpred244_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:23754:3: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
+        // InternalTableDSL.g:23754:3: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__XTryCatchFinallyExpression__Group_3_0_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred244_InternalTableDSL
+
+    // $ANTLR start synpred245_InternalTableDSL
+    public final void synpred245_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:24267:3: ( rule__QualifiedName__Group_1__0 )
+        // InternalTableDSL.g:24267:3: rule__QualifiedName__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__QualifiedName__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred245_InternalTableDSL
+
+    // $ANTLR start synpred247_InternalTableDSL
+    public final void synpred247_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:24483:3: ( rule__JvmTypeReference__Group_0_1__0 )
+        // InternalTableDSL.g:24483:3: rule__JvmTypeReference__Group_0_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__JvmTypeReference__Group_0_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred247_InternalTableDSL
+
+    // $ANTLR start synpred251_InternalTableDSL
+    public final void synpred251_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:24942:3: ( rule__JvmParameterizedTypeReference__Group_1__0 )
+        // InternalTableDSL.g:24942:3: rule__JvmParameterizedTypeReference__Group_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__JvmParameterizedTypeReference__Group_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred251_InternalTableDSL
+
+    // $ANTLR start synpred253_InternalTableDSL
+    public final void synpred253_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:25077:3: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
+        // InternalTableDSL.g:25077:3: rule__JvmParameterizedTypeReference__Group_1_4__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__JvmParameterizedTypeReference__Group_1_4__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred253_InternalTableDSL
+
+    // $ANTLR start synpred254_InternalTableDSL
+    public final void synpred254_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:25212:3: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
+        // InternalTableDSL.g:25212:3: rule__JvmParameterizedTypeReference__Group_1_4_2__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__JvmParameterizedTypeReference__Group_1_4_2__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred254_InternalTableDSL
+
+    // $ANTLR start synpred259_InternalTableDSL
+    public final void synpred259_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26010:2: ( rule__TableSelection__UnorderedGroup_3__0 )
+        // InternalTableDSL.g:26010:2: rule__TableSelection__UnorderedGroup_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__UnorderedGroup_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred259_InternalTableDSL
+
+    // $ANTLR start synpred260_InternalTableDSL
+    public final void synpred260_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26025:3: ( ({...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) ) ) )
+        // InternalTableDSL.g:26025:3: ({...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) ) )
+        {
+        // InternalTableDSL.g:26025:3: ({...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) ) )
+        // InternalTableDSL.g:26026:4: {...}? => ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred260_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0)");
+        }
+        // InternalTableDSL.g:26026:110: ( ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) ) )
+        // InternalTableDSL.g:26027:5: ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0);
+        // InternalTableDSL.g:26033:5: ( ( rule__TableSelection__SelectalwaysAssignment_3_0 ) )
+        // InternalTableDSL.g:26034:6: ( rule__TableSelection__SelectalwaysAssignment_3_0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableSelectionAccess().getSelectalwaysAssignment_3_0()); 
+        }
+        // InternalTableDSL.g:26035:6: ( rule__TableSelection__SelectalwaysAssignment_3_0 )
+        // InternalTableDSL.g:26035:7: rule__TableSelection__SelectalwaysAssignment_3_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__SelectalwaysAssignment_3_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred260_InternalTableDSL
+
+    // $ANTLR start synpred261_InternalTableDSL
+    public final void synpred261_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26040:3: ( ({...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) ) ) )
+        // InternalTableDSL.g:26040:3: ({...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) ) )
+        {
+        // InternalTableDSL.g:26040:3: ({...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) ) )
+        // InternalTableDSL.g:26041:4: {...}? => ( ( ( rule__TableSelection__Group_3_1__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred261_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1)");
+        }
+        // InternalTableDSL.g:26041:110: ( ( ( rule__TableSelection__Group_3_1__0 ) ) )
+        // InternalTableDSL.g:26042:5: ( ( rule__TableSelection__Group_3_1__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1);
+        // InternalTableDSL.g:26048:5: ( ( rule__TableSelection__Group_3_1__0 ) )
+        // InternalTableDSL.g:26049:6: ( rule__TableSelection__Group_3_1__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableSelectionAccess().getGroup_3_1()); 
+        }
+        // InternalTableDSL.g:26050:6: ( rule__TableSelection__Group_3_1__0 )
+        // InternalTableDSL.g:26050:7: rule__TableSelection__Group_3_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__Group_3_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred261_InternalTableDSL
+
+    // $ANTLR start synpred262_InternalTableDSL
+    public final void synpred262_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26055:3: ( ({...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) ) ) )
+        // InternalTableDSL.g:26055:3: ({...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) ) )
+        {
+        // InternalTableDSL.g:26055:3: ({...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) ) )
+        // InternalTableDSL.g:26056:4: {...}? => ( ( ( rule__TableSelection__Group_3_2__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred262_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2)");
+        }
+        // InternalTableDSL.g:26056:110: ( ( ( rule__TableSelection__Group_3_2__0 ) ) )
+        // InternalTableDSL.g:26057:5: ( ( rule__TableSelection__Group_3_2__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2);
+        // InternalTableDSL.g:26063:5: ( ( rule__TableSelection__Group_3_2__0 ) )
+        // InternalTableDSL.g:26064:6: ( rule__TableSelection__Group_3_2__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableSelectionAccess().getGroup_3_2()); 
+        }
+        // InternalTableDSL.g:26065:6: ( rule__TableSelection__Group_3_2__0 )
+        // InternalTableDSL.g:26065:7: rule__TableSelection__Group_3_2__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__Group_3_2__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred262_InternalTableDSL
+
+    // $ANTLR start synpred263_InternalTableDSL
+    public final void synpred263_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26070:3: ( ({...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) ) ) )
+        // InternalTableDSL.g:26070:3: ({...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) ) )
+        {
+        // InternalTableDSL.g:26070:3: ({...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) ) )
+        // InternalTableDSL.g:26071:4: {...}? => ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred263_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3)");
+        }
+        // InternalTableDSL.g:26071:110: ( ( ( rule__TableSelection__FilteringAssignment_3_3 ) ) )
+        // InternalTableDSL.g:26072:5: ( ( rule__TableSelection__FilteringAssignment_3_3 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3);
+        // InternalTableDSL.g:26078:5: ( ( rule__TableSelection__FilteringAssignment_3_3 ) )
+        // InternalTableDSL.g:26079:6: ( rule__TableSelection__FilteringAssignment_3_3 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableSelectionAccess().getFilteringAssignment_3_3()); 
+        }
+        // InternalTableDSL.g:26080:6: ( rule__TableSelection__FilteringAssignment_3_3 )
+        // InternalTableDSL.g:26080:7: rule__TableSelection__FilteringAssignment_3_3
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__FilteringAssignment_3_3();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred263_InternalTableDSL
+
+    // $ANTLR start synpred264_InternalTableDSL
+    public final void synpred264_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26085:3: ( ({...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) ) ) )
+        // InternalTableDSL.g:26085:3: ({...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) ) )
+        {
+        // InternalTableDSL.g:26085:3: ({...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) ) )
+        // InternalTableDSL.g:26086:4: {...}? => ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred264_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4)");
+        }
+        // InternalTableDSL.g:26086:110: ( ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) ) )
+        // InternalTableDSL.g:26087:5: ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4);
+        // InternalTableDSL.g:26093:5: ( ( rule__TableSelection__EmbeddedAssignment_3_4 ) )
+        // InternalTableDSL.g:26094:6: ( rule__TableSelection__EmbeddedAssignment_3_4 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableSelectionAccess().getEmbeddedAssignment_3_4()); 
+        }
+        // InternalTableDSL.g:26095:6: ( rule__TableSelection__EmbeddedAssignment_3_4 )
+        // InternalTableDSL.g:26095:7: rule__TableSelection__EmbeddedAssignment_3_4
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__EmbeddedAssignment_3_4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred264_InternalTableDSL
+
+    // $ANTLR start synpred265_InternalTableDSL
+    public final void synpred265_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26129:2: ( rule__TableSelection__UnorderedGroup_3__1 )
+        // InternalTableDSL.g:26129:2: rule__TableSelection__UnorderedGroup_3__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__UnorderedGroup_3__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred265_InternalTableDSL
+
+    // $ANTLR start synpred266_InternalTableDSL
+    public final void synpred266_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26141:2: ( rule__TableSelection__UnorderedGroup_3__2 )
+        // InternalTableDSL.g:26141:2: rule__TableSelection__UnorderedGroup_3__2
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__UnorderedGroup_3__2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred266_InternalTableDSL
+
+    // $ANTLR start synpred267_InternalTableDSL
+    public final void synpred267_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26153:2: ( rule__TableSelection__UnorderedGroup_3__3 )
+        // InternalTableDSL.g:26153:2: rule__TableSelection__UnorderedGroup_3__3
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__UnorderedGroup_3__3();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred267_InternalTableDSL
+
+    // $ANTLR start synpred268_InternalTableDSL
+    public final void synpred268_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26165:2: ( rule__TableSelection__UnorderedGroup_3__4 )
+        // InternalTableDSL.g:26165:2: rule__TableSelection__UnorderedGroup_3__4
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__UnorderedGroup_3__4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred268_InternalTableDSL
+
+    // $ANTLR start synpred269_InternalTableDSL
+    public final void synpred269_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26177:2: ( rule__TableSelection__UnorderedGroup_3__5 )
+        // InternalTableDSL.g:26177:2: rule__TableSelection__UnorderedGroup_3__5
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableSelection__UnorderedGroup_3__5();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred269_InternalTableDSL
+
+    // $ANTLR start synpred270_InternalTableDSL
+    public final void synpred270_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26201:2: ( rule__TableTable__UnorderedGroup_2__0 )
+        // InternalTableDSL.g:26201:2: rule__TableTable__UnorderedGroup_2__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__UnorderedGroup_2__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred270_InternalTableDSL
+
+    // $ANTLR start synpred271_InternalTableDSL
+    public final void synpred271_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26216:3: ( ({...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) ) ) )
+        // InternalTableDSL.g:26216:3: ({...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) ) )
+        {
+        // InternalTableDSL.g:26216:3: ({...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) ) )
+        // InternalTableDSL.g:26217:4: {...}? => ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred271_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0)");
+        }
+        // InternalTableDSL.g:26217:106: ( ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) ) )
+        // InternalTableDSL.g:26218:5: ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0);
+        // InternalTableDSL.g:26224:5: ( ( rule__TableTable__SelectalwaysAssignment_2_0 ) )
+        // InternalTableDSL.g:26225:6: ( rule__TableTable__SelectalwaysAssignment_2_0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableTableAccess().getSelectalwaysAssignment_2_0()); 
+        }
+        // InternalTableDSL.g:26226:6: ( rule__TableTable__SelectalwaysAssignment_2_0 )
+        // InternalTableDSL.g:26226:7: rule__TableTable__SelectalwaysAssignment_2_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__SelectalwaysAssignment_2_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred271_InternalTableDSL
+
+    // $ANTLR start synpred272_InternalTableDSL
+    public final void synpred272_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26231:3: ( ({...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) ) ) )
+        // InternalTableDSL.g:26231:3: ({...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) ) )
+        {
+        // InternalTableDSL.g:26231:3: ({...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) ) )
+        // InternalTableDSL.g:26232:4: {...}? => ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred272_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1)");
+        }
+        // InternalTableDSL.g:26232:106: ( ( ( rule__TableTable__SelectByIdAssignment_2_1 ) ) )
+        // InternalTableDSL.g:26233:5: ( ( rule__TableTable__SelectByIdAssignment_2_1 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1);
+        // InternalTableDSL.g:26239:5: ( ( rule__TableTable__SelectByIdAssignment_2_1 ) )
+        // InternalTableDSL.g:26240:6: ( rule__TableTable__SelectByIdAssignment_2_1 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableTableAccess().getSelectByIdAssignment_2_1()); 
+        }
+        // InternalTableDSL.g:26241:6: ( rule__TableTable__SelectByIdAssignment_2_1 )
+        // InternalTableDSL.g:26241:7: rule__TableTable__SelectByIdAssignment_2_1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__SelectByIdAssignment_2_1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred272_InternalTableDSL
+
+    // $ANTLR start synpred273_InternalTableDSL
+    public final void synpred273_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26246:3: ( ({...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) ) ) )
+        // InternalTableDSL.g:26246:3: ({...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) ) )
+        {
+        // InternalTableDSL.g:26246:3: ({...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) ) )
+        // InternalTableDSL.g:26247:4: {...}? => ( ( ( rule__TableTable__Group_2_2__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred273_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2)");
+        }
+        // InternalTableDSL.g:26247:106: ( ( ( rule__TableTable__Group_2_2__0 ) ) )
+        // InternalTableDSL.g:26248:5: ( ( rule__TableTable__Group_2_2__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2);
+        // InternalTableDSL.g:26254:5: ( ( rule__TableTable__Group_2_2__0 ) )
+        // InternalTableDSL.g:26255:6: ( rule__TableTable__Group_2_2__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableTableAccess().getGroup_2_2()); 
+        }
+        // InternalTableDSL.g:26256:6: ( rule__TableTable__Group_2_2__0 )
+        // InternalTableDSL.g:26256:7: rule__TableTable__Group_2_2__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__Group_2_2__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred273_InternalTableDSL
+
+    // $ANTLR start synpred274_InternalTableDSL
+    public final void synpred274_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26261:3: ( ({...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) ) ) )
+        // InternalTableDSL.g:26261:3: ({...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) ) )
+        {
+        // InternalTableDSL.g:26261:3: ({...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) ) )
+        // InternalTableDSL.g:26262:4: {...}? => ( ( ( rule__TableTable__Group_2_3__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred274_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3)");
+        }
+        // InternalTableDSL.g:26262:106: ( ( ( rule__TableTable__Group_2_3__0 ) ) )
+        // InternalTableDSL.g:26263:5: ( ( rule__TableTable__Group_2_3__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3);
+        // InternalTableDSL.g:26269:5: ( ( rule__TableTable__Group_2_3__0 ) )
+        // InternalTableDSL.g:26270:6: ( rule__TableTable__Group_2_3__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableTableAccess().getGroup_2_3()); 
+        }
+        // InternalTableDSL.g:26271:6: ( rule__TableTable__Group_2_3__0 )
+        // InternalTableDSL.g:26271:7: rule__TableTable__Group_2_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__Group_2_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred274_InternalTableDSL
+
+    // $ANTLR start synpred275_InternalTableDSL
+    public final void synpred275_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26276:3: ( ({...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) ) ) )
+        // InternalTableDSL.g:26276:3: ({...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) ) )
+        {
+        // InternalTableDSL.g:26276:3: ({...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) ) )
+        // InternalTableDSL.g:26277:4: {...}? => ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred275_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4)");
+        }
+        // InternalTableDSL.g:26277:106: ( ( ( rule__TableTable__FilteringAssignment_2_4 ) ) )
+        // InternalTableDSL.g:26278:5: ( ( rule__TableTable__FilteringAssignment_2_4 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4);
+        // InternalTableDSL.g:26284:5: ( ( rule__TableTable__FilteringAssignment_2_4 ) )
+        // InternalTableDSL.g:26285:6: ( rule__TableTable__FilteringAssignment_2_4 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableTableAccess().getFilteringAssignment_2_4()); 
+        }
+        // InternalTableDSL.g:26286:6: ( rule__TableTable__FilteringAssignment_2_4 )
+        // InternalTableDSL.g:26286:7: rule__TableTable__FilteringAssignment_2_4
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__FilteringAssignment_2_4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred275_InternalTableDSL
+
+    // $ANTLR start synpred276_InternalTableDSL
+    public final void synpred276_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26291:3: ( ({...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) ) ) )
+        // InternalTableDSL.g:26291:3: ({...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) ) )
+        {
+        // InternalTableDSL.g:26291:3: ({...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) ) )
+        // InternalTableDSL.g:26292:4: {...}? => ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred276_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5)");
+        }
+        // InternalTableDSL.g:26292:106: ( ( ( rule__TableTable__EmbeddedAssignment_2_5 ) ) )
+        // InternalTableDSL.g:26293:5: ( ( rule__TableTable__EmbeddedAssignment_2_5 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5);
+        // InternalTableDSL.g:26299:5: ( ( rule__TableTable__EmbeddedAssignment_2_5 ) )
+        // InternalTableDSL.g:26300:6: ( rule__TableTable__EmbeddedAssignment_2_5 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableTableAccess().getEmbeddedAssignment_2_5()); 
+        }
+        // InternalTableDSL.g:26301:6: ( rule__TableTable__EmbeddedAssignment_2_5 )
+        // InternalTableDSL.g:26301:7: rule__TableTable__EmbeddedAssignment_2_5
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__EmbeddedAssignment_2_5();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred276_InternalTableDSL
+
+    // $ANTLR start synpred277_InternalTableDSL
+    public final void synpred277_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26335:2: ( rule__TableTable__UnorderedGroup_2__1 )
+        // InternalTableDSL.g:26335:2: rule__TableTable__UnorderedGroup_2__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__UnorderedGroup_2__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred277_InternalTableDSL
+
+    // $ANTLR start synpred278_InternalTableDSL
+    public final void synpred278_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26347:2: ( rule__TableTable__UnorderedGroup_2__2 )
+        // InternalTableDSL.g:26347:2: rule__TableTable__UnorderedGroup_2__2
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__UnorderedGroup_2__2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred278_InternalTableDSL
+
+    // $ANTLR start synpred279_InternalTableDSL
+    public final void synpred279_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26359:2: ( rule__TableTable__UnorderedGroup_2__3 )
+        // InternalTableDSL.g:26359:2: rule__TableTable__UnorderedGroup_2__3
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__UnorderedGroup_2__3();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred279_InternalTableDSL
+
+    // $ANTLR start synpred280_InternalTableDSL
+    public final void synpred280_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26371:2: ( rule__TableTable__UnorderedGroup_2__4 )
+        // InternalTableDSL.g:26371:2: rule__TableTable__UnorderedGroup_2__4
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__UnorderedGroup_2__4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred280_InternalTableDSL
+
+    // $ANTLR start synpred281_InternalTableDSL
+    public final void synpred281_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26383:2: ( rule__TableTable__UnorderedGroup_2__5 )
+        // InternalTableDSL.g:26383:2: rule__TableTable__UnorderedGroup_2__5
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__UnorderedGroup_2__5();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred281_InternalTableDSL
+
+    // $ANTLR start synpred282_InternalTableDSL
+    public final void synpred282_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26395:2: ( rule__TableTable__UnorderedGroup_2__6 )
+        // InternalTableDSL.g:26395:2: rule__TableTable__UnorderedGroup_2__6
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableTable__UnorderedGroup_2__6();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred282_InternalTableDSL
+
+    // $ANTLR start synpred283_InternalTableDSL
+    public final void synpred283_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26419:2: ( rule__TableBean__UnorderedGroup_2__0 )
+        // InternalTableDSL.g:26419:2: rule__TableBean__UnorderedGroup_2__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__UnorderedGroup_2__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred283_InternalTableDSL
+
+    // $ANTLR start synpred284_InternalTableDSL
+    public final void synpred284_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26434:3: ( ({...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) ) ) )
+        // InternalTableDSL.g:26434:3: ({...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) ) )
+        {
+        // InternalTableDSL.g:26434:3: ({...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) ) )
+        // InternalTableDSL.g:26435:4: {...}? => ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred284_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0)");
+        }
+        // InternalTableDSL.g:26435:105: ( ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) ) )
+        // InternalTableDSL.g:26436:5: ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0);
+        // InternalTableDSL.g:26442:5: ( ( rule__TableBean__SelectalwaysAssignment_2_0 ) )
+        // InternalTableDSL.g:26443:6: ( rule__TableBean__SelectalwaysAssignment_2_0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableBeanAccess().getSelectalwaysAssignment_2_0()); 
+        }
+        // InternalTableDSL.g:26444:6: ( rule__TableBean__SelectalwaysAssignment_2_0 )
+        // InternalTableDSL.g:26444:7: rule__TableBean__SelectalwaysAssignment_2_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__SelectalwaysAssignment_2_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred284_InternalTableDSL
+
+    // $ANTLR start synpred285_InternalTableDSL
+    public final void synpred285_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26449:3: ( ({...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) ) ) )
+        // InternalTableDSL.g:26449:3: ({...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) ) )
+        {
+        // InternalTableDSL.g:26449:3: ({...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) ) )
+        // InternalTableDSL.g:26450:4: {...}? => ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred285_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1)");
+        }
+        // InternalTableDSL.g:26450:105: ( ( ( rule__TableBean__SelectByIdAssignment_2_1 ) ) )
+        // InternalTableDSL.g:26451:5: ( ( rule__TableBean__SelectByIdAssignment_2_1 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1);
+        // InternalTableDSL.g:26457:5: ( ( rule__TableBean__SelectByIdAssignment_2_1 ) )
+        // InternalTableDSL.g:26458:6: ( rule__TableBean__SelectByIdAssignment_2_1 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableBeanAccess().getSelectByIdAssignment_2_1()); 
+        }
+        // InternalTableDSL.g:26459:6: ( rule__TableBean__SelectByIdAssignment_2_1 )
+        // InternalTableDSL.g:26459:7: rule__TableBean__SelectByIdAssignment_2_1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__SelectByIdAssignment_2_1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred285_InternalTableDSL
+
+    // $ANTLR start synpred286_InternalTableDSL
+    public final void synpred286_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26464:3: ( ({...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) ) ) )
+        // InternalTableDSL.g:26464:3: ({...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) ) )
+        {
+        // InternalTableDSL.g:26464:3: ({...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) ) )
+        // InternalTableDSL.g:26465:4: {...}? => ( ( ( rule__TableBean__Group_2_2__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred286_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2)");
+        }
+        // InternalTableDSL.g:26465:105: ( ( ( rule__TableBean__Group_2_2__0 ) ) )
+        // InternalTableDSL.g:26466:5: ( ( rule__TableBean__Group_2_2__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2);
+        // InternalTableDSL.g:26472:5: ( ( rule__TableBean__Group_2_2__0 ) )
+        // InternalTableDSL.g:26473:6: ( rule__TableBean__Group_2_2__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableBeanAccess().getGroup_2_2()); 
+        }
+        // InternalTableDSL.g:26474:6: ( rule__TableBean__Group_2_2__0 )
+        // InternalTableDSL.g:26474:7: rule__TableBean__Group_2_2__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__Group_2_2__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred286_InternalTableDSL
+
+    // $ANTLR start synpred287_InternalTableDSL
+    public final void synpred287_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26479:3: ( ({...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) ) ) )
+        // InternalTableDSL.g:26479:3: ({...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) ) )
+        {
+        // InternalTableDSL.g:26479:3: ({...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) ) )
+        // InternalTableDSL.g:26480:4: {...}? => ( ( ( rule__TableBean__Group_2_3__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred287_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3)");
+        }
+        // InternalTableDSL.g:26480:105: ( ( ( rule__TableBean__Group_2_3__0 ) ) )
+        // InternalTableDSL.g:26481:5: ( ( rule__TableBean__Group_2_3__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3);
+        // InternalTableDSL.g:26487:5: ( ( rule__TableBean__Group_2_3__0 ) )
+        // InternalTableDSL.g:26488:6: ( rule__TableBean__Group_2_3__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableBeanAccess().getGroup_2_3()); 
+        }
+        // InternalTableDSL.g:26489:6: ( rule__TableBean__Group_2_3__0 )
+        // InternalTableDSL.g:26489:7: rule__TableBean__Group_2_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__Group_2_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred287_InternalTableDSL
+
+    // $ANTLR start synpred288_InternalTableDSL
+    public final void synpred288_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26494:3: ( ({...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) ) ) )
+        // InternalTableDSL.g:26494:3: ({...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) ) )
+        {
+        // InternalTableDSL.g:26494:3: ({...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) ) )
+        // InternalTableDSL.g:26495:4: {...}? => ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred288_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4)");
+        }
+        // InternalTableDSL.g:26495:105: ( ( ( rule__TableBean__FilteringAssignment_2_4 ) ) )
+        // InternalTableDSL.g:26496:5: ( ( rule__TableBean__FilteringAssignment_2_4 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4);
+        // InternalTableDSL.g:26502:5: ( ( rule__TableBean__FilteringAssignment_2_4 ) )
+        // InternalTableDSL.g:26503:6: ( rule__TableBean__FilteringAssignment_2_4 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableBeanAccess().getFilteringAssignment_2_4()); 
+        }
+        // InternalTableDSL.g:26504:6: ( rule__TableBean__FilteringAssignment_2_4 )
+        // InternalTableDSL.g:26504:7: rule__TableBean__FilteringAssignment_2_4
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__FilteringAssignment_2_4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred288_InternalTableDSL
+
+    // $ANTLR start synpred289_InternalTableDSL
+    public final void synpred289_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26509:3: ( ({...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) ) ) )
+        // InternalTableDSL.g:26509:3: ({...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) ) )
+        {
+        // InternalTableDSL.g:26509:3: ({...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) ) )
+        // InternalTableDSL.g:26510:4: {...}? => ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred289_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5)");
+        }
+        // InternalTableDSL.g:26510:105: ( ( ( rule__TableBean__EmbeddedAssignment_2_5 ) ) )
+        // InternalTableDSL.g:26511:5: ( ( rule__TableBean__EmbeddedAssignment_2_5 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5);
+        // InternalTableDSL.g:26517:5: ( ( rule__TableBean__EmbeddedAssignment_2_5 ) )
+        // InternalTableDSL.g:26518:6: ( rule__TableBean__EmbeddedAssignment_2_5 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableBeanAccess().getEmbeddedAssignment_2_5()); 
+        }
+        // InternalTableDSL.g:26519:6: ( rule__TableBean__EmbeddedAssignment_2_5 )
+        // InternalTableDSL.g:26519:7: rule__TableBean__EmbeddedAssignment_2_5
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__EmbeddedAssignment_2_5();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred289_InternalTableDSL
+
+    // $ANTLR start synpred290_InternalTableDSL
+    public final void synpred290_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26553:2: ( rule__TableBean__UnorderedGroup_2__1 )
+        // InternalTableDSL.g:26553:2: rule__TableBean__UnorderedGroup_2__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__UnorderedGroup_2__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred290_InternalTableDSL
+
+    // $ANTLR start synpred291_InternalTableDSL
+    public final void synpred291_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26565:2: ( rule__TableBean__UnorderedGroup_2__2 )
+        // InternalTableDSL.g:26565:2: rule__TableBean__UnorderedGroup_2__2
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__UnorderedGroup_2__2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred291_InternalTableDSL
+
+    // $ANTLR start synpred292_InternalTableDSL
+    public final void synpred292_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26577:2: ( rule__TableBean__UnorderedGroup_2__3 )
+        // InternalTableDSL.g:26577:2: rule__TableBean__UnorderedGroup_2__3
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__UnorderedGroup_2__3();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred292_InternalTableDSL
+
+    // $ANTLR start synpred293_InternalTableDSL
+    public final void synpred293_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26589:2: ( rule__TableBean__UnorderedGroup_2__4 )
+        // InternalTableDSL.g:26589:2: rule__TableBean__UnorderedGroup_2__4
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__UnorderedGroup_2__4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred293_InternalTableDSL
+
+    // $ANTLR start synpred294_InternalTableDSL
+    public final void synpred294_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26601:2: ( rule__TableBean__UnorderedGroup_2__5 )
+        // InternalTableDSL.g:26601:2: rule__TableBean__UnorderedGroup_2__5
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__UnorderedGroup_2__5();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred294_InternalTableDSL
+
+    // $ANTLR start synpred295_InternalTableDSL
+    public final void synpred295_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26613:2: ( rule__TableBean__UnorderedGroup_2__6 )
+        // InternalTableDSL.g:26613:2: rule__TableBean__UnorderedGroup_2__6
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableBean__UnorderedGroup_2__6();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred295_InternalTableDSL
+
+    // $ANTLR start synpred296_InternalTableDSL
+    public final void synpred296_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26637:2: ( rule__TableValue__UnorderedGroup_3__0 )
+        // InternalTableDSL.g:26637:2: rule__TableValue__UnorderedGroup_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__UnorderedGroup_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred296_InternalTableDSL
+
+    // $ANTLR start synpred297_InternalTableDSL
+    public final void synpred297_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26652:3: ( ({...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) ) ) )
+        // InternalTableDSL.g:26652:3: ({...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) ) )
+        {
+        // InternalTableDSL.g:26652:3: ({...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) ) )
+        // InternalTableDSL.g:26653:4: {...}? => ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred297_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0)");
+        }
+        // InternalTableDSL.g:26653:106: ( ( ( rule__TableValue__CollapsedAssignment_3_0 ) ) )
+        // InternalTableDSL.g:26654:5: ( ( rule__TableValue__CollapsedAssignment_3_0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0);
+        // InternalTableDSL.g:26660:5: ( ( rule__TableValue__CollapsedAssignment_3_0 ) )
+        // InternalTableDSL.g:26661:6: ( rule__TableValue__CollapsedAssignment_3_0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableValueAccess().getCollapsedAssignment_3_0()); 
+        }
+        // InternalTableDSL.g:26662:6: ( rule__TableValue__CollapsedAssignment_3_0 )
+        // InternalTableDSL.g:26662:7: rule__TableValue__CollapsedAssignment_3_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__CollapsedAssignment_3_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred297_InternalTableDSL
+
+    // $ANTLR start synpred298_InternalTableDSL
+    public final void synpred298_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26667:3: ( ({...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) ) ) )
+        // InternalTableDSL.g:26667:3: ({...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) ) )
+        {
+        // InternalTableDSL.g:26667:3: ({...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) ) )
+        // InternalTableDSL.g:26668:4: {...}? => ( ( ( rule__TableValue__Group_3_1__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred298_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1)");
+        }
+        // InternalTableDSL.g:26668:106: ( ( ( rule__TableValue__Group_3_1__0 ) ) )
+        // InternalTableDSL.g:26669:5: ( ( rule__TableValue__Group_3_1__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1);
+        // InternalTableDSL.g:26675:5: ( ( rule__TableValue__Group_3_1__0 ) )
+        // InternalTableDSL.g:26676:6: ( rule__TableValue__Group_3_1__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableValueAccess().getGroup_3_1()); 
+        }
+        // InternalTableDSL.g:26677:6: ( rule__TableValue__Group_3_1__0 )
+        // InternalTableDSL.g:26677:7: rule__TableValue__Group_3_1__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__Group_3_1__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred298_InternalTableDSL
+
+    // $ANTLR start synpred299_InternalTableDSL
+    public final void synpred299_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26682:3: ( ({...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) ) ) )
+        // InternalTableDSL.g:26682:3: ({...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) ) )
+        {
+        // InternalTableDSL.g:26682:3: ({...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) ) )
+        // InternalTableDSL.g:26683:4: {...}? => ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred299_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2)");
+        }
+        // InternalTableDSL.g:26683:106: ( ( ( rule__TableValue__FormatterAssignment_3_2 ) ) )
+        // InternalTableDSL.g:26684:5: ( ( rule__TableValue__FormatterAssignment_3_2 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2);
+        // InternalTableDSL.g:26690:5: ( ( rule__TableValue__FormatterAssignment_3_2 ) )
+        // InternalTableDSL.g:26691:6: ( rule__TableValue__FormatterAssignment_3_2 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableValueAccess().getFormatterAssignment_3_2()); 
+        }
+        // InternalTableDSL.g:26692:6: ( rule__TableValue__FormatterAssignment_3_2 )
+        // InternalTableDSL.g:26692:7: rule__TableValue__FormatterAssignment_3_2
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__FormatterAssignment_3_2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred299_InternalTableDSL
+
+    // $ANTLR start synpred300_InternalTableDSL
+    public final void synpred300_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26697:3: ( ({...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) ) ) )
+        // InternalTableDSL.g:26697:3: ({...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) ) )
+        {
+        // InternalTableDSL.g:26697:3: ({...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) ) )
+        // InternalTableDSL.g:26698:4: {...}? => ( ( ( rule__TableValue__Group_3_3__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred300_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3)");
+        }
+        // InternalTableDSL.g:26698:106: ( ( ( rule__TableValue__Group_3_3__0 ) ) )
+        // InternalTableDSL.g:26699:5: ( ( rule__TableValue__Group_3_3__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3);
+        // InternalTableDSL.g:26705:5: ( ( rule__TableValue__Group_3_3__0 ) )
+        // InternalTableDSL.g:26706:6: ( rule__TableValue__Group_3_3__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableValueAccess().getGroup_3_3()); 
+        }
+        // InternalTableDSL.g:26707:6: ( rule__TableValue__Group_3_3__0 )
+        // InternalTableDSL.g:26707:7: rule__TableValue__Group_3_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__Group_3_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred300_InternalTableDSL
+
+    // $ANTLR start synpred301_InternalTableDSL
+    public final void synpred301_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26741:2: ( rule__TableValue__UnorderedGroup_3__1 )
+        // InternalTableDSL.g:26741:2: rule__TableValue__UnorderedGroup_3__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__UnorderedGroup_3__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred301_InternalTableDSL
+
+    // $ANTLR start synpred302_InternalTableDSL
+    public final void synpred302_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26753:2: ( rule__TableValue__UnorderedGroup_3__2 )
+        // InternalTableDSL.g:26753:2: rule__TableValue__UnorderedGroup_3__2
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__UnorderedGroup_3__2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred302_InternalTableDSL
+
+    // $ANTLR start synpred303_InternalTableDSL
+    public final void synpred303_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26765:2: ( rule__TableValue__UnorderedGroup_3__3 )
+        // InternalTableDSL.g:26765:2: rule__TableValue__UnorderedGroup_3__3
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__UnorderedGroup_3__3();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred303_InternalTableDSL
+
+    // $ANTLR start synpred304_InternalTableDSL
+    public final void synpred304_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26777:2: ( rule__TableValue__UnorderedGroup_3__4 )
+        // InternalTableDSL.g:26777:2: rule__TableValue__UnorderedGroup_3__4
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__UnorderedGroup_3__4();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred304_InternalTableDSL
+
+    // $ANTLR start synpred305_InternalTableDSL
+    public final void synpred305_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26801:2: ( rule__TableValue__UnorderedGroup_4__0 )
+        // InternalTableDSL.g:26801:2: rule__TableValue__UnorderedGroup_4__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__UnorderedGroup_4__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred305_InternalTableDSL
+
+    // $ANTLR start synpred306_InternalTableDSL
+    public final void synpred306_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26816:3: ( ({...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) ) ) )
+        // InternalTableDSL.g:26816:3: ({...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) ) )
+        {
+        // InternalTableDSL.g:26816:3: ({...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) ) )
+        // InternalTableDSL.g:26817:4: {...}? => ( ( ( rule__TableValue__Group_4_0__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred306_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0)");
+        }
+        // InternalTableDSL.g:26817:106: ( ( ( rule__TableValue__Group_4_0__0 ) ) )
+        // InternalTableDSL.g:26818:5: ( ( rule__TableValue__Group_4_0__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0);
+        // InternalTableDSL.g:26824:5: ( ( rule__TableValue__Group_4_0__0 ) )
+        // InternalTableDSL.g:26825:6: ( rule__TableValue__Group_4_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableValueAccess().getGroup_4_0()); 
+        }
+        // InternalTableDSL.g:26826:6: ( rule__TableValue__Group_4_0__0 )
+        // InternalTableDSL.g:26826:7: rule__TableValue__Group_4_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__Group_4_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred306_InternalTableDSL
+
+    // $ANTLR start synpred307_InternalTableDSL
+    public final void synpred307_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26860:2: ( rule__TableValue__UnorderedGroup_4__1 )
+        // InternalTableDSL.g:26860:2: rule__TableValue__UnorderedGroup_4__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableValue__UnorderedGroup_4__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred307_InternalTableDSL
+
+    // $ANTLR start synpred308_InternalTableDSL
+    public final void synpred308_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26884:2: ( rule__TableImage__UnorderedGroup_3__0 )
+        // InternalTableDSL.g:26884:2: rule__TableImage__UnorderedGroup_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableImage__UnorderedGroup_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred308_InternalTableDSL
+
+    // $ANTLR start synpred309_InternalTableDSL
+    public final void synpred309_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26899:3: ( ({...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) ) ) )
+        // InternalTableDSL.g:26899:3: ({...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) ) )
+        {
+        // InternalTableDSL.g:26899:3: ({...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) ) )
+        // InternalTableDSL.g:26900:4: {...}? => ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred309_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0)");
+        }
+        // InternalTableDSL.g:26900:106: ( ( ( rule__TableImage__HasParameterAssignment_3_0 ) ) )
+        // InternalTableDSL.g:26901:5: ( ( rule__TableImage__HasParameterAssignment_3_0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0);
+        // InternalTableDSL.g:26907:5: ( ( rule__TableImage__HasParameterAssignment_3_0 ) )
+        // InternalTableDSL.g:26908:6: ( rule__TableImage__HasParameterAssignment_3_0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableImageAccess().getHasParameterAssignment_3_0()); 
+        }
+        // InternalTableDSL.g:26909:6: ( rule__TableImage__HasParameterAssignment_3_0 )
+        // InternalTableDSL.g:26909:7: rule__TableImage__HasParameterAssignment_3_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableImage__HasParameterAssignment_3_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred309_InternalTableDSL
+
+    // $ANTLR start synpred310_InternalTableDSL
+    public final void synpred310_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26914:3: ( ({...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) ) ) )
+        // InternalTableDSL.g:26914:3: ({...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) ) )
+        {
+        // InternalTableDSL.g:26914:3: ({...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) ) )
+        // InternalTableDSL.g:26915:4: {...}? => ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred310_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1)");
+        }
+        // InternalTableDSL.g:26915:106: ( ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) ) )
+        // InternalTableDSL.g:26916:5: ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1);
+        // InternalTableDSL.g:26922:5: ( ( rule__TableImage__HideImageLabelAssignment_3_1 ) )
+        // InternalTableDSL.g:26923:6: ( rule__TableImage__HideImageLabelAssignment_3_1 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableImageAccess().getHideImageLabelAssignment_3_1()); 
+        }
+        // InternalTableDSL.g:26924:6: ( rule__TableImage__HideImageLabelAssignment_3_1 )
+        // InternalTableDSL.g:26924:7: rule__TableImage__HideImageLabelAssignment_3_1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableImage__HideImageLabelAssignment_3_1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred310_InternalTableDSL
+
+    // $ANTLR start synpred311_InternalTableDSL
+    public final void synpred311_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26958:2: ( rule__TableImage__UnorderedGroup_3__1 )
+        // InternalTableDSL.g:26958:2: rule__TableImage__UnorderedGroup_3__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableImage__UnorderedGroup_3__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred311_InternalTableDSL
+
+    // $ANTLR start synpred312_InternalTableDSL
+    public final void synpred312_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26970:2: ( rule__TableImage__UnorderedGroup_3__2 )
+        // InternalTableDSL.g:26970:2: rule__TableImage__UnorderedGroup_3__2
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableImage__UnorderedGroup_3__2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred312_InternalTableDSL
+
+    // $ANTLR start synpred313_InternalTableDSL
+    public final void synpred313_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:26994:2: ( rule__TableAxis__UnorderedGroup_2__0 )
+        // InternalTableDSL.g:26994:2: rule__TableAxis__UnorderedGroup_2__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableAxis__UnorderedGroup_2__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred313_InternalTableDSL
+
+    // $ANTLR start synpred314_InternalTableDSL
+    public final void synpred314_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27009:3: ( ({...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) ) ) )
+        // InternalTableDSL.g:27009:3: ({...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) ) )
+        {
+        // InternalTableDSL.g:27009:3: ({...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) ) )
+        // InternalTableDSL.g:27010:4: {...}? => ( ( ( rule__TableAxis__Group_2_0__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred314_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0)");
+        }
+        // InternalTableDSL.g:27010:105: ( ( ( rule__TableAxis__Group_2_0__0 ) ) )
+        // InternalTableDSL.g:27011:5: ( ( rule__TableAxis__Group_2_0__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0);
+        // InternalTableDSL.g:27017:5: ( ( rule__TableAxis__Group_2_0__0 ) )
+        // InternalTableDSL.g:27018:6: ( rule__TableAxis__Group_2_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableAxisAccess().getGroup_2_0()); 
+        }
+        // InternalTableDSL.g:27019:6: ( rule__TableAxis__Group_2_0__0 )
+        // InternalTableDSL.g:27019:7: rule__TableAxis__Group_2_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableAxis__Group_2_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred314_InternalTableDSL
+
+    // $ANTLR start synpred315_InternalTableDSL
+    public final void synpred315_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27053:2: ( rule__TableAxis__UnorderedGroup_2__1 )
+        // InternalTableDSL.g:27053:2: rule__TableAxis__UnorderedGroup_2__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableAxis__UnorderedGroup_2__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred315_InternalTableDSL
+
+    // $ANTLR start synpred316_InternalTableDSL
+    public final void synpred316_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27077:2: ( rule__TableGrid__UnorderedGroup_2__0 )
+        // InternalTableDSL.g:27077:2: rule__TableGrid__UnorderedGroup_2__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableGrid__UnorderedGroup_2__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred316_InternalTableDSL
+
+    // $ANTLR start synpred317_InternalTableDSL
+    public final void synpred317_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27092:3: ( ({...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) ) ) )
+        // InternalTableDSL.g:27092:3: ({...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) ) )
+        {
+        // InternalTableDSL.g:27092:3: ({...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) ) )
+        // InternalTableDSL.g:27093:4: {...}? => ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred317_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0)");
+        }
+        // InternalTableDSL.g:27093:105: ( ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) ) )
+        // InternalTableDSL.g:27094:5: ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0);
+        // InternalTableDSL.g:27100:5: ( ( rule__TableGrid__SelectalwaysAssignment_2_0 ) )
+        // InternalTableDSL.g:27101:6: ( rule__TableGrid__SelectalwaysAssignment_2_0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableGridAccess().getSelectalwaysAssignment_2_0()); 
+        }
+        // InternalTableDSL.g:27102:6: ( rule__TableGrid__SelectalwaysAssignment_2_0 )
+        // InternalTableDSL.g:27102:7: rule__TableGrid__SelectalwaysAssignment_2_0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableGrid__SelectalwaysAssignment_2_0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred317_InternalTableDSL
+
+    // $ANTLR start synpred318_InternalTableDSL
+    public final void synpred318_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27136:2: ( rule__TableGrid__UnorderedGroup_2__1 )
+        // InternalTableDSL.g:27136:2: rule__TableGrid__UnorderedGroup_2__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableGrid__UnorderedGroup_2__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred318_InternalTableDSL
+
+    // $ANTLR start synpred319_InternalTableDSL
+    public final void synpred319_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27160:2: ( rule__TableGrid__UnorderedGroup_3__0 )
+        // InternalTableDSL.g:27160:2: rule__TableGrid__UnorderedGroup_3__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableGrid__UnorderedGroup_3__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred319_InternalTableDSL
+
+    // $ANTLR start synpred320_InternalTableDSL
+    public final void synpred320_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27175:3: ( ({...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) ) ) )
+        // InternalTableDSL.g:27175:3: ({...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) ) )
+        {
+        // InternalTableDSL.g:27175:3: ({...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) ) )
+        // InternalTableDSL.g:27176:4: {...}? => ( ( ( rule__TableGrid__Group_3_0__0 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred320_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0)");
+        }
+        // InternalTableDSL.g:27176:105: ( ( ( rule__TableGrid__Group_3_0__0 ) ) )
+        // InternalTableDSL.g:27177:5: ( ( rule__TableGrid__Group_3_0__0 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0);
+        // InternalTableDSL.g:27183:5: ( ( rule__TableGrid__Group_3_0__0 ) )
+        // InternalTableDSL.g:27184:6: ( rule__TableGrid__Group_3_0__0 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableGridAccess().getGroup_3_0()); 
+        }
+        // InternalTableDSL.g:27185:6: ( rule__TableGrid__Group_3_0__0 )
+        // InternalTableDSL.g:27185:7: rule__TableGrid__Group_3_0__0
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableGrid__Group_3_0__0();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred320_InternalTableDSL
+
+    // $ANTLR start synpred321_InternalTableDSL
+    public final void synpred321_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27190:3: ( ({...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) ) ) )
+        // InternalTableDSL.g:27190:3: ({...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) ) )
+        {
+        // InternalTableDSL.g:27190:3: ({...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) ) )
+        // InternalTableDSL.g:27191:4: {...}? => ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred321_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1)");
+        }
+        // InternalTableDSL.g:27191:105: ( ( ( rule__TableGrid__FilteringAssignment_3_1 ) ) )
+        // InternalTableDSL.g:27192:5: ( ( rule__TableGrid__FilteringAssignment_3_1 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1);
+        // InternalTableDSL.g:27198:5: ( ( rule__TableGrid__FilteringAssignment_3_1 ) )
+        // InternalTableDSL.g:27199:6: ( rule__TableGrid__FilteringAssignment_3_1 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableGridAccess().getFilteringAssignment_3_1()); 
+        }
+        // InternalTableDSL.g:27200:6: ( rule__TableGrid__FilteringAssignment_3_1 )
+        // InternalTableDSL.g:27200:7: rule__TableGrid__FilteringAssignment_3_1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableGrid__FilteringAssignment_3_1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred321_InternalTableDSL
+
+    // $ANTLR start synpred322_InternalTableDSL
+    public final void synpred322_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27205:3: ( ({...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) ) ) )
+        // InternalTableDSL.g:27205:3: ({...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) ) )
+        {
+        // InternalTableDSL.g:27205:3: ({...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) ) )
+        // InternalTableDSL.g:27206:4: {...}? => ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) )
+        {
+        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2) ) {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            throw new FailedPredicateException(input, "synpred322_InternalTableDSL", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2)");
+        }
+        // InternalTableDSL.g:27206:105: ( ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) ) )
+        // InternalTableDSL.g:27207:5: ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) )
+        {
+        getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2);
+        // InternalTableDSL.g:27213:5: ( ( rule__TableGrid__EmbeddedAssignment_3_2 ) )
+        // InternalTableDSL.g:27214:6: ( rule__TableGrid__EmbeddedAssignment_3_2 )
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getTableGridAccess().getEmbeddedAssignment_3_2()); 
+        }
+        // InternalTableDSL.g:27215:6: ( rule__TableGrid__EmbeddedAssignment_3_2 )
+        // InternalTableDSL.g:27215:7: rule__TableGrid__EmbeddedAssignment_3_2
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableGrid__EmbeddedAssignment_3_2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred322_InternalTableDSL
+
+    // $ANTLR start synpred323_InternalTableDSL
+    public final void synpred323_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27249:2: ( rule__TableGrid__UnorderedGroup_3__1 )
+        // InternalTableDSL.g:27249:2: rule__TableGrid__UnorderedGroup_3__1
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableGrid__UnorderedGroup_3__1();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred323_InternalTableDSL
+
+    // $ANTLR start synpred324_InternalTableDSL
+    public final void synpred324_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27261:2: ( rule__TableGrid__UnorderedGroup_3__2 )
+        // InternalTableDSL.g:27261:2: rule__TableGrid__UnorderedGroup_3__2
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableGrid__UnorderedGroup_3__2();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred324_InternalTableDSL
+
+    // $ANTLR start synpred325_InternalTableDSL
+    public final void synpred325_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:27273:2: ( rule__TableGrid__UnorderedGroup_3__3 )
+        // InternalTableDSL.g:27273:2: rule__TableGrid__UnorderedGroup_3__3
+        {
+        pushFollow(FOLLOW_2);
+        rule__TableGrid__UnorderedGroup_3__3();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred325_InternalTableDSL
+
+    // Delegated rules
+
+    public final boolean synpred291_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred291_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred283_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred283_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred196_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred196_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred303_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred303_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred259_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred259_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred301_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred301_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred265_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred265_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred68_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred68_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred194_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred194_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred273_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred273_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred230_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred230_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred41_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred41_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred269_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred269_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred321_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred321_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred281_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred281_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred242_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred242_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred192_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred192_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred214_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred214_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred263_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred263_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred311_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred311_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred245_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred245_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred271_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred271_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred253_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred253_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred191_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred191_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred279_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred279_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred324_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred324_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred90_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred90_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred261_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred261_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred114_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred114_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred244_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred244_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred287_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred287_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred316_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred316_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred108_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred108_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred260_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred260_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred278_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred278_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred325_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred325_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred295_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred295_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred308_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred308_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred322_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred322_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred89_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred89_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred247_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred247_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred286_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred286_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred317_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred317_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred198_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred198_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred313_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred313_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred264_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred264_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred280_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred280_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred40_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred40_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred298_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred298_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred305_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred305_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred272_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred272_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred267_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred267_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred236_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred236_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred275_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred275_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred302_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred302_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred207_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred207_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred266_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred266_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred231_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred231_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred274_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred274_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred310_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred310_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred187_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred187_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred290_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred290_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred195_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred195_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred42_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred42_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred299_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred299_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred304_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred304_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred282_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred282_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred300_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred300_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred217_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred217_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred67_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred67_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred294_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred294_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred309_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred309_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred268_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred268_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred189_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred189_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred103_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred103_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred284_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred284_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred319_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred319_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred289_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred289_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred314_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred314_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred297_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred297_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred306_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred306_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred276_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred276_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred292_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred292_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred296_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred296_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred307_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred307_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred81_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred81_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred237_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred237_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred323_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred323_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred107_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred107_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred270_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred270_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred235_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred235_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred243_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred243_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred190_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred190_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred199_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred199_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred185_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred185_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred277_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred277_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred193_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred193_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred251_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred251_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred293_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred293_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred312_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred312_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred285_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred285_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred318_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred318_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred320_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred320_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred254_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred254_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred262_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred262_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred288_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred288_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred315_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred315_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred188_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred188_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+
+
+    protected DFA12 dfa12 = new DFA12(this);
+    protected DFA14 dfa14 = new DFA14(this);
+    protected DFA15 dfa15 = new DFA15(this);
+    protected DFA16 dfa16 = new DFA16(this);
+    protected DFA23 dfa23 = new DFA23(this);
+    protected DFA31 dfa31 = new DFA31(this);
+    protected DFA34 dfa34 = new DFA34(this);
+    protected DFA35 dfa35 = new DFA35(this);
+    protected DFA38 dfa38 = new DFA38(this);
+    protected DFA43 dfa43 = new DFA43(this);
+    protected DFA46 dfa46 = new DFA46(this);
+    protected DFA105 dfa105 = new DFA105(this);
+    protected DFA111 dfa111 = new DFA111(this);
+    protected DFA118 dfa118 = new DFA118(this);
+    protected DFA119 dfa119 = new DFA119(this);
+    protected DFA127 dfa127 = new DFA127(this);
+    protected DFA137 dfa137 = new DFA137(this);
+    protected DFA150 dfa150 = new DFA150(this);
+    protected DFA151 dfa151 = new DFA151(this);
+    protected DFA155 dfa155 = new DFA155(this);
+    protected DFA156 dfa156 = new DFA156(this);
+    protected DFA157 dfa157 = new DFA157(this);
+    protected DFA162 dfa162 = new DFA162(this);
+    protected DFA171 dfa171 = new DFA171(this);
+    protected DFA174 dfa174 = new DFA174(this);
+    static final String dfa_1s = "\10\uffff";
+    static final String dfa_2s = "\2\uffff\1\5\3\uffff\1\5\1\uffff";
+    static final String dfa_3s = "\1\5\1\uffff\1\56\1\uffff\1\5\1\uffff\1\56\1\uffff";
+    static final String dfa_4s = "\1\u00b7\1\uffff\1\u008b\1\uffff\1\47\1\uffff\1\u008b\1\uffff";
+    static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\uffff\1\3";
+    static final String dfa_6s = "\10\uffff}>";
+    static final String[] dfa_7s = {
+            "\1\2\53\uffff\1\1\u0085\uffff\1\3",
+            "",
+            "\1\4\3\uffff\1\5\27\uffff\1\5\100\uffff\1\5",
+            "",
+            "\1\6\41\uffff\1\7",
+            "",
+            "\1\4\3\uffff\1\5\27\uffff\1\5\100\uffff\1\5",
+            ""
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA12 extends DFA {
+
+        public DFA12(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 12;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "4147:1: rule__XImportDeclaration__Alternatives_2 : ( ( ( rule__XImportDeclaration__Group_2_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_2_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_2_2 ) ) | ( ( rule__XImportDeclaration__Group_2_3__0 ) ) );";
+        }
+    }
+    static final String dfa_8s = "\43\uffff";
+    static final String dfa_9s = "\1\4\1\0\41\uffff";
+    static final String dfa_10s = "\1\u00bc\1\0\41\uffff";
+    static final String dfa_11s = "\2\uffff\1\2\37\uffff\1\1";
+    static final String dfa_12s = "\1\uffff\1\0\41\uffff}>";
+    static final String[] dfa_13s = {
+            "\1\2\1\1\3\2\12\uffff\2\2\13\uffff\1\2\12\uffff\1\2\4\uffff\6\2\25\uffff\1\2\70\uffff\1\2\7\uffff\1\2\2\uffff\2\2\1\uffff\1\2\1\uffff\1\2\2\uffff\11\2\1\uffff\1\2\32\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_8 = DFA.unpackEncodedString(dfa_8s);
+    static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s);
+    static final char[] dfa_10 = DFA.unpackEncodedStringToUnsignedChars(dfa_10s);
+    static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s);
+    static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
+    static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
+
+    class DFA14 extends DFA {
+
+        public DFA14(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 14;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_9;
+            this.max = dfa_10;
+            this.accept = dfa_11;
+            this.special = dfa_12;
+            this.transition = dfa_13;
+        }
+        public String getDescription() {
+            return "4201:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA14_1 = input.LA(1);
+
+                         
+                        int index14_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred40_InternalTableDSL()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index14_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 14, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String[] dfa_14s = {
+            "\5\2\12\uffff\2\2\13\uffff\1\2\12\uffff\1\2\4\uffff\6\2\25\uffff\1\2\70\uffff\1\2\7\uffff\1\2\2\uffff\1\1\1\2\1\uffff\1\2\1\uffff\1\2\2\uffff\11\2\1\uffff\1\2\32\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final short[][] dfa_14 = unpackEncodedStringArray(dfa_14s);
+
+    class DFA15 extends DFA {
+
+        public DFA15(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 15;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_9;
+            this.max = dfa_10;
+            this.accept = dfa_11;
+            this.special = dfa_12;
+            this.transition = dfa_14;
+        }
+        public String getDescription() {
+            return "4222:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA15_1 = input.LA(1);
+
+                         
+                        int index15_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred41_InternalTableDSL()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index15_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 15, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA16 extends DFA {
+
+        public DFA16(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 16;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_9;
+            this.max = dfa_10;
+            this.accept = dfa_11;
+            this.special = dfa_12;
+            this.transition = dfa_14;
+        }
+        public String getDescription() {
+            return "4243:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA16_1 = input.LA(1);
+
+                         
+                        int index16_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred42_InternalTableDSL()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index16_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 16, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_15s = "\13\uffff";
+    static final String dfa_16s = "\1\37\2\uffff\1\37\7\uffff";
+    static final String dfa_17s = "\1\46\2\uffff\1\43\7\uffff";
+    static final String dfa_18s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\6\1\3";
+    static final String dfa_19s = "\13\uffff}>";
+    static final String[] dfa_20s = {
+            "\1\3\1\6\1\1\1\2\1\4\1\5\1\7\1\10",
+            "",
+            "",
+            "\1\11\3\uffff\1\12",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_15 = DFA.unpackEncodedString(dfa_15s);
+    static final char[] dfa_16 = DFA.unpackEncodedStringToUnsignedChars(dfa_16s);
+    static final char[] dfa_17 = DFA.unpackEncodedStringToUnsignedChars(dfa_17s);
+    static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s);
+    static final short[] dfa_19 = DFA.unpackEncodedString(dfa_19s);
+    static final short[][] dfa_20 = unpackEncodedStringArray(dfa_20s);
+
+    class DFA23 extends DFA {
+
+        public DFA23(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 23;
+            this.eot = dfa_15;
+            this.eof = dfa_15;
+            this.min = dfa_16;
+            this.max = dfa_17;
+            this.accept = dfa_18;
+            this.special = dfa_19;
+            this.transition = dfa_20;
+        }
+        public String getDescription() {
+            return "4444:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
+        }
+    }
+    static final String dfa_21s = "\12\uffff";
+    static final String dfa_22s = "\4\uffff\5\3\1\uffff";
+    static final String dfa_23s = "\1\56\2\5\1\uffff\5\4\1\uffff";
+    static final String dfa_24s = "\1\u00b9\2\64\1\uffff\5\u00bc\1\uffff";
+    static final String dfa_25s = "\3\uffff\1\2\5\uffff\1\1";
+    static final String dfa_26s = "\12\uffff}>";
+    static final String[] dfa_27s = {
+            "\1\1\u0089\uffff\1\2\1\3",
+            "\1\4\32\uffff\1\3\17\uffff\1\5\1\6\1\7\1\10\1\3",
+            "\1\4\32\uffff\1\3\17\uffff\1\5\1\6\1\7\1\10\1\3",
+            "",
+            "\5\3\6\uffff\1\11\2\3\1\uffff\43\3\16\uffff\1\3\6\uffff\2\3\1\uffff\1\3\65\uffff\2\3\5\uffff\1\3\1\uffff\26\3\25\uffff\2\3\1\uffff\2\3",
+            "\5\3\6\uffff\1\11\2\3\1\uffff\43\3\16\uffff\1\3\6\uffff\2\3\1\uffff\1\3\65\uffff\2\3\5\uffff\1\3\1\uffff\26\3\25\uffff\2\3\1\uffff\2\3",
+            "\5\3\6\uffff\1\11\2\3\1\uffff\43\3\16\uffff\1\3\6\uffff\2\3\1\uffff\1\3\65\uffff\2\3\5\uffff\1\3\1\uffff\26\3\25\uffff\2\3\1\uffff\2\3",
+            "\5\3\6\uffff\1\11\2\3\1\uffff\43\3\16\uffff\1\3\6\uffff\2\3\1\uffff\1\3\65\uffff\2\3\5\uffff\1\3\1\uffff\26\3\25\uffff\2\3\1\uffff\2\3",
+            "\5\3\6\uffff\1\11\2\3\1\uffff\43\3\16\uffff\1\3\6\uffff\2\3\1\uffff\1\3\65\uffff\2\3\5\uffff\1\3\1\uffff\26\3\25\uffff\2\3\1\uffff\2\3",
+            ""
+    };
+
+    static final short[] dfa_21 = DFA.unpackEncodedString(dfa_21s);
+    static final short[] dfa_22 = DFA.unpackEncodedString(dfa_22s);
+    static final char[] dfa_23 = DFA.unpackEncodedStringToUnsignedChars(dfa_23s);
+    static final char[] dfa_24 = DFA.unpackEncodedStringToUnsignedChars(dfa_24s);
+    static final short[] dfa_25 = DFA.unpackEncodedString(dfa_25s);
+    static final short[] dfa_26 = DFA.unpackEncodedString(dfa_26s);
+    static final short[][] dfa_27 = unpackEncodedStringArray(dfa_27s);
+
+    class DFA31 extends DFA {
+
+        public DFA31(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 31;
+            this.eot = dfa_21;
+            this.eof = dfa_22;
+            this.min = dfa_23;
+            this.max = dfa_24;
+            this.accept = dfa_25;
+            this.special = dfa_26;
+            this.transition = dfa_27;
+        }
+        public String getDescription() {
+            return "4678:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
+        }
+    }
+    static final String dfa_28s = "\1\4\2\0\40\uffff";
+    static final String dfa_29s = "\1\u00bc\2\0\40\uffff";
+    static final String dfa_30s = "\3\uffff\1\1\1\uffff\1\2\35\uffff";
+    static final String dfa_31s = "\1\uffff\1\0\1\1\40\uffff}>";
+    static final String[] dfa_32s = {
+            "\1\5\1\1\3\5\12\uffff\2\5\13\uffff\1\5\3\uffff\1\3\6\uffff\1\5\4\uffff\6\5\25\uffff\1\5\70\uffff\1\2\12\uffff\2\5\1\uffff\1\5\1\uffff\1\5\2\uffff\11\5\1\uffff\1\5\30\uffff\1\3\1\uffff\1\5",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final char[] dfa_28 = DFA.unpackEncodedStringToUnsignedChars(dfa_28s);
+    static final char[] dfa_29 = DFA.unpackEncodedStringToUnsignedChars(dfa_29s);
+    static final short[] dfa_30 = DFA.unpackEncodedString(dfa_30s);
+    static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s);
+    static final short[][] dfa_32 = unpackEncodedStringArray(dfa_32s);
+
+    class DFA34 extends DFA {
+
+        public DFA34(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 34;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_28;
+            this.max = dfa_29;
+            this.accept = dfa_30;
+            this.special = dfa_31;
+            this.transition = dfa_32;
+        }
+        public String getDescription() {
+            return "4747:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA34_1 = input.LA(1);
+
+                         
+                        int index34_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred81_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index34_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA34_2 = input.LA(1);
+
+                         
+                        int index34_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred81_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index34_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 34, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_33s = "\40\uffff";
+    static final String dfa_34s = "\1\4\26\uffff\1\0\10\uffff";
+    static final String dfa_35s = "\1\u00bc\26\uffff\1\0\10\uffff";
+    static final String dfa_36s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
+    static final String dfa_37s = "\27\uffff\1\0\10\uffff}>";
+    static final String[] dfa_38s = {
+            "\1\14\1\5\3\14\27\uffff\1\5\17\uffff\5\5\1\14\25\uffff\1\2\70\uffff\1\35\12\uffff\2\14\1\uffff\1\26\1\uffff\1\3\2\uffff\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\32\uffff\1\14",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_33 = DFA.unpackEncodedString(dfa_33s);
+    static final char[] dfa_34 = DFA.unpackEncodedStringToUnsignedChars(dfa_34s);
+    static final char[] dfa_35 = DFA.unpackEncodedStringToUnsignedChars(dfa_35s);
+    static final short[] dfa_36 = DFA.unpackEncodedString(dfa_36s);
+    static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
+    static final short[][] dfa_38 = unpackEncodedStringArray(dfa_38s);
+
+    class DFA35 extends DFA {
+
+        public DFA35(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 35;
+            this.eot = dfa_33;
+            this.eof = dfa_33;
+            this.min = dfa_34;
+            this.max = dfa_35;
+            this.accept = dfa_36;
+            this.special = dfa_37;
+            this.transition = dfa_38;
+        }
+        public String getDescription() {
+            return "4768:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA35_23 = input.LA(1);
+
+                         
+                        int index35_23 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred89_InternalTableDSL()) ) {s = 30;}
+
+                        else if ( (synpred90_InternalTableDSL()) ) {s = 31;}
+
+                         
+                        input.seek(index35_23);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 35, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String[] dfa_39s = {
+            "\5\2\12\uffff\2\2\13\uffff\1\2\3\uffff\1\2\6\uffff\1\2\4\uffff\6\2\25\uffff\1\2\70\uffff\1\1\12\uffff\2\2\1\uffff\1\2\1\uffff\1\2\2\uffff\11\2\1\uffff\1\2\32\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final short[][] dfa_39 = unpackEncodedStringArray(dfa_39s);
+
+    class DFA38 extends DFA {
+
+        public DFA38(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 38;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_9;
+            this.max = dfa_10;
+            this.accept = dfa_11;
+            this.special = dfa_12;
+            this.transition = dfa_39;
+        }
+        public String getDescription() {
+            return "4939:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA38_1 = input.LA(1);
+
+                         
+                        int index38_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred103_InternalTableDSL()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index38_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 38, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA43 extends DFA {
+
+        public DFA43(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 43;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_28;
+            this.max = dfa_29;
+            this.accept = dfa_30;
+            this.special = dfa_31;
+            this.transition = dfa_32;
+        }
+        public String getDescription() {
+            return "5044:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA43_1 = input.LA(1);
+
+                         
+                        int index43_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred108_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index43_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA43_2 = input.LA(1);
+
+                         
+                        int index43_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred108_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index43_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 43, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA46 extends DFA {
+
+        public DFA46(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 46;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_28;
+            this.max = dfa_29;
+            this.accept = dfa_30;
+            this.special = dfa_31;
+            this.transition = dfa_32;
+        }
+        public String getDescription() {
+            return "5125:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA46_1 = input.LA(1);
+
+                         
+                        int index46_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred114_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index46_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA46_2 = input.LA(1);
+
+                         
+                        int index46_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred114_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index46_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 46, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_40s = "\1\10\11\uffff";
+    static final String dfa_41s = "\1\4\7\0\2\uffff";
+    static final String dfa_42s = "\1\u00bc\7\0\2\uffff";
+    static final String dfa_43s = "\10\uffff\1\2\1\1";
+    static final String dfa_44s = "\1\uffff\1\0\1\2\1\3\1\5\1\1\1\6\1\4\2\uffff}>";
+    static final String[] dfa_45s = {
+            "\5\10\7\uffff\2\10\1\uffff\2\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\25\10\16\uffff\1\10\6\uffff\2\10\1\uffff\1\10\65\uffff\2\10\5\uffff\1\10\1\uffff\26\10\25\uffff\2\10\1\uffff\2\10",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            ""
+    };
+    static final short[] dfa_40 = DFA.unpackEncodedString(dfa_40s);
+    static final char[] dfa_41 = DFA.unpackEncodedStringToUnsignedChars(dfa_41s);
+    static final char[] dfa_42 = DFA.unpackEncodedStringToUnsignedChars(dfa_42s);
+    static final short[] dfa_43 = DFA.unpackEncodedString(dfa_43s);
+    static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
+    static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
+
+    class DFA105 extends DFA {
+
+        public DFA105(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 105;
+            this.eot = dfa_21;
+            this.eof = dfa_40;
+            this.min = dfa_41;
+            this.max = dfa_42;
+            this.accept = dfa_43;
+            this.special = dfa_44;
+            this.transition = dfa_45;
+        }
+        public String getDescription() {
+            return "14702:2: ( rule__XAssignment__Group_1_1__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA105_1 = input.LA(1);
+
+                         
+                        int index105_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred185_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index105_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA105_5 = input.LA(1);
+
+                         
+                        int index105_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred185_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index105_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA105_2 = input.LA(1);
+
+                         
+                        int index105_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred185_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index105_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA105_3 = input.LA(1);
+
+                         
+                        int index105_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred185_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index105_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA105_7 = input.LA(1);
+
+                         
+                        int index105_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred185_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index105_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA105_4 = input.LA(1);
+
+                         
+                        int index105_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred185_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index105_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA105_6 = input.LA(1);
+
+                         
+                        int index105_6 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred185_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index105_6);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 105, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_46s = "\1\1\12\uffff";
+    static final String dfa_47s = "\1\4\1\uffff\10\0\1\uffff";
+    static final String dfa_48s = "\1\u00bc\1\uffff\10\0\1\uffff";
+    static final String dfa_49s = "\1\uffff\1\2\10\uffff\1\1";
+    static final String dfa_50s = "\2\uffff\1\0\1\5\1\6\1\1\1\3\1\7\1\4\1\2\1\uffff}>";
+    static final String[] dfa_51s = {
+            "\5\1\7\uffff\2\1\1\uffff\14\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\17\1\16\uffff\1\1\6\uffff\2\1\1\uffff\1\1\65\uffff\2\1\5\uffff\1\1\1\uffff\26\1\25\uffff\2\1\1\uffff\2\1",
+            "",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            ""
+    };
+    static final short[] dfa_46 = DFA.unpackEncodedString(dfa_46s);
+    static final char[] dfa_47 = DFA.unpackEncodedStringToUnsignedChars(dfa_47s);
+    static final char[] dfa_48 = DFA.unpackEncodedStringToUnsignedChars(dfa_48s);
+    static final short[] dfa_49 = DFA.unpackEncodedString(dfa_49s);
+    static final short[] dfa_50 = DFA.unpackEncodedString(dfa_50s);
+    static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
+
+    class DFA111 extends DFA {
+
+        public DFA111(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 111;
+            this.eot = dfa_15;
+            this.eof = dfa_46;
+            this.min = dfa_47;
+            this.max = dfa_48;
+            this.accept = dfa_49;
+            this.special = dfa_50;
+            this.transition = dfa_51;
+        }
+        public String getDescription() {
+            return "()* loopback of 15998:2: ( rule__XOtherOperatorExpression__Group_1__0 )*";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA111_2 = input.LA(1);
+
+                         
+                        int index111_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred191_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index111_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA111_5 = input.LA(1);
+
+                         
+                        int index111_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred191_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index111_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA111_9 = input.LA(1);
+
+                         
+                        int index111_9 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred191_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index111_9);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA111_6 = input.LA(1);
+
+                         
+                        int index111_6 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred191_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index111_6);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA111_8 = input.LA(1);
+
+                         
+                        int index111_8 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred191_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index111_8);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA111_3 = input.LA(1);
+
+                         
+                        int index111_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred191_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index111_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA111_4 = input.LA(1);
+
+                         
+                        int index111_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred191_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index111_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 7 : 
+                        int LA111_7 = input.LA(1);
+
+                         
+                        int index111_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred191_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index111_7);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 111, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_52s = "\116\uffff";
+    static final String dfa_53s = "\1\2\115\uffff";
+    static final String dfa_54s = "\1\4\1\0\114\uffff";
+    static final String dfa_55s = "\1\u00bc\1\0\114\uffff";
+    static final String dfa_56s = "\2\uffff\1\2\112\uffff\1\1";
+    static final String dfa_57s = "\1\uffff\1\0\114\uffff}>";
+    static final String[] dfa_58s = {
+            "\5\2\7\uffff\2\2\1\uffff\43\2\16\uffff\1\2\6\uffff\2\2\1\uffff\1\2\65\uffff\1\1\1\2\5\uffff\1\2\1\uffff\26\2\25\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_52 = DFA.unpackEncodedString(dfa_52s);
+    static final short[] dfa_53 = DFA.unpackEncodedString(dfa_53s);
+    static final char[] dfa_54 = DFA.unpackEncodedStringToUnsignedChars(dfa_54s);
+    static final char[] dfa_55 = DFA.unpackEncodedStringToUnsignedChars(dfa_55s);
+    static final short[] dfa_56 = DFA.unpackEncodedString(dfa_56s);
+    static final short[] dfa_57 = DFA.unpackEncodedString(dfa_57s);
+    static final short[][] dfa_58 = unpackEncodedStringArray(dfa_58s);
+
+    class DFA118 extends DFA {
+
+        public DFA118(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 118;
+            this.eot = dfa_52;
+            this.eof = dfa_53;
+            this.min = dfa_54;
+            this.max = dfa_55;
+            this.accept = dfa_56;
+            this.special = dfa_57;
+            this.transition = dfa_58;
+        }
+        public String getDescription() {
+            return "17592:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA118_1 = input.LA(1);
+
+                         
+                        int index118_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred198_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index118_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 118, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String[] dfa_59s = {
+            "\5\2\7\uffff\2\2\1\uffff\43\2\16\uffff\1\2\6\uffff\2\2\1\uffff\1\2\65\uffff\2\2\5\uffff\1\2\1\uffff\3\2\1\1\22\2\25\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final short[][] dfa_59 = unpackEncodedStringArray(dfa_59s);
+
+    class DFA119 extends DFA {
+
+        public DFA119(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 119;
+            this.eot = dfa_52;
+            this.eof = dfa_53;
+            this.min = dfa_54;
+            this.max = dfa_55;
+            this.accept = dfa_56;
+            this.special = dfa_57;
+            this.transition = dfa_59;
+        }
+        public String getDescription() {
+            return "17618:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA119_1 = input.LA(1);
+
+                         
+                        int index119_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred199_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index119_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 119, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_60s = "\46\uffff";
+    static final String dfa_61s = "\1\4\2\0\43\uffff";
+    static final String dfa_62s = "\1\u00bc\2\0\43\uffff";
+    static final String dfa_63s = "\3\uffff\1\1\1\uffff\1\2\40\uffff";
+    static final String dfa_64s = "\1\uffff\1\0\1\1\43\uffff}>";
+    static final String[] dfa_65s = {
+            "\1\5\1\1\3\5\12\uffff\2\5\13\uffff\1\5\3\uffff\1\3\6\uffff\1\5\3\uffff\7\5\25\uffff\1\5\70\uffff\1\2\11\uffff\3\5\1\uffff\1\5\1\uffff\1\5\2\uffff\11\5\1\uffff\1\5\30\uffff\1\3\2\5",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_60 = DFA.unpackEncodedString(dfa_60s);
+    static final char[] dfa_61 = DFA.unpackEncodedStringToUnsignedChars(dfa_61s);
+    static final char[] dfa_62 = DFA.unpackEncodedStringToUnsignedChars(dfa_62s);
+    static final short[] dfa_63 = DFA.unpackEncodedString(dfa_63s);
+    static final short[] dfa_64 = DFA.unpackEncodedString(dfa_64s);
+    static final short[][] dfa_65 = unpackEncodedStringArray(dfa_65s);
+
+    class DFA127 extends DFA {
+
+        public DFA127(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 127;
+            this.eot = dfa_60;
+            this.eof = dfa_60;
+            this.min = dfa_61;
+            this.max = dfa_62;
+            this.accept = dfa_63;
+            this.special = dfa_64;
+            this.transition = dfa_65;
+        }
+        public String getDescription() {
+            return "18591:2: ( rule__XClosure__Group_1__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA127_1 = input.LA(1);
+
+                         
+                        int index127_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred207_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index127_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA127_2 = input.LA(1);
+
+                         
+                        int index127_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred207_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index127_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 127, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_66s = "\42\uffff";
+    static final String dfa_67s = "\1\4\2\0\37\uffff";
+    static final String dfa_68s = "\1\u00bc\2\0\37\uffff";
+    static final String dfa_69s = "\3\uffff\1\1\1\2\35\uffff";
+    static final String dfa_70s = "\1\uffff\1\0\1\1\37\uffff}>";
+    static final String[] dfa_71s = {
+            "\1\4\1\1\3\4\12\uffff\2\4\13\uffff\1\4\3\uffff\1\3\6\uffff\1\4\4\uffff\6\4\25\uffff\1\4\70\uffff\1\2\12\uffff\2\4\1\uffff\1\4\1\uffff\1\4\2\uffff\11\4\1\uffff\1\4\32\uffff\1\4",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_66 = DFA.unpackEncodedString(dfa_66s);
+    static final char[] dfa_67 = DFA.unpackEncodedStringToUnsignedChars(dfa_67s);
+    static final char[] dfa_68 = DFA.unpackEncodedStringToUnsignedChars(dfa_68s);
+    static final short[] dfa_69 = DFA.unpackEncodedString(dfa_69s);
+    static final short[] dfa_70 = DFA.unpackEncodedString(dfa_70s);
+    static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
+
+    class DFA137 extends DFA {
+
+        public DFA137(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 137;
+            this.eot = dfa_66;
+            this.eof = dfa_66;
+            this.min = dfa_67;
+            this.max = dfa_68;
+            this.accept = dfa_69;
+            this.special = dfa_70;
+            this.transition = dfa_71;
+        }
+        public String getDescription() {
+            return "20022:2: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA137_1 = input.LA(1);
+
+                         
+                        int index137_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred217_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 4;}
+
+                         
+                        input.seek(index137_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA137_2 = input.LA(1);
+
+                         
+                        int index137_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred217_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 4;}
+
+                         
+                        input.seek(index137_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 137, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA150 extends DFA {
+
+        public DFA150(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 150;
+            this.eot = dfa_52;
+            this.eof = dfa_53;
+            this.min = dfa_54;
+            this.max = dfa_55;
+            this.accept = dfa_56;
+            this.special = dfa_57;
+            this.transition = dfa_58;
+        }
+        public String getDescription() {
+            return "22155:2: ( rule__XFeatureCall__Group_3__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA150_1 = input.LA(1);
+
+                         
+                        int index150_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred230_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index150_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 150, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA151 extends DFA {
+
+        public DFA151(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 151;
+            this.eot = dfa_52;
+            this.eof = dfa_53;
+            this.min = dfa_54;
+            this.max = dfa_55;
+            this.accept = dfa_56;
+            this.special = dfa_57;
+            this.transition = dfa_59;
+        }
+        public String getDescription() {
+            return "22181:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA151_1 = input.LA(1);
+
+                         
+                        int index151_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred231_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index151_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 151, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String[] dfa_72s = {
+            "\5\2\7\uffff\2\2\1\uffff\15\2\1\1\25\2\16\uffff\1\2\6\uffff\2\2\1\uffff\1\2\65\uffff\2\2\5\uffff\1\2\1\uffff\26\2\25\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final short[][] dfa_72 = unpackEncodedStringArray(dfa_72s);
+
+    class DFA155 extends DFA {
+
+        public DFA155(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 155;
+            this.eot = dfa_52;
+            this.eof = dfa_53;
+            this.min = dfa_54;
+            this.max = dfa_55;
+            this.accept = dfa_56;
+            this.special = dfa_57;
+            this.transition = dfa_72;
+        }
+        public String getDescription() {
+            return "22641:2: ( rule__XConstructorCall__Group_3__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA155_1 = input.LA(1);
+
+                         
+                        int index155_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred235_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index155_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 155, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA156 extends DFA {
+
+        public DFA156(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 156;
+            this.eot = dfa_52;
+            this.eof = dfa_53;
+            this.min = dfa_54;
+            this.max = dfa_55;
+            this.accept = dfa_56;
+            this.special = dfa_57;
+            this.transition = dfa_58;
+        }
+        public String getDescription() {
+            return "22668:2: ( rule__XConstructorCall__Group_4__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA156_1 = input.LA(1);
+
+                         
+                        int index156_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred236_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index156_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 156, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA157 extends DFA {
+
+        public DFA157(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 157;
+            this.eot = dfa_52;
+            this.eof = dfa_53;
+            this.min = dfa_54;
+            this.max = dfa_55;
+            this.accept = dfa_56;
+            this.special = dfa_57;
+            this.transition = dfa_59;
+        }
+        public String getDescription() {
+            return "22694:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA157_1 = input.LA(1);
+
+                         
+                        int index157_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred237_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index157_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 157, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_73s = "\1\41\115\uffff";
+    static final String dfa_74s = "\1\4\40\0\55\uffff";
+    static final String dfa_75s = "\1\u00bc\40\0\55\uffff";
+    static final String dfa_76s = "\41\uffff\1\2\53\uffff\1\1";
+    static final String dfa_77s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
+    static final String[] dfa_78s = {
+            "\1\27\1\1\1\23\1\24\1\25\7\uffff\2\41\1\uffff\1\10\1\7\13\41\1\15\12\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\16\uffff\1\41\6\uffff\1\12\1\41\1\uffff\1\41\65\uffff\1\40\1\41\5\uffff\1\41\1\uffff\2\41\1\17\1\20\1\41\1\31\1\41\1\13\2\41\1\32\1\33\1\34\1\11\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41\25\uffff\2\41\1\uffff\1\41\1\22",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final short[] dfa_73 = DFA.unpackEncodedString(dfa_73s);
+    static final char[] dfa_74 = DFA.unpackEncodedStringToUnsignedChars(dfa_74s);
+    static final char[] dfa_75 = DFA.unpackEncodedStringToUnsignedChars(dfa_75s);
+    static final short[] dfa_76 = DFA.unpackEncodedString(dfa_76s);
+    static final short[] dfa_77 = DFA.unpackEncodedString(dfa_77s);
+    static final short[][] dfa_78 = unpackEncodedStringArray(dfa_78s);
+
+    class DFA162 extends DFA {
+
+        public DFA162(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 162;
+            this.eot = dfa_52;
+            this.eof = dfa_73;
+            this.min = dfa_74;
+            this.max = dfa_75;
+            this.accept = dfa_76;
+            this.special = dfa_77;
+            this.transition = dfa_78;
+        }
+        public String getDescription() {
+            return "23585:2: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA162_1 = input.LA(1);
+
+                         
+                        int index162_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA162_2 = input.LA(1);
+
+                         
+                        int index162_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA162_3 = input.LA(1);
+
+                         
+                        int index162_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA162_4 = input.LA(1);
+
+                         
+                        int index162_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA162_5 = input.LA(1);
+
+                         
+                        int index162_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA162_6 = input.LA(1);
+
+                         
+                        int index162_6 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_6);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA162_7 = input.LA(1);
+
+                         
+                        int index162_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 7 : 
+                        int LA162_8 = input.LA(1);
+
+                         
+                        int index162_8 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_8);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 8 : 
+                        int LA162_9 = input.LA(1);
+
+                         
+                        int index162_9 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_9);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 9 : 
+                        int LA162_10 = input.LA(1);
+
+                         
+                        int index162_10 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_10);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 10 : 
+                        int LA162_11 = input.LA(1);
+
+                         
+                        int index162_11 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_11);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 11 : 
+                        int LA162_12 = input.LA(1);
+
+                         
+                        int index162_12 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_12);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 12 : 
+                        int LA162_13 = input.LA(1);
+
+                         
+                        int index162_13 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_13);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 13 : 
+                        int LA162_14 = input.LA(1);
+
+                         
+                        int index162_14 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_14);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 14 : 
+                        int LA162_15 = input.LA(1);
+
+                         
+                        int index162_15 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_15);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 15 : 
+                        int LA162_16 = input.LA(1);
+
+                         
+                        int index162_16 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_16);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 16 : 
+                        int LA162_17 = input.LA(1);
+
+                         
+                        int index162_17 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_17);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 17 : 
+                        int LA162_18 = input.LA(1);
+
+                         
+                        int index162_18 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_18);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 18 : 
+                        int LA162_19 = input.LA(1);
+
+                         
+                        int index162_19 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_19);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 19 : 
+                        int LA162_20 = input.LA(1);
+
+                         
+                        int index162_20 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_20);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 20 : 
+                        int LA162_21 = input.LA(1);
+
+                         
+                        int index162_21 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_21);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 21 : 
+                        int LA162_22 = input.LA(1);
+
+                         
+                        int index162_22 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_22);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 22 : 
+                        int LA162_23 = input.LA(1);
+
+                         
+                        int index162_23 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_23);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 23 : 
+                        int LA162_24 = input.LA(1);
+
+                         
+                        int index162_24 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_24);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 24 : 
+                        int LA162_25 = input.LA(1);
+
+                         
+                        int index162_25 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_25);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 25 : 
+                        int LA162_26 = input.LA(1);
+
+                         
+                        int index162_26 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_26);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 26 : 
+                        int LA162_27 = input.LA(1);
+
+                         
+                        int index162_27 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_27);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 27 : 
+                        int LA162_28 = input.LA(1);
+
+                         
+                        int index162_28 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_28);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 28 : 
+                        int LA162_29 = input.LA(1);
+
+                         
+                        int index162_29 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_29);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 29 : 
+                        int LA162_30 = input.LA(1);
+
+                         
+                        int index162_30 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_30);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 30 : 
+                        int LA162_31 = input.LA(1);
+
+                         
+                        int index162_31 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_31);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 31 : 
+                        int LA162_32 = input.LA(1);
+
+                         
+                        int index162_32 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred242_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index162_32);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 162, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_79s = "\117\uffff";
+    static final String dfa_80s = "\1\2\116\uffff";
+    static final String dfa_81s = "\1\4\1\0\115\uffff";
+    static final String dfa_82s = "\1\u00bc\1\0\115\uffff";
+    static final String dfa_83s = "\2\uffff\1\2\113\uffff\1\1";
+    static final String dfa_84s = "\1\uffff\1\0\115\uffff}>";
+    static final String[] dfa_85s = {
+            "\5\2\7\uffff\2\2\1\uffff\15\2\1\1\25\2\16\uffff\1\2\6\uffff\2\2\1\uffff\1\2\65\uffff\2\2\5\uffff\1\2\1\uffff\26\2\1\uffff\1\2\23\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_79 = DFA.unpackEncodedString(dfa_79s);
+    static final short[] dfa_80 = DFA.unpackEncodedString(dfa_80s);
+    static final char[] dfa_81 = DFA.unpackEncodedStringToUnsignedChars(dfa_81s);
+    static final char[] dfa_82 = DFA.unpackEncodedStringToUnsignedChars(dfa_82s);
+    static final short[] dfa_83 = DFA.unpackEncodedString(dfa_83s);
+    static final short[] dfa_84 = DFA.unpackEncodedString(dfa_84s);
+    static final short[][] dfa_85 = unpackEncodedStringArray(dfa_85s);
+
+    class DFA171 extends DFA {
+
+        public DFA171(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 171;
+            this.eot = dfa_79;
+            this.eof = dfa_80;
+            this.min = dfa_81;
+            this.max = dfa_82;
+            this.accept = dfa_83;
+            this.special = dfa_84;
+            this.transition = dfa_85;
+        }
+        public String getDescription() {
+            return "24942:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA171_1 = input.LA(1);
+
+                         
+                        int index171_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred251_InternalTableDSL()) ) {s = 78;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index171_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 171, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA174 extends DFA {
+
+        public DFA174(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 174;
+            this.eot = dfa_79;
+            this.eof = dfa_80;
+            this.min = dfa_81;
+            this.max = dfa_82;
+            this.accept = dfa_83;
+            this.special = dfa_84;
+            this.transition = dfa_85;
+        }
+        public String getDescription() {
+            return "25212:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA174_1 = input.LA(1);
+
+                         
+                        int index174_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred254_InternalTableDSL()) ) {s = 78;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index174_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 174, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+    public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000022L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000000000L,0x0000000000003000L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L,0x0000002000000000L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000000L,0x000200000008A000L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000040000L,0x0000000000000000L,0x0000004000000000L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000000L,0x0000000000030000L,0x0000078000000000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000000000L,0x000000000000000EL});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x00000000000001C0L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000000000L,0x0000000000030000L,0x00000F8000000000L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000000L,0x0000001FF0000000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000100000000000L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000000L,0x000000000A400000L,0x0000600000000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000000L,0x0000000001800000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L,0x0000800000000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000000L,0x000000E000001000L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000002L,0x000000E000000000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x0000078000001000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000002L,0x0000078000000000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0003800000000000L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x00000000001001C0L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0001E00000400000L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000100080L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x000000E000000000L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000078000000000L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000100000001000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x00000000000003F0L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L,0x0004000000000000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0018000000000000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000000L,0x0000000000201000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000001FF0001000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000002L,0x0000001FF0000000L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0xF000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L,0x0020000000000000L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L,0x0000070000000000L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000000L,0xB740000000000000L,0x0000000000000344L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000000L,0x0008000000001000L,0x0040000000000000L});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L,0x0040000000000000L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000000000L,0x4000000000000000L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000000180080L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000010L,0x0000000000200000L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000018L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000090L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000800L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000000L,0x0000060000001000L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000000002L,0x0000060000000000L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0FC0000000000000L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000200L});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0004000000000000L});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0002000000000020L,0x0000000000000000L,0x0080000000000000L});
+    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
+    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0008000000000020L});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000008000000020L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x003F0801001801F0L,0x0000000000000800L,0x10000002FF959030L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x003F0801001801F0L,0x0000000000000800L,0x10000002FF959010L});
+    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x003F0801001801F0L,0x0000000000000800L,0x10000002FF95D010L});
+    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x000F000000000020L});
+    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x0000000183E00000L});
+    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000100000000L});
+    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x00000000C0000000L});
+    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000000010002L});
+    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x0000000000020002L});
+    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x000000003C000000L});
+    public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x000000003C000002L});
+    public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x00000001C0000000L,0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x00000001C0000002L,0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0000001000000020L,0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_124 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x0000007F80000000L});
+    public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0000007F80000002L});
+    public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x0000001100000000L});
+    public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0000000000180000L});
+    public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x0000000000180002L});
+    public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x0000078000000000L});
+    public static final BitSet FOLLOW_133 = new BitSet(new long[]{0x0000078000000002L});
+    public static final BitSet FOLLOW_134 = new BitSet(new long[]{0x0000080000180000L});
+    public static final BitSet FOLLOW_135 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_136 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_137 = new BitSet(new long[]{0x0000300000000000L});
+    public static final BitSet FOLLOW_138 = new BitSet(new long[]{0x0000400000000000L,0x0000000000000000L,0x0300000000000000L});
+    public static final BitSet FOLLOW_139 = new BitSet(new long[]{0x0000400000000002L,0x0000000000000000L,0x0300000000000000L});
+    public static final BitSet FOLLOW_140 = new BitSet(new long[]{0x0000400000000000L,0x0000000000000000L,0x0100000000000000L});
+    public static final BitSet FOLLOW_141 = new BitSet(new long[]{0x001F000100000020L});
+    public static final BitSet FOLLOW_142 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010010L});
+    public static final BitSet FOLLOW_143 = new BitSet(new long[]{0x0000001000000020L,0x0000000000000000L,0x0000000800000010L});
+    public static final BitSet FOLLOW_144 = new BitSet(new long[]{0x0000000080000000L,0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_145 = new BitSet(new long[]{0x003F0811001801F0L,0x0000000000000800L,0x14000002FF959030L});
+    public static final BitSet FOLLOW_146 = new BitSet(new long[]{0x003F0801001801F0L,0x0000000000001800L,0x10000002FF959010L});
+    public static final BitSet FOLLOW_147 = new BitSet(new long[]{0x003F8811001801F0L,0x0000000000000800L,0x1C000002FF959010L});
+    public static final BitSet FOLLOW_148 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_149 = new BitSet(new long[]{0x0000001000000020L,0x0000000000000000L,0x0400000000000010L});
+    public static final BitSet FOLLOW_150 = new BitSet(new long[]{0x003F8801001801F2L,0x0000000000000800L,0x18000002FF959010L});
+    public static final BitSet FOLLOW_151 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000040000L});
+    public static final BitSet FOLLOW_152 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
+    public static final BitSet FOLLOW_153 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_154 = new BitSet(new long[]{0x003F0811001801F0L,0x0000000000000800L,0x10000002FF959010L});
+    public static final BitSet FOLLOW_155 = new BitSet(new long[]{0x0000001000000020L,0x0000000000001010L,0x0000000000602010L});
+    public static final BitSet FOLLOW_156 = new BitSet(new long[]{0x0000001000000022L,0x0000000000000000L,0x0000000000602010L});
+    public static final BitSet FOLLOW_157 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_158 = new BitSet(new long[]{0x0000001000000020L,0x0000000000000000L,0x0000000000602010L});
+    public static final BitSet FOLLOW_159 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_160 = new BitSet(new long[]{0x003F8801001801F0L,0x0000000000000800L,0x18000002FF959810L});
+    public static final BitSet FOLLOW_161 = new BitSet(new long[]{0x003F0801001801F0L,0x0000000000000800L,0x10000002FF959810L});
+    public static final BitSet FOLLOW_162 = new BitSet(new long[]{0x003F8801001801F0L,0x0000000000000800L,0x18000002FF959010L});
+    public static final BitSet FOLLOW_163 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000001000000L});
+    public static final BitSet FOLLOW_164 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_165 = new BitSet(new long[]{0x003F8801001801F0L,0x0000000000001800L,0x18000002FF959010L});
+    public static final BitSet FOLLOW_166 = new BitSet(new long[]{0x0000800000000000L,0x0000000000000000L,0x0800000000000000L});
+    public static final BitSet FOLLOW_167 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
+    public static final BitSet FOLLOW_168 = new BitSet(new long[]{0x0000000100000000L,0x0000000000000000L,0x0000000000010010L});
+    public static final BitSet FOLLOW_169 = new BitSet(new long[]{0x0020000000000000L,0x0000000000000000L,0x1000000000000000L});
+    public static final BitSet FOLLOW_170 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_171 = new BitSet(new long[]{0x00200000000001D0L,0x0000000000000000L,0x1000000018018000L});
+    public static final BitSet FOLLOW_172 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010020L});
+    public static final BitSet FOLLOW_173 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_174 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_175 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_176 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_177 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000500000000L});
+    public static final BitSet FOLLOW_178 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000100000000L});
+    public static final BitSet FOLLOW_179 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000400000000L});
+    public static final BitSet FOLLOW_180 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200000000L});
+    public static final BitSet FOLLOW_181 = new BitSet(new long[]{0x0000400000000002L});
+    public static final BitSet FOLLOW_182 = new BitSet(new long[]{0x0000000000000180L});
+    public static final BitSet FOLLOW_183 = new BitSet(new long[]{0x0000001000000020L,0x0000000000000000L,0x0000000000000030L});
+    public static final BitSet FOLLOW_184 = new BitSet(new long[]{0x0011000000000000L});
+    public static final BitSet FOLLOW_185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000001000000000L});
+    public static final BitSet FOLLOW_186 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000001000000000L});
+    public static final BitSet FOLLOW_187 = new BitSet(new long[]{0x0000008000000000L});
+    public static final BitSet FOLLOW_188 = new BitSet(new long[]{0x0000000000000002L,0x0000000000030000L,0x0000078000000000L});
+    public static final BitSet FOLLOW_189 = new BitSet(new long[]{0x0000000000000002L,0x0000000000030000L,0x00000F8000000000L});
+    public static final BitSet FOLLOW_190 = new BitSet(new long[]{0x0000000000000002L,0x000000000A400000L,0x0000600000000000L});
+    public static final BitSet FOLLOW_191 = new BitSet(new long[]{0x0000000000000002L,0x0000000001800000L});
+    public static final BitSet FOLLOW_192 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0003800000000000L});
+    public static final BitSet FOLLOW_193 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L,0x0004000000000000L});
+    public static final BitSet FOLLOW_194 = new BitSet(new long[]{0x0000000000000002L,0x0004000000000000L,0x0020000000000000L});
+    public static final BitSet FOLLOW_195 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L,0x0000070000000000L});
+
+}
diff --git a/org.eclipse.osbp.xtext.table.ide/src/org/eclipse/osbp/xtext/table/ide/TableDSLIdeModule.java b/org.eclipse.osbp.xtext.table.ide/src/org/eclipse/osbp/xtext/table/ide/TableDSLIdeModule.java
new file mode 100644
index 0000000..1e04d72
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/src/org/eclipse/osbp/xtext/table/ide/TableDSLIdeModule.java
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.osbp.xtext.table.ide;
+
+
+/**
+ * Use this class to register ide components.
+ */
+public class TableDSLIdeModule extends AbstractTableDSLIdeModule {
+}
diff --git a/org.eclipse.osbp.xtext.table.ide/src/org/eclipse/osbp/xtext/table/ide/TableDSLIdeSetup.java b/org.eclipse.osbp.xtext.table.ide/src/org/eclipse/osbp/xtext/table/ide/TableDSLIdeSetup.java
new file mode 100644
index 0000000..32fabc8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ide/src/org/eclipse/osbp/xtext/table/ide/TableDSLIdeSetup.java
@@ -0,0 +1,22 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.osbp.xtext.table.ide;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import org.eclipse.osbp.xtext.table.TableDSLRuntimeModule;
+import org.eclipse.osbp.xtext.table.TableDSLStandaloneSetup;
+import org.eclipse.xtext.util.Modules2;
+
+/**
+ * Initialization support for running Xtext languages as language servers.
+ */
+public class TableDSLIdeSetup extends TableDSLStandaloneSetup {
+
+	@Override
+	public Injector createInjector() {
+		return Guice.createInjector(Modules2.mixin(new TableDSLRuntimeModule(), new TableDSLIdeModule()));
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.table.tests/.classpath b/org.eclipse.osbp.xtext.table.tests/.classpath
new file mode 100644
index 0000000..0377d77
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.tests/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src/"/>
+	<classpathentry kind="src" path="src-gen/"/>
+	<classpathentry kind="src" path="xtend-gen/"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.xtext.table.tests/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.xtext.table.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.tests/.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.table.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.xtext.table.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.tests/.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.table.tests/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.xtext.table.tests/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.tests/.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.table.tests/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.xtext.table.tests/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..19e3115
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.tests/.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.table.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.table.tests/META-INF/MANIFEST.MF
index 7712d0e..4e82d3d 100644
--- a/org.eclipse.osbp.xtext.table.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.table.tests/META-INF/MANIFEST.MF
@@ -9,9 +9,12 @@
  org.eclipse.osbp.xtext.table;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.table.ui;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.core.runtime,
- org.eclipse.xtext.junit4;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.junit4;bundle-version="[2.11.0,2.12.0)",
  org.eclipse.ui.workbench;resolution:=optional,
- org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional
+ org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtext.testing,
+ org.eclipse.xtext.xbase.testing
 Import-Package: org.eclipse.osbp.xtext.table;version="0.9.0",
  org.apache.log4j,
  org.hamcrest.core,
@@ -23,4 +26,4 @@
  org.junit.runners.model;version="4.5.0",
  javax.validation
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.osbp.xtext.table;version="0.9.0"
+Export-Package: org.eclipse.osbp.xtext.table.tests;x-internal=true
diff --git a/org.eclipse.osbp.xtext.table.tests/src-gen/org/eclipse/osbp/xtext/table/tests/TableDSLInjectorProvider.java b/org.eclipse.osbp.xtext.table.tests/src-gen/org/eclipse/osbp/xtext/table/tests/TableDSLInjectorProvider.java
new file mode 100644
index 0000000..ff7d4f2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.tests/src-gen/org/eclipse/osbp/xtext/table/tests/TableDSLInjectorProvider.java
@@ -0,0 +1,66 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.osbp.xtext.table.tests;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import org.eclipse.osbp.xtext.table.TableDSLRuntimeModule;
+import org.eclipse.osbp.xtext.table.TableDSLStandaloneSetup;
+import org.eclipse.xtext.testing.GlobalRegistries;
+import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento;
+import org.eclipse.xtext.testing.IInjectorProvider;
+import org.eclipse.xtext.testing.IRegistryConfigurator;
+
+public class TableDSLInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
+
+	protected GlobalStateMemento stateBeforeInjectorCreation;
+	protected GlobalStateMemento stateAfterInjectorCreation;
+	protected Injector injector;
+
+	static {
+		GlobalRegistries.initializeDefaults();
+	}
+
+	@Override
+	public Injector getInjector() {
+		if (injector == null) {
+			stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+			this.injector = internalCreateInjector();
+			stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+		}
+		return injector;
+	}
+
+	protected Injector internalCreateInjector() {
+		return new TableDSLStandaloneSetup() {
+			@Override
+			public Injector createInjector() {
+				return Guice.createInjector(createRuntimeModule());
+			}
+		}.createInjectorAndDoEMFRegistration();
+	}
+
+	protected TableDSLRuntimeModule createRuntimeModule() {
+		// make it work also with Maven/Tycho and OSGI
+		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=493672
+		return new TableDSLRuntimeModule() {
+			@Override
+			public ClassLoader bindClassLoaderToInstance() {
+				return TableDSLInjectorProvider.class
+						.getClassLoader();
+			}
+		};
+	}
+
+	@Override
+	public void restoreRegistry() {
+		stateBeforeInjectorCreation.restoreGlobalState();
+	}
+
+	@Override
+	public void setupRegistry() {
+		getInjector();
+		stateAfterInjectorCreation.restoreGlobalState();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.table.tests/src/org/eclipse/osbp/xtext/table/tests/TableDSLParsingTest.xtend b/org.eclipse.osbp.xtext.table.tests/src/org/eclipse/osbp/xtext/table/tests/TableDSLParsingTest.xtend
new file mode 100644
index 0000000..e6b2d44
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.tests/src/org/eclipse/osbp/xtext/table/tests/TableDSLParsingTest.xtend
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.osbp.xtext.table.tests
+
+import com.google.inject.Inject
+import org.eclipse.osbp.xtext.table.TableModel
+import org.eclipse.xtext.testing.InjectWith
+import org.eclipse.xtext.testing.XtextRunner
+import org.eclipse.xtext.testing.util.ParseHelper
+import org.junit.Assert
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(XtextRunner)
+@InjectWith(TableDSLInjectorProvider)
+class TableDSLParsingTest {
+	@Inject
+	ParseHelper<TableModel> parseHelper
+	
+	@Test
+	def void loadModel() {
+		val result = parseHelper.parse('''
+			Hello Xtext!
+		''')
+		Assert.assertNotNull(result)
+		Assert.assertTrue(result.eResource.errors.isEmpty)
+	}
+}
diff --git a/org.eclipse.osbp.xtext.table.tests/xtend-gen/org/eclipse/osbp/xtext/table/tests/TableDSLParsingTest.java b/org.eclipse.osbp.xtext.table.tests/xtend-gen/org/eclipse/osbp/xtext/table/tests/TableDSLParsingTest.java
new file mode 100644
index 0000000..f829026
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.tests/xtend-gen/org/eclipse/osbp/xtext/table/tests/TableDSLParsingTest.java
@@ -0,0 +1,43 @@
+/**
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.osbp.xtext.table.tests;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.osbp.xtext.table.TableModel;
+import org.eclipse.osbp.xtext.table.tests.TableDSLInjectorProvider;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.testing.InjectWith;
+import org.eclipse.xtext.testing.XtextRunner;
+import org.eclipse.xtext.testing.util.ParseHelper;
+import org.eclipse.xtext.xbase.lib.Exceptions;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(XtextRunner.class)
+@InjectWith(TableDSLInjectorProvider.class)
+@SuppressWarnings("all")
+public class TableDSLParsingTest {
+  @Inject
+  private ParseHelper<TableModel> parseHelper;
+  
+  @Test
+  public void loadModel() {
+    try {
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append("Hello Xtext!");
+      _builder.newLine();
+      final TableModel result = this.parseHelper.parse(_builder);
+      Assert.assertNotNull(result);
+      Resource _eResource = result.eResource();
+      EList<Resource.Diagnostic> _errors = _eResource.getErrors();
+      boolean _isEmpty = _errors.isEmpty();
+      Assert.assertTrue(_isEmpty);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+}
diff --git a/org.eclipse.osbp.xtext.table.ui/.classpath b/org.eclipse.osbp.xtext.table.ui/.classpath
new file mode 100644
index 0000000..fb36997
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ui/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.xtext.table.ui/.project b/org.eclipse.osbp.xtext.table.ui/.project
index b3f582d..c74aaad 100644
--- a/org.eclipse.osbp.xtext.table.ui/.project
+++ b/org.eclipse.osbp.xtext.table.ui/.project
@@ -6,6 +6,11 @@
 	</projects>
 	<buildSpec>
 		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
 			</arguments>
@@ -21,12 +26,12 @@
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
diff --git a/org.eclipse.osbp.xtext.table.ui/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.xtext.table.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ui/.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.table.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.xtext.table.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..3a21537
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+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.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+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.table.ui/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.xtext.table.ui/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ui/.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.table.ui/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.xtext.table.ui/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..19e3115
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ui/.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.table.ui/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.table.ui/META-INF/MANIFEST.MF
index 812167a..2d9099c 100644
--- a/org.eclipse.osbp.xtext.table.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.table.ui/META-INF/MANIFEST.MF
@@ -9,40 +9,42 @@
  org.apache.log4j;bundle-version="1.2.15",
  com.google.inject;bundle-version="3.0.0",
  javax.persistence;bundle-version="2.1.0",
- javax.annotation;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.xtext.ui;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.xtext.ui.shared;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.xtext.builder;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.xtext.common.types.ui;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.xtext.ui.codetemplates.ui;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.ui;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.ui.shared;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.builder;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.common.types.ui;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.ui.codetemplates.ui;bundle-version="[2.11.0,2.12.0)",
  org.eclipse.compare,
- org.eclipse.xtext.xbase.ui;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.xbase.ui;bundle-version="[2.11.0,2.12.0)",
  org.eclipse.ui.editors,
  org.eclipse.ui,
  org.antlr.runtime,
- org.eclipse.xtext.xbase.lib;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.11.0,2.12.0)",
  org.eclipse.jdt.debug.ui,
  org.eclipse.osbp.fork.mihalis.opal.imageSelector.osgi;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.utils;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.dsl.common.xtext;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.dsl.dto.xtext;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.dsl.entity.xtext;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.table;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.table.ide;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.basic.ui;bundle-version="[0.9.0,0.10.0)",
  org.apache.commons.lang;bundle-version="2.6.0",
+ org.eclipse.osbp.xtext.gridsource;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.gridsource.ui;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.infogrid.model;bundle-version="[0.9.0,0.10.0)"
+ org.eclipse.osbp.infogrid.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.oxtype;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.oxtype.ui;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.xtend.lib;resolution:=optional
 Import-Package: org.eclipse.osbp.preferences;version="0.9.0",
  javax.validation,
- org.apache.log4j
+ org.apache.log4j,
+ javax.annotation
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.osbp.xtext.table.ui;version="0.9.0",
  org.eclipse.osbp.xtext.table.ui.contentassist;version="0.9.0",
- org.eclipse.osbp.xtext.table.ui.contentassist.antlr;version="0.9.0",
- org.eclipse.osbp.xtext.table.ui.contentassist.antlr.internal;version="0.9.0",
  org.eclipse.osbp.xtext.table.ui.internal;version="0.9.0",
  org.eclipse.osbp.xtext.table.ui.labeling;version="0.9.0",
  org.eclipse.osbp.xtext.table.ui.outline;version="0.9.0",
  org.eclipse.osbp.xtext.table.ui.quickfix;version="0.9.0"
-Bundle-Activator: org.eclipse.osbp.xtext.table.ui.internal.TableDSLActivator
+Bundle-Activator: org.eclipse.osbp.xtext.table.ui.internal.TableActivator
diff --git a/org.eclipse.osbp.xtext.table.ui/i18n/I18N.properties b/org.eclipse.osbp.xtext.table.ui/i18n/I18N.properties
index aa97385..462b3e2 100644
--- a/org.eclipse.osbp.xtext.table.ui/i18n/I18N.properties
+++ b/org.eclipse.osbp.xtext.table.ui/i18n/I18N.properties
@@ -1,5 +1,5 @@
 #
-#Wed Mar 15 15:20:14 CET 2017
+#Wed Mar 29 15:47:03 CEST 2017
 org.eclipse.osbp.xtext.table.AxisEnum=
 org.eclipse.osbp.xtext.table.AxisEnum.chapters=
 org.eclipse.osbp.xtext.table.AxisEnum.columns=
@@ -276,21 +276,30 @@
 org.eclipse.osbp.xtext.table.TableQualifiedNameWithWildCard=
 org.eclipse.osbp.xtext.table.TableRangeElement=
 org.eclipse.osbp.xtext.table.TableSelection=
+org.eclipse.osbp.xtext.table.TableSelection.alwaysSelected=
 org.eclipse.osbp.xtext.table.TableSelection.embedded=
 org.eclipse.osbp.xtext.table.TableSelection.filtering=
+org.eclipse.osbp.xtext.table.TableSelection.multiSelection=
+org.eclipse.osbp.xtext.table.TableSelection.multiple=
 org.eclipse.osbp.xtext.table.TableSelection.multiselection=
 org.eclipse.osbp.xtext.table.TableSelection.polling=
+org.eclipse.osbp.xtext.table.TableSelection.rowHeader=
 org.eclipse.osbp.xtext.table.TableSelection.rowheader=
 org.eclipse.osbp.xtext.table.TableSelection.selectalways=
+org.eclipse.osbp.xtext.table.TableSelection.selection=
+org.eclipse.osbp.xtext.table.TableSelection.single=
+org.eclipse.osbp.xtext.table.TableSelection.singleSelection=
 org.eclipse.osbp.xtext.table.TableSelection.singleselection=
 org.eclipse.osbp.xtext.table.TableSelection.toolbar=
 org.eclipse.osbp.xtext.table.TableSelection.using=
 org.eclipse.osbp.xtext.table.TableStringLookup=
 org.eclipse.osbp.xtext.table.TableStringLookup.string=
 org.eclipse.osbp.xtext.table.TableTable=
+org.eclipse.osbp.xtext.table.TableTable.alwaysSelected=
 org.eclipse.osbp.xtext.table.TableTable.embedded=
 org.eclipse.osbp.xtext.table.TableTable.filtering=
 org.eclipse.osbp.xtext.table.TableTable.polling=
+org.eclipse.osbp.xtext.table.TableTable.rowHeader=
 org.eclipse.osbp.xtext.table.TableTable.rowheader=
 org.eclipse.osbp.xtext.table.TableTable.selectalways=
 org.eclipse.osbp.xtext.table.TableTable.single=
diff --git a/org.eclipse.osbp.xtext.table.ui/plugin.xml b/org.eclipse.osbp.xtext.table.ui/plugin.xml
index 14a24c9..f041842 100644
--- a/org.eclipse.osbp.xtext.table.ui/plugin.xml
+++ b/org.eclipse.osbp.xtext.table.ui/plugin.xml
@@ -400,5 +400,34 @@
             extensions="table">
     </provider>
   </extension>
+    <!-- Organize imports  -->
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.osbp.xtext.oxtype.ui.imports.OXTypeOrganizeImportsHandler"
+            commandId="org.eclipse.xtext.xbase.ui.organizeImports">
+               <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>
+
+ <extension point="org.eclipse.ui.menus">
+        <menuContribution
+            locationURI="menu:#xtext.ui.SourceMenu?after=xtext.ui.ImportsSeparator">
+             <command
+                 commandId="org.eclipse.xtext.xbase.ui.organizeImports"
+                 style="push"
+                 tooltip="Organize Imports">
+                <visibleWhen checkEnabled="false">
+                    <reference
+                        definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+                    </reference>
+                </visibleWhen>
+            </command>  
+        </menuContribution>
+    </extension>
 
 </plugin>
diff --git a/org.eclipse.osbp.xtext.table.ui/plugin.xml_gen b/org.eclipse.osbp.xtext.table.ui/plugin.xml_gen
index 20a65e1..5f8b708 100644
--- a/org.eclipse.osbp.xtext.table.ui/plugin.xml_gen
+++ b/org.eclipse.osbp.xtext.table.ui/plugin.xml_gen
@@ -1,215 +1,211 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.0"?>
-
 <plugin>
-
-    <extension
-            point="org.eclipse.ui.editors">
-        <editor
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
-            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
-            default="true"
-            extensions="table"
-            id="org.eclipse.osbp.xtext.table.TableDSL"
-            matchingStrategy="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
-            name="TableDSL Editor">
-        </editor>
-    </extension>
-    <extension
-        point="org.eclipse.ui.handlers">
-        <handler
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
-            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
-            <activeWhen>
-                <reference
-                    definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
-                </reference>
-            </activeWhen>
-        </handler>
-        <handler
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
-            commandId="org.eclipse.osbp.xtext.table.TableDSL.validate">
-         <activeWhen>
-            <reference
-                    definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
-            </reference>
-         </activeWhen>
-      	</handler>
-      	<!-- copy qualified name -->
-        <handler
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
-            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
-            <activeWhen>
+	<extension
+		point="org.eclipse.ui.editors">
+		<editor
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+			contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+			default="true"
+			extensions="table"
+			id="org.eclipse.osbp.xtext.table.TableDSL"
+			matchingStrategy="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
+			name="TableDSL Editor">
+		</editor>
+	</extension>
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+			commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+		<handler
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+			commandId="org.eclipse.osbp.xtext.table.TableDSL.validate">
+		<activeWhen>
+			<reference
+					definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+			</reference>
+		</activeWhen>
+		</handler>
+		<!-- copy qualified name -->
+		<handler
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+			commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+			<activeWhen>
 				<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened" />
-            </activeWhen>
-        </handler>
-        <handler
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
-            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
-            <activeWhen>
-            	<and>
-            		<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.XtextEditor.opened" />
-	                <iterate>
+			</activeWhen>
+		</handler>
+		<handler
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+			commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+			<activeWhen>
+				<and>
+					<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.XtextEditor.opened" />
+					<iterate>
 						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
 					</iterate>
 				</and>
-            </activeWhen>
-        </handler>
-    </extension>
-    <extension point="org.eclipse.core.expressions.definitions">
-        <definition id="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
-            <and>
-                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
-                <with variable="activeEditor">
-                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
-                        value="org.eclipse.osbp.xtext.table.TableDSL" 
-                        forcePluginActivation="true"/>
-                </with>        
-            </and>
-        </definition>
-        <definition id="org.eclipse.osbp.xtext.table.TableDSL.XtextEditor.opened">
-            <and>
-                <reference definitionId="isXtextEditorActive"/>
-                <with variable="activeEditor">
-                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
-                        value="org.eclipse.osbp.xtext.table.TableDSL" 
-                        forcePluginActivation="true"/>
-                </with>        
-            </and>
-        </definition>
-    </extension>
-    <extension
-            point="org.eclipse.ui.preferencePages">
-        <page
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
-            id="org.eclipse.osbp.xtext.table.TableDSL"
-            name="TableDSL">
-            <keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
-        </page>
-        <page
-            category="org.eclipse.osbp.xtext.table.TableDSL"
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
-            id="org.eclipse.osbp.xtext.table.TableDSL.coloring"
-            name="Syntax Coloring">
-            <keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
-        </page>
-        <page
-            category="org.eclipse.osbp.xtext.table.TableDSL"
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
-            id="org.eclipse.osbp.xtext.table.TableDSL.templates"
-            name="Templates">
-            <keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
-        </page>
-    </extension>
-    <extension
-            point="org.eclipse.ui.propertyPages">
-        <page
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
-            id="org.eclipse.osbp.xtext.table.TableDSL"
-            name="TableDSL">
-            <keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
-            <enabledWhen>
-	            <adapt type="org.eclipse.core.resources.IProject"/>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension point="org.eclipse.core.expressions.definitions">
+		<definition id="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+			<and>
+				<reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+				<with variable="activeEditor">
+					<test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+						value="org.eclipse.osbp.xtext.table.TableDSL"
+						forcePluginActivation="true"/>
+				</with>
+			</and>
+		</definition>
+		<definition id="org.eclipse.osbp.xtext.table.TableDSL.XtextEditor.opened">
+			<and>
+				<reference definitionId="isXtextEditorActive"/>
+				<with variable="activeEditor">
+					<test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+						value="org.eclipse.osbp.xtext.table.TableDSL"
+						forcePluginActivation="true"/>
+				</with>
+			</and>
+		</definition>
+	</extension>
+	<extension
+			point="org.eclipse.ui.preferencePages">
+		<page
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+			id="org.eclipse.osbp.xtext.table.TableDSL"
+			name="TableDSL">
+			<keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
+		</page>
+		<page
+			category="org.eclipse.osbp.xtext.table.TableDSL"
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+			id="org.eclipse.osbp.xtext.table.TableDSL.coloring"
+			name="Syntax Coloring">
+			<keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
+		</page>
+		<page
+			category="org.eclipse.osbp.xtext.table.TableDSL"
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+			id="org.eclipse.osbp.xtext.table.TableDSL.templates"
+			name="Templates">
+			<keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
+		</page>
+	</extension>
+	<extension
+			point="org.eclipse.ui.propertyPages">
+		<page
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+			id="org.eclipse.osbp.xtext.table.TableDSL"
+			name="TableDSL">
+			<keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
+			<enabledWhen>
+				<adapt type="org.eclipse.core.resources.IProject"/>
 			</enabledWhen>
-	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
-        </page>
-    </extension>
-    <extension
-        point="org.eclipse.ui.keywords">
-        <keyword
-            id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"
-            label="TableDSL"/>
-    </extension>
-    <extension
-         point="org.eclipse.ui.commands">
-      <command
-            description="Trigger expensive validation"
-            id="org.eclipse.osbp.xtext.table.TableDSL.validate"
-            name="Validate">
-      </command>
-      <!-- copy qualified name -->
-      <command
-            id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
-            categoryId="org.eclipse.ui.category.edit"
-            description="Copy the qualified name for the selected element"
-            name="Copy Qualified Name">
-      </command>
-      <command
-            id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
-            categoryId="org.eclipse.ui.category.edit"
-            description="Copy the qualified name for the selected element"
-            name="Copy Qualified Name">
-      </command>
-    </extension>
-    <extension point="org.eclipse.ui.menus">
-        <menuContribution
-            locationURI="popup:#TextEditorContext?after=group.edit">
-             <command
-                 commandId="org.eclipse.osbp.xtext.table.TableDSL.validate"
-                 style="push"
-                 tooltip="Trigger expensive validation">
-            <visibleWhen checkEnabled="false">
-                <reference
-                    definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
-                </reference>
-            </visibleWhen>
-         </command>  
-         </menuContribution>
-         <!-- copy qualified name -->
-         <menuContribution locationURI="popup:#TextEditorContext?after=copy">
-         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName" 
-         		style="push" tooltip="Copy Qualified Name">
-            	<visibleWhen checkEnabled="false">
-                	<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened" />
-            	</visibleWhen>
-         	</command>  
-         </menuContribution>
-         <menuContribution locationURI="menu:edit?after=copy">
-         	<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
-            	style="push" tooltip="Copy Qualified Name">
-            	<visibleWhen checkEnabled="false">
-                	<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened" />
-            	</visibleWhen>
-         	</command>  
-         </menuContribution>
-         <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
-			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName" 
+			<filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+		</page>
+	</extension>
+	<extension
+		point="org.eclipse.ui.keywords">
+		<keyword
+			id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"
+			label="TableDSL"/>
+	</extension>
+	<extension
+		point="org.eclipse.ui.commands">
+	<command
+			description="Trigger expensive validation"
+			id="org.eclipse.osbp.xtext.table.TableDSL.validate"
+			name="Validate">
+	</command>
+	<!-- copy qualified name -->
+	<command
+			id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+			categoryId="org.eclipse.ui.category.edit"
+			description="Copy the qualified name for the selected element"
+			name="Copy Qualified Name">
+	</command>
+	<command
+			id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+			categoryId="org.eclipse.ui.category.edit"
+			description="Copy the qualified name for the selected element"
+			name="Copy Qualified Name">
+	</command>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.edit">
+			 <command
+				 commandId="org.eclipse.osbp.xtext.table.TableDSL.validate"
+				 style="push"
+				 tooltip="Trigger expensive validation">
+			<visibleWhen checkEnabled="false">
+				<reference
+					definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+				</reference>
+			</visibleWhen>
+		</command>
+		</menuContribution>
+		<!-- copy qualified name -->
+		<menuContribution locationURI="popup:#TextEditorContext?after=copy">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
 				style="push" tooltip="Copy Qualified Name">
-         		<visibleWhen checkEnabled="false">
-	            	<and>
-	            		<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.XtextEditor.opened" />
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened" />
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<menuContribution locationURI="menu:edit?after=copy">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+				style="push" tooltip="Copy Qualified Name">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened" />
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+				style="push" tooltip="Copy Qualified Name">
+				<visibleWhen checkEnabled="false">
+					<and>
+						<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.XtextEditor.opened" />
 						<iterate>
 							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
 						</iterate>
 					</and>
 				</visibleWhen>
 			</command>
-         </menuContribution>
-    </extension>
-    <extension point="org.eclipse.ui.menus">
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
 		<menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
 			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">
 				<visibleWhen checkEnabled="false">
-                	<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
-                	</reference>
-            	</visibleWhen>
+					<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+					</reference>
+				</visibleWhen>
 			</command>
 		</menuContribution>
 	</extension>
 	<extension point="org.eclipse.ui.handlers">
-	    <handler
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
-            commandId="org.eclipse.xtext.ui.editor.FindReferences">
-            <activeWhen>
-                <reference
-                    definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
-                </reference>
-            </activeWhen>
-        </handler>
-    </extension>   
-
-<!-- adding resource factories -->
-
+		<handler
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+			commandId="org.eclipse.xtext.ui.editor.FindReferences">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<!-- adding resource factories -->
 	<extension
 		point="org.eclipse.emf.ecore.extension_parser">
 		<parser
@@ -218,69 +214,81 @@
 		</parser>
 	</extension>
 	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
-        <resourceServiceProvider
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
-            uriExtension="table">
-        </resourceServiceProvider>
-    </extension>
-
-
+		<resourceServiceProvider
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+			uriExtension="table">
+		</resourceServiceProvider>
+	</extension>
 	<!-- marker definitions for org.eclipse.osbp.xtext.table.TableDSL -->
 	<extension
-	        id="tabledsl.check.fast"
-	        name="TableDSL Problem"
-	        point="org.eclipse.core.resources.markers">
-	    <super type="org.eclipse.xtext.ui.check.fast"/>
-	    <persistent value="true"/>
+			id="tabledsl.check.fast"
+			name="TableDSL Problem"
+			point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.xtext.ui.check.fast"/>
+		<persistent value="true"/>
 	</extension>
 	<extension
-	        id="tabledsl.check.normal"
-	        name="TableDSL Problem"
-	        point="org.eclipse.core.resources.markers">
-	    <super type="org.eclipse.xtext.ui.check.normal"/>
-	    <persistent value="true"/>
+			id="tabledsl.check.normal"
+			name="TableDSL Problem"
+			point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.xtext.ui.check.normal"/>
+		<persistent value="true"/>
 	</extension>
 	<extension
-	        id="tabledsl.check.expensive"
-	        name="TableDSL Problem"
-	        point="org.eclipse.core.resources.markers">
-	    <super type="org.eclipse.xtext.ui.check.expensive"/>
-	    <persistent value="true"/>
+			id="tabledsl.check.expensive"
+			name="TableDSL Problem"
+			point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.xtext.ui.check.expensive"/>
+		<persistent value="true"/>
 	</extension>
-
-   <extension
-         point="org.eclipse.xtext.builder.participant">
-      <participant
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
-            fileExtensions="table"
-            >
-      </participant>
-   </extension>
-   <extension
-            point="org.eclipse.ui.preferencePages">
-        <page
-            category="org.eclipse.osbp.xtext.table.TableDSL"
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
-            id="org.eclipse.osbp.xtext.table.TableDSL.compiler.preferencePage"
-            name="Compiler">
-            <keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
-        </page>
-    </extension>
-    <extension
-            point="org.eclipse.ui.propertyPages">
-        <page
-            category="org.eclipse.osbp.xtext.table.TableDSL"
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
-            id="org.eclipse.osbp.xtext.table.TableDSL.compiler.propertyPage"
-            name="Compiler">
-            <keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
-            <enabledWhen>
-	            <adapt type="org.eclipse.core.resources.IProject"/>
+	<extension point="org.eclipse.xtext.builder.participant">
+		<participant
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+			fileExtensions="table"/>
+	</extension>
+	<extension point="org.eclipse.ui.preferencePages">
+		<page
+			category="org.eclipse.osbp.xtext.table.TableDSL"
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+			id="org.eclipse.osbp.xtext.table.TableDSL.compiler.preferencePage"
+			name="Compiler">
+			<keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
+		</page>
+	</extension>
+	<extension point="org.eclipse.ui.propertyPages">
+		<page
+			category="org.eclipse.osbp.xtext.table.TableDSL"
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+			id="org.eclipse.osbp.xtext.table.TableDSL.compiler.propertyPage"
+			name="Compiler">
+			<keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
+			<enabledWhen>
+				<adapt type="org.eclipse.core.resources.IProject"/>
 			</enabledWhen>
-	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
-        </page>
-    </extension>
-
+			<filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+		</page>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
+			<command
+				commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
+				id="org.eclipse.osbp.xtext.table.TableDSL.OpenGeneratedCode"
+				style="push">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened" />
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+		<handler
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+			commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+			<activeWhen>
+				<reference definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened" />
+			</activeWhen>
+		</handler>
+	</extension>
 	<!-- Quick Outline -->
 	<extension
 		point="org.eclipse.ui.handlers">
@@ -314,35 +322,35 @@
 			</command>
 		</menuContribution>
 	</extension>
-    <!-- quickfix marker resolution generator for org.eclipse.osbp.xtext.table.TableDSL -->
-    <extension
-            point="org.eclipse.ui.ide.markerResolution">
-        <markerResolutionGenerator
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
-            markerType="org.eclipse.osbp.xtext.table.ui.tabledsl.check.fast">
-            <attribute
-                name="FIXABLE_KEY"
-                value="true">
-            </attribute>
-        </markerResolutionGenerator>
-        <markerResolutionGenerator
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
-            markerType="org.eclipse.osbp.xtext.table.ui.tabledsl.check.normal">
-            <attribute
-                name="FIXABLE_KEY"
-                value="true">
-            </attribute>
-        </markerResolutionGenerator>
-        <markerResolutionGenerator
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
-            markerType="org.eclipse.osbp.xtext.table.ui.tabledsl.check.expensive">
-            <attribute
-                name="FIXABLE_KEY"
-                value="true">
-            </attribute>
-        </markerResolutionGenerator>
-    </extension>
-   	<!-- Rename Refactoring -->
+	<!-- quickfix marker resolution generator for org.eclipse.osbp.xtext.table.TableDSL -->
+	<extension
+			point="org.eclipse.ui.ide.markerResolution">
+		<markerResolutionGenerator
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+			markerType="org.eclipse.osbp.xtext.table.ui.tabledsl.check.fast">
+			<attribute
+				name="FIXABLE_KEY"
+				value="true">
+			</attribute>
+		</markerResolutionGenerator>
+		<markerResolutionGenerator
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+			markerType="org.eclipse.osbp.xtext.table.ui.tabledsl.check.normal">
+			<attribute
+				name="FIXABLE_KEY"
+				value="true">
+			</attribute>
+		</markerResolutionGenerator>
+		<markerResolutionGenerator
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+			markerType="org.eclipse.osbp.xtext.table.ui.tabledsl.check.expensive">
+			<attribute
+				name="FIXABLE_KEY"
+				value="true">
+			</attribute>
+		</markerResolutionGenerator>
+	</extension>
+	<!-- Rename Refactoring -->
 	<extension point="org.eclipse.ui.handlers">
 		<handler 
 			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
@@ -354,32 +362,30 @@
 			</activeWhen>
 		</handler>
 	</extension>
-    <extension point="org.eclipse.ui.menus">
-         <menuContribution
-            locationURI="popup:#TextEditorContext?after=group.edit">
-         <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
-               style="push">
-            <visibleWhen checkEnabled="false">
-               <reference
-                     definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
-               </reference>
-            </visibleWhen>
-         </command>
-      </menuContribution>
-   </extension>
-   <extension point="org.eclipse.ui.preferencePages">
-	    <page
-	        category="org.eclipse.osbp.xtext.table.TableDSL"
-	        class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
-	        id="org.eclipse.osbp.xtext.table.TableDSL.refactoring"
-	        name="Refactoring">
-	        <keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
-	    </page>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.edit">
+			<command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+				style="push">
+				<visibleWhen checkEnabled="false">
+					<reference
+						definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+					</reference>
+				</visibleWhen>
+			</command>
+		</menuContribution>
 	</extension>
-
-<!-- Type Hierarchy  -->
-	<extension
-		point="org.eclipse.ui.handlers">
+	<extension point="org.eclipse.ui.preferencePages">
+		<page
+			category="org.eclipse.osbp.xtext.table.TableDSL"
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+			id="org.eclipse.osbp.xtext.table.TableDSL.refactoring"
+			name="Refactoring">
+			<keywordReference id="org.eclipse.osbp.xtext.table.ui.keyword_TableDSL"/>
+		</page>
+	</extension>
+	<!-- Type Hierarchy  -->
+	<extension point="org.eclipse.ui.handlers">
 		<handler 
 			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchyHandler"
 			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy">
@@ -398,9 +404,31 @@
 				</reference>
 			</activeWhen>
 		</handler>
+		<handler
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.imports.OrganizeImportsHandler"
+			commandId="org.eclipse.xtext.xbase.ui.organizeImports">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
 	</extension>
 	<extension point="org.eclipse.ui.menus">
 		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.edit">
+			 <command
+				 commandId="org.eclipse.xtext.xbase.ui.organizeImports"
+				 style="push"
+				 tooltip="Organize Imports">
+				<visibleWhen checkEnabled="false">
+					<reference
+						definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+					</reference>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<menuContribution
 			locationURI="popup:#TextEditorContext?after=group.open">
 			<command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy"
 				style="push"
@@ -422,8 +450,7 @@
 		</menuContribution>
 	</extension>
 	<!-- Call Hierachy -->
-	<extension
-		point="org.eclipse.ui.handlers">
+	<extension point="org.eclipse.ui.handlers">
 		<handler 
 			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierachyHandler"
 			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy">
@@ -434,7 +461,6 @@
 			</activeWhen>
 		</handler>
 	</extension>
-	
 	<extension point="org.eclipse.ui.menus">
 		<menuContribution
 			locationURI="popup:#TextEditorContext?after=group.open">
@@ -447,50 +473,49 @@
 			</command>
 		</menuContribution>
 	</extension>
-	<extension
-         point="org.eclipse.core.runtime.adapters">
-      <factory class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.builder.smap.StratumBreakpointAdapterFactory"
-         adaptableType="org.eclipse.xtext.ui.editor.XtextEditor">
-         <adapter type="org.eclipse.debug.ui.actions.IToggleBreakpointsTarget"/>
-      </factory> 
-   </extension>
-   <extension point="org.eclipse.ui.editorActions">
-      <editorContribution targetID="org.eclipse.osbp.xtext.table.TableDSL" 
-                          id="org.eclipse.osbp.xtext.table.TableDSL.rulerActions">
-	     <action
-	             label="Not Used"
-	             class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
-	             style="push"
-	             actionID="RulerDoubleClick"
-	             id="org.eclipse.osbp.xtext.table.TableDSL.doubleClickBreakpointAction"/>
-	  </editorContribution>
-   </extension>
-   <extension point="org.eclipse.ui.popupMenus">
-      <viewerContribution
-         targetID="org.eclipse.osbp.xtext.table.TableDSL.RulerContext"
-         id="org.eclipse.osbp.xtext.table.TableDSL.RulerPopupActions">
-         <action
-            label="Toggle Breakpoint"
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
-            menubarPath="debug"
-            id="org.eclipse.osbp.xtext.table.TableDSL.rulerContextMenu.toggleBreakpointAction">
-         </action>
-         <action
-            label="Not used"
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
-            menubarPath="debug"
-            id="org.eclipse.osbp.xtext.table.TableDSL.rulerContextMenu.enableDisableBreakpointAction">
-         </action>
-         <action
-           label="Breakpoint Properties"
-           helpContextId="breakpoint_properties_action_context"
-           class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.jdt.debug.ui.actions.JavaBreakpointPropertiesRulerActionDelegate"
-           menubarPath="group.properties"
-           id="org.eclipse.osbp.xtext.table.TableDSL.rulerContextMenu.openBreapointPropertiesAction">
-         </action>
-      </viewerContribution>
-   </extension>
-    <!-- Introduce Local Variable Refactoring -->
+	<extension point="org.eclipse.core.runtime.adapters">
+		<factory class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.builder.smap.StratumBreakpointAdapterFactory"
+			adaptableType="org.eclipse.xtext.ui.editor.XtextEditor">
+			<adapter type="org.eclipse.debug.ui.actions.IToggleBreakpointsTarget"/>
+		</factory> 
+	</extension>
+	<extension point="org.eclipse.ui.editorActions">
+		<editorContribution targetID="org.eclipse.osbp.xtext.table.TableDSL" 
+			id="org.eclipse.osbp.xtext.table.TableDSL.rulerActions">
+			<action
+				label="Not Used"
+	 			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+				style="push"
+				actionID="RulerDoubleClick"
+				id="org.eclipse.osbp.xtext.table.TableDSL.doubleClickBreakpointAction"/>
+		</editorContribution>
+	</extension>
+	<extension point="org.eclipse.ui.popupMenus">
+		<viewerContribution
+			targetID="org.eclipse.osbp.xtext.table.TableDSL.RulerContext"
+			id="org.eclipse.osbp.xtext.table.TableDSL.RulerPopupActions">
+			<action
+				label="Toggle Breakpoint"
+				class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+				menubarPath="debug"
+				id="org.eclipse.osbp.xtext.table.TableDSL.rulerContextMenu.toggleBreakpointAction">
+			</action>
+			<action
+				label="Not used"
+				class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
+				menubarPath="debug"
+				id="org.eclipse.osbp.xtext.table.TableDSL.rulerContextMenu.enableDisableBreakpointAction">
+			</action>
+			<action
+				label="Breakpoint Properties"
+				helpContextId="breakpoint_properties_action_context"
+				class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.jdt.debug.ui.actions.JavaBreakpointPropertiesRulerActionDelegate"
+				menubarPath="group.properties"
+				id="org.eclipse.osbp.xtext.table.TableDSL.rulerContextMenu.openBreapointPropertiesAction">
+			</action>
+		</viewerContribution>
+	</extension>
+	<!-- Introduce Local Variable Refactoring -->
 	<extension point="org.eclipse.ui.handlers">
 		<handler 
 			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.refactoring.ExtractVariableHandler"
@@ -502,61 +527,65 @@
 			</activeWhen>
 		</handler>
 	</extension>
-    <extension point="org.eclipse.ui.menus">
-         <menuContribution
-            locationURI="popup:#TextEditorContext?after=group.edit">
-         <command commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable"
-               style="push">
-            <visibleWhen checkEnabled="false">
-               <reference
-                     definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
-               </reference>
-            </visibleWhen>
-         </command>
-      </menuContribution>
-   </extension>  
-   <!-- Open implementation -->
-   <extension point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.navigation.OpenImplementationHandler"
-            commandId="org.eclipse.xtext.xbase.ui.OpenImplementationCommand">
-            <activeWhen>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.edit">
+			<command commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable"
+				style="push">
+				<visibleWhen checkEnabled="false">
+					<reference
+						definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+					</reference>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<!-- Open implementation -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.navigation.OpenImplementationHandler"
+			commandId="org.eclipse.xtext.xbase.ui.OpenImplementationCommand">
+			<activeWhen>
 				<reference
 					definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
 				</reference>
 			</activeWhen>
-      </handler>
-   </extension>
- <extension point="org.eclipse.ui.menus">
-       <menuContribution
-            locationURI="menu:navigate?after=open.ext4">
-         <command commandId="org.eclipse.xtext.xbase.ui.OpenImplementationCommand">
-		<visibleWhen checkEnabled="false">
-              <reference
-                 definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
-              </reference>
-		</visibleWhen>
-         </command>
-      </menuContribution>
-   </extension>
-
-  <extension point="org.eclipse.compare.contentViewers">
-    <viewer id="org.eclipse.osbp.xtext.table.TableDSL.compare.contentViewers"
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
-            extensions="table">
-    </viewer>
-  </extension>
-  <extension point="org.eclipse.compare.contentMergeViewers">
-    <viewer id="org.eclipse.osbp.xtext.table.TableDSL.compare.contentMergeViewers"
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
-            extensions="table" label="TableDSL Compare">
-     </viewer>
-  </extension>
-  <extension point="org.eclipse.ui.editors.documentProviders">
-    <provider id="org.eclipse.osbp.xtext.table.TableDSL.editors.documentProviders"
-            class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
-            extensions="table">
-    </provider>
-  </extension>
-
+		</handler>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="menu:navigate?after=open.ext4">
+			<command commandId="org.eclipse.xtext.xbase.ui.OpenImplementationCommand">
+				<visibleWhen checkEnabled="false">
+					<reference
+						definitionId="org.eclipse.osbp.xtext.table.TableDSL.Editor.opened">
+					</reference>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.compare.contentViewers">
+		<viewer id="org.eclipse.osbp.xtext.table.TableDSL.compare.contentViewers"
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+			extensions="table">
+		</viewer>
+	</extension>
+	<extension point="org.eclipse.compare.contentMergeViewers">
+		<viewer id="org.eclipse.osbp.xtext.table.TableDSL.compare.contentMergeViewers"
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+			extensions="table" label="TableDSL Compare">
+		</viewer>
+	</extension>
+	<extension point="org.eclipse.ui.editors.documentProviders">
+		<provider id="org.eclipse.osbp.xtext.table.TableDSL.editors.documentProviders"
+			class="org.eclipse.osbp.xtext.table.ui.TableDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+			extensions="table">
+		</provider>
+	</extension>
+	<extension point="org.eclipse.team.core.fileTypes">
+		<fileTypes
+			extension="table"
+			type="text">
+		</fileTypes>
+	</extension>
 </plugin>
diff --git a/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/AbstractTableDSLUiModule.java b/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/AbstractTableDSLUiModule.java
index 94e6855..066ff39 100644
--- a/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/AbstractTableDSLUiModule.java
+++ b/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/AbstractTableDSLUiModule.java
@@ -1,374 +1,395 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table.ui;
 
-import org.eclipse.xtext.ui.DefaultUiModule;
+import com.google.inject.Binder;
+import com.google.inject.Provider;
+import com.google.inject.name.Names;
+import org.eclipse.compare.IViewerCreator;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.osbp.xtext.table.ide.contentassist.antlr.PartialTableDSLContentAssistParser;
+import org.eclipse.osbp.xtext.table.ide.contentassist.antlr.TableDSLParser;
+import org.eclipse.osbp.xtext.table.ide.contentassist.antlr.internal.InternalTableDSLLexer;
+import org.eclipse.osbp.xtext.table.ui.contentassist.TableDSLProposalProvider;
+import org.eclipse.osbp.xtext.table.ui.labeling.TableDSLDescriptionLabelProvider;
+import org.eclipse.osbp.xtext.table.ui.labeling.TableDSLLabelProvider;
+import org.eclipse.osbp.xtext.table.ui.outline.TableDSLOutlineTreeProvider;
+import org.eclipse.osbp.xtext.table.ui.quickfix.TableDSLQuickfixProvider;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.builder.BuilderParticipant;
+import org.eclipse.xtext.builder.EclipseOutputConfigurationProvider;
+import org.eclipse.xtext.builder.IXtextBuilderParticipant;
+import org.eclipse.xtext.builder.builderState.IBuilderState;
+import org.eclipse.xtext.builder.clustering.CurrentDescriptions;
+import org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource;
+import org.eclipse.xtext.builder.nature.NatureAddingEditorCallback;
+import org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess;
+import org.eclipse.xtext.common.types.ui.navigation.GlobalDerivedMemberAwareURIEditorOpener;
+import org.eclipse.xtext.common.types.ui.navigation.IDerivedMemberAwareEditorOpener;
+import org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation;
+import org.eclipse.xtext.common.types.ui.refactoring.JdtRenameSupport;
+import org.eclipse.xtext.common.types.ui.refactoring.participant.JdtRenameParticipant;
+import org.eclipse.xtext.common.types.ui.refactoring.participant.JvmMemberRenameStrategy;
+import org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider;
+import org.eclipse.xtext.generator.IContextualOutputConfigurationProvider;
+import org.eclipse.xtext.ide.LexerIdeBindings;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
+import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser;
+import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
+import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
+import org.eclipse.xtext.parser.antlr.LexerProvider;
+import org.eclipse.xtext.resource.IResourceDescriptions;
+import org.eclipse.xtext.resource.containers.IAllContainersState;
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
+import org.eclipse.xtext.service.SingletonBinding;
+import org.eclipse.xtext.ui.LanguageSpecific;
+import org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialEditingContentAssistContextFactory;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.PartialEditingContentAssistContextFactory;
+import org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage;
+import org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration;
+import org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar;
+import org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry;
+import org.eclipse.xtext.ui.compare.DefaultViewerCreator;
+import org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource;
+import org.eclipse.xtext.ui.editor.GlobalURIEditorOpener;
+import org.eclipse.xtext.ui.editor.IURIEditorOpener;
+import org.eclipse.xtext.ui.editor.IXtextEditorCallback;
+import org.eclipse.xtext.ui.editor.XtextEditor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher;
+import org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper;
+import org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.DelegatingContentAssistContextFactory;
+import org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler;
+import org.eclipse.xtext.ui.editor.findrefs.ReferenceQueryExecutor;
+import org.eclipse.xtext.ui.editor.model.XtextDocumentProvider;
+import org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider;
+import org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider;
+import org.eclipse.xtext.ui.editor.outline.impl.OutlineNodeElementOpener;
+import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer;
+import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider;
+import org.eclipse.xtext.ui.editor.templates.XtextTemplateContextType;
+import org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage;
+import org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler;
+import org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator;
+import org.eclipse.xtext.ui.refactoring.IReferenceUpdater;
+import org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider;
+import org.eclipse.xtext.ui.refactoring.IRenameStrategy;
+import org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategyProvider;
+import org.eclipse.xtext.ui.refactoring.ui.IRenameContextFactory;
+import org.eclipse.xtext.ui.refactoring.ui.IRenameSupport;
+import org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences;
+import org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider;
+import org.eclipse.xtext.ui.shared.Access;
+import org.eclipse.xtext.xbase.annotations.ui.DefaultXbaseWithAnnotationsUiModule;
+import org.eclipse.xtext.xbase.imports.IUnresolvedTypeResolver;
+import org.eclipse.xtext.xbase.ui.contentassist.ImportingTypesProposalProvider;
+import org.eclipse.xtext.xbase.ui.editor.XbaseDocumentProvider;
+import org.eclipse.xtext.xbase.ui.editor.XbaseEditor;
+import org.eclipse.xtext.xbase.ui.generator.trace.XbaseOpenGeneratedFileHandler;
+import org.eclipse.xtext.xbase.ui.imports.InteractiveUnresolvedTypeResolver;
+import org.eclipse.xtext.xbase.ui.jvmmodel.findrefs.JvmModelFindReferenceHandler;
+import org.eclipse.xtext.xbase.ui.jvmmodel.findrefs.JvmModelReferenceQueryExecutor;
+import org.eclipse.xtext.xbase.ui.jvmmodel.navigation.DerivedMemberAwareEditorOpener;
+import org.eclipse.xtext.xbase.ui.jvmmodel.outline.JvmOutlineNodeElementOpener;
+import org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.DefaultJvmModelRenameStrategy;
+import org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.JvmModelDependentElementsCalculator;
+import org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.JvmModelJdtRenameParticipantContext;
+import org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.jdt.CombinedJvmJdtRenameContextFactory;
+import org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.jdt.CombinedJvmJdtRenameRefactoringProvider;
+import org.eclipse.xtext.xbase.ui.refactoring.XbaseReferenceUpdater;
+import org.eclipse.xtext.xbase.ui.templates.XbaseTemplateContextType;
 
 /**
- * Manual modifications go to {org.eclipse.osbp.xtext.table.ui.TableDSLUiModule}
+ * Manual modifications go to {@link TableDSLUiModule}.
  */
 @SuppressWarnings("all")
-public abstract class AbstractTableDSLUiModule extends DefaultUiModule {
-	
+public abstract class AbstractTableDSLUiModule extends DefaultXbaseWithAnnotationsUiModule {
+
 	public AbstractTableDSLUiModule(AbstractUIPlugin plugin) {
 		super(plugin);
 	}
 	
+	// contributed by org.eclipse.xtext.xtext.generator.ImplicitFragment
+	public Provider<? extends IAllContainersState> provideIAllContainersState() {
+		return Access.getJavaProjectsState();
+	}
 	
-	// contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
-	public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() {
-		return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState();
+	// contributed by org.eclipse.xtext.xtext.generator.ImplicitFragment
+	public Class<? extends XtextEditor> bindXtextEditor() {
+		return XbaseEditor.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.XtextEditor> bindXtextEditor() {
-		return org.eclipse.xtext.xbase.ui.editor.XbaseEditor.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ImplicitFragment
+	public Class<? extends XtextDocumentProvider> bindXtextDocumentProvider() {
+		return XbaseDocumentProvider.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.model.XtextDocumentProvider> bindXtextDocumentProvider() {
-		return org.eclipse.xtext.xbase.ui.editor.XbaseDocumentProvider.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ImplicitFragment
+	public Class<? extends OpenGeneratedFileHandler> bindOpenGeneratedFileHandler() {
+		return XbaseOpenGeneratedFileHandler.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper> bindIProposalConflictHelper() {
-		return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends IProposalConflictHelper> bindIProposalConflictHelper() {
+		return AntlrProposalConflictHelper.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public void configureHighlightingLexer(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.osbp.xtext.table.parser.antlr.internal.InternalTableDSLLexer.class);
+	
+	// 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(InternalTableDSLLexer.class);
 	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class);
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public void configureHighlightingLexer(Binder binder) {
+		binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class)
+			.annotatedWith(Names.named(LexerIdeBindings.HIGHLIGHTING))
+			.to(org.eclipse.osbp.xtext.table.parser.antlr.internal.InternalTableDSLLexer.class);
 	}
-
-	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
-	public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class);
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public void configureHighlightingTokenDefProvider(Binder binder) {
+		binder.bind(ITokenDefProvider.class)
+			.annotatedWith(Names.named(LexerIdeBindings.HIGHLIGHTING))
+			.to(AntlrTokenDefProvider.class);
 	}
-
-	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
-		return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+		return DelegatingContentAssistContextFactory.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
-	public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class);
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends IContentAssistParser> bindIContentAssistParser() {
+		return TableDSLParser.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
-		return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public void configureContentAssistLexerProvider(Binder binder) {
+		binder.bind(InternalTableDSLLexer.class).toProvider(LexerProvider.create(InternalTableDSLLexer.class));
 	}
-
-	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
-	public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
-		return org.eclipse.xtext.builder.BuilderParticipant.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+	public void configureIResourceDescriptionsBuilderScope(Binder binder) {
+		binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(CurrentDescriptions.ResourceSetAware.class);
 	}
-
-	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
-	public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() {
-		return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+	
+	// contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+	public Class<? extends IXtextEditorCallback> bindIXtextEditorCallback() {
+		return NatureAddingEditorCallback.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
-	public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class);
+	
+	// contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+	public Class<? extends IContextualOutputConfigurationProvider> bindIContextualOutputConfigurationProvider() {
+		return EclipseOutputConfigurationProvider.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
-	public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
-		return org.eclipse.osbp.xtext.table.ui.labeling.TableDSLLabelProvider.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+	public void configureIResourceDescriptionsPersisted(Binder binder) {
+		binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(IBuilderState.class);
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
-	public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(org.eclipse.osbp.xtext.table.ui.labeling.TableDSLDescriptionLabelProvider.class);
+	
+	// contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+	public Class<? extends DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+		return PersistentDataAwareDirtyResource.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
-		return org.eclipse.osbp.xtext.table.ui.outline.TableDSLOutlineTreeProvider.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+	public Class<? extends IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+		return BuilderParticipant.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
-		return org.eclipse.osbp.xtext.table.ui.outline.TableDSLOutlineTreeProvider.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+	public IWorkspaceRoot bindIWorkspaceRootToInstance() {
+		return ResourcesPlugin.getWorkspace().getRoot();
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
-		return org.eclipse.osbp.xtext.table.ui.quickfix.TableDSLQuickfixProvider.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
+	public void configureBuilderPreferenceStoreInitializer(Binder binder) {
+		binder.bind(IPreferenceStoreInitializer.class)
+			.annotatedWith(Names.named("builderPreferenceInitializer"))
+			.to(BuilderPreferenceAccess.Initializer.class);
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.contentAssist.ContentAssistFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
-		return org.eclipse.osbp.xtext.table.ui.contentassist.TableDSLProposalProvider.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
+	public Class<? extends ILabelProvider> bindILabelProvider() {
+		return TableDSLLabelProvider.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() {
-		return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.labeling.LabelProviderFragment2
+	public void configureResourceUIServiceLabelProvider(Binder binder) {
+		binder.bind(ILabelProvider.class).annotatedWith(ResourceServiceDescriptionLabelProvider.class).to(TableDSLDescriptionLabelProvider.class);
 	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() {
-		return org.eclipse.osbp.xtext.table.ui.contentassist.antlr.TableDSLParser.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2
+	public Class<? extends IOutlineTreeProvider> bindIOutlineTreeProvider() {
+		return TableDSLOutlineTreeProvider.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
-	public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.osbp.xtext.table.ui.contentassist.antlr.internal.InternalTableDSLLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.osbp.xtext.table.ui.contentassist.antlr.internal.InternalTableDSLLexer.class));
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.outline.OutlineTreeProviderFragment2
+	public Class<? extends IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+		return TableDSLOutlineTreeProvider.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
-	public void configureContentAssistLexer(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(org.eclipse.osbp.xtext.table.ui.contentassist.antlr.internal.InternalTableDSLLexer.class);
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.quickfix.QuickfixProviderFragment2
+	public Class<? extends IssueResolutionProvider> bindIssueResolutionProvider() {
+		return TableDSLQuickfixProvider.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
-	public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class);
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.contentAssist.ContentAssistFragment2
+	public Class<? extends IContentProposalProvider> bindIContentProposalProvider() {
+		return TableDSLProposalProvider.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameSupport.Factory> bindIRenameSupport$Factory() {
-		return org.eclipse.xtext.common.types.ui.refactoring.JdtRenameSupport.Factory.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+	public void configureIPreferenceStoreInitializer(Binder binder) {
+		binder.bind(IPreferenceStoreInitializer.class)
+			.annotatedWith(Names.named("RefactoringPreferences"))
+			.to(RefactoringPreferences.Initializer.class);
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy.Provider> bindIRenameStrategy$Provider() {
-		return org.eclipse.xtext.common.types.ui.refactoring.participant.JvmMemberRenameStrategy.Provider.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+	public Class<? extends IRenameSupport.Factory> bindIRenameSupport$Factory() {
+		return JdtRenameSupport.Factory.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
-	public void configureJvmMemberRenameStrategy$Provider$Delegate(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.ui.refactoring.IRenameStrategy.Provider.class).annotatedWith(org.eclipse.xtext.common.types.ui.refactoring.participant.JvmMemberRenameStrategy.Provider.Delegate.class).to(org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategyProvider.class);
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+	public Class<? extends IRenameStrategy.Provider> bindIRenameStrategy$Provider() {
+		return JvmMemberRenameStrategy.Provider.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public java.lang.ClassLoader bindClassLoaderToInstance() {
-		return getClass().getClassLoader();
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+	public void configureJvmMemberRenameStrategy$Provider$Delegate(Binder binder) {
+		binder.bind(IRenameStrategy.Provider.class).annotatedWith(JvmMemberRenameStrategy.Provider.Delegate.class).to(DefaultRenameStrategyProvider.class);
 	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
-		return org.eclipse.xtext.common.types.access.jdt.JdtTypeProviderFactory.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.types.TypesGeneratorFragment2
+	public Class<? extends PrefixMatcher> bindPrefixMatcher() {
+		return FQNPrefixMatcher.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
-		return org.eclipse.xtext.common.types.xtext.ui.JdtBasedSimpleTypeScopeProvider.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends FindReferencesHandler> bindFindReferencesHandler() {
+		return JvmModelFindReferenceHandler.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider> bindITypesProposalProvider() {
-		return org.eclipse.xtext.common.types.xtext.ui.JdtTypesProposalProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.common.types.access.jdt.IJavaProjectProvider> bindIJavaProjectProvider() {
-		return org.eclipse.xtext.common.types.xtext.ui.XtextResourceSetBasedProjectProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher> bindPrefixMatcher() {
-		return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.IValidationJobScheduler> bindIValidationJobScheduler() {
-		return org.eclipse.xtext.common.types.xtext.ui.JdtValidationJobScheduler.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.impl.RefactoringResourceSetProvider> bindRefactoringResourceSetProvider() {
-		return org.eclipse.xtext.common.types.ui.refactoring.JvmRefactoringResourceSetProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractAntlrTokenToAttributeIdMapper> bindAbstractAntlrTokenToAttributeIdMapper() {
-		return org.eclipse.xtext.xbase.ui.syntaxcoloring.XbaseTokenToAttributeIdMapper.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider.ReferenceProposalCreator> bindAbstractJavaBasedContentProposalProvider$ReferenceProposalCreator() {
-		return org.eclipse.xtext.xbase.ui.contentassist.XbaseReferenceProposalCreator.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.jface.text.contentassist.IContentAssistProcessor> bindIContentAssistProcessor() {
-		return org.eclipse.xtext.ui.editor.contentassist.RepeatedContentAssistProcessor.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator> bindISemanticHighlightingCalculator() {
-		return org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingCalculator.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration> bindIHighlightingConfiguration() {
-		return org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingConfiguration.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider> bindIEObjectHoverProvider() {
-		return org.eclipse.xtext.xbase.ui.hover.XbaseHoverProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.hover.IEObjectHover> bindIEObjectHover() {
-		return org.eclipse.xtext.xbase.ui.hover.XbaseDispatchingEObjectTextHover.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.hover.html.IEObjectHoverDocumentationProvider> bindIEObjectHoverDocumentationProvider() {
-		return org.eclipse.xtext.xbase.ui.hover.XbaseHoverDocumentationProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider.CrossRefResolutionConverter> bindDefaultQuickfixProvider$CrossRefResolutionConverter() {
-		return org.eclipse.xtext.xbase.ui.quickfix.XbaseCrossRefResolutionConverter.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.eclipse.xtext.xbase.ui.validation.XbaseUIValidator> bindXbaseUIValidator() {
-		return org.eclipse.xtext.xbase.ui.validation.XbaseUIValidator.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkHelper> bindIHyperlinkHelper() {
-		return org.eclipse.xtext.xbase.ui.navigation.TypeLiteralAwareHyperlinkHelper.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.typesystem.internal.IFeatureScopeTracker.Provider> bindIFeatureScopeTracker$Provider() {
-		return org.eclipse.xtext.xbase.typesystem.internal.OptimizingFeatureScopeTrackerProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler> bindFindReferencesHandler() {
-		return org.eclipse.xtext.xbase.ui.jvmmodel.findrefs.JvmModelFindReferenceHandler.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends ReferenceQueryExecutor> bindReferenceQueryExecutor() {
+		return JvmModelReferenceQueryExecutor.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.findrefs.ReferenceQueryExecutor> bindReferenceQueryExecutor() {
-		return org.eclipse.xtext.xbase.ui.jvmmodel.findrefs.JvmModelReferenceQueryExecutor.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IDependentElementsCalculator> bindIDependentElementsCalculator() {
+		return JvmModelDependentElementsCalculator.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
-		return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.JvmModelDependentElementsCalculator.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+		return CombinedJvmJdtRenameRefactoringProvider.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
-		return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.jdt.CombinedJvmJdtRenameRefactoringProvider.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IReferenceUpdater> bindIReferenceUpdater() {
+		return XbaseReferenceUpdater.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.IReferenceUpdater> bindIReferenceUpdater() {
-		return org.eclipse.xtext.xbase.ui.refactoring.XbaseReferenceUpdater.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IRenameContextFactory> bindIRenameContextFactory() {
+		return CombinedJvmJdtRenameContextFactory.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameContextFactory> bindIRenameContextFactory() {
-		return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.jdt.CombinedJvmJdtRenameContextFactory.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IRenameStrategy> bindIRenameStrategy() {
+		return DefaultJvmModelRenameStrategy.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.common.types.ui.refactoring.participant.JdtRenameParticipant.ContextFactory> bindJdtRenameParticipant$ContextFactory() {
-		return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.JvmModelJdtRenameParticipantContext.ContextFactory.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends JdtRenameParticipant.ContextFactory> bindJdtRenameParticipant$ContextFactory() {
+		return JvmModelJdtRenameParticipantContext.ContextFactory.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy> bindIRenameStrategy() {
-		return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.DefaultJvmModelRenameStrategy.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends OutlineNodeElementOpener> bindOutlineNodeElementOpener() {
+		return JvmOutlineNodeElementOpener.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.OutlineNodeElementOpener> bindOutlineNodeElementOpener() {
-		return org.eclipse.xtext.xbase.ui.jvmmodel.outline.JvmOutlineNodeElementOpener.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends GlobalURIEditorOpener> bindGlobalURIEditorOpener() {
+		return GlobalDerivedMemberAwareURIEditorOpener.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.GlobalURIEditorOpener> bindGlobalURIEditorOpener() {
-		return org.eclipse.xtext.common.types.ui.navigation.GlobalDerivedMemberAwareURIEditorOpener.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IJavaSearchParticipation> bindIJavaSearchParticipation() {
+		return IJavaSearchParticipation.No.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.occurrences.IOccurrenceComputer> bindIOccurrenceComputer() {
-		return org.eclipse.xtext.xbase.ui.jvmmodel.occurrence.JvmModelOccurrenceComputer.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public void configureLanguageSpecificURIEditorOpener(Binder binder) {
+		if (PlatformUI.isWorkbenchRunning()) {
+			binder.bind(IURIEditorOpener.class).annotatedWith(LanguageSpecific.class).to(DerivedMemberAwareEditorOpener.class);
+			binder.bind(IDerivedMemberAwareEditorOpener.class).to(DerivedMemberAwareEditorOpener.class);
+		}
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation> bindIJavaSearchParticipation() {
-		return org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation.No.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IUnresolvedTypeResolver> bindIUnresolvedTypeResolver() {
+		return InteractiveUnresolvedTypeResolver.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public void configureLanguageSpecificURIEditorOpener(com.google.inject.Binder binder) {
-		if (org.eclipse.ui.PlatformUI.isWorkbenchRunning()) { 
-			binder.bind(org.eclipse.xtext.ui.editor.IURIEditorOpener.class).annotatedWith(org.eclipse.xtext.ui.LanguageSpecific.class).to(org.eclipse.xtext.xbase.ui.jvmmodel.navigation.DerivedMemberAwareEditorOpener.class); 
-			binder.bind(org.eclipse.xtext.common.types.ui.navigation.IDerivedMemberAwareEditorOpener.class).to(org.eclipse.xtext.xbase.ui.jvmmodel.navigation.DerivedMemberAwareEditorOpener.class); 
-		};
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends ITypesProposalProvider> bindITypesProposalProvider() {
+		return ImportingTypesProposalProvider.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.jface.text.hyperlink.IHyperlinkDetector> bindIHyperlinkDetector() {
-		return org.eclipse.xtext.xbase.ui.navigation.XbaseHyperlinkDetector.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends XtextTemplateContextType> bindXtextTemplateContextType() {
+		return XbaseTemplateContextType.class;
 	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.ui.quickfix.JavaTypeQuickfixes> bindJavaTypeQuickfixes() {
-		return org.eclipse.xtext.xbase.ui.quickfix.JavaTypeQuickfixesNoImportSection.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+	public Provider<? extends TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+		return AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
-	public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
-		return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+	public Provider<? extends LanguageRegistry> provideLanguageRegistry() {
+		return AccessibleCodetemplatesActivator.getLanguageRegistry();
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
-	public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry> provideLanguageRegistry() {
-		return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry();
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+	@SingletonBinding(eager=true)
+	public Class<? extends LanguageRegistrar> bindLanguageRegistrar() {
+		return LanguageRegistrar.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
-	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar> bindLanguageRegistrar() {
-		return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+	public Class<? extends XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+		return AdvancedTemplatesPreferencePage.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
-		return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+	public Class<? extends IPartialEditingContentAssistParser> bindIPartialEditingContentAssistParser() {
+		return PartialTableDSLContentAssistParser.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() {
-		return org.eclipse.osbp.xtext.table.ui.contentassist.antlr.PartialTableDSLContentAssistParser.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.templates.CodetemplatesGeneratorFragment2
+	public Class<? extends IPartialEditingContentAssistContextFactory> bindIPartialEditingContentAssistContextFactory() {
+		return PartialEditingContentAssistContextFactory.class;
 	}
-
-	// contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
-	public Class<? extends org.eclipse.compare.IViewerCreator> bindIViewerCreator() {
-		return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.compare.CompareFragment2
+	public Class<? extends IViewerCreator> bindIViewerCreator() {
+		return DefaultViewerCreator.class;
 	}
-
-
+	
 }
diff --git a/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/TableDSLExecutableExtensionFactory.java b/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/TableDSLExecutableExtensionFactory.java
index 465c1a2..ff2fd95 100644
--- a/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/TableDSLExecutableExtensionFactory.java
+++ b/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/TableDSLExecutableExtensionFactory.java
@@ -1,25 +1,13 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table.ui;
 
+import com.google.inject.Injector;
+import org.eclipse.osbp.xtext.table.ui.internal.TableActivator;
 import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
 import org.osgi.framework.Bundle;
 
-import com.google.inject.Injector;
-
-import org.eclipse.osbp.xtext.table.ui.internal.TableDSLActivator;
-
 /**
  * This class was generated. Customizations should only happen in a newly
  * introduced subclass. 
@@ -28,12 +16,12 @@
 
 	@Override
 	protected Bundle getBundle() {
-		return TableDSLActivator.getInstance().getBundle();
+		return TableActivator.getInstance().getBundle();
 	}
 	
 	@Override
 	protected Injector getInjector() {
-		return TableDSLActivator.getInstance().getInjector(TableDSLActivator.ORG_ECLIPSE_OSBP_XTEXT_TABLE_TABLEDSL);
+		return TableActivator.getInstance().getInjector(TableActivator.ORG_ECLIPSE_OSBP_XTEXT_TABLE_TABLEDSL);
 	}
 	
 }
diff --git a/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/contentassist/AbstractTableDSLProposalProvider.java b/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/contentassist/AbstractTableDSLProposalProvider.java
index 1393993..62c15ee 100644
--- a/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/contentassist/AbstractTableDSLProposalProvider.java
+++ b/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/contentassist/AbstractTableDSLProposalProvider.java
@@ -1,40 +1,32 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table.ui.contentassist;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xtext.*;
-import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.osbp.xtext.oxtype.ui.contentassist.OXtypeProposalProvider;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.CrossReference;
+import org.eclipse.xtext.RuleCall;
 import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
 
 /**
- * Represents a generated, default implementation of superclass {@link org.eclipse.xtext.xbase.annotations.ui.contentassist.XbaseWithAnnotationsProposalProvider}.
+ * Represents a generated, default implementation of superclass {@link OXtypeProposalProvider}.
  * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
  * with a more concrete subtype. 
  */
-@SuppressWarnings("all")
-public class AbstractTableDSLProposalProvider extends org.eclipse.xtext.xbase.annotations.ui.contentassist.XbaseWithAnnotationsProposalProvider {
-		
+public abstract class AbstractTableDSLProposalProvider extends OXtypeProposalProvider {
+
+	public void completeTableModel_ImportSection(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeTableModel_Packages(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
 	public void completeTablePackage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeTablePackage_Imports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
 	public void completeTablePackage_Tables(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -80,6 +72,9 @@
 	public void completeTableTable_Selectalways(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void completeTableTable_SelectById(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void completeTableTable_HeaderMode(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -101,6 +96,33 @@
 	public void completeTableTable_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeTableBean_Selectalways(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeTableBean_SelectById(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeTableBean_HeaderMode(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableBean_Polling(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeTableBean_PollingTime(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableBean_Filtering(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeTableBean_Embedded(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeTableBean_Toolbar(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableBean_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeTablePreorder_Column(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -176,7 +198,7 @@
 	public void completeTableHierarchy_ValueRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeTableProperty_ValueRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void completeTableAttribute_ValueRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
 	}
 	public void completeTableAggregation_ValueRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -188,12 +210,24 @@
 	public void completeTableNumberInterval_NumberRange(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeTableIntInterval_IntIntervalValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableIntInterval_IntRange(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeTableDateDayInterval_DateIntervalValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
 	public void completeTableDateDayInterval_DateRange(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeTableIntLookup_LookupValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableIntLookup_Discrete(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeTableNumberLookup_LookupValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -221,18 +255,6 @@
 	public void completeTableEvent_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeTableEvent_BrokerDatamarts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
-	public void completeTableBrokerDatamart_DatamartDef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
-	}
-	public void completeTableBrokerDatamart_Filter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
-	public void completeTableBrokerDatamart_Reference(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
-	}
 	public void completeTableAxis_Axis(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -272,9 +294,6 @@
 	public void completeTableTooltip_Tooltip(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeTableImport_ImportedNamespace(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
 	public void completeTableGrid_Selectalways(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
@@ -299,12 +318,6 @@
 	public void completeTableGrid_Source(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-	public void completeTableDtoDatasource_DtoSource(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
-	}
-	public void completeTableDtoDatasource_Properties(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
-	}
 	public void completeProperty_Editable(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
@@ -314,6 +327,12 @@
 	public void completeProperty_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeTableDtoDatasource_DtoSource(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableDtoDatasource_Properties(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeNestedField_Field(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
 	}
@@ -392,7 +411,7 @@
 	public void completeStringToResourceStyleConfig_ResourceThemePath(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
-    
+
 	public void complete_TableModel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
@@ -411,6 +430,9 @@
 	public void complete_TableTable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void complete_TableBean(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void complete_TablePreorder(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
@@ -450,7 +472,7 @@
 	public void complete_TableHierarchy(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_TableProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_TableAttribute(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void complete_TableAggregation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -462,12 +484,18 @@
 	public void complete_TableNumberInterval(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void complete_TableIntInterval(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void complete_TableDateDayInterval(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void complete_TableLookup(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void complete_TableIntLookup(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void complete_TableNumberLookup(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
@@ -486,9 +514,6 @@
 	public void complete_TableEvent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_TableBrokerDatamart(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
 	public void complete_TableAxis(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
@@ -510,16 +535,13 @@
 	public void complete_TableTooltip(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_TableImport(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
 	public void complete_TableGrid(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_TableDtoDatasource(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_Property(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_Property(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_TableDtoDatasource(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void complete_NestedField(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -576,12 +598,6 @@
 	public void complete_StyleCompare(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_ID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
-	public void complete_INT(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
 	public void complete_THEME_RESOURCE(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
@@ -597,13 +613,7 @@
 	public void complete_SignedNumber(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_TableQualifiedNameWithWildCard(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
-	public void complete_QualifiedName(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
-	public void complete_ValidID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+	public void complete_SignedInt(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
 	public void complete_TRANSLATABLESTRING(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
diff --git a/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/internal/TableActivator.java b/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/internal/TableActivator.java
new file mode 100644
index 0000000..fc7cc98
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ui/src-gen/org/eclipse/osbp/xtext/table/ui/internal/TableActivator.java
@@ -0,0 +1,93 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.osbp.xtext.table.ui.internal;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import java.util.Collections;
+import java.util.Map;
+import org.apache.log4j.Logger;
+import org.eclipse.osbp.xtext.table.TableDSLRuntimeModule;
+import org.eclipse.osbp.xtext.table.ui.TableDSLUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class TableActivator extends AbstractUIPlugin {
+
+	public static final String ORG_ECLIPSE_OSBP_XTEXT_TABLE_TABLEDSL = "org.eclipse.osbp.xtext.table.TableDSL";
+	
+	private static final Logger logger = Logger.getLogger(TableActivator.class);
+	
+	private static TableActivator INSTANCE;
+	
+	private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
+	
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		INSTANCE = this;
+	}
+	
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		injectors.clear();
+		INSTANCE = null;
+		super.stop(context);
+	}
+	
+	public static TableActivator getInstance() {
+		return INSTANCE;
+	}
+	
+	public Injector getInjector(String language) {
+		synchronized (injectors) {
+			Injector injector = injectors.get(language);
+			if (injector == null) {
+				injectors.put(language, injector = createInjector(language));
+			}
+			return injector;
+		}
+	}
+	
+	protected Injector createInjector(String language) {
+		try {
+			Module runtimeModule = getRuntimeModule(language);
+			Module sharedStateModule = getSharedStateModule();
+			Module uiModule = getUiModule(language);
+			Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+			return Guice.createInjector(mergedModule);
+		} catch (Exception e) {
+			logger.error("Failed to create injector for " + language);
+			logger.error(e.getMessage(), e);
+			throw new RuntimeException("Failed to create injector for " + language, e);
+		}
+	}
+	
+	protected Module getRuntimeModule(String grammar) {
+		if (ORG_ECLIPSE_OSBP_XTEXT_TABLE_TABLEDSL.equals(grammar)) {
+			return new TableDSLRuntimeModule();
+		}
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getUiModule(String grammar) {
+		if (ORG_ECLIPSE_OSBP_XTEXT_TABLE_TABLEDSL.equals(grammar)) {
+			return new TableDSLUiModule(this);
+		}
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getSharedStateModule() {
+		return new SharedStateModule();
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/TableDSLDocumentationTranslator.java b/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/TableDSLDocumentationTranslator.java
index 7c29909..239a4ff 100644
--- a/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/TableDSLDocumentationTranslator.java
+++ b/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/TableDSLDocumentationTranslator.java
@@ -14,7 +14,6 @@
 
 import java.util.ResourceBundle;
 
-import org.eclipse.osbp.utils.constants.GeneratorConstants;
 import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
 
 public class TableDSLDocumentationTranslator extends BasicDSLDocumentationTranslator {
@@ -27,6 +26,6 @@
     
     @Override
     protected ResourceBundle getResourceBundle() {
-        return java.util.ResourceBundle.getBundle(GeneratorConstants.I18N_RESOURCE_FULL_BUNDLE_NAME, getLocale(), getClass().getClassLoader());
+        return java.util.ResourceBundle.getBundle("i18n.I18N", getLocale(), getClass().getClassLoader());
     }
 }
diff --git a/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/TableDSLUiModule.java b/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/TableDSLUiModule.java
index 364c8ac..2aca79f 100644
--- a/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/TableDSLUiModule.java
+++ b/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/TableDSLUiModule.java
@@ -11,41 +11,69 @@
  * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
  * 
  */
- package org.eclipse.osbp.xtext.table.ui;
+package org.eclipse.osbp.xtext.table.ui;
 
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLUiModuleHelper;
+import org.eclipse.osbp.xtext.oxtype.imports.IUnresolvedEObjectResolver;
+import org.eclipse.osbp.xtext.oxtype.ui.contentassist.OXTypeReplacingAppendable;
+import org.eclipse.osbp.xtext.oxtype.ui.contentassist.OXtypeProposalProvider;
+import org.eclipse.osbp.xtext.oxtype.ui.imports.InteractiveUnresolvedEClassResolver;
+import org.eclipse.osbp.xtext.oxtype.ui.quickfix.CustomJavaTypeQuickfixes;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider;
 import org.eclipse.xtext.ui.editor.hover.IEObjectHover;
 import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
 import org.eclipse.xtext.ui.editor.hover.html.IEObjectHoverDocumentationProvider;
+import org.eclipse.xtext.xbase.ui.contentassist.ReplacingAppendable;
+import org.eclipse.xtext.xbase.ui.quickfix.JavaTypeQuickfixes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.eclipse.osbp.xtext.basic.ui.BasicDSLUiModuleHelper;
-
 /**
  * Use this class to register components to be used within the IDE.
  */
-public class TableDSLUiModule extends org.eclipse.osbp.xtext.table.ui.AbstractTableDSLUiModule {
-	
-    private static Logger LOGGER = LoggerFactory.getLogger(TableDSLUiModule.class);
-	
+public class TableDSLUiModule extends
+		org.eclipse.osbp.xtext.table.ui.AbstractTableDSLUiModule {
+
+	private static Logger LOGGER = LoggerFactory
+			.getLogger(TableDSLUiModule.class);
+
 	public TableDSLUiModule(AbstractUIPlugin plugin) {
 		super(plugin);
 		BasicDSLUiModuleHelper.unitTestTemplates(plugin, LOGGER);
 	}
 	
 	@Override
-	public Class<? extends IEObjectHover> bindIEObjectHover() {
-	    return TableDSLEObjectHover.class;
+	public Class<? extends AbstractJavaBasedContentProposalProvider.ReferenceProposalCreator> bindAbstractJavaBasedContentProposalProvider$ReferenceProposalCreator() {
+		return OXtypeProposalProvider.CustomReferenceProposalCreator.class;
 	}
-	
+
+	@Override
+	public Class<? extends IEObjectHover> bindIEObjectHover() {
+		return TableDSLEObjectHover.class;
+	}
+
 	@Override
 	public Class<? extends IEObjectHoverProvider> bindIEObjectHoverProvider() {
-	    return TableDSLEObjectHoverProvider.class;
+		return TableDSLEObjectHoverProvider.class;
 	}
-	
+
 	@Override
 	public Class<? extends IEObjectHoverDocumentationProvider> bindIEObjectHoverDocumentationProvider() {
-	    return TableDSLEObjectHoverDocumentationProvider.class;
+		return TableDSLEObjectHoverDocumentationProvider.class;
 	}
+
+	@SuppressWarnings("restriction")
+	public Class<? extends ReplacingAppendable.Factory> bindReplacingAppendable$Factory() {
+		return OXTypeReplacingAppendable.Factory.class;
+	}
+
+	public Class<? extends IUnresolvedEObjectResolver> bindIUnresolvedEObjectResolver() {
+		return InteractiveUnresolvedEClassResolver.class;
+	}
+
+	public Class<? extends JavaTypeQuickfixes> bindJavaTypeQuickfixes() {
+		return CustomJavaTypeQuickfixes.class;
+	}
+
 }
diff --git a/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/contentassist/TableDSLProposalProvider.xtend b/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/contentassist/TableDSLProposalProvider.xtend
index d694e07..a79a030 100644
--- a/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/contentassist/TableDSLProposalProvider.xtend
+++ b/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/contentassist/TableDSLProposalProvider.xtend
@@ -22,16 +22,18 @@
 import org.eclipse.osbp.fork.mihalis.opal.widgets.ImageSelectorDialog
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropBooleanStyle
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropHtmlStyle
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropTextStyle
 import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper
-import org.eclipse.osbp.xtext.datamartdsl.DatamartAxis
 import org.eclipse.osbp.xtext.datamartdsl.DatamartCube
+import org.eclipse.osbp.xtext.datamartdsl.DatamartCubeAxis
 import org.eclipse.osbp.xtext.datamartdsl.DatamartDerivedMeasure
 import org.eclipse.osbp.xtext.datamartdsl.DatamartEntity
 import org.eclipse.osbp.xtext.datamartdsl.DatamartHierarchy
@@ -43,7 +45,6 @@
 import org.eclipse.osbp.xtext.gridsource.ui.contentassist.GridSourceProposalProvider
 import org.eclipse.osbp.xtext.table.Table
 import org.eclipse.osbp.xtext.table.TableAxis
-import org.eclipse.osbp.xtext.table.TableBrokerDatamart
 import org.eclipse.osbp.xtext.table.TableDatamart
 import org.eclipse.osbp.xtext.table.TableEvent
 import org.eclipse.osbp.xtext.table.TableInterval
@@ -68,8 +69,6 @@
 import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext
 import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor
 import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier
-import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle
-import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle
 
 class ImageFileNameTextApplier extends ReplacementTextApplier {
 	var ContentAssistContext context
@@ -259,17 +258,6 @@
 		imageFilePickerProposal(model, assignment, context, acceptor, ".jpg,.jpeg,.png");
 	}
 
-	override completeTableBrokerDatamart_Filter(EObject model, Assignment assignment, ContentAssistContext context,
-		ICompletionProposalAcceptor acceptor) {
-		var datamart = (context.currentModel as TableBrokerDatamart)
-		var filterIdList = <String, String>newHashMap()
-		datamartInferrer.createFilterMap(datamart.datamartDef, filterIdList)
-		for (filter : filterIdList.entrySet) {
-			acceptor.accept(createCompletionProposal("\"".concat(filter.value).concat("\""), filter.key, null, context));
-		}
-
-	}
-
 	override completeTableFormatter_Format(EObject model, Assignment assignment, ContentAssistContext context,
 		ICompletionProposalAcceptor acceptor) {
 
@@ -406,20 +394,20 @@
 			if (datamart != null && datamart.source != null) {
 				if (datamart.source instanceof DatamartCube) {
 					for (axis : (datamart.source as DatamartCube).axisslicer) {
-						if (axis instanceof DatamartAxis) {
-							if ((axis as DatamartAxis).name.literal.equals(requestedAxisName)) {
+						if (axis instanceof DatamartCubeAxis) {
+							if ((axis as DatamartCubeAxis).axis.name.literal.equals(requestedAxisName)) {
 								var hasMeasures = false
 								var hasHierarchy = false
 								var hasAggregation = false
 								var isCrossjoined = false
 								var isUndefined = false
-								for (element : (axis as DatamartAxis).elements) {
+								for (element : (axis as DatamartCubeAxis).elements) {
 									if (element instanceof DatamartMeasure ||
 										element instanceof DatamartDerivedMeasure) {
 										hasMeasures = true
 									}
 								}
-								for (element : (axis as DatamartAxis).elements) {
+								for (element : (axis as DatamartCubeAxis).elements) {
 									if (element instanceof DatamartHierarchy) {
 										if (hasHierarchy) {
 											isCrossjoined = true
@@ -456,7 +444,7 @@
 									}
 								}
 								if (!isUndefined) {
-									for (element : (axis as DatamartAxis).elements) {
+									for (element : (axis as DatamartCubeAxis).elements) {
 										if (element instanceof DatamartMeasure && "measure".equals(proposal)) {
 											return true;
 										}
@@ -519,16 +507,22 @@
 		if ("collapse".equals(proposal)) {
 			return true
 		}
-		if ("up to".equals(proposal)) {
+		if ("upToNumber".equals(proposal)) {
+			return true
+		}
+		if ("upToInteger".equals(proposal)) {
 			return true
 		}
 		if ("number".equals(proposal)) {
 			return true
 		}
+		if ("integer".equals(proposal)) {
+			return true
+		}
 		if ("string".equals(proposal)) {
 			return true
 		}
-		if ("days in past".equals(proposal)) {
+		if ("daysInPast".equals(proposal)) {
 			return true
 		}
 		if ("to".equals(proposal)) {
@@ -579,11 +573,6 @@
 		providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this)
 	}
 
-	override public void complete_TableQualifiedNameWithWildCard(EObject model, RuleCall ruleCall,
-		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this)
-	}
-
 	override public void complete_SignedNumber(EObject model, RuleCall ruleCall, ContentAssistContext context,
 		ICompletionProposalAcceptor acceptor) {
 		providerHelper.createNumberProposal(context, acceptor, ruleCall, this);
@@ -685,6 +674,30 @@
 
 		gridProposalProvider.doCompletePropertyQuantityStyle_ValueNumberFormat(acceptor, model, context);
 	}
+	
+//	override void completePropertyQuantityStyle_ValuePropertyPath(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+//		super.completePropertyQuantityStyle_ValuePropertyPath(model, assignment, context, acceptor);
+//		
+//		gridProposalProvider.doCompletePropertyQuantityStyle_ValuePropertyPath(model, assignment, context, acceptor);
+//	}
+//	
+//	override void completePropertyQuantityStyle_UomPropertyPath(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+//		super.completePropertyQuantityStyle_ValuePropertyPath(model, assignment, context, acceptor);
+//		
+//		gridProposalProvider.doCompletePropertyQuantityStyle_UomPropertyPath(model, assignment, context, acceptor);
+//	}
+//
+//	override void completePropertyPriceStyle_CurrencyPropertyPath(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+//		super.completePropertyQuantityStyle_ValuePropertyPath(model, assignment, context, acceptor);
+//		
+//		gridProposalProvider.doCompletePropertyPriceStyle_CurrencyPropertyPath(model, assignment, context, acceptor);
+//	}
+//	
+//	override void completePropertyPriceStyle_ValuePropertyPath(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+//		super.completePropertyQuantityStyle_ValuePropertyPath(model, assignment, context, acceptor);
+//		
+//		gridProposalProvider.doCompletePropertyPriceStyle_ValuePropertyPath(model, assignment, context, acceptor);
+//	}
 
 	// ------------------------ delegates to TerminalsProposalProvider -----------------
 	override public void complete_TRANSLATABLESTRING(EObject model, RuleCall ruleCall, ContentAssistContext context,
diff --git a/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/labeling/TableDSLLabelProvider.xtend b/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/labeling/TableDSLLabelProvider.xtend
index 9d03905..c1ba65b 100644
--- a/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/labeling/TableDSLLabelProvider.xtend
+++ b/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/labeling/TableDSLLabelProvider.xtend
@@ -25,8 +25,8 @@
 import org.eclipse.osbp.xtext.table.Table
 import org.eclipse.osbp.xtext.table.TableAggregation
 import org.eclipse.osbp.xtext.table.TableAllColumns
+import org.eclipse.osbp.xtext.table.TableAttribute
 import org.eclipse.osbp.xtext.table.TableAxis
-import org.eclipse.osbp.xtext.table.TableBrokerDatamart
 import org.eclipse.osbp.xtext.table.TableCellColor
 import org.eclipse.osbp.xtext.table.TableColumn
 import org.eclipse.osbp.xtext.table.TableDatamart
@@ -46,7 +46,6 @@
 import org.eclipse.osbp.xtext.table.TableOrdinal
 import org.eclipse.osbp.xtext.table.TablePackage
 import org.eclipse.osbp.xtext.table.TablePreorder
-import org.eclipse.osbp.xtext.table.TableProperty
 import org.eclipse.osbp.xtext.table.TableStringLookup
 import org.eclipse.osbp.xtext.table.TableTable
 import org.eclipse.osbp.xtext.table.TableTask
@@ -76,7 +75,6 @@
 			TableGrid			: generateText( o, 'grid'           , o.source.dtoSource.name )
 			TableAxis			: generateText( o, 'axis'           , o.axis.literal )
 			TableDatamart		: generateText( o, 'datamart'       , o.datamartRef.name )
-			TableBrokerDatamart	: generateText( o, 'datamart'       , o.datamartDef.name )
 			TableEvent			: generateText( o, 'event'    )
 			TableValue			: generateText( o, 'value'    )
 			TableInterval		: generateText( o, 'interval' )
@@ -87,7 +85,7 @@
 			TableTooltip		: generateText( o, 'tooltip'        , o.tooltip )
 			TableTrend			: generateText( o, 'trend'          , o.icon.toString )
 
-			TableProperty		: generateText( o, 'table property' , o.valueRef.propertyRef.name )
+			TableAttribute		: generateText( o, 'table property' , o.valueRef.attributeRef.name )
 			TableAggregation	: generateText( o, 'aggregation'    , o.valueRef.aggregation.toString )
 			TableHierarchy		: generateText( o, 'level'          , o.valueRef.name )
 			TableMeasure		: generateText( o, 'measure'        , o.valueRef.measureRef.name )
@@ -124,7 +122,6 @@
 			TableGrid			: getInternalImage( 'table-grid.png'   , class )
 			TableAxis			: getInternalImage( 'axis.png'         , class )
 			TableDatamart		: getInternalImage( 'dsl_datamart.png' , class )
-			TableBrokerDatamart	: getInternalImage( 'dsl_datamart.png' , class )
 			TableEvent			: getInternalImage( 'event.png'        , class )
 			TableValue			: getInternalImage( 'value3.png'       , class )
 			TableInterval		: getInternalImage( 'interval.png'     , class )
@@ -134,7 +131,7 @@
 			TableIcon			: getInternalImage( 'img.png'          , class )
 			TableTooltip		: getInternalImage( 'tooltip.png'      , class )
 			TableTrend			: getInternalImage( 'trend.png'        , class )
-			TableProperty		: getInternalImage( 'properties.png'   , class )
+			TableAttribute		: getInternalImage( 'properties.png'   , class )
 			TableAggregation	: getInternalImage( 'aggregate.png'    , class )
 			TableAllColumns		: getInternalImage( 'column.png'       , class )
 			TableHierarchy		: getInternalImage( 'level.png'        , class )
diff --git a/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/quickfix/TableDSLQuickfixProvider.xtend b/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/quickfix/TableDSLQuickfixProvider.xtend
index da82a41..966037a 100644
--- a/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/quickfix/TableDSLQuickfixProvider.xtend
+++ b/org.eclipse.osbp.xtext.table.ui/src/org/eclipse/osbp/xtext/table/ui/quickfix/TableDSLQuickfixProvider.xtend
@@ -14,27 +14,26 @@
  *  This copyright notice shows up in the generated Java code
  *
  */
- 
 package org.eclipse.osbp.xtext.table.ui.quickfix
 
+import org.eclipse.osbp.xtext.oxtype.ui.quickfix.OXtypeQuickfixProvider
+
 //import org.eclipse.xtext.ui.editor.quickfix.Fix
 //import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor
 //import org.eclipse.xtext.validation.Issue
-
 /**
  * Custom quickfixes.
  *
  * see http://www.eclipse.org/Xtext/documentation.html#quickfixes
  */
-class TableDSLQuickfixProvider extends org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider {
-
-//	@Fix(MyDslValidator::INVALID_NAME)
-//	def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) {
-//		acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [
-//			context |
-//			val xtextDocument = context.xtextDocument
-//			val firstLetter = xtextDocument.get(issue.offset, 1)
-//			xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase)
-//		]
-//	}
+class TableDSLQuickfixProvider extends OXtypeQuickfixProvider {
+	//	@Fix(MyDslValidator::INVALID_NAME)
+	//	def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) {
+	//		acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [
+	//			context |
+	//			val xtextDocument = context.xtextDocument
+	//			val firstLetter = xtextDocument.get(issue.offset, 1)
+	//			xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase)
+	//		]
+	//	}
 }
diff --git a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/.gitignore b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/.gitignore
new file mode 100644
index 0000000..70fa70c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/.gitignore
@@ -0,0 +1,4 @@
+/.TableDSLProposalProvider.xtendbin
+/ImageFileNameTextApplier.java
+/MyReplacementTextApplier.java
+/TableDSLProposalProvider.java
diff --git a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/ImageFileNameTextApplier.java b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/ImageFileNameTextApplier.java
index d92b15d..7412bce 100644
--- a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/ImageFileNameTextApplier.java
+++ b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/ImageFileNameTextApplier.java
@@ -14,9 +14,7 @@
  */
 package org.eclipse.osbp.xtext.table.ui.contentassist;
 
-import org.eclipse.jface.text.ITextViewer;
 import org.eclipse.osbp.fork.mihalis.opal.widgets.ImageSelectorDialog;
-import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Display;
@@ -39,10 +37,9 @@
     return this.extensions = fileExtensions;
   }
   
+  @Override
   public String getActualReplacementString(final ConfigurableCompletionProposal proposal) {
-    ITextViewer _viewer = this.context.getViewer();
-    StyledText _textWidget = _viewer.getTextWidget();
-    Display display = _textWidget.getDisplay();
+    Display display = this.context.getViewer().getTextWidget().getDisplay();
     Shell shell = new Shell(display);
     Point _point = new Point((display.getActiveShell().getLocation().x + 30), (display.getActiveShell().getLocation().y + 30));
     shell.setLocation(_point);
@@ -51,7 +48,6 @@
     ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(shell, 16);
     imageSelectorDialog.setFilterExtensions(this.extensions);
     String imageFileName = imageSelectorDialog.open(true);
-    String _concat = "\"".concat(imageFileName);
-    return _concat.concat("\"");
+    return "\"".concat(imageFileName).concat("\"");
   }
 }
diff --git a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/MyReplacementTextApplier.java b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/MyReplacementTextApplier.java
index 81405f1..3e7a1ad 100644
--- a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/MyReplacementTextApplier.java
+++ b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/MyReplacementTextApplier.java
@@ -14,8 +14,6 @@
  */
 package org.eclipse.osbp.xtext.table.ui.contentassist;
 
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.ColorDialog;
 import org.eclipse.swt.widgets.Display;
@@ -32,21 +30,13 @@
     return this.context = context;
   }
   
+  @Override
   public String getActualReplacementString(final ConfigurableCompletionProposal proposal) {
-    ITextViewer _viewer = this.context.getViewer();
-    StyledText _textWidget = _viewer.getTextWidget();
-    Display display = _textWidget.getDisplay();
+    Display display = this.context.getViewer().getTextWidget().getDisplay();
     Shell _activeShell = display.getActiveShell();
     ColorDialog colorDialog = new ColorDialog(_activeShell);
     RGB newColor = colorDialog.open();
-    String _string = Integer.valueOf(newColor.red).toString();
-    String _concat = "\"".concat(_string);
-    String _concat_1 = _concat.concat(",");
-    String _string_1 = Integer.valueOf(newColor.green).toString();
-    String _concat_2 = _concat_1.concat(_string_1);
-    String _concat_3 = _concat_2.concat(",");
-    String _string_2 = Integer.valueOf(newColor.blue).toString();
-    String _concat_4 = _concat_3.concat(_string_2);
-    return _concat_4.concat("\"");
+    return "\"".concat(Integer.valueOf(newColor.red).toString()).concat(",").concat(Integer.valueOf(newColor.green).toString()).concat(",").concat(
+      Integer.valueOf(newColor.blue).toString()).concat("\"");
   }
 }
diff --git a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/TableDSLProposalProvider.java b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/TableDSLProposalProvider.java
index 7b202ef..3e0021c 100644
--- a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/TableDSLProposalProvider.java
+++ b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/contentassist/TableDSLProposalProvider.java
@@ -16,12 +16,8 @@
 
 import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableList;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
 import javax.inject.Inject;
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EClassifier;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
@@ -38,11 +34,9 @@
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle;
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle;
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropTextStyle;
-import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
 import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper;
-import org.eclipse.osbp.xtext.datamartdsl.AxisEnum;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartAxis;
 import org.eclipse.osbp.xtext.datamartdsl.DatamartCube;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartCubeAxis;
 import org.eclipse.osbp.xtext.datamartdsl.DatamartCubeElement;
 import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
 import org.eclipse.osbp.xtext.datamartdsl.DatamartDerivedMeasure;
@@ -58,7 +52,6 @@
 import org.eclipse.osbp.xtext.gridsource.ui.contentassist.GridSourceProposalProvider;
 import org.eclipse.osbp.xtext.table.Table;
 import org.eclipse.osbp.xtext.table.TableAxis;
-import org.eclipse.osbp.xtext.table.TableBrokerDatamart;
 import org.eclipse.osbp.xtext.table.TableDatamart;
 import org.eclipse.osbp.xtext.table.TableEvent;
 import org.eclipse.osbp.xtext.table.TableInterval;
@@ -71,7 +64,6 @@
 import org.eclipse.osbp.xtext.table.ui.contentassist.AbstractTableDSLProposalProvider;
 import org.eclipse.osbp.xtext.table.ui.contentassist.ImageFileNameTextApplier;
 import org.eclipse.osbp.xtext.table.ui.contentassist.MyReplacementTextApplier;
-import org.eclipse.swt.graphics.Image;
 import org.eclipse.xtext.AbstractElement;
 import org.eclipse.xtext.Assignment;
 import org.eclipse.xtext.Keyword;
@@ -79,16 +71,13 @@
 import org.eclipse.xtext.RuleCall;
 import org.eclipse.xtext.TypeRef;
 import org.eclipse.xtext.XtextPackage;
-import org.eclipse.xtext.common.types.JvmOperation;
 import org.eclipse.xtext.common.types.JvmType;
-import org.eclipse.xtext.common.types.JvmTypeReference;
 import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider;
 import org.eclipse.xtext.nodemodel.ICompositeNode;
 import org.eclipse.xtext.nodemodel.INode;
 import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
 import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
 import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
-import org.eclipse.xtext.xbase.lib.CollectionLiterals;
 import org.eclipse.xtext.xbase.lib.Extension;
 
 @SuppressWarnings("all")
@@ -117,13 +106,15 @@
   /**
    * This override will enable 1 length non letter characters as keyword.
    */
+  @Override
   protected boolean isKeywordWorthyToPropose(final Keyword keyword) {
     return true;
   }
   
+  @Override
   protected StyledString getKeywordDisplayString(final Keyword keyword) {
-    BasicDSLDocumentationTranslator _instance = TableDSLDocumentationTranslator.instance();
-    return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword, _instance);
+    return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword, 
+      TableDSLDocumentationTranslator.instance());
   }
   
   /**
@@ -135,8 +126,7 @@
     boolean _notEquals = (!Objects.equal(fileName, null));
     if (_notEquals) {
       ImageFileNameTextApplier applier = new ImageFileNameTextApplier();
-      String[] _split = fileExtensions.split(",");
-      applier.setExtensions(_split);
+      applier.setExtensions(fileExtensions.split(","));
       applier.setContext(context);
       fileName.setTextApplier(applier);
     }
@@ -146,103 +136,55 @@
   /**
    * This method decides which proposals will be valid.
    */
+  @Override
   protected boolean isValidProposal(final String proposal, final String prefix, final ContentAssistContext context) {
     boolean result = super.isValidProposal(proposal, prefix, context);
     EObject _currentModel = context.getCurrentModel();
     if ((_currentModel instanceof TableAxis)) {
       return this.isAxisValidProposal(context, proposal, result);
     }
-    boolean _or = false;
-    if (((context.getCurrentModel() instanceof TableValue) || (context.getCurrentModel() instanceof TablePreorder))) {
-      _or = true;
-    } else {
-      EObject _currentModel_1 = context.getCurrentModel();
-      _or = (_currentModel_1 instanceof TableEvent);
-    }
-    if (_or) {
+    if ((((context.getCurrentModel() instanceof TableValue) || (context.getCurrentModel() instanceof TablePreorder)) || 
+      (context.getCurrentModel() instanceof TableEvent))) {
       return this.isValueValidProposal(context, proposal, result);
     } else {
-      boolean _or_1 = false;
-      EObject _currentModel_2 = context.getCurrentModel();
-      if ((_currentModel_2 instanceof TableInterval)) {
-        _or_1 = true;
-      } else {
-        EObject _currentModel_3 = context.getCurrentModel();
-        _or_1 = (_currentModel_3 instanceof TableLookup);
-      }
-      if (_or_1) {
+      if (((context.getCurrentModel() instanceof TableInterval) || (context.getCurrentModel() instanceof TableLookup))) {
         return this.isIntervalValidProposal(context, proposal, result);
       }
     }
     return result;
   }
   
+  @Override
   public void createProposals(final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
-    boolean _and = false;
-    EObject _currentModel = context.getCurrentModel();
-    if (!(_currentModel instanceof CxGridProperty)) {
-      _and = false;
-    } else {
-      boolean _lastCompleteNodeIsStyle = this.getLastCompleteNodeIsStyle(context);
-      _and = _lastCompleteNodeIsStyle;
-    }
-    if (_and) {
+    if (((context.getCurrentModel() instanceof CxGridProperty) && this.getLastCompleteNodeIsStyle(context))) {
       ImmutableList<AbstractElement> _firstSetGrammarElements = context.getFirstSetGrammarElements();
       for (final AbstractElement element : _firstSetGrammarElements) {
-        EClass _eClass = element.eClass();
-        int _classifierID = _eClass.getClassifierID();
+        int _classifierID = element.eClass().getClassifierID();
         boolean _equals = (_classifierID == XtextPackage.KEYWORD);
         if (_equals) {
           Keyword keyword = ((Keyword) element);
           boolean _isKeywordWorthyToPropose = this.isKeywordWorthyToPropose(keyword, context);
           if (_isKeywordWorthyToPropose) {
-            EObject _currentModel_1 = context.getCurrentModel();
-            final CxGridProperty gridProp = ((CxGridProperty) _currentModel_1);
+            EObject _currentModel = context.getCurrentModel();
+            final CxGridProperty gridProp = ((CxGridProperty) _currentModel);
             final CxGridNestedField nestedField = gridProp.getPath();
-            JvmOperation _field = nestedField.getField();
-            JvmTypeReference _returnType = _field.getReturnType();
-            final JvmType nestedFieldType = _returnType.getType();
+            final JvmType nestedFieldType = nestedField.getField().getReturnType().getType();
             EObject eObject = ((EObject) element);
             while ((!(eObject instanceof ParserRule))) {
-              EObject _eContainer = eObject.eContainer();
-              eObject = _eContainer;
+              eObject = eObject.eContainer();
             }
             boolean _notEquals = (!Objects.equal(eObject, null));
             if (_notEquals) {
               ParserRule rule = ((ParserRule) eObject);
-              boolean _and_1 = false;
-              boolean _isBoolean = this._typeHelper.isBoolean(nestedFieldType);
-              if (!_isBoolean) {
-                _and_1 = false;
-              } else {
-                boolean _isBooleanStyle = this.isBooleanStyle(rule);
-                _and_1 = _isBooleanStyle;
-              }
-              if (_and_1) {
+              if ((this._typeHelper.isBoolean(nestedFieldType) && this.isBooleanStyle(rule))) {
                 this.setProposal(context, acceptor, keyword);
               } else {
-                boolean _and_2 = false;
-                boolean _isString = this._typeHelper.isString(nestedFieldType);
-                if (!_isString) {
-                  _and_2 = false;
-                } else {
-                  boolean _isTextStyle = this.isTextStyle(rule);
-                  _and_2 = _isTextStyle;
-                }
-                if (_and_2) {
+                if ((this._typeHelper.isString(nestedFieldType) && this.isTextStyle(rule))) {
                   this.setProposal(context, acceptor, keyword);
                 } else {
                   boolean _isNumber = this._typeHelper.isNumber(nestedFieldType);
                   if (_isNumber) {
-                    boolean _and_3 = false;
-                    boolean _isNumberWithDigits = this._typeHelper.isNumberWithDigits(nestedFieldType);
-                    if (!_isNumberWithDigits) {
-                      _and_3 = false;
-                    } else {
-                      boolean _isProgressStyle = this.isProgressStyle(rule);
-                      _and_3 = _isProgressStyle;
-                    }
-                    if (_and_3) {
+                    if ((this._typeHelper.isNumberWithDigits(nestedFieldType) && this.isProgressStyle(rule))) {
                       this.setProposal(context, acceptor, keyword);
                     } else {
                       boolean _isNumberStyle = this.isNumberStyle(rule);
@@ -251,15 +193,7 @@
                       }
                     }
                   } else {
-                    boolean _and_4 = false;
-                    boolean _isDate = this._typeHelper.isDate(nestedFieldType);
-                    if (!_isDate) {
-                      _and_4 = false;
-                    } else {
-                      boolean _isDateStyle = this.isDateStyle(rule);
-                      _and_4 = _isDateStyle;
-                    }
-                    if (_and_4) {
+                    if ((this._typeHelper.isDate(nestedFieldType) && this.isDateStyle(rule))) {
                       this.setProposal(context, acceptor, keyword);
                     }
                   }
@@ -281,13 +215,11 @@
       _grammarElement=_lastCompleteNode.getGrammarElement();
     }
     final EObject element = _grammarElement;
-    EClass _eClass = element.eClass();
-    int _classifierID = _eClass.getClassifierID();
+    int _classifierID = element.eClass().getClassifierID();
     boolean _equals = (_classifierID == XtextPackage.KEYWORD);
     if (_equals) {
       Keyword keyword = ((Keyword) element);
-      String _value = keyword.getValue();
-      boolean _equals_1 = "style".equals(_value);
+      boolean _equals_1 = "style".equals(keyword.getValue());
       if (_equals_1) {
         return true;
       }
@@ -312,29 +244,7 @@
       _classifier=_type.getClassifier();
     }
     Class<?> ruleTypeClass = _classifier.getInstanceClass();
-    boolean _or = false;
-    boolean _or_1 = false;
-    boolean _or_2 = false;
-    boolean _equals = CxGridPropTextStyle.class.equals(ruleTypeClass);
-    if (_equals) {
-      _or_2 = true;
-    } else {
-      boolean _equals_1 = CxGridPropHtmlStyle.class.equals(ruleTypeClass);
-      _or_2 = _equals_1;
-    }
-    if (_or_2) {
-      _or_1 = true;
-    } else {
-      boolean _equals_2 = CxGridPropButtonStyle.class.equals(ruleTypeClass);
-      _or_1 = _equals_2;
-    }
-    if (_or_1) {
-      _or = true;
-    } else {
-      boolean _equals_3 = CxGridPropImageStyle.class.equals(ruleTypeClass);
-      _or = _equals_3;
-    }
-    return _or;
+    return (((CxGridPropTextStyle.class.equals(ruleTypeClass) || CxGridPropHtmlStyle.class.equals(ruleTypeClass)) || CxGridPropButtonStyle.class.equals(ruleTypeClass)) || CxGridPropImageStyle.class.equals(ruleTypeClass));
   }
   
   public boolean isNumberStyle(final ParserRule rule) {
@@ -344,29 +254,7 @@
       _classifier=_type.getClassifier();
     }
     Class<?> ruleTypeClass = _classifier.getInstanceClass();
-    boolean _or = false;
-    boolean _or_1 = false;
-    boolean _or_2 = false;
-    boolean _equals = CxGridPropNumberStyle.class.equals(ruleTypeClass);
-    if (_equals) {
-      _or_2 = true;
-    } else {
-      boolean _equals_1 = CxGridPropPriceStyle.class.equals(ruleTypeClass);
-      _or_2 = _equals_1;
-    }
-    if (_or_2) {
-      _or_1 = true;
-    } else {
-      boolean _equals_2 = CxGridPropQuantityStyle.class.equals(ruleTypeClass);
-      _or_1 = _equals_2;
-    }
-    if (_or_1) {
-      _or = true;
-    } else {
-      boolean _equals_3 = CxGridPropImageStyle.class.equals(ruleTypeClass);
-      _or = _equals_3;
-    }
-    return _or;
+    return (((CxGridPropNumberStyle.class.equals(ruleTypeClass) || CxGridPropPriceStyle.class.equals(ruleTypeClass)) || CxGridPropQuantityStyle.class.equals(ruleTypeClass)) || CxGridPropImageStyle.class.equals(ruleTypeClass));
   }
   
   public boolean isProgressStyle(final ParserRule rule) {
@@ -390,118 +278,90 @@
   }
   
   public void setProposal(final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final Keyword keyword) {
-    String _value = keyword.getValue();
-    StyledString _keywordDisplayString = this.getKeywordDisplayString(keyword);
-    Image _image = this.getImage(keyword);
-    final ICompletionProposal proposal = this.createCompletionProposal(_value, _keywordDisplayString, _image, context);
+    final ICompletionProposal proposal = this.createCompletionProposal(keyword.getValue(), this.getKeywordDisplayString(keyword), this.getImage(keyword), context);
     acceptor.accept(proposal);
   }
   
+  @Override
   public void completeTableIcon_Icon(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.imageFilePickerProposal(model, assignment, context, acceptor, ".jpg,.jpeg,.png");
   }
   
+  @Override
   public void completeTableValue_IconName(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.imageFilePickerProposal(model, assignment, context, acceptor, ".jpg,.jpeg,.png");
   }
   
-  public void completeTableBrokerDatamart_Filter(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
-    EObject _currentModel = context.getCurrentModel();
-    TableBrokerDatamart datamart = ((TableBrokerDatamart) _currentModel);
-    HashMap<String, String> filterIdList = CollectionLiterals.<String, String>newHashMap();
-    DatamartDefinition _datamartDef = datamart.getDatamartDef();
-    this.datamartInferrer.createFilterMap(_datamartDef, filterIdList);
-    Set<Map.Entry<String, String>> _entrySet = filterIdList.entrySet();
-    for (final Map.Entry<String, String> filter : _entrySet) {
-      String _value = filter.getValue();
-      String _concat = "\"".concat(_value);
-      String _concat_1 = _concat.concat("\"");
-      String _key = filter.getKey();
-      ICompletionProposal _createCompletionProposal = this.createCompletionProposal(_concat_1, _key, null, context);
-      acceptor.accept(_createCompletionProposal);
-    }
-  }
-  
+  @Override
   public void completeTableFormatter_Format(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
-    ICompletionProposal _createCompletionProposal = this.createCompletionProposal("\"###,##0.00\" /* money */", "money", null, context);
-    acceptor.accept(_createCompletionProposal);
-    ICompletionProposal _createCompletionProposal_1 = this.createCompletionProposal("\"###,##0.00 &curren;\" /* local national currency */", "local national currency", 
-      null, context);
-    acceptor.accept(_createCompletionProposal_1);
-    ICompletionProposal _createCompletionProposal_2 = this.createCompletionProposal("\"###,##0.00 &curren;&curren;\" /* local international currency */", 
-      "local international currency", null, context);
-    acceptor.accept(_createCompletionProposal_2);
-    ICompletionProposal _createCompletionProposal_3 = this.createCompletionProposal("\"#0.000\" /* quantity */", "quantity", null, context);
-    acceptor.accept(_createCompletionProposal_3);
-    ICompletionProposal _createCompletionProposal_4 = this.createCompletionProposal("\"#0.00;(#0.00)\" /* negative in parentheses */", "negative in parentheses", null, context);
-    acceptor.accept(_createCompletionProposal_4);
-    ICompletionProposal _createCompletionProposal_5 = this.createCompletionProposal("\"##0.0 %\" /* ratio as percentage */", "ratio as percentage", null, context);
-    acceptor.accept(_createCompletionProposal_5);
-    ICompletionProposal _createCompletionProposal_6 = this.createCompletionProposal("\"##0.0 %%\" /* ratio as per mill */", "ratio as per mill", null, context);
-    acceptor.accept(_createCompletionProposal_6);
-    ICompletionProposal _createCompletionProposal_7 = this.createCompletionProposal("\"##0.0\'%\'\" /* percentage sign */", "percentage sign", null, context);
-    acceptor.accept(_createCompletionProposal_7);
-    ICompletionProposal _createCompletionProposal_8 = this.createCompletionProposal("\"##0.0\'?\'\" /* per mill sign */", "per mill sign", null, context);
-    acceptor.accept(_createCompletionProposal_8);
-    ICompletionProposal _createCompletionProposal_9 = this.createCompletionProposal("\"0.0000000000E00\" /* scientific */", "scientific", null, context);
-    acceptor.accept(_createCompletionProposal_9);
-    ICompletionProposal _createCompletionProposal_10 = this.createCompletionProposal("\"SHORTDATE\" /* short date */", "short date", null, context);
-    acceptor.accept(_createCompletionProposal_10);
-    ICompletionProposal _createCompletionProposal_11 = this.createCompletionProposal("\"MEDIUMDATE\" /* medium date */", "medium date", null, context);
-    acceptor.accept(_createCompletionProposal_11);
-    ICompletionProposal _createCompletionProposal_12 = this.createCompletionProposal("\"LONGDATE\" /* long date */", "long date", null, context);
-    acceptor.accept(_createCompletionProposal_12);
-    ICompletionProposal _createCompletionProposal_13 = this.createCompletionProposal("\"FULLDATE\" /* full date */", "full date", null, context);
-    acceptor.accept(_createCompletionProposal_13);
-    ICompletionProposal _createCompletionProposal_14 = this.createCompletionProposal("\"SHORTTIME\" /* short time */", "short time", null, context);
-    acceptor.accept(_createCompletionProposal_14);
-    ICompletionProposal _createCompletionProposal_15 = this.createCompletionProposal("\"MEDIUMTIME\" /* medium time */", "medium time", null, context);
-    acceptor.accept(_createCompletionProposal_15);
-    ICompletionProposal _createCompletionProposal_16 = this.createCompletionProposal("\"LONGTIME\" /* long time */", "long time", null, context);
-    acceptor.accept(_createCompletionProposal_16);
-    ICompletionProposal _createCompletionProposal_17 = this.createCompletionProposal("\"FULLTIME\" /* full time */", "full time", null, context);
-    acceptor.accept(_createCompletionProposal_17);
-    ICompletionProposal _createCompletionProposal_18 = this.createCompletionProposal("\"SHORTDATESHORTTIME\" /* short date short time */", "short date short time", null, context);
-    acceptor.accept(_createCompletionProposal_18);
-    ICompletionProposal _createCompletionProposal_19 = this.createCompletionProposal("\"SHORTDATEMEDIUMTIME\" /* short date medium time */", "short date medium time", 
-      null, context);
-    acceptor.accept(_createCompletionProposal_19);
-    ICompletionProposal _createCompletionProposal_20 = this.createCompletionProposal("\"SHORTDATELONGTIME\" /* short date long time */", "short date long time", null, context);
-    acceptor.accept(_createCompletionProposal_20);
-    ICompletionProposal _createCompletionProposal_21 = this.createCompletionProposal("\"SHORTDATEFULLTIME\" /* short date full time */", "short date full time", null, context);
-    acceptor.accept(_createCompletionProposal_21);
-    ICompletionProposal _createCompletionProposal_22 = this.createCompletionProposal("\"MEDIUMDATESHORTTIME\" /* medium date short time */", "medium date short time", 
-      null, context);
-    acceptor.accept(_createCompletionProposal_22);
-    ICompletionProposal _createCompletionProposal_23 = this.createCompletionProposal("\"MEDIUMDATEMEDIUMTIME\" /* medium date medium time */", "medium date medium time", 
-      null, context);
-    acceptor.accept(_createCompletionProposal_23);
-    ICompletionProposal _createCompletionProposal_24 = this.createCompletionProposal("\"MEDIUMDATELONGTIME\" /* medium date long time */", "medium date long time", null, context);
-    acceptor.accept(_createCompletionProposal_24);
-    ICompletionProposal _createCompletionProposal_25 = this.createCompletionProposal("\"MEDIUMDATEFULLTIME\" /* medium date full time */", "medium date full time", null, context);
-    acceptor.accept(_createCompletionProposal_25);
-    ICompletionProposal _createCompletionProposal_26 = this.createCompletionProposal("\"LONGDATESHORTTIME\" /* long date short time */", "long date short time", null, context);
-    acceptor.accept(_createCompletionProposal_26);
-    ICompletionProposal _createCompletionProposal_27 = this.createCompletionProposal("\"LONGDATEMEDIUMTIME\" /* long date medium time */", "long date medium time", null, context);
-    acceptor.accept(_createCompletionProposal_27);
-    ICompletionProposal _createCompletionProposal_28 = this.createCompletionProposal("\"LONGDATELONGTIME\" /* long date long time */", "long date long time", null, context);
-    acceptor.accept(_createCompletionProposal_28);
-    ICompletionProposal _createCompletionProposal_29 = this.createCompletionProposal("\"LONGDATEFULLTIME\" /* long date full time */", "long date full time", null, context);
-    acceptor.accept(_createCompletionProposal_29);
-    ICompletionProposal _createCompletionProposal_30 = this.createCompletionProposal("\"FULLDATESHORTTIME\" /* full date short time */", "full date short time", null, context);
-    acceptor.accept(_createCompletionProposal_30);
-    ICompletionProposal _createCompletionProposal_31 = this.createCompletionProposal("\"FULLDATEMEDIUMTIME\" /* full date medium time */", "full date medium time", null, context);
-    acceptor.accept(_createCompletionProposal_31);
-    ICompletionProposal _createCompletionProposal_32 = this.createCompletionProposal("\"FULLDATELONGTIME\" /* full date long time */", "full date long time", null, context);
-    acceptor.accept(_createCompletionProposal_32);
-    ICompletionProposal _createCompletionProposal_33 = this.createCompletionProposal("\"FULLDATEFULLTIME\" /* full date full time */", "full date full time", null, context);
-    acceptor.accept(_createCompletionProposal_33);
+    acceptor.accept(this.createCompletionProposal("\"###,##0.00\" /* money */", "money", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"###,##0.00 &curren;\" /* local national currency */", "local national currency", 
+        null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"###,##0.00 &curren;&curren;\" /* local international currency */", 
+        "local international currency", null, context));
+    acceptor.accept(this.createCompletionProposal("\"#0.000\" /* quantity */", "quantity", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"#0.00;(#0.00)\" /* negative in parentheses */", "negative in parentheses", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"##0.0 %\" /* ratio as percentage */", "ratio as percentage", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"##0.0 %%\" /* ratio as per mill */", "ratio as per mill", null, context));
+    acceptor.accept(this.createCompletionProposal("\"##0.0\'%\'\" /* percentage sign */", "percentage sign", null, context));
+    acceptor.accept(this.createCompletionProposal("\"##0.0\'?\'\" /* per mill sign */", "per mill sign", null, context));
+    acceptor.accept(this.createCompletionProposal("\"0.0000000000E00\" /* scientific */", "scientific", null, context));
+    acceptor.accept(this.createCompletionProposal("\"SHORTDATE\" /* short date */", "short date", null, context));
+    acceptor.accept(this.createCompletionProposal("\"MEDIUMDATE\" /* medium date */", "medium date", null, context));
+    acceptor.accept(this.createCompletionProposal("\"LONGDATE\" /* long date */", "long date", null, context));
+    acceptor.accept(this.createCompletionProposal("\"FULLDATE\" /* full date */", "full date", null, context));
+    acceptor.accept(this.createCompletionProposal("\"SHORTTIME\" /* short time */", "short time", null, context));
+    acceptor.accept(this.createCompletionProposal("\"MEDIUMTIME\" /* medium time */", "medium time", null, context));
+    acceptor.accept(this.createCompletionProposal("\"LONGTIME\" /* long time */", "long time", null, context));
+    acceptor.accept(this.createCompletionProposal("\"FULLTIME\" /* full time */", "full time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"SHORTDATESHORTTIME\" /* short date short time */", "short date short time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"SHORTDATEMEDIUMTIME\" /* short date medium time */", "short date medium time", 
+        null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"SHORTDATELONGTIME\" /* short date long time */", "short date long time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"SHORTDATEFULLTIME\" /* short date full time */", "short date full time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"MEDIUMDATESHORTTIME\" /* medium date short time */", "medium date short time", 
+        null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"MEDIUMDATEMEDIUMTIME\" /* medium date medium time */", "medium date medium time", 
+        null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"MEDIUMDATELONGTIME\" /* medium date long time */", "medium date long time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"MEDIUMDATEFULLTIME\" /* medium date full time */", "medium date full time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"LONGDATESHORTTIME\" /* long date short time */", "long date short time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"LONGDATEMEDIUMTIME\" /* long date medium time */", "long date medium time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"LONGDATELONGTIME\" /* long date long time */", "long date long time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"LONGDATEFULLTIME\" /* long date full time */", "long date full time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"FULLDATESHORTTIME\" /* full date short time */", "full date short time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"FULLDATEMEDIUMTIME\" /* full date medium time */", "full date medium time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"FULLDATELONGTIME\" /* full date long time */", "full date long time", null, context));
+    acceptor.accept(
+      this.createCompletionProposal("\"FULLDATEFULLTIME\" /* full date full time */", "full date full time", null, context));
   }
   
+  @Override
   public void completeTableTextColor_Rgb(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.colorPickerProposal(model, assignment, context, acceptor);
   }
   
+  @Override
   public void completeTableCellColor_Rgb(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.colorPickerProposal(model, assignment, context, acceptor);
   }
@@ -516,36 +376,21 @@
       pickColor.setTextApplier(applier);
     }
     acceptor.accept(pickColor);
-    ICompletionProposal _createCompletionProposal_1 = this.createCompletionProposal("\"230,128,64\" /* orange */", "orange", null, context);
-    acceptor.accept(_createCompletionProposal_1);
-    ICompletionProposal _createCompletionProposal_2 = this.createCompletionProposal("\"255,182,182\" /* light red */", "light red", null, context);
-    acceptor.accept(_createCompletionProposal_2);
-    ICompletionProposal _createCompletionProposal_3 = this.createCompletionProposal("\"255,0,0\" /* red */", "red", null, context);
-    acceptor.accept(_createCompletionProposal_3);
-    ICompletionProposal _createCompletionProposal_4 = this.createCompletionProposal("\"204,102,102\" /* dark red */", "dark red", null, context);
-    acceptor.accept(_createCompletionProposal_4);
-    ICompletionProposal _createCompletionProposal_5 = this.createCompletionProposal("\"255,255,128\" /*light yellow */", "light yellow", null, context);
-    acceptor.accept(_createCompletionProposal_5);
-    ICompletionProposal _createCompletionProposal_6 = this.createCompletionProposal("\"255,255,0\" /* yellow */", "yellow", null, context);
-    acceptor.accept(_createCompletionProposal_6);
-    ICompletionProposal _createCompletionProposal_7 = this.createCompletionProposal("\"128,128,0\" /* dark yellow */", "dark yellow", null, context);
-    acceptor.accept(_createCompletionProposal_7);
-    ICompletionProposal _createCompletionProposal_8 = this.createCompletionProposal("\"102,204,102\" /* light green */", "light green", null, context);
-    acceptor.accept(_createCompletionProposal_8);
-    ICompletionProposal _createCompletionProposal_9 = this.createCompletionProposal("\"0,255,0\" /* green */", "green", null, context);
-    acceptor.accept(_createCompletionProposal_9);
-    ICompletionProposal _createCompletionProposal_10 = this.createCompletionProposal("\"147,183,95\" /* dark green */", "dark green", null, context);
-    acceptor.accept(_createCompletionProposal_10);
-    ICompletionProposal _createCompletionProposal_11 = this.createCompletionProposal("\"102,102,204\" /* light blue */", "light blue", null, context);
-    acceptor.accept(_createCompletionProposal_11);
-    ICompletionProposal _createCompletionProposal_12 = this.createCompletionProposal("\"0,0,255\" /* blue */", "blue", null, context);
-    acceptor.accept(_createCompletionProposal_12);
-    ICompletionProposal _createCompletionProposal_13 = this.createCompletionProposal("\"147,95,183\" /* dark blue */", "dark blue", null, context);
-    acceptor.accept(_createCompletionProposal_13);
-    ICompletionProposal _createCompletionProposal_14 = this.createCompletionProposal("\"0,0,0\" /* black */", "black", null, context);
-    acceptor.accept(_createCompletionProposal_14);
-    ICompletionProposal _createCompletionProposal_15 = this.createCompletionProposal("\"255,255,255\" /* white */", "white", null, context);
-    acceptor.accept(_createCompletionProposal_15);
+    acceptor.accept(this.createCompletionProposal("\"230,128,64\" /* orange */", "orange", null, context));
+    acceptor.accept(this.createCompletionProposal("\"255,182,182\" /* light red */", "light red", null, context));
+    acceptor.accept(this.createCompletionProposal("\"255,0,0\" /* red */", "red", null, context));
+    acceptor.accept(this.createCompletionProposal("\"204,102,102\" /* dark red */", "dark red", null, context));
+    acceptor.accept(this.createCompletionProposal("\"255,255,128\" /*light yellow */", "light yellow", null, context));
+    acceptor.accept(this.createCompletionProposal("\"255,255,0\" /* yellow */", "yellow", null, context));
+    acceptor.accept(this.createCompletionProposal("\"128,128,0\" /* dark yellow */", "dark yellow", null, context));
+    acceptor.accept(this.createCompletionProposal("\"102,204,102\" /* light green */", "light green", null, context));
+    acceptor.accept(this.createCompletionProposal("\"0,255,0\" /* green */", "green", null, context));
+    acceptor.accept(this.createCompletionProposal("\"147,183,95\" /* dark green */", "dark green", null, context));
+    acceptor.accept(this.createCompletionProposal("\"102,102,204\" /* light blue */", "light blue", null, context));
+    acceptor.accept(this.createCompletionProposal("\"0,0,255\" /* blue */", "blue", null, context));
+    acceptor.accept(this.createCompletionProposal("\"147,95,183\" /* dark blue */", "dark blue", null, context));
+    acceptor.accept(this.createCompletionProposal("\"0,0,0\" /* black */", "black", null, context));
+    acceptor.accept(this.createCompletionProposal("\"255,255,255\" /* white */", "white", null, context));
   }
   
   public boolean isValueValidProposal(final ContentAssistContext context, final String proposal, final boolean result) {
@@ -557,56 +402,37 @@
     String requestedAxisName = "";
     while ((!(eObj instanceof TableDatamart))) {
       {
-        EObject _eContainer = eObj.eContainer();
-        eObj = _eContainer;
+        eObj = eObj.eContainer();
         if ((eObj instanceof TableAxis)) {
-          AxisEnum _axis = ((TableAxis) eObj).getAxis();
-          String _literal = _axis.getLiteral();
-          requestedAxisName = _literal;
+          requestedAxisName = ((TableAxis) eObj).getAxis().getLiteral();
         }
       }
     }
     boolean _notEquals = (!Objects.equal(eObj, null));
     if (_notEquals) {
       DatamartDefinition datamart = ((TableDatamart) eObj).getDatamartRef();
-      boolean _and = false;
-      boolean _notEquals_1 = (!Objects.equal(datamart, null));
-      if (!_notEquals_1) {
-        _and = false;
-      } else {
+      if (((!Objects.equal(datamart, null)) && (!Objects.equal(datamart.getSource(), null)))) {
         DatamartSource _source = datamart.getSource();
-        boolean _notEquals_2 = (!Objects.equal(_source, null));
-        _and = _notEquals_2;
-      }
-      if (_and) {
-        DatamartSource _source_1 = datamart.getSource();
-        if ((_source_1 instanceof DatamartCube)) {
-          DatamartSource _source_2 = datamart.getSource();
-          EList<DatamartCubeElement> _axisslicer = ((DatamartCube) _source_2).getAxisslicer();
+        if ((_source instanceof DatamartCube)) {
+          DatamartSource _source_1 = datamart.getSource();
+          EList<DatamartCubeElement> _axisslicer = ((DatamartCube) _source_1).getAxisslicer();
           for (final DatamartCubeElement axis : _axisslicer) {
-            if ((axis instanceof DatamartAxis)) {
-              AxisEnum _name = ((DatamartAxis) axis).getName();
-              String _literal = _name.getLiteral();
-              boolean _equals = _literal.equals(requestedAxisName);
+            if ((axis instanceof DatamartCubeAxis)) {
+              boolean _equals = ((DatamartCubeAxis) axis).getAxis().getName().getLiteral().equals(requestedAxisName);
               if (_equals) {
                 boolean hasMeasures = false;
                 boolean hasHierarchy = false;
                 boolean hasAggregation = false;
                 boolean isCrossjoined = false;
                 boolean isUndefined = false;
-                EList<DatamartElement> _elements = ((DatamartAxis) axis).getElements();
+                EList<DatamartElement> _elements = ((DatamartCubeAxis) axis).getElements();
                 for (final DatamartElement element : _elements) {
-                  boolean _or = false;
-                  if ((element instanceof DatamartMeasure)) {
-                    _or = true;
-                  } else {
-                    _or = (element instanceof DatamartDerivedMeasure);
-                  }
-                  if (_or) {
+                  if (((element instanceof DatamartMeasure) || 
+                    (element instanceof DatamartDerivedMeasure))) {
                     hasMeasures = true;
                   }
                 }
-                EList<DatamartElement> _elements_1 = ((DatamartAxis) axis).getElements();
+                EList<DatamartElement> _elements_1 = ((DatamartCubeAxis) axis).getElements();
                 for (final DatamartElement element_1 : _elements_1) {
                   {
                     if ((element_1 instanceof DatamartHierarchy)) {
@@ -648,47 +474,21 @@
                   }
                 }
                 if ((!isUndefined)) {
-                  EList<DatamartElement> _elements_2 = ((DatamartAxis) axis).getElements();
+                  EList<DatamartElement> _elements_2 = ((DatamartCubeAxis) axis).getElements();
                   for (final DatamartElement element_2 : _elements_2) {
                     {
-                      boolean _and_1 = false;
-                      if (!(element_2 instanceof DatamartMeasure)) {
-                        _and_1 = false;
-                      } else {
-                        boolean _equals_4 = "measure".equals(proposal);
-                        _and_1 = _equals_4;
-                      }
-                      if (_and_1) {
+                      if (((element_2 instanceof DatamartMeasure) && "measure".equals(proposal))) {
                         return true;
                       }
-                      boolean _and_2 = false;
-                      if (!(element_2 instanceof DatamartDerivedMeasure)) {
-                        _and_2 = false;
-                      } else {
-                        boolean _equals_5 = "derived".equals(proposal);
-                        _and_2 = _equals_5;
-                      }
-                      if (_and_2) {
+                      if (((element_2 instanceof DatamartDerivedMeasure) && "derived".equals(proposal))) {
                         return true;
                       }
-                      boolean _and_3 = false;
-                      if (!(element_2 instanceof DatamartHierarchy)) {
-                        _and_3 = false;
-                      } else {
-                        boolean _equals_6 = "level".equals(proposal);
-                        _and_3 = _equals_6;
-                      }
-                      if (_and_3) {
+                      if (((element_2 instanceof DatamartHierarchy) && 
+                        "level".equals(proposal))) {
                         return true;
                       }
-                      boolean _and_4 = false;
-                      if (!(element_2 instanceof DatamartSetAggregation)) {
-                        _and_4 = false;
-                      } else {
-                        boolean _equals_7 = "aggregation".equals(proposal);
-                        _and_4 = _equals_7;
-                      }
-                      if (_and_4) {
+                      if (((element_2 instanceof DatamartSetAggregation) && 
+                        "aggregation".equals(proposal))) {
                         return true;
                       }
                     }
@@ -698,33 +498,10 @@
             }
           }
         } else {
-          boolean _and_1 = false;
-          DatamartSource _source_3 = datamart.getSource();
-          if (!(_source_3 instanceof DatamartEntity)) {
-            _and_1 = false;
-          } else {
-            boolean _equals_4 = "property".equals(proposal);
-            _and_1 = _equals_4;
-          }
-          if (_and_1) {
+          if (((datamart.getSource() instanceof DatamartEntity) && "property".equals(proposal))) {
             return true;
           } else {
-            boolean _and_2 = false;
-            DatamartSource _source_4 = datamart.getSource();
-            if (!(_source_4 instanceof DatamartTask)) {
-              _and_2 = false;
-            } else {
-              boolean _or_1 = false;
-              boolean _equals_5 = "column".equals(proposal);
-              if (_equals_5) {
-                _or_1 = true;
-              } else {
-                boolean _equals_6 = "taskId".equals(proposal);
-                _or_1 = _equals_6;
-              }
-              _and_2 = _or_1;
-            }
-            if (_and_2) {
+            if (((datamart.getSource() instanceof DatamartTask) && ("column".equals(proposal) || "taskId".equals(proposal)))) {
               return true;
             }
           }
@@ -775,38 +552,46 @@
     if (_equals_9) {
       return true;
     }
-    boolean _equals_10 = "up to".equals(proposal);
+    boolean _equals_10 = "upToNumber".equals(proposal);
     if (_equals_10) {
       return true;
     }
-    boolean _equals_11 = "number".equals(proposal);
+    boolean _equals_11 = "upToInteger".equals(proposal);
     if (_equals_11) {
       return true;
     }
-    boolean _equals_12 = "string".equals(proposal);
+    boolean _equals_12 = "number".equals(proposal);
     if (_equals_12) {
       return true;
     }
-    boolean _equals_13 = "days in past".equals(proposal);
+    boolean _equals_13 = "integer".equals(proposal);
     if (_equals_13) {
       return true;
     }
-    boolean _equals_14 = "to".equals(proposal);
+    boolean _equals_14 = "string".equals(proposal);
     if (_equals_14) {
       return true;
     }
-    boolean _equals_15 = "datamart".equals(proposal);
+    boolean _equals_15 = "daysInPast".equals(proposal);
     if (_equals_15) {
       return true;
     }
-    boolean _equals_16 = "{".equals(proposal);
+    boolean _equals_16 = "to".equals(proposal);
     if (_equals_16) {
       return true;
     }
-    boolean _equals_17 = "}".equals(proposal);
+    boolean _equals_17 = "datamart".equals(proposal);
     if (_equals_17) {
       return true;
     }
+    boolean _equals_18 = "{".equals(proposal);
+    if (_equals_18) {
+      return true;
+    }
+    boolean _equals_19 = "}".equals(proposal);
+    if (_equals_19) {
+      return true;
+    }
     return false;
   }
   
@@ -821,40 +606,11 @@
       _semanticElement=_parent.getSemanticElement();
     }
     EObject node = _semanticElement;
-    EObject _currentModel = context.getCurrentModel();
-    EObject container = _currentModel.eContainer();
+    EObject container = context.getCurrentModel().eContainer();
     if ((container instanceof TableValue)) {
       if ((node instanceof TableRangeElement)) {
-        boolean _or = false;
-        boolean _or_1 = false;
-        boolean _or_2 = false;
-        boolean _or_3 = false;
-        boolean _equals = "textcolor".equals(proposal);
-        if (_equals) {
-          _or_3 = true;
-        } else {
-          boolean _equals_1 = "cellcolor".equals(proposal);
-          _or_3 = _equals_1;
-        }
-        if (_or_3) {
-          _or_2 = true;
-        } else {
-          boolean _equals_2 = "icon".equals(proposal);
-          _or_2 = _equals_2;
-        }
-        if (_or_2) {
-          _or_1 = true;
-        } else {
-          boolean _equals_3 = "trend".equals(proposal);
-          _or_1 = _equals_3;
-        }
-        if (_or_1) {
-          _or = true;
-        } else {
-          boolean _equals_4 = "tooltip".equals(proposal);
-          _or = _equals_4;
-        }
-        if (_or) {
+        if ((((("textcolor".equals(proposal) || "cellcolor".equals(proposal)) || "icon".equals(proposal)) || 
+          "trend".equals(proposal)) || "tooltip".equals(proposal))) {
           return true;
         }
       } else {
@@ -867,116 +623,125 @@
   public boolean isAxisValidProposal(final ContentAssistContext context, final String proposal, final boolean b) {
     EObject eObj = context.getCurrentModel();
     while ((!(eObj instanceof Table))) {
-      EObject _eContainer = eObj.eContainer();
-      eObj = _eContainer;
+      eObj = eObj.eContainer();
     }
-    boolean _and = false;
-    if (!((eObj instanceof Table) && (!(((Table) eObj).getTabletype() instanceof TableTable)))) {
-      _and = false;
-    } else {
-      boolean _equals = "details".equals(proposal);
-      _and = _equals;
-    }
-    if (_and) {
+    if ((((eObj instanceof Table) && (!(((Table) eObj).getTabletype() instanceof TableTable))) && 
+      "details".equals(proposal))) {
       return false;
     }
     return true;
   }
   
+  @Override
   public void complete_QualifiedName(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this);
   }
   
-  public void complete_TableQualifiedNameWithWildCard(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
-    this.providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this);
-  }
-  
+  @Override
   public void complete_SignedNumber(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.providerHelper.createNumberProposal(context, acceptor, ruleCall, this);
   }
   
+  @Override
   public void complete_Number(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.providerHelper.createNumberProposal(context, acceptor, ruleCall, this);
   }
   
+  @Override
   public void completePropertyButtonStyle_EventTopic(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completePropertyButtonStyle_EventTopic(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompletePropertyButtonStyle_EventTopic(acceptor, model, context);
   }
   
+  @Override
   public void completePropertyImageStyle_EventTopic(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completePropertyImageStyle_EventTopic(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompletePropertyImageStyle_EventTopic(acceptor, model, context);
   }
   
+  @Override
   public void completeStringToResourceStyleConfig_Value(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completeStringToResourceStyleConfig_Value(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompleteStringToResourceStyleConfig_Value(acceptor, model, context);
   }
   
+  @Override
   public void completeStringToResourceStyleConfig_ResourceThemePath(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completeStringToResourceStyleConfig_ResourceThemePath(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompleteStringToResourceStyleConfig_ResourceThemePath(acceptor, model, context);
   }
   
+  @Override
   public void completeNumericToResourceStyleConfig_ResourceThemePath(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completeNumericToResourceStyleConfig_ResourceThemePath(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompleteNumericToResourceStyleConfig_ResourceThemePath(acceptor, model, context);
   }
   
+  @Override
   public void completeNumericToResourceStyleConfig_Value(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completeNumericToResourceStyleConfig_Value(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompleteNumericToResourceStyleConfig_Value(acceptor, model, context);
   }
   
+  @Override
   public void completePropertyNumberStyle_NumberFormat(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completePropertyNumberStyle_NumberFormat(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompletePropertyNumberStyle_NumberFormat(acceptor, model, context);
   }
   
+  @Override
   public void completePropertyDateStyle_DateFormat(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completePropertyDateStyle_DateFormat(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompletePropertyDateStyle_DateFormat(acceptor, model, context);
   }
   
+  @Override
   public void completePropertyProgressbarStyle_MaxValue(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completePropertyProgressbarStyle_MaxValue(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompletePropertyProgressbarStyle_MaxValue(acceptor, model, context);
   }
   
+  @Override
   public void completePropertyPriceStyle_HtmlPattern(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completePropertyPriceStyle_HtmlPattern(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompletePropertyPriceStyle_HtmlPattern(acceptor, model, context);
   }
   
+  @Override
   public void completePropertyPriceStyle_ValueNumberFormat(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completePropertyPriceStyle_ValueNumberFormat(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompletePropertyPriceStyle_ValueNumberFormat(acceptor, model, context);
   }
   
+  @Override
   public void completePropertyQuantityStyle_HtmlPattern(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completePropertyQuantityStyle_HtmlPattern(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompletePropertyQuantityStyle_HtmlPattern(acceptor, model, context);
   }
   
+  @Override
   public void completePropertyQuantityStyle_ValueNumberFormat(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     super.completePropertyQuantityStyle_ValueNumberFormat(model, assignment, context, acceptor);
     this.gridProposalProvider.doCompletePropertyQuantityStyle_ValueNumberFormat(acceptor, model, context);
   }
   
+  @Override
   public void complete_TRANSLATABLESTRING(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.provider.complete_STRING(model, ruleCall, context, acceptor);
   }
   
+  @Override
   public void complete_ID(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     this.provider.complete_ID(model, ruleCall, context, acceptor);
   }
   
+  @Override
   public void completeTableImage_ResizeString(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     AbstractElement _terminal = assignment.getTerminal();
     this.provider.complete_STRING(model, ((RuleCall) _terminal), context, acceptor);
   }
   
+  @Override
   public void completeTableStringLookup_LookupValue(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
     AbstractElement _terminal = assignment.getTerminal();
     this.provider.complete_STRING(model, ((RuleCall) _terminal), context, acceptor);
diff --git a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/labeling/.gitignore b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/labeling/.gitignore
new file mode 100644
index 0000000..502b30a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/labeling/.gitignore
@@ -0,0 +1,4 @@
+/.TableDSLDescriptionLabelProvider.xtendbin
+/.TableDSLLabelProvider.xtendbin
+/TableDSLDescriptionLabelProvider.java
+/TableDSLLabelProvider.java
diff --git a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/labeling/TableDSLLabelProvider.java b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/labeling/TableDSLLabelProvider.java
index 3ddb6b5..77b7e27 100644
--- a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/labeling/TableDSLLabelProvider.java
+++ b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/labeling/TableDSLLabelProvider.java
@@ -16,28 +16,14 @@
 
 import com.google.inject.Inject;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.osbp.dsl.semantic.dto.LDto;
-import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropStyle;
 import org.eclipse.osbp.xtext.basic.ui.labeling.BasicDSLLabelProvider;
-import org.eclipse.osbp.xtext.cubedsl.CubeLevel;
-import org.eclipse.osbp.xtext.cubedsl.CubeMeasure;
-import org.eclipse.osbp.xtext.datamartdsl.AxisEnum;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartColumn;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartDefineDerivedMeasure;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartDerivedMeasure;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartMeasure;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartSetAggregationFunction;
-import org.eclipse.osbp.xtext.datamartdsl.SetAggregationEnum;
-import org.eclipse.osbp.xtext.datamartdsl.TaskQueryColumnEnum;
 import org.eclipse.osbp.xtext.table.Table;
 import org.eclipse.osbp.xtext.table.TableAggregation;
 import org.eclipse.osbp.xtext.table.TableAllColumns;
+import org.eclipse.osbp.xtext.table.TableAttribute;
 import org.eclipse.osbp.xtext.table.TableAxis;
-import org.eclipse.osbp.xtext.table.TableBrokerDatamart;
 import org.eclipse.osbp.xtext.table.TableCellColor;
 import org.eclipse.osbp.xtext.table.TableColumn;
 import org.eclipse.osbp.xtext.table.TableDatamart;
@@ -57,7 +43,6 @@
 import org.eclipse.osbp.xtext.table.TableOrdinal;
 import org.eclipse.osbp.xtext.table.TablePackage;
 import org.eclipse.osbp.xtext.table.TablePreorder;
-import org.eclipse.osbp.xtext.table.TableProperty;
 import org.eclipse.osbp.xtext.table.TableStringLookup;
 import org.eclipse.osbp.xtext.table.TableTable;
 import org.eclipse.osbp.xtext.table.TableTask;
@@ -65,7 +50,6 @@
 import org.eclipse.osbp.xtext.table.TableTooltip;
 import org.eclipse.osbp.xtext.table.TableTrend;
 import org.eclipse.osbp.xtext.table.TableValue;
-import org.eclipse.osbp.xtext.table.TrendIconEnum;
 import org.eclipse.xtend2.lib.StringConcatenation;
 
 /**
@@ -80,63 +64,42 @@
     super(delegate);
   }
   
+  @Override
   public Object text(final Object o) {
     Object _switchResult = null;
     boolean _matched = false;
-    if (!_matched) {
-      if (o instanceof TablePackage) {
-        _matched=true;
-        String _name = ((TablePackage)o).getName();
-        _switchResult = this.generateText(o, "package", _name);
-      }
+    if (o instanceof TablePackage) {
+      _matched=true;
+      _switchResult = this.generateText(o, "package", ((TablePackage)o).getName());
     }
     if (!_matched) {
       if (o instanceof Table) {
         _matched=true;
-        String _name = ((Table)o).getName();
-        _switchResult = this.generateText(o, "table model", _name);
+        _switchResult = this.generateText(o, "table model", ((Table)o).getName());
       }
     }
     if (!_matched) {
       if (o instanceof TableTable) {
         _matched=true;
-        TableDatamart _source = ((TableTable)o).getSource();
-        DatamartDefinition _datamartRef = _source.getDatamartRef();
-        String _name = _datamartRef.getName();
-        _switchResult = this.generateText(o, "table", _name);
+        _switchResult = this.generateText(o, "table", ((TableTable)o).getSource().getDatamartRef().getName());
       }
     }
     if (!_matched) {
       if (o instanceof TableGrid) {
         _matched=true;
-        TableDtoDatasource _source = ((TableGrid)o).getSource();
-        LDto _dtoSource = _source.getDtoSource();
-        String _name = _dtoSource.getName();
-        _switchResult = this.generateText(o, "grid", _name);
+        _switchResult = this.generateText(o, "grid", ((TableGrid)o).getSource().getDtoSource().getName());
       }
     }
     if (!_matched) {
       if (o instanceof TableAxis) {
         _matched=true;
-        AxisEnum _axis = ((TableAxis)o).getAxis();
-        String _literal = _axis.getLiteral();
-        _switchResult = this.generateText(o, "axis", _literal);
+        _switchResult = this.generateText(o, "axis", ((TableAxis)o).getAxis().getLiteral());
       }
     }
     if (!_matched) {
       if (o instanceof TableDatamart) {
         _matched=true;
-        DatamartDefinition _datamartRef = ((TableDatamart)o).getDatamartRef();
-        String _name = _datamartRef.getName();
-        _switchResult = this.generateText(o, "datamart", _name);
-      }
-    }
-    if (!_matched) {
-      if (o instanceof TableBrokerDatamart) {
-        _matched=true;
-        DatamartDefinition _datamartDef = ((TableBrokerDatamart)o).getDatamartDef();
-        String _name = _datamartDef.getName();
-        _switchResult = this.generateText(o, "datamart", _name);
+        _switchResult = this.generateText(o, "datamart", ((TableDatamart)o).getDatamartRef().getName());
       }
     }
     if (!_matched) {
@@ -160,8 +123,7 @@
     if (!_matched) {
       if (o instanceof TableFormatter) {
         _matched=true;
-        String _format = ((TableFormatter)o).getFormat();
-        _switchResult = this.generateText(o, "formatter", _format);
+        _switchResult = this.generateText(o, "formatter", ((TableFormatter)o).getFormat());
       }
     }
     if (!_matched) {
@@ -170,7 +132,7 @@
         StringConcatenation _builder = new StringConcatenation();
         _builder.append("textcolor (");
         String _rgb = ((TableTextColor)o).getRgb();
-        _builder.append(_rgb, "");
+        _builder.append(_rgb);
         _builder.append(")");
         _switchResult = this.generateText(o, _builder.toString());
       }
@@ -181,7 +143,7 @@
         StringConcatenation _builder = new StringConcatenation();
         _builder.append("cellcolor (");
         String _rgb = ((TableCellColor)o).getRgb();
-        _builder.append(_rgb, "");
+        _builder.append(_rgb);
         _builder.append(")");
         _switchResult = this.generateText(o, _builder.toString());
       }
@@ -189,84 +151,61 @@
     if (!_matched) {
       if (o instanceof TableIcon) {
         _matched=true;
-        String _icon = ((TableIcon)o).getIcon();
-        _switchResult = this.generateText(o, "icon", _icon);
+        _switchResult = this.generateText(o, "icon", ((TableIcon)o).getIcon());
       }
     }
     if (!_matched) {
       if (o instanceof TableTooltip) {
         _matched=true;
-        String _tooltip = ((TableTooltip)o).getTooltip();
-        _switchResult = this.generateText(o, "tooltip", _tooltip);
+        _switchResult = this.generateText(o, "tooltip", ((TableTooltip)o).getTooltip());
       }
     }
     if (!_matched) {
       if (o instanceof TableTrend) {
         _matched=true;
-        TrendIconEnum _icon = ((TableTrend)o).getIcon();
-        String _string = _icon.toString();
-        _switchResult = this.generateText(o, "trend", _string);
+        _switchResult = this.generateText(o, "trend", ((TableTrend)o).getIcon().toString());
       }
     }
     if (!_matched) {
-      if (o instanceof TableProperty) {
+      if (o instanceof TableAttribute) {
         _matched=true;
-        DatamartProperty _valueRef = ((TableProperty)o).getValueRef();
-        LEntityAttribute _propertyRef = _valueRef.getPropertyRef();
-        String _name = _propertyRef.getName();
-        _switchResult = this.generateText(o, "table property", _name);
+        _switchResult = this.generateText(o, "table property", ((TableAttribute)o).getValueRef().getAttributeRef().getName());
       }
     }
     if (!_matched) {
       if (o instanceof TableAggregation) {
         _matched=true;
-        DatamartSetAggregationFunction _valueRef = ((TableAggregation)o).getValueRef();
-        SetAggregationEnum _aggregation = _valueRef.getAggregation();
-        String _string = _aggregation.toString();
-        _switchResult = this.generateText(o, "aggregation", _string);
+        _switchResult = this.generateText(o, "aggregation", ((TableAggregation)o).getValueRef().getAggregation().toString());
       }
     }
     if (!_matched) {
       if (o instanceof TableHierarchy) {
         _matched=true;
-        CubeLevel _valueRef = ((TableHierarchy)o).getValueRef();
-        String _name = _valueRef.getName();
-        _switchResult = this.generateText(o, "level", _name);
+        _switchResult = this.generateText(o, "level", ((TableHierarchy)o).getValueRef().getName());
       }
     }
     if (!_matched) {
       if (o instanceof TableMeasure) {
         _matched=true;
-        DatamartMeasure _valueRef = ((TableMeasure)o).getValueRef();
-        CubeMeasure _measureRef = _valueRef.getMeasureRef();
-        String _name = _measureRef.getName();
-        _switchResult = this.generateText(o, "measure", _name);
+        _switchResult = this.generateText(o, "measure", ((TableMeasure)o).getValueRef().getMeasureRef().getName());
       }
     }
     if (!_matched) {
       if (o instanceof TableDerived) {
         _matched=true;
-        DatamartDerivedMeasure _valueRef = ((TableDerived)o).getValueRef();
-        DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-        String _name = _derivedRef.getName();
-        _switchResult = this.generateText(o, "derived", _name);
+        _switchResult = this.generateText(o, "derived", ((TableDerived)o).getValueRef().getDerivedRef().getName());
       }
     }
     if (!_matched) {
       if (o instanceof TableOrdinal) {
         _matched=true;
-        String _valueRef = ((TableOrdinal)o).getValueRef();
-        String _string = _valueRef.toString();
-        _switchResult = this.generateText(o, "ordinal", _string);
+        _switchResult = this.generateText(o, "ordinal", ((TableOrdinal)o).getValueRef().toString());
       }
     }
     if (!_matched) {
       if (o instanceof TableColumn) {
         _matched=true;
-        DatamartColumn _valueRef = ((TableColumn)o).getValueRef();
-        TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-        String _string = _columnRef.toString();
-        _switchResult = this.generateText(o, "column", _string);
+        _switchResult = this.generateText(o, "column", ((TableColumn)o).getValueRef().getColumnRef().toString());
       }
     }
     if (!_matched) {
@@ -302,32 +241,25 @@
     if (!_matched) {
       if (o instanceof TableDtoDatasource) {
         _matched=true;
-        LDto _dtoSource = ((TableDtoDatasource)o).getDtoSource();
-        String _name = _dtoSource.getName();
-        _switchResult = this.generateText(o, "dto datasource", _name);
+        _switchResult = this.generateText(o, "dto datasource", ((TableDtoDatasource)o).getDtoSource().getName());
       }
     }
     if (!_matched) {
       if (o instanceof TableStringLookup) {
         _matched=true;
-        String _lookupValue = ((TableStringLookup)o).getLookupValue();
-        _switchResult = this.generateText(o, "string lookup", _lookupValue);
+        _switchResult = this.generateText(o, "string lookup", ((TableStringLookup)o).getLookupValue());
       }
     }
     if (!_matched) {
       if (o instanceof TableNumberLookup) {
         _matched=true;
-        double _lookupValue = ((TableNumberLookup)o).getLookupValue();
-        String _string = Double.valueOf(_lookupValue).toString();
-        _switchResult = this.generateText(o, "number lookup", _string);
+        _switchResult = this.generateText(o, "number lookup", Double.valueOf(((TableNumberLookup)o).getLookupValue()).toString());
       }
     }
     if (!_matched) {
       if (o instanceof TableDateDayLookup) {
         _matched=true;
-        double _lookupValue = ((TableDateDayLookup)o).getLookupValue();
-        String _string = Double.valueOf(_lookupValue).toString();
-        _switchResult = this.generateText(o, "date lookup", _string);
+        _switchResult = this.generateText(o, "date lookup", Integer.valueOf(((TableDateDayLookup)o).getLookupValue()).toString());
       }
     }
     if (!_matched) {
@@ -336,217 +268,180 @@
     return _switchResult;
   }
   
+  @Override
   public Object image(final Object o) {
     Object _switchResult = null;
     boolean _matched = false;
-    if (!_matched) {
-      if (o instanceof TableModel) {
-        _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("model.png", _class);
-      }
+    if (o instanceof TableModel) {
+      _matched=true;
+      _switchResult = this.getInternalImage("model.png", this.getClass());
     }
     if (!_matched) {
       if (o instanceof TablePackage) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("package.gif", _class);
+        _switchResult = this.getInternalImage("package.gif", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof Table) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("dsl_table.png", _class);
+        _switchResult = this.getInternalImage("dsl_table.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableTable) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("table-table.png", _class);
+        _switchResult = this.getInternalImage("table-table.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableGrid) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("table-grid.png", _class);
+        _switchResult = this.getInternalImage("table-grid.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableAxis) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("axis.png", _class);
+        _switchResult = this.getInternalImage("axis.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableDatamart) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("dsl_datamart.png", _class);
-      }
-    }
-    if (!_matched) {
-      if (o instanceof TableBrokerDatamart) {
-        _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("dsl_datamart.png", _class);
+        _switchResult = this.getInternalImage("dsl_datamart.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableEvent) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("event.png", _class);
+        _switchResult = this.getInternalImage("event.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableValue) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("value3.png", _class);
+        _switchResult = this.getInternalImage("value3.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableInterval) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("interval.png", _class);
+        _switchResult = this.getInternalImage("interval.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableFormatter) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("format.png", _class);
+        _switchResult = this.getInternalImage("format.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableTextColor) {
         _matched=true;
-        String _rgb = ((TableTextColor)o).getRgb();
-        _switchResult = this.getColorOutlineImage(_rgb, true);
+        _switchResult = this.getColorOutlineImage(((TableTextColor)o).getRgb(), true);
       }
     }
     if (!_matched) {
       if (o instanceof TableCellColor) {
         _matched=true;
-        String _rgb = ((TableCellColor)o).getRgb();
-        _switchResult = this.getColorOutlineImage(_rgb, true);
+        _switchResult = this.getColorOutlineImage(((TableCellColor)o).getRgb(), true);
       }
     }
     if (!_matched) {
       if (o instanceof TableIcon) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("img.png", _class);
+        _switchResult = this.getInternalImage("img.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableTooltip) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("tooltip.png", _class);
+        _switchResult = this.getInternalImage("tooltip.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableTrend) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("trend.png", _class);
+        _switchResult = this.getInternalImage("trend.png", this.getClass());
       }
     }
     if (!_matched) {
-      if (o instanceof TableProperty) {
+      if (o instanceof TableAttribute) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("properties.png", _class);
+        _switchResult = this.getInternalImage("properties.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableAggregation) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("aggregate.png", _class);
+        _switchResult = this.getInternalImage("aggregate.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableAllColumns) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("column.png", _class);
+        _switchResult = this.getInternalImage("column.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableHierarchy) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("level.png", _class);
+        _switchResult = this.getInternalImage("level.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableMeasure) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("measure.png", _class);
+        _switchResult = this.getInternalImage("measure.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableDerived) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("derived.png", _class);
+        _switchResult = this.getInternalImage("derived.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableTask) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("task.png", _class);
+        _switchResult = this.getInternalImage("task.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableColumn) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("column.png", _class);
+        _switchResult = this.getInternalImage("column.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableLookup) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("lookup.png", _class);
+        _switchResult = this.getInternalImage("lookup.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TablePreorder) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("pre-order.png", _class);
+        _switchResult = this.getInternalImage("pre-order.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof CxGridProperty) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("properties.png", _class);
+        _switchResult = this.getInternalImage("properties.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof CxGridPropStyle) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("style.png", _class);
+        _switchResult = this.getInternalImage("style.png", this.getClass());
       }
     }
     if (!_matched) {
       if (o instanceof TableDtoDatasource) {
         _matched=true;
-        Class<? extends TableDSLLabelProvider> _class = this.getClass();
-        _switchResult = this.getInternalImage("datasource.png", _class);
+        _switchResult = this.getInternalImage("datasource.png", this.getClass());
       }
     }
     if (!_matched) {
diff --git a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/outline/.gitignore b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/outline/.gitignore
new file mode 100644
index 0000000..60ed18b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/outline/.gitignore
@@ -0,0 +1,2 @@
+/.TableDSLOutlineTreeProvider.xtendbin
+/TableDSLOutlineTreeProvider.java
diff --git a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/quickfix/.gitignore b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/quickfix/.gitignore
new file mode 100644
index 0000000..122195d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/quickfix/.gitignore
@@ -0,0 +1,2 @@
+/.TableDSLQuickfixProvider.xtendbin
+/TableDSLQuickfixProvider.java
diff --git a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/quickfix/TableDSLQuickfixProvider.java b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/quickfix/TableDSLQuickfixProvider.java
index 23e139e..ea9247a 100644
--- a/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/quickfix/TableDSLQuickfixProvider.java
+++ b/org.eclipse.osbp.xtext.table.ui/xtend-gen/org/eclipse/osbp/xtext/table/ui/quickfix/TableDSLQuickfixProvider.java
@@ -14,7 +14,7 @@
  */
 package org.eclipse.osbp.xtext.table.ui.quickfix;
 
-import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider;
+import org.eclipse.osbp.xtext.oxtype.ui.quickfix.OXtypeQuickfixProvider;
 
 /**
  * Custom quickfixes.
@@ -22,5 +22,5 @@
  * see http://www.eclipse.org/Xtext/documentation.html#quickfixes
  */
 @SuppressWarnings("all")
-public class TableDSLQuickfixProvider extends DefaultQuickfixProvider {
+public class TableDSLQuickfixProvider extends OXtypeQuickfixProvider {
 }
diff --git a/org.eclipse.osbp.xtext.table/.classpath b/org.eclipse.osbp.xtext.table/.classpath
new file mode 100644
index 0000000..f279e60
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/.classpath
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src/"/>
+	<classpathentry kind="src" path="src-gen/"/>
+	<classpathentry kind="src" path="xtend-gen/"/>
+	<classpathentry kind="src" path="emf-gen/"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.xtext.table/.project b/org.eclipse.osbp.xtext.table/.project
index bd9420f..73c19b6 100644
--- a/org.eclipse.osbp.xtext.table/.project
+++ b/org.eclipse.osbp.xtext.table/.project
@@ -6,6 +6,11 @@
 	</projects>
 	<buildSpec>
 		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
 			</arguments>
@@ -21,7 +26,12 @@
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
@@ -30,17 +40,12 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.babel.editor.rbeBuilder</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>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
 	</natures>
 </projectDescription>
diff --git a/org.eclipse.osbp.xtext.table/.settings/com.vaadin.integration.eclipse.prefs b/org.eclipse.osbp.xtext.table/.settings/com.vaadin.integration.eclipse.prefs
new file mode 100644
index 0000000..0904e44
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/.settings/com.vaadin.integration.eclipse.prefs
@@ -0,0 +1,2 @@
+com.vaadin.integration.eclipse.mavenLatestVersionsUpgrade=["7.7.7"]
+eclipse.preferences.version=1
diff --git a/org.eclipse.osbp.xtext.table/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.xtext.table/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/.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.table/.settings/org.eclipse.emf.ecore.xcore.Xcore.prefs b/org.eclipse.osbp.xtext.table/.settings/org.eclipse.emf.ecore.xcore.Xcore.prefs
new file mode 100644
index 0000000..5e53854
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/.settings/org.eclipse.emf.ecore.xcore.Xcore.prefs
@@ -0,0 +1,12 @@
+autobuilding=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.cleanDirectory=false
+outlet.DEFAULT_OUTPUT.cleanupDerived=true
+outlet.DEFAULT_OUTPUT.createDirectory=true
+outlet.DEFAULT_OUTPUT.derived=true
+outlet.DEFAULT_OUTPUT.directory=./emf-gen
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.keepLocalHistory=true
+outlet.DEFAULT_OUTPUT.override=true
diff --git a/org.eclipse.osbp.xtext.table/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.xtext.table/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..a698e59
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+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.table/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.xtext.table/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/.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.table/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.xtext.table/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..19e3115
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/.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.table/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.table/META-INF/MANIFEST.MF
index c8ee8ce..fac79f7 100644
--- a/org.eclipse.osbp.xtext.table/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.table/META-INF/MANIFEST.MF
@@ -12,22 +12,21 @@
  org.apache.xerces;bundle-version="2.9.0",
  org.eclipse.osgi.services;bundle-version="3.4.0",
  javax.persistence;bundle-version="2.1.0",
- javax.annotation;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.core.runtime,
- org.eclipse.core.databinding,
- org.eclipse.core.databinding.beans,
+ org.eclipse.core.databinding;bundle-version="[1.6.0,1.7.0)",
+ org.eclipse.core.databinding.beans;bundle-version="[1.3.100,1.4.0)",
  org.eclipse.e4.ui.workbench,
  org.eclipse.e4.ui.model.workbench,
  org.eclipse.e4.core.contexts,
  org.eclipse.e4.core.services,
  org.eclipse.e4.core.di,
  org.eclipse.e4.core.di.extensions;bundle-version="0.12.0",
- org.eclipse.xtext;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.xtext.common.types;bundle-version="[2.7.3,2.8.0)";visibility:=reexport,
- org.eclipse.xtext.generator;bundle-version="[2.7.3,2.8.0)";resolution:=optional,
- org.eclipse.xtext.util;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.xtext.xbase;bundle-version="[2.7.3,2.8.0)";visibility:=reexport,
- org.eclipse.xtext.xbase.lib;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.common.types;bundle-version="[2.11.0,2.12.0)";visibility:=reexport,
+ org.eclipse.xtext.generator;bundle-version="[2.11.0,2.12.0)";resolution:=optional,
+ org.eclipse.xtext.util;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.xbase;bundle-version="[2.11.0,2.12.0)";visibility:=reexport,
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.11.0,2.12.0)",
  org.apache.commons.logging;resolution:=optional,
  org.eclipse.emf.codegen.ecore,
  org.eclipse.emf.mwe.utils,
@@ -36,14 +35,13 @@
  org.eclipse.emf.ecore.xcore,
  org.eclipse.emf.ecore.xcore.lib,
  org.antlr.runtime,
- com.vaadin.shared;bundle-version="[7.5.7,7.7.0)",
- com.vaadin.client;bundle-version="[7.5.7,7.7.0)",
- com.vaadin.server;bundle-version="[7.5.7,7.7.0)",
+ com.vaadin.shared;bundle-version="[7.7.6,7.8.0)",
+ com.vaadin.client;bundle-version="[7.7.6,7.8.0)",
+ com.vaadin.server;bundle-version="[7.7.6,7.8.0)",
  org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional,
  filteringtable.osgi,
  popupbutton.osgi;bundle-version="[2.5.0,2.5.1)",
  mondrian.osgi;bundle-version="[3.5.0,3.5.1)",
- org.drools.api;bundle-version="[5.5.1,5.5.2)",
  olap4j.osgi;bundle-version="[1.1.0,1.3.0)",
  refresher.osgi;bundle-version="[1.2.3.7,1.2.4)",
  contextmenu.osgi;bundle-version="[4.6,4.7)",
@@ -53,15 +51,11 @@
  org.eclipse.osbp.dsl.common.xtext;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.dsl.dto.xtext;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.functionlibrarydsl;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
- org.eclipse.osbp.dsl.xtext.lazyresolver;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.dsl.xtext.lazyresolver.api;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.ecview.dsl.lib;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.ecview.extension.api;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.dsl.datatype.lib;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.dsl.mwe;bundle-version="[0.9.0,0.10.0)";resolution:=optional,
  org.eclipse.osbp.dsl.dto.lib;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.persistence;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.utils;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.utils.ui;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.eventbroker;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.osgi.hybrid.api;bundle-version="[0.9.0,0.10.0)",
@@ -75,7 +69,7 @@
  org.eclipse.osbp.xtext.basic;bundle-version="[0.9.0,0.10.0)";resolution:=optional,
  org.eclipse.osbp.xtext.action;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
  org.eclipse.osbp.xtext.table.common;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.emf.mwe2.launch;bundle-version="2.7.1";resolution:=optional,
+ org.eclipse.emf.mwe2.launch;bundle-version="[2.9.0,2.10.0)";resolution:=optional,
  org.eclipse.osbp.gitinfo;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.datamart.common;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.gridsource;bundle-version="[0.9.0,0.10.0)",
@@ -86,20 +80,31 @@
  org.eclipse.osbp.xtext.builder.types.loader.runtime;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.builder.xbase.setups;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.infogrid.api;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.vaaclipse.common.ecview.api;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.infogrid.model;bundle-version="[0.9.0,0.10.0)"
-Import-Package: javax.validation,
+ org.eclipse.osbp.infogrid.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.oxtype;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ui.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.xtend.lib,
+ org.eclipse.osbp.xtext.datainterchange,
+ org.eclipse.e4.ui.di;bundle-version="1.1.100",
+ org.eclipse.osbp.runtime.web.vaadin.common;bundle-version="0.9.0",
+ org.eclipse.osbp.vaaclipse.common.ecview.api;bundle-version="0.9.0"
+Import-Package: javax.annotation,
+ javax.validation,
  javax.validation.constraints,
  org.apache.log4j,
- org.eclipse.osbp.bpm.api;version="[0.9.0,0.10.0)",
- org.eclipse.osbp.ecview.extension.strategy;version="[0.9.0,0.10.0)",
- org.eclipse.osbp.ui.api.contextfunction;version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.bpm.api;version="0.9.0",
+ org.eclipse.osbp.ecview.extension.strategy;version="0.9.0",
+ org.eclipse.osbp.ui.api.contextfunction;version="0.9.0",
  org.eclipse.osbp.ui.api.datamart;version="0.9.0",
  org.eclipse.osbp.ui.api.layout;version="0.9.0",
  org.eclipse.osbp.ui.api.metadata;version="0.9.0",
  org.eclipse.osbp.ui.api.themes;version="0.9.0",
  org.eclipse.osbp.ui.api.user;version="0.9.0",
- org.eclipse.osbp.xtext.basic.generator;version="[0.9.0,0.10.0)"
+ org.eclipse.osbp.utils.annotation;version="0.9.0",
+ org.eclipse.osbp.utils.common;version="0.9.0",
+ org.eclipse.osbp.utils.constants;version="0.9.0",
+ org.eclipse.osbp.utils.entityhelper;version="0.9.0",
+ org.eclipse.osbp.xtext.basic.generator
 Export-Package: org.eclipse.osbp.xtext.table;version="0.9.0",
  org.eclipse.osbp.xtext.table.formatting;version="0.9.0",
  org.eclipse.osbp.xtext.table.generator;version="0.9.0",
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Calculation.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Calculation.java
index 5bf7151..a240e31 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Calculation.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Calculation.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.Calculation#getLeft <em>Left</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.Calculation#getRight <em>Right</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getCalculation()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/ConditionalExpression.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/ConditionalExpression.java
index 4386c09..15e15ef 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/ConditionalExpression.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/ConditionalExpression.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.ConditionalExpression#getOperator <em>Operator</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getConditionalExpression()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Conjunction.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Conjunction.java
index 726bd48..0a2e92d 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Conjunction.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Conjunction.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Disjunction.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Disjunction.java
index e8e93f3..b464207 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Disjunction.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Disjunction.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Expression.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Expression.java
index 9bb477c..fe6f437 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Expression.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Expression.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.Expression#getNumberValue <em>Number Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.Expression#getStringValue <em>String Value</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getExpression()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/OperatorEnum.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/OperatorEnum.java
index f355215..dc4fd9c 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/OperatorEnum.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/OperatorEnum.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -207,6 +207,8 @@
 	 * Returns the '<em><b>Operator Enum</b></em>' literal with the specified literal value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static OperatorEnum get(String literal) {
@@ -223,6 +225,8 @@
 	 * Returns the '<em><b>Operator Enum</b></em>' literal with the specified name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static OperatorEnum getByName(String name) {
@@ -239,6 +243,8 @@
 	 * Returns the '<em><b>Operator Enum</b></em>' literal with the specified integer value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static OperatorEnum get(int value) {
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/RowHeaderMode.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/RowHeaderMode.java
index ade11cd..5d388df 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/RowHeaderMode.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/RowHeaderMode.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -129,6 +129,8 @@
 	 * Returns the '<em><b>Row Header Mode</b></em>' literal with the specified literal value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static RowHeaderMode get(String literal) {
@@ -145,6 +147,8 @@
 	 * Returns the '<em><b>Row Header Mode</b></em>' literal with the specified name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static RowHeaderMode getByName(String name) {
@@ -161,6 +165,8 @@
 	 * Returns the '<em><b>Row Header Mode</b></em>' literal with the specified integer value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static RowHeaderMode get(int value) {
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Table.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Table.java
index b898344..bb9d556 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Table.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/Table.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,12 +21,12 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.Table#isDescription <em>Description</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.Table#getDescriptionValue <em>Description Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.Table#getTabletype <em>Tabletype</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTable()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAggregation.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAggregation.java
index 5ce8b87..fd9c1f7 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAggregation.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAggregation.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -22,10 +22,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableAggregation#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableAggregation()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAllColumns.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAllColumns.java
index b5a4570..a5cc2f9 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAllColumns.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAllColumns.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAttribute.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAttribute.java
new file mode 100644
index 0000000..bcbca3e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAttribute.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License v1.0 
+ *  which accompanies this distribution, and is available at 
+ *  http{//www.eclipse.org/legal/epl-v10.html 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ * 
+ *  Contributors{  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.table;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartAttribute;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Attribute</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableAttribute#getValueRef <em>Value Ref</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableAttribute()
+ * @model
+ * @generated
+ */
+public interface TableAttribute extends Expression, TableValueElement {
+	/**
+	 * Returns the value of the '<em><b>Value Ref</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value Ref</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value Ref</em>' reference.
+	 * @see #setValueRef(DatamartAttribute)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableAttribute_ValueRef()
+	 * @model
+	 * @generated
+	 */
+	DatamartAttribute getValueRef();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableAttribute#getValueRef <em>Value Ref</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value Ref</em>' reference.
+	 * @see #getValueRef()
+	 * @generated
+	 */
+	void setValueRef(DatamartAttribute value);
+
+} // TableAttribute
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAxis.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAxis.java
index 80c62f0..7419339 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAxis.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableAxis.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -24,6 +24,7 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableAxis#getAxis <em>Axis</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableAxis#isHasRowHeight <em>Has Row Height</em>}</li>
@@ -34,7 +35,6 @@
  *   <li>{@link org.eclipse.osbp.xtext.table.TableAxis#isHasEvents <em>Has Events</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableAxis#getEvents <em>Events</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableAxis()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableBase.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableBase.java
index 71dfcfc..468c74a 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableBase.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableBase.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableBase#getName <em>Name</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableBase()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableBean.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableBean.java
new file mode 100644
index 0000000..cb44084
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableBean.java
@@ -0,0 +1,144 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License v1.0 
+ *  which accompanies this distribution, and is available at 
+ *  http{//www.eclipse.org/legal/epl-v10.html 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ * 
+ *  Contributors{  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.table;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Bean</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableBean#isSelectById <em>Select By Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableBean#isSelectalways <em>Selectalways</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableBean#getHeaderMode <em>Header Mode</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableBean#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableBean()
+ * @model
+ * @generated
+ */
+public interface TableBean extends TableOption {
+	/**
+	 * Returns the value of the '<em><b>Select By Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Select By Id</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Select By Id</em>' attribute.
+	 * @see #setSelectById(boolean)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableBean_SelectById()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isSelectById();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableBean#isSelectById <em>Select By Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Select By Id</em>' attribute.
+	 * @see #isSelectById()
+	 * @generated
+	 */
+	void setSelectById(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Selectalways</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Selectalways</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Selectalways</em>' attribute.
+	 * @see #setSelectalways(boolean)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableBean_Selectalways()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isSelectalways();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableBean#isSelectalways <em>Selectalways</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Selectalways</em>' attribute.
+	 * @see #isSelectalways()
+	 * @generated
+	 */
+	void setSelectalways(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Header Mode</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.table.RowHeaderMode}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Header Mode</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Header Mode</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.table.RowHeaderMode
+	 * @see #setHeaderMode(RowHeaderMode)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableBean_HeaderMode()
+	 * @model unique="false"
+	 * @generated
+	 */
+	RowHeaderMode getHeaderMode();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableBean#getHeaderMode <em>Header Mode</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Header Mode</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.table.RowHeaderMode
+	 * @see #getHeaderMode()
+	 * @generated
+	 */
+	void setHeaderMode(RowHeaderMode value);
+
+	/**
+	 * Returns the value of the '<em><b>Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Source</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Source</em>' containment reference.
+	 * @see #setSource(TableDatamart)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableBean_Source()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableDatamart getSource();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableBean#getSource <em>Source</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Source</em>' containment reference.
+	 * @see #getSource()
+	 * @generated
+	 */
+	void setSource(TableDatamart value);
+
+} // TableBean
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableBeanDatasource.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableBeanDatasource.java
new file mode 100644
index 0000000..695446d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableBeanDatasource.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License v1.0 
+ *  which accompanies this distribution, and is available at 
+ *  http{//www.eclipse.org/legal/epl-v10.html 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ * 
+ *  Contributors{  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.table;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Bean Datasource</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableBeanDatasource#getDatamartRef <em>Datamart Ref</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableBeanDatasource#getElements <em>Elements</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableBeanDatasource()
+ * @model
+ * @generated
+ */
+public interface TableBeanDatasource extends TableLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Datamart Ref</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Datamart Ref</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datamart Ref</em>' reference.
+	 * @see #setDatamartRef(DatamartDefinition)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableBeanDatasource_DatamartRef()
+	 * @model
+	 * @generated
+	 */
+	DatamartDefinition getDatamartRef();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableBeanDatasource#getDatamartRef <em>Datamart Ref</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datamart Ref</em>' reference.
+	 * @see #getDatamartRef()
+	 * @generated
+	 */
+	void setDatamartRef(DatamartDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Elements</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.table.TableElement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Elements</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Elements</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableBeanDatasource_Elements()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<TableElement> getElements();
+
+} // TableBeanDatasource
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableCellColor.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableCellColor.java
index a3b9e2f..a57d93e 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableCellColor.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableCellColor.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableCellColor#getRgb <em>Rgb</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableCellColor()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableColumn.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableColumn.java
index a7f2325..78b1dd1 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableColumn.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableColumn.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -22,10 +22,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableColumn#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableColumn()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDSLFactory.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDSLFactory.java
index c3af0e9..28042f5 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDSLFactory.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDSLFactory.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -105,6 +105,24 @@
 	TableGrid createTableGrid();
 
 	/**
+	 * Returns a new object of class '<em>Table Bean</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Bean</em>'.
+	 * @generated
+	 */
+	TableBean createTableBean();
+
+	/**
+	 * Returns a new object of class '<em>Table Bean Datasource</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Bean Datasource</em>'.
+	 * @generated
+	 */
+	TableBeanDatasource createTableBeanDatasource();
+
+	/**
 	 * Returns a new object of class '<em>Table Dto Datasource</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -231,13 +249,13 @@
 	TableHierarchy createTableHierarchy();
 
 	/**
-	 * Returns a new object of class '<em>Table Property</em>'.
+	 * Returns a new object of class '<em>Table Attribute</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Table Property</em>'.
+	 * @return a new object of class '<em>Table Attribute</em>'.
 	 * @generated
 	 */
-	TableProperty createTableProperty();
+	TableAttribute createTableAttribute();
 
 	/**
 	 * Returns a new object of class '<em>Table Aggregation</em>'.
@@ -258,6 +276,15 @@
 	TableNumberInterval createTableNumberInterval();
 
 	/**
+	 * Returns a new object of class '<em>Table Int Interval</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Int Interval</em>'.
+	 * @generated
+	 */
+	TableIntInterval createTableIntInterval();
+
+	/**
 	 * Returns a new object of class '<em>Table Date Day Interval</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -276,6 +303,15 @@
 	TableNumberLookup createTableNumberLookup();
 
 	/**
+	 * Returns a new object of class '<em>Table Int Lookup</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Int Lookup</em>'.
+	 * @generated
+	 */
+	TableIntLookup createTableIntLookup();
+
+	/**
 	 * Returns a new object of class '<em>Table String Lookup</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -321,15 +357,6 @@
 	TableEvent createTableEvent();
 
 	/**
-	 * Returns a new object of class '<em>Table Broker Datamart</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Table Broker Datamart</em>'.
-	 * @generated
-	 */
-	TableBrokerDatamart createTableBrokerDatamart();
-
-	/**
 	 * Returns a new object of class '<em>Table Text Color</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDSLPackage.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDSLPackage.java
index aa6b15a..df0b074 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDSLPackage.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDSLPackage.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -37,7 +37,7 @@
  * <!-- end-user-doc -->
  * @see org.eclipse.osbp.xtext.table.TableDSLFactory
  * @model kind="package"
- *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='table' modelName='TableDSL' prefix='TableDSL' operationReflection='false' updateClasspath='false' copyrightText='Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\r\n All rights reserved. This program and the accompanying materials \r\n are made available under the terms of the Eclipse Public License v1.0 \r\n which accompanies this distribution, and is available at \r\n http{//www.eclipse.org/legal/epl-v10.html \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n\r\n Contributors{  \r\n \t\tChristophe Loetz (Loetz GmbH&Co.KG) - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='table' modelName='TableDSL' prefix='TableDSL' operationReflection='false' updateClasspath='false' loadInitialization='false' literalsInterface='true' copyrightText='Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\r\n All rights reserved. This program and the accompanying materials \r\n are made available under the terms of the Eclipse Public License v1.0 \r\n which accompanies this distribution, and is available at \r\n http{//www.eclipse.org/legal/epl-v10.html \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n\r\n Contributors{  \r\n \t\tJoerg Riegel - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
  *        annotation="http://www.eclipse.org/emf/2002/Ecore rootPackage='tabledsl'"
  * @generated
  */
@@ -85,13 +85,22 @@
 	int TABLE_MODEL = 0;
 
 	/**
+	 * The feature id for the '<em><b>Import Section</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_MODEL__IMPORT_SECTION = 0;
+
+	/**
 	 * The feature id for the '<em><b>Packages</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_MODEL__PACKAGES = 0;
+	int TABLE_MODEL__PACKAGES = 1;
 
 	/**
 	 * The number of structural features of the '<em>Table Model</em>' class.
@@ -100,7 +109,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_MODEL_FEATURE_COUNT = 1;
+	int TABLE_MODEL_FEATURE_COUNT = 2;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableLazyResolverImpl <em>Table Lazy Resolver</em>}' class.
@@ -141,15 +150,6 @@
 	int TABLE_PACKAGE__NAME = OSBPTypesPackage.LPACKAGE__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Imports</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TABLE_PACKAGE__IMPORTS = OSBPTypesPackage.LPACKAGE__IMPORTS;
-
-	/**
 	 * The feature id for the '<em><b>Tables</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -370,13 +370,22 @@
 	int TABLE_TABLE__EMBEDDED = TABLE_OPTION__EMBEDDED;
 
 	/**
+	 * The feature id for the '<em><b>Select By Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TABLE__SELECT_BY_ID = TABLE_OPTION_FEATURE_COUNT + 0;
+
+	/**
 	 * The feature id for the '<em><b>Selectalways</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_TABLE__SELECTALWAYS = TABLE_OPTION_FEATURE_COUNT + 0;
+	int TABLE_TABLE__SELECTALWAYS = TABLE_OPTION_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Header Mode</b></em>' attribute.
@@ -385,7 +394,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_TABLE__HEADER_MODE = TABLE_OPTION_FEATURE_COUNT + 1;
+	int TABLE_TABLE__HEADER_MODE = TABLE_OPTION_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Source</b></em>' containment reference.
@@ -394,7 +403,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_TABLE__SOURCE = TABLE_OPTION_FEATURE_COUNT + 2;
+	int TABLE_TABLE__SOURCE = TABLE_OPTION_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Table Table</em>' class.
@@ -403,7 +412,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_TABLE_FEATURE_COUNT = TABLE_OPTION_FEATURE_COUNT + 3;
+	int TABLE_TABLE_FEATURE_COUNT = TABLE_OPTION_FEATURE_COUNT + 4;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableSelectionImpl <em>Table Selection</em>}' class.
@@ -461,6 +470,15 @@
 	int TABLE_SELECTION__EMBEDDED = TABLE_TABLE__EMBEDDED;
 
 	/**
+	 * The feature id for the '<em><b>Select By Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_SELECTION__SELECT_BY_ID = TABLE_TABLE__SELECT_BY_ID;
+
+	/**
 	 * The feature id for the '<em><b>Selectalways</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -597,6 +615,143 @@
 	int TABLE_GRID_FEATURE_COUNT = TABLE_OPTION_FEATURE_COUNT + 3;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl <em>Table Bean</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.table.impl.TableBeanImpl
+	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableBean()
+	 * @generated
+	 */
+	int TABLE_BEAN = 9;
+
+	/**
+	 * The feature id for the '<em><b>Polling</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN__POLLING = TABLE_OPTION__POLLING;
+
+	/**
+	 * The feature id for the '<em><b>Polling Time</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN__POLLING_TIME = TABLE_OPTION__POLLING_TIME;
+
+	/**
+	 * The feature id for the '<em><b>Filtering</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN__FILTERING = TABLE_OPTION__FILTERING;
+
+	/**
+	 * The feature id for the '<em><b>Toolbar</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN__TOOLBAR = TABLE_OPTION__TOOLBAR;
+
+	/**
+	 * The feature id for the '<em><b>Embedded</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN__EMBEDDED = TABLE_OPTION__EMBEDDED;
+
+	/**
+	 * The feature id for the '<em><b>Select By Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN__SELECT_BY_ID = TABLE_OPTION_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Selectalways</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN__SELECTALWAYS = TABLE_OPTION_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Header Mode</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN__HEADER_MODE = TABLE_OPTION_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN__SOURCE = TABLE_OPTION_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>Table Bean</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN_FEATURE_COUNT = TABLE_OPTION_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableBeanDatasourceImpl <em>Table Bean Datasource</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.table.impl.TableBeanDatasourceImpl
+	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableBeanDatasource()
+	 * @generated
+	 */
+	int TABLE_BEAN_DATASOURCE = 10;
+
+	/**
+	 * The feature id for the '<em><b>Datamart Ref</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN_DATASOURCE__DATAMART_REF = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN_DATASOURCE__ELEMENTS = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Table Bean Datasource</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BEAN_DATASOURCE_FEATURE_COUNT = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableDtoDatasourceImpl <em>Table Dto Datasource</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -604,7 +759,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableDtoDatasource()
 	 * @generated
 	 */
-	int TABLE_DTO_DATASOURCE = 9;
+	int TABLE_DTO_DATASOURCE = 11;
 
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
@@ -704,7 +859,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableGridProperty()
 	 * @generated
 	 */
-	int TABLE_GRID_PROPERTY = 10;
+	int TABLE_GRID_PROPERTY = 12;
 
 	/**
 	 * The feature id for the '<em><b>Path</b></em>' containment reference.
@@ -759,7 +914,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTablePreorder()
 	 * @generated
 	 */
-	int TABLE_PREORDER = 11;
+	int TABLE_PREORDER = 13;
 
 	/**
 	 * The feature id for the '<em><b>Column</b></em>' containment reference.
@@ -796,7 +951,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableValue()
 	 * @generated
 	 */
-	int TABLE_VALUE = 12;
+	int TABLE_VALUE = 14;
 
 	/**
 	 * The feature id for the '<em><b>Column</b></em>' containment reference.
@@ -914,7 +1069,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableFormatter()
 	 * @generated
 	 */
-	int TABLE_FORMATTER = 13;
+	int TABLE_FORMATTER = 15;
 
 	/**
 	 * The feature id for the '<em><b>Format</b></em>' attribute.
@@ -942,7 +1097,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableImage()
 	 * @generated
 	 */
-	int TABLE_IMAGE = 14;
+	int TABLE_IMAGE = 16;
 
 	/**
 	 * The feature id for the '<em><b>Image Path Pattern</b></em>' attribute.
@@ -1015,7 +1170,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableTooltipPattern()
 	 * @generated
 	 */
-	int TABLE_TOOLTIP_PATTERN = 15;
+	int TABLE_TOOLTIP_PATTERN = 17;
 
 	/**
 	 * The feature id for the '<em><b>Tooltip Pattern</b></em>' attribute.
@@ -1043,7 +1198,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableValueElement()
 	 * @generated
 	 */
-	int TABLE_VALUE_ELEMENT = 16;
+	int TABLE_VALUE_ELEMENT = 18;
 
 	/**
 	 * The number of structural features of the '<em>Table Value Element</em>' class.
@@ -1062,7 +1217,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getExpression()
 	 * @generated
 	 */
-	int EXPRESSION = 44;
+	int EXPRESSION = 47;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -1099,7 +1254,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableTask()
 	 * @generated
 	 */
-	int TABLE_TASK = 17;
+	int TABLE_TASK = 19;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -1136,7 +1291,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableAllColumns()
 	 * @generated
 	 */
-	int TABLE_ALL_COLUMNS = 18;
+	int TABLE_ALL_COLUMNS = 20;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -1173,7 +1328,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableOrdinal()
 	 * @generated
 	 */
-	int TABLE_ORDINAL = 19;
+	int TABLE_ORDINAL = 21;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -1219,7 +1374,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableColumn()
 	 * @generated
 	 */
-	int TABLE_COLUMN = 20;
+	int TABLE_COLUMN = 22;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -1265,7 +1420,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableMeasure()
 	 * @generated
 	 */
-	int TABLE_MEASURE = 21;
+	int TABLE_MEASURE = 23;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -1311,7 +1466,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableDerived()
 	 * @generated
 	 */
-	int TABLE_DERIVED = 22;
+	int TABLE_DERIVED = 24;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -1357,7 +1512,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableHierarchy()
 	 * @generated
 	 */
-	int TABLE_HIERARCHY = 23;
+	int TABLE_HIERARCHY = 25;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -1396,14 +1551,14 @@
 	int TABLE_HIERARCHY_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TablePropertyImpl <em>Table Property</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableAttributeImpl <em>Table Attribute</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.table.impl.TablePropertyImpl
-	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableProperty()
+	 * @see org.eclipse.osbp.xtext.table.impl.TableAttributeImpl
+	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableAttribute()
 	 * @generated
 	 */
-	int TABLE_PROPERTY = 24;
+	int TABLE_ATTRIBUTE = 26;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -1412,7 +1567,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_PROPERTY__NUMBER_VALUE = EXPRESSION__NUMBER_VALUE;
+	int TABLE_ATTRIBUTE__NUMBER_VALUE = EXPRESSION__NUMBER_VALUE;
 
 	/**
 	 * The feature id for the '<em><b>String Value</b></em>' attribute.
@@ -1421,7 +1576,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_PROPERTY__STRING_VALUE = EXPRESSION__STRING_VALUE;
+	int TABLE_ATTRIBUTE__STRING_VALUE = EXPRESSION__STRING_VALUE;
 
 	/**
 	 * The feature id for the '<em><b>Value Ref</b></em>' reference.
@@ -1430,16 +1585,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_PROPERTY__VALUE_REF = EXPRESSION_FEATURE_COUNT + 0;
+	int TABLE_ATTRIBUTE__VALUE_REF = EXPRESSION_FEATURE_COUNT + 0;
 
 	/**
-	 * The number of structural features of the '<em>Table Property</em>' class.
+	 * The number of structural features of the '<em>Table Attribute</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_PROPERTY_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
+	int TABLE_ATTRIBUTE_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableAggregationImpl <em>Table Aggregation</em>}' class.
@@ -1449,7 +1604,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableAggregation()
 	 * @generated
 	 */
-	int TABLE_AGGREGATION = 25;
+	int TABLE_AGGREGATION = 27;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -1495,7 +1650,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableInterval()
 	 * @generated
 	 */
-	int TABLE_INTERVAL = 26;
+	int TABLE_INTERVAL = 28;
 
 	/**
 	 * The number of structural features of the '<em>Table Interval</em>' class.
@@ -1514,7 +1669,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableNumberInterval()
 	 * @generated
 	 */
-	int TABLE_NUMBER_INTERVAL = 27;
+	int TABLE_NUMBER_INTERVAL = 29;
 
 	/**
 	 * The feature id for the '<em><b>Number Interval Value</b></em>' attribute.
@@ -1544,6 +1699,43 @@
 	int TABLE_NUMBER_INTERVAL_FEATURE_COUNT = TABLE_INTERVAL_FEATURE_COUNT + 2;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableIntIntervalImpl <em>Table Int Interval</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.table.impl.TableIntIntervalImpl
+	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableIntInterval()
+	 * @generated
+	 */
+	int TABLE_INT_INTERVAL = 30;
+
+	/**
+	 * The feature id for the '<em><b>Int Interval Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_INT_INTERVAL__INT_INTERVAL_VALUE = TABLE_INTERVAL_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Int Range</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_INT_INTERVAL__INT_RANGE = TABLE_INTERVAL_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Table Int Interval</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_INT_INTERVAL_FEATURE_COUNT = TABLE_INTERVAL_FEATURE_COUNT + 2;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableDateDayIntervalImpl <em>Table Date Day Interval</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1551,7 +1743,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableDateDayInterval()
 	 * @generated
 	 */
-	int TABLE_DATE_DAY_INTERVAL = 28;
+	int TABLE_DATE_DAY_INTERVAL = 31;
 
 	/**
 	 * The feature id for the '<em><b>Date Interval Value</b></em>' attribute.
@@ -1588,7 +1780,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableLookup()
 	 * @generated
 	 */
-	int TABLE_LOOKUP = 29;
+	int TABLE_LOOKUP = 32;
 
 	/**
 	 * The number of structural features of the '<em>Table Lookup</em>' class.
@@ -1607,7 +1799,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableNumberLookup()
 	 * @generated
 	 */
-	int TABLE_NUMBER_LOOKUP = 30;
+	int TABLE_NUMBER_LOOKUP = 33;
 
 	/**
 	 * The feature id for the '<em><b>Lookup Value</b></em>' attribute.
@@ -1637,6 +1829,43 @@
 	int TABLE_NUMBER_LOOKUP_FEATURE_COUNT = TABLE_LOOKUP_FEATURE_COUNT + 2;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableIntLookupImpl <em>Table Int Lookup</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.table.impl.TableIntLookupImpl
+	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableIntLookup()
+	 * @generated
+	 */
+	int TABLE_INT_LOOKUP = 34;
+
+	/**
+	 * The feature id for the '<em><b>Lookup Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_INT_LOOKUP__LOOKUP_VALUE = TABLE_LOOKUP_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Discrete</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_INT_LOOKUP__DISCRETE = TABLE_LOOKUP_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Table Int Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_INT_LOOKUP_FEATURE_COUNT = TABLE_LOOKUP_FEATURE_COUNT + 2;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableStringLookupImpl <em>Table String Lookup</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1644,7 +1873,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableStringLookup()
 	 * @generated
 	 */
-	int TABLE_STRING_LOOKUP = 31;
+	int TABLE_STRING_LOOKUP = 35;
 
 	/**
 	 * The feature id for the '<em><b>Lookup Value</b></em>' attribute.
@@ -1681,7 +1910,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableDateDayLookup()
 	 * @generated
 	 */
-	int TABLE_DATE_DAY_LOOKUP = 32;
+	int TABLE_DATE_DAY_LOOKUP = 36;
 
 	/**
 	 * The feature id for the '<em><b>Lookup Value</b></em>' attribute.
@@ -1718,7 +1947,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableDatamart()
 	 * @generated
 	 */
-	int TABLE_DATAMART = 33;
+	int TABLE_DATAMART = 37;
 
 	/**
 	 * The feature id for the '<em><b>Datamart Ref</b></em>' reference.
@@ -1755,7 +1984,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableElement()
 	 * @generated
 	 */
-	int TABLE_ELEMENT = 34;
+	int TABLE_ELEMENT = 38;
 
 	/**
 	 * The number of structural features of the '<em>Table Element</em>' class.
@@ -1774,7 +2003,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableAxis()
 	 * @generated
 	 */
-	int TABLE_AXIS = 35;
+	int TABLE_AXIS = 39;
 
 	/**
 	 * The feature id for the '<em><b>Axis</b></em>' attribute.
@@ -1865,7 +2094,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableEvent()
 	 * @generated
 	 */
-	int TABLE_EVENT = 36;
+	int TABLE_EVENT = 40;
 
 	/**
 	 * The feature id for the '<em><b>Source</b></em>' containment reference.
@@ -1877,68 +2106,13 @@
 	int TABLE_EVENT__SOURCE = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Broker Datamarts</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TABLE_EVENT__BROKER_DATAMARTS = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 1;
-
-	/**
 	 * The number of structural features of the '<em>Table Event</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_EVENT_FEATURE_COUNT = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.impl.TableBrokerDatamartImpl <em>Table Broker Datamart</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.osbp.xtext.table.impl.TableBrokerDatamartImpl
-	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableBrokerDatamart()
-	 * @generated
-	 */
-	int TABLE_BROKER_DATAMART = 37;
-
-	/**
-	 * The feature id for the '<em><b>Datamart Def</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TABLE_BROKER_DATAMART__DATAMART_DEF = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Filter</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TABLE_BROKER_DATAMART__FILTER = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Reference</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TABLE_BROKER_DATAMART__REFERENCE = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Table Broker Datamart</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TABLE_BROKER_DATAMART_FEATURE_COUNT = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 3;
+	int TABLE_EVENT_FEATURE_COUNT = TABLE_LAZY_RESOLVER_FEATURE_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.TableRangeElement <em>Table Range Element</em>}' class.
@@ -1948,7 +2122,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableRangeElement()
 	 * @generated
 	 */
-	int TABLE_RANGE_ELEMENT = 38;
+	int TABLE_RANGE_ELEMENT = 41;
 
 	/**
 	 * The number of structural features of the '<em>Table Range Element</em>' class.
@@ -1967,7 +2141,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableTextColor()
 	 * @generated
 	 */
-	int TABLE_TEXT_COLOR = 39;
+	int TABLE_TEXT_COLOR = 42;
 
 	/**
 	 * The feature id for the '<em><b>Rgb</b></em>' attribute.
@@ -1995,7 +2169,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableCellColor()
 	 * @generated
 	 */
-	int TABLE_CELL_COLOR = 40;
+	int TABLE_CELL_COLOR = 43;
 
 	/**
 	 * The feature id for the '<em><b>Rgb</b></em>' attribute.
@@ -2023,7 +2197,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableIcon()
 	 * @generated
 	 */
-	int TABLE_ICON = 41;
+	int TABLE_ICON = 44;
 
 	/**
 	 * The feature id for the '<em><b>Icon</b></em>' attribute.
@@ -2051,7 +2225,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableTrend()
 	 * @generated
 	 */
-	int TABLE_TREND = 42;
+	int TABLE_TREND = 45;
 
 	/**
 	 * The feature id for the '<em><b>Icon</b></em>' attribute.
@@ -2079,7 +2253,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableTooltip()
 	 * @generated
 	 */
-	int TABLE_TOOLTIP = 43;
+	int TABLE_TOOLTIP = 46;
 
 	/**
 	 * The feature id for the '<em><b>Tooltip</b></em>' attribute.
@@ -2107,7 +2281,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getCalculation()
 	 * @generated
 	 */
-	int CALCULATION = 45;
+	int CALCULATION = 48;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -2162,7 +2336,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getConjunction()
 	 * @generated
 	 */
-	int CONJUNCTION = 46;
+	int CONJUNCTION = 49;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -2217,7 +2391,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getDisjunction()
 	 * @generated
 	 */
-	int DISJUNCTION = 47;
+	int DISJUNCTION = 50;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -2272,7 +2446,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getConditionalExpression()
 	 * @generated
 	 */
-	int CONDITIONAL_EXPRESSION = 48;
+	int CONDITIONAL_EXPRESSION = 51;
 
 	/**
 	 * The feature id for the '<em><b>Number Value</b></em>' attribute.
@@ -2336,7 +2510,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTrendIconEnum()
 	 * @generated
 	 */
-	int TREND_ICON_ENUM = 49;
+	int TREND_ICON_ENUM = 52;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.OperatorEnum <em>Operator Enum</em>}' enum.
@@ -2346,7 +2520,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getOperatorEnum()
 	 * @generated
 	 */
-	int OPERATOR_ENUM = 50;
+	int OPERATOR_ENUM = 53;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.osbp.xtext.table.RowHeaderMode <em>Row Header Mode</em>}' enum.
@@ -2356,7 +2530,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getRowHeaderMode()
 	 * @generated
 	 */
-	int ROW_HEADER_MODE = 51;
+	int ROW_HEADER_MODE = 54;
 
 	/**
 	 * The meta object id for the '<em>Internal EObject</em>' data type.
@@ -2366,7 +2540,7 @@
 	 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getInternalEObject()
 	 * @generated
 	 */
-	int INTERNAL_EOBJECT = 52;
+	int INTERNAL_EOBJECT = 55;
 
 
 	/**
@@ -2380,6 +2554,17 @@
 	EClass getTableModel();
 
 	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.table.TableModel#getImportSection <em>Import Section</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Import Section</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableModel#getImportSection()
+	 * @see #getTableModel()
+	 * @generated
+	 */
+	EReference getTableModel_ImportSection();
+
+	/**
 	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.table.TableModel#getPackages <em>Packages</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2582,6 +2767,17 @@
 	EClass getTableTable();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.table.TableTable#isSelectById <em>Select By Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Select By Id</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableTable#isSelectById()
+	 * @see #getTableTable()
+	 * @generated
+	 */
+	EAttribute getTableTable_SelectById();
+
+	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.table.TableTable#isSelectalways <em>Selectalways</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2658,6 +2854,92 @@
 	EReference getTableGrid_Source();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableBean <em>Table Bean</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Bean</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableBean
+	 * @generated
+	 */
+	EClass getTableBean();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.table.TableBean#isSelectById <em>Select By Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Select By Id</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableBean#isSelectById()
+	 * @see #getTableBean()
+	 * @generated
+	 */
+	EAttribute getTableBean_SelectById();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.table.TableBean#isSelectalways <em>Selectalways</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Selectalways</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableBean#isSelectalways()
+	 * @see #getTableBean()
+	 * @generated
+	 */
+	EAttribute getTableBean_Selectalways();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.table.TableBean#getHeaderMode <em>Header Mode</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Header Mode</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableBean#getHeaderMode()
+	 * @see #getTableBean()
+	 * @generated
+	 */
+	EAttribute getTableBean_HeaderMode();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.table.TableBean#getSource <em>Source</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Source</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableBean#getSource()
+	 * @see #getTableBean()
+	 * @generated
+	 */
+	EReference getTableBean_Source();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableBeanDatasource <em>Table Bean Datasource</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Bean Datasource</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableBeanDatasource
+	 * @generated
+	 */
+	EClass getTableBeanDatasource();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.table.TableBeanDatasource#getDatamartRef <em>Datamart Ref</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datamart Ref</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableBeanDatasource#getDatamartRef()
+	 * @see #getTableBeanDatasource()
+	 * @generated
+	 */
+	EReference getTableBeanDatasource_DatamartRef();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.table.TableBeanDatasource#getElements <em>Elements</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Elements</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableBeanDatasource#getElements()
+	 * @see #getTableBeanDatasource()
+	 * @generated
+	 */
+	EReference getTableBeanDatasource_Elements();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableDtoDatasource <em>Table Dto Datasource</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3105,25 +3387,25 @@
 	EReference getTableHierarchy_ValueRef();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableProperty <em>Table Property</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableAttribute <em>Table Attribute</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Table Property</em>'.
-	 * @see org.eclipse.osbp.xtext.table.TableProperty
+	 * @return the meta object for class '<em>Table Attribute</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableAttribute
 	 * @generated
 	 */
-	EClass getTableProperty();
+	EClass getTableAttribute();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.table.TableProperty#getValueRef <em>Value Ref</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.table.TableAttribute#getValueRef <em>Value Ref</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Value Ref</em>'.
-	 * @see org.eclipse.osbp.xtext.table.TableProperty#getValueRef()
-	 * @see #getTableProperty()
+	 * @see org.eclipse.osbp.xtext.table.TableAttribute#getValueRef()
+	 * @see #getTableAttribute()
 	 * @generated
 	 */
-	EReference getTableProperty_ValueRef();
+	EReference getTableAttribute_ValueRef();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableAggregation <em>Table Aggregation</em>}'.
@@ -3189,6 +3471,38 @@
 	EReference getTableNumberInterval_NumberRange();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableIntInterval <em>Table Int Interval</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Int Interval</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableIntInterval
+	 * @generated
+	 */
+	EClass getTableIntInterval();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.table.TableIntInterval#getIntIntervalValue <em>Int Interval Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Int Interval Value</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableIntInterval#getIntIntervalValue()
+	 * @see #getTableIntInterval()
+	 * @generated
+	 */
+	EAttribute getTableIntInterval_IntIntervalValue();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.table.TableIntInterval#getIntRange <em>Int Range</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Int Range</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableIntInterval#getIntRange()
+	 * @see #getTableIntInterval()
+	 * @generated
+	 */
+	EReference getTableIntInterval_IntRange();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableDateDayInterval <em>Table Date Day Interval</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3263,6 +3577,38 @@
 	EReference getTableNumberLookup_Discrete();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableIntLookup <em>Table Int Lookup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Int Lookup</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableIntLookup
+	 * @generated
+	 */
+	EClass getTableIntLookup();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.table.TableIntLookup#getLookupValue <em>Lookup Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Lookup Value</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableIntLookup#getLookupValue()
+	 * @see #getTableIntLookup()
+	 * @generated
+	 */
+	EAttribute getTableIntLookup_LookupValue();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.table.TableIntLookup#getDiscrete <em>Discrete</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Discrete</em>'.
+	 * @see org.eclipse.osbp.xtext.table.TableIntLookup#getDiscrete()
+	 * @see #getTableIntLookup()
+	 * @generated
+	 */
+	EReference getTableIntLookup_Discrete();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableStringLookup <em>Table String Lookup</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3488,60 +3834,6 @@
 	EReference getTableEvent_Source();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.table.TableEvent#getBrokerDatamarts <em>Broker Datamarts</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Broker Datamarts</em>'.
-	 * @see org.eclipse.osbp.xtext.table.TableEvent#getBrokerDatamarts()
-	 * @see #getTableEvent()
-	 * @generated
-	 */
-	EReference getTableEvent_BrokerDatamarts();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableBrokerDatamart <em>Table Broker Datamart</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Table Broker Datamart</em>'.
-	 * @see org.eclipse.osbp.xtext.table.TableBrokerDatamart
-	 * @generated
-	 */
-	EClass getTableBrokerDatamart();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.table.TableBrokerDatamart#getDatamartDef <em>Datamart Def</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Datamart Def</em>'.
-	 * @see org.eclipse.osbp.xtext.table.TableBrokerDatamart#getDatamartDef()
-	 * @see #getTableBrokerDatamart()
-	 * @generated
-	 */
-	EReference getTableBrokerDatamart_DatamartDef();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.table.TableBrokerDatamart#getFilter <em>Filter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Filter</em>'.
-	 * @see org.eclipse.osbp.xtext.table.TableBrokerDatamart#getFilter()
-	 * @see #getTableBrokerDatamart()
-	 * @generated
-	 */
-	EAttribute getTableBrokerDatamart_Filter();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.table.TableBrokerDatamart#getReference <em>Reference</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Reference</em>'.
-	 * @see org.eclipse.osbp.xtext.table.TableBrokerDatamart#getReference()
-	 * @see #getTableBrokerDatamart()
-	 * @generated
-	 */
-	EReference getTableBrokerDatamart_Reference();
-
-	/**
 	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.table.TableRangeElement <em>Table Range Element</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3835,6 +4127,14 @@
 		EClass TABLE_MODEL = eINSTANCE.getTableModel();
 
 		/**
+		 * The meta object literal for the '<em><b>Import Section</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_MODEL__IMPORT_SECTION = eINSTANCE.getTableModel_ImportSection();
+
+		/**
 		 * The meta object literal for the '<em><b>Packages</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -4001,6 +4301,14 @@
 		EClass TABLE_TABLE = eINSTANCE.getTableTable();
 
 		/**
+		 * The meta object literal for the '<em><b>Select By Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_TABLE__SELECT_BY_ID = eINSTANCE.getTableTable_SelectById();
+
+		/**
 		 * The meta object literal for the '<em><b>Selectalways</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -4059,6 +4367,74 @@
 		EReference TABLE_GRID__SOURCE = eINSTANCE.getTableGrid_Source();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl <em>Table Bean</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.table.impl.TableBeanImpl
+		 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableBean()
+		 * @generated
+		 */
+		EClass TABLE_BEAN = eINSTANCE.getTableBean();
+
+		/**
+		 * The meta object literal for the '<em><b>Select By Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_BEAN__SELECT_BY_ID = eINSTANCE.getTableBean_SelectById();
+
+		/**
+		 * The meta object literal for the '<em><b>Selectalways</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_BEAN__SELECTALWAYS = eINSTANCE.getTableBean_Selectalways();
+
+		/**
+		 * The meta object literal for the '<em><b>Header Mode</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_BEAN__HEADER_MODE = eINSTANCE.getTableBean_HeaderMode();
+
+		/**
+		 * The meta object literal for the '<em><b>Source</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_BEAN__SOURCE = eINSTANCE.getTableBean_Source();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TableBeanDatasourceImpl <em>Table Bean Datasource</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.table.impl.TableBeanDatasourceImpl
+		 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableBeanDatasource()
+		 * @generated
+		 */
+		EClass TABLE_BEAN_DATASOURCE = eINSTANCE.getTableBeanDatasource();
+
+		/**
+		 * The meta object literal for the '<em><b>Datamart Ref</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_BEAN_DATASOURCE__DATAMART_REF = eINSTANCE.getTableBeanDatasource_DatamartRef();
+
+		/**
+		 * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_BEAN_DATASOURCE__ELEMENTS = eINSTANCE.getTableBeanDatasource_Elements();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TableDtoDatasourceImpl <em>Table Dto Datasource</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -4425,14 +4801,14 @@
 		EReference TABLE_HIERARCHY__VALUE_REF = eINSTANCE.getTableHierarchy_ValueRef();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TablePropertyImpl <em>Table Property</em>}' class.
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TableAttributeImpl <em>Table Attribute</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.table.impl.TablePropertyImpl
-		 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableProperty()
+		 * @see org.eclipse.osbp.xtext.table.impl.TableAttributeImpl
+		 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableAttribute()
 		 * @generated
 		 */
-		EClass TABLE_PROPERTY = eINSTANCE.getTableProperty();
+		EClass TABLE_ATTRIBUTE = eINSTANCE.getTableAttribute();
 
 		/**
 		 * The meta object literal for the '<em><b>Value Ref</b></em>' reference feature.
@@ -4440,7 +4816,7 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference TABLE_PROPERTY__VALUE_REF = eINSTANCE.getTableProperty_ValueRef();
+		EReference TABLE_ATTRIBUTE__VALUE_REF = eINSTANCE.getTableAttribute_ValueRef();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TableAggregationImpl <em>Table Aggregation</em>}' class.
@@ -4497,6 +4873,32 @@
 		EReference TABLE_NUMBER_INTERVAL__NUMBER_RANGE = eINSTANCE.getTableNumberInterval_NumberRange();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TableIntIntervalImpl <em>Table Int Interval</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.table.impl.TableIntIntervalImpl
+		 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableIntInterval()
+		 * @generated
+		 */
+		EClass TABLE_INT_INTERVAL = eINSTANCE.getTableIntInterval();
+
+		/**
+		 * The meta object literal for the '<em><b>Int Interval Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_INT_INTERVAL__INT_INTERVAL_VALUE = eINSTANCE.getTableIntInterval_IntIntervalValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Int Range</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_INT_INTERVAL__INT_RANGE = eINSTANCE.getTableIntInterval_IntRange();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TableDateDayIntervalImpl <em>Table Date Day Interval</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -4559,6 +4961,32 @@
 		EReference TABLE_NUMBER_LOOKUP__DISCRETE = eINSTANCE.getTableNumberLookup_Discrete();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TableIntLookupImpl <em>Table Int Lookup</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.table.impl.TableIntLookupImpl
+		 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableIntLookup()
+		 * @generated
+		 */
+		EClass TABLE_INT_LOOKUP = eINSTANCE.getTableIntLookup();
+
+		/**
+		 * The meta object literal for the '<em><b>Lookup Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_INT_LOOKUP__LOOKUP_VALUE = eINSTANCE.getTableIntLookup_LookupValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Discrete</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_INT_LOOKUP__DISCRETE = eINSTANCE.getTableIntLookup_Discrete();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TableStringLookupImpl <em>Table String Lookup</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -4739,48 +5167,6 @@
 		EReference TABLE_EVENT__SOURCE = eINSTANCE.getTableEvent_Source();
 
 		/**
-		 * The meta object literal for the '<em><b>Broker Datamarts</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TABLE_EVENT__BROKER_DATAMARTS = eINSTANCE.getTableEvent_BrokerDatamarts();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.impl.TableBrokerDatamartImpl <em>Table Broker Datamart</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.osbp.xtext.table.impl.TableBrokerDatamartImpl
-		 * @see org.eclipse.osbp.xtext.table.impl.TableDSLPackageImpl#getTableBrokerDatamart()
-		 * @generated
-		 */
-		EClass TABLE_BROKER_DATAMART = eINSTANCE.getTableBrokerDatamart();
-
-		/**
-		 * The meta object literal for the '<em><b>Datamart Def</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TABLE_BROKER_DATAMART__DATAMART_DEF = eINSTANCE.getTableBrokerDatamart_DatamartDef();
-
-		/**
-		 * The meta object literal for the '<em><b>Filter</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute TABLE_BROKER_DATAMART__FILTER = eINSTANCE.getTableBrokerDatamart_Filter();
-
-		/**
-		 * The meta object literal for the '<em><b>Reference</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TABLE_BROKER_DATAMART__REFERENCE = eINSTANCE.getTableBrokerDatamart_Reference();
-
-		/**
 		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.table.TableRangeElement <em>Table Range Element</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDatamart.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDatamart.java
index 0674855..1026d9d 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDatamart.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDatamart.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -24,11 +24,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableDatamart#getDatamartRef <em>Datamart Ref</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableDatamart#getElements <em>Elements</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableDatamart()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDateDayInterval.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDateDayInterval.java
index b7cef3d..4a0c0b7 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDateDayInterval.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDateDayInterval.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableDateDayInterval#getDateIntervalValue <em>Date Interval Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableDateDayInterval#getDateRange <em>Date Range</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableDateDayInterval()
  * @model
@@ -41,12 +41,12 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Date Interval Value</em>' attribute.
-	 * @see #setDateIntervalValue(double)
+	 * @see #setDateIntervalValue(int)
 	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableDateDayInterval_DateIntervalValue()
 	 * @model unique="false"
 	 * @generated
 	 */
-	double getDateIntervalValue();
+	int getDateIntervalValue();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableDateDayInterval#getDateIntervalValue <em>Date Interval Value</em>}' attribute.
@@ -56,7 +56,7 @@
 	 * @see #getDateIntervalValue()
 	 * @generated
 	 */
-	void setDateIntervalValue(double value);
+	void setDateIntervalValue(int value);
 
 	/**
 	 * Returns the value of the '<em><b>Date Range</b></em>' containment reference.
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDateDayLookup.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDateDayLookup.java
index 33deef0..04fa88e 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDateDayLookup.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDateDayLookup.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableDateDayLookup#getLookupValue <em>Lookup Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableDateDayLookup#getDiscrete <em>Discrete</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableDateDayLookup()
  * @model
@@ -41,12 +41,12 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Lookup Value</em>' attribute.
-	 * @see #setLookupValue(double)
+	 * @see #setLookupValue(int)
 	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableDateDayLookup_LookupValue()
 	 * @model unique="false"
 	 * @generated
 	 */
-	double getLookupValue();
+	int getLookupValue();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableDateDayLookup#getLookupValue <em>Lookup Value</em>}' attribute.
@@ -56,7 +56,7 @@
 	 * @see #getLookupValue()
 	 * @generated
 	 */
-	void setLookupValue(double value);
+	void setLookupValue(int value);
 
 	/**
 	 * Returns the value of the '<em><b>Discrete</b></em>' containment reference.
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDerived.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDerived.java
index d6b4188..3aa51dd 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDerived.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDerived.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -22,10 +22,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableDerived#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableDerived()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDtoDatasource.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDtoDatasource.java
index b721dcd..6afeec5 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDtoDatasource.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableDtoDatasource.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -17,8 +17,6 @@
 
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
 
-import org.eclipse.xtext.common.types.JvmTypeReference;
-
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Table Dto Datasource</b></em>'.
@@ -26,10 +24,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableDtoDatasource#getDtoSource <em>Dto Source</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableDtoDatasource()
  * @model
@@ -62,17 +60,4 @@
 	 */
 	void setDtoSource(LDto value);
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * *
-	 * @attention returns the wrapped entity instead of the dto
-	 * <!-- end-model-doc -->
-	 * @model kind="operation" unique="false"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='<%org.eclipse.osbp.dsl.semantic.dto.LDto%> _dtoSource = this.getDtoSource();\n<%org.eclipse.xtext.common.types.JvmTypeReference%> _wrappedTypeJvm = null;\nif (_dtoSource!=null)\n{\n\t_wrappedTypeJvm=_dtoSource.getWrappedTypeJvm();\n}\nreturn _wrappedTypeJvm;'"
-	 * @generated
-	 */
-	JvmTypeReference getRootType();
-
 } // TableDtoDatasource
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableElement.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableElement.java
index a769c3f..939c2dc 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableElement.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableElement.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableEvent.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableEvent.java
index 4cbf725..6720757 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableEvent.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableEvent.java
@@ -8,12 +8,11 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
 
-import org.eclipse.emf.common.util.EList;
 
 /**
  * <!-- begin-user-doc -->
@@ -22,11 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableEvent#getSource <em>Source</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.table.TableEvent#getBrokerDatamarts <em>Broker Datamarts</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableEvent()
  * @model
@@ -59,20 +57,4 @@
 	 */
 	void setSource(TableValueElement value);
 
-	/**
-	 * Returns the value of the '<em><b>Broker Datamarts</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.osbp.xtext.table.TableBrokerDatamart}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Broker Datamarts</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Broker Datamarts</em>' containment reference list.
-	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableEvent_BrokerDatamarts()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<TableBrokerDatamart> getBrokerDatamarts();
-
 } // TableEvent
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableFormatter.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableFormatter.java
index 322edac..5603c13 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableFormatter.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableFormatter.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableFormatter#getFormat <em>Format</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableFormatter()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableGrid.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableGrid.java
index 93e98d6..44f5998 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableGrid.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableGrid.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,12 +21,12 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableGrid#isSelectalways <em>Selectalways</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableGrid#getHeaderMode <em>Header Mode</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableGrid#getSource <em>Source</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableGrid()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableGridProperty.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableGridProperty.java
index ae320ce..b59b8f4 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableGridProperty.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableGridProperty.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableHierarchy.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableHierarchy.java
index 4cde5de..bd3c1b9 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableHierarchy.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableHierarchy.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -22,10 +22,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableHierarchy#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableHierarchy()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableIcon.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableIcon.java
index 1b48f10..b374803 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableIcon.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableIcon.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableIcon#getIcon <em>Icon</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableIcon()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableImage.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableImage.java
index 1b1c26a..693cf83 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableImage.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableImage.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,6 +21,7 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableImage#getImagePathPattern <em>Image Path Pattern</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableImage#isHideImageLabel <em>Hide Image Label</em>}</li>
@@ -29,7 +30,6 @@
  *   <li>{@link org.eclipse.osbp.xtext.table.TableImage#getResizeString <em>Resize String</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableImage#getImagePathParameter <em>Image Path Parameter</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableImage()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableIntInterval.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableIntInterval.java
new file mode 100644
index 0000000..8b74e54
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableIntInterval.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License v1.0 
+ *  which accompanies this distribution, and is available at 
+ *  http{//www.eclipse.org/legal/epl-v10.html 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ * 
+ *  Contributors{  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.table;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Int Interval</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableIntInterval#getIntIntervalValue <em>Int Interval Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableIntInterval#getIntRange <em>Int Range</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableIntInterval()
+ * @model
+ * @generated
+ */
+public interface TableIntInterval extends TableInterval {
+	/**
+	 * Returns the value of the '<em><b>Int Interval Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Int Interval Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Int Interval Value</em>' attribute.
+	 * @see #setIntIntervalValue(int)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableIntInterval_IntIntervalValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	int getIntIntervalValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableIntInterval#getIntIntervalValue <em>Int Interval Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Int Interval Value</em>' attribute.
+	 * @see #getIntIntervalValue()
+	 * @generated
+	 */
+	void setIntIntervalValue(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Int Range</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Int Range</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Int Range</em>' containment reference.
+	 * @see #setIntRange(TableRangeElement)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableIntInterval_IntRange()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableRangeElement getIntRange();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableIntInterval#getIntRange <em>Int Range</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Int Range</em>' containment reference.
+	 * @see #getIntRange()
+	 * @generated
+	 */
+	void setIntRange(TableRangeElement value);
+
+} // TableIntInterval
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableIntLookup.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableIntLookup.java
new file mode 100644
index 0000000..90a385e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableIntLookup.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License v1.0 
+ *  which accompanies this distribution, and is available at 
+ *  http{//www.eclipse.org/legal/epl-v10.html 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ * 
+ *  Contributors{  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.table;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Int Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableIntLookup#getLookupValue <em>Lookup Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableIntLookup#getDiscrete <em>Discrete</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableIntLookup()
+ * @model
+ * @generated
+ */
+public interface TableIntLookup extends TableLookup {
+	/**
+	 * Returns the value of the '<em><b>Lookup Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Lookup Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Lookup Value</em>' attribute.
+	 * @see #setLookupValue(int)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableIntLookup_LookupValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	int getLookupValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableIntLookup#getLookupValue <em>Lookup Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Lookup Value</em>' attribute.
+	 * @see #getLookupValue()
+	 * @generated
+	 */
+	void setLookupValue(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Discrete</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Discrete</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Discrete</em>' containment reference.
+	 * @see #setDiscrete(TableRangeElement)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableIntLookup_Discrete()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableRangeElement getDiscrete();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableIntLookup#getDiscrete <em>Discrete</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Discrete</em>' containment reference.
+	 * @see #getDiscrete()
+	 * @generated
+	 */
+	void setDiscrete(TableRangeElement value);
+
+} // TableIntLookup
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableInterval.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableInterval.java
index ae7c947..5a6ac00 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableInterval.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableInterval.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableLazyResolver.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableLazyResolver.java
index 435a938..d029e76 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableLazyResolver.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableLazyResolver.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -31,7 +31,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @model unique="false" proxyDataType="org.eclipse.osbp.xtext.table.InternalEObject" proxyUnique="false"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='<%org.eclipse.emf.ecore.resource.Resource%> _eResource = this.eResource();\n<%org.eclipse.emf.ecore.resource.ResourceSet%> _resourceSet = _eResource.getResourceSet();\nreturn <%org.eclipse.osbp.dsl.xtext.lazyresolver.api.EcoreUtil3%>.resolve(proxy, _resourceSet);'"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='return <%org.eclipse.osbp.xtext.oxtype.resource.EcoreUtil3%>.resolve(proxy, this.eResource().getResourceSet());'"
 	 * @generated
 	 */
 	EObject eResolveProxy(InternalEObject proxy);
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableLookup.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableLookup.java
index 051390f..4e7bfa5 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableLookup.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableLookup.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableMeasure.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableMeasure.java
index fa6e14e..60997e5 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableMeasure.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableMeasure.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -22,10 +22,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableMeasure#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableMeasure()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableModel.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableModel.java
index 61f3ae5..2d83b1f 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableModel.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableModel.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -17,6 +17,8 @@
 
 import org.eclipse.emf.ecore.EObject;
 
+import org.eclipse.xtext.xtype.XImportSection;
+
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Table Model</b></em>'.
@@ -24,10 +26,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableModel#getImportSection <em>Import Section</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableModel#getPackages <em>Packages</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableModel()
  * @model
@@ -35,6 +38,32 @@
  */
 public interface TableModel extends EObject {
 	/**
+	 * Returns the value of the '<em><b>Import Section</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Import Section</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Import Section</em>' containment reference.
+	 * @see #setImportSection(XImportSection)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableModel_ImportSection()
+	 * @model containment="true"
+	 * @generated
+	 */
+	XImportSection getImportSection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableModel#getImportSection <em>Import Section</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Import Section</em>' containment reference.
+	 * @see #getImportSection()
+	 * @generated
+	 */
+	void setImportSection(XImportSection value);
+
+	/**
 	 * Returns the value of the '<em><b>Packages</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.osbp.xtext.table.TablePackage}.
 	 * <!-- begin-user-doc -->
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableNumberInterval.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableNumberInterval.java
index 9a3977f..4ee4f85 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableNumberInterval.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableNumberInterval.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableNumberInterval#getNumberIntervalValue <em>Number Interval Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableNumberInterval#getNumberRange <em>Number Range</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableNumberInterval()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableNumberLookup.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableNumberLookup.java
index 7fa86e8..77a0467 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableNumberLookup.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableNumberLookup.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableNumberLookup#getLookupValue <em>Lookup Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableNumberLookup#getDiscrete <em>Discrete</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableNumberLookup()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableOption.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableOption.java
index a60ce61..12b79f0 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableOption.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableOption.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -22,6 +22,7 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableOption#isPolling <em>Polling</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableOption#getPollingTime <em>Polling Time</em>}</li>
@@ -29,7 +30,6 @@
  *   <li>{@link org.eclipse.osbp.xtext.table.TableOption#getToolbar <em>Toolbar</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableOption#isEmbedded <em>Embedded</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableOption()
  * @model interface="true" abstract="true"
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableOrdinal.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableOrdinal.java
index d1cf577..5cfcc5a 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableOrdinal.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableOrdinal.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableOrdinal#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableOrdinal()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TablePackage.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TablePackage.java
index 0c72d4a..0001d5e 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TablePackage.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TablePackage.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -24,10 +24,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TablePackage#getTables <em>Tables</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTablePackage()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TablePreorder.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TablePreorder.java
index 2f10836..c4d805c 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TablePreorder.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TablePreorder.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TablePreorder#getColumn <em>Column</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TablePreorder#isAscending <em>Ascending</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTablePreorder()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableRangeElement.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableRangeElement.java
index c14a750..5a5073f 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableRangeElement.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableRangeElement.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableSelection.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableSelection.java
index c5f1197..3e3e5a1 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableSelection.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableSelection.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableSelection#isMultiSelection <em>Multi Selection</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableSelection()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableStringLookup.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableStringLookup.java
index 27b2a2b..8890be4 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableStringLookup.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableStringLookup.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,11 +21,11 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableStringLookup#getLookupValue <em>Lookup Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableStringLookup#getDiscrete <em>Discrete</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableStringLookup()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTable.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTable.java
index 8fc56aa..32f36dd 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTable.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTable.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,12 +21,13 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.TableTable#isSelectById <em>Select By Id</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableTable#isSelectalways <em>Selectalways</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableTable#getHeaderMode <em>Header Mode</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableTable#getSource <em>Source</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableTable()
  * @model
@@ -34,6 +35,32 @@
  */
 public interface TableTable extends TableOption {
 	/**
+	 * Returns the value of the '<em><b>Select By Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Select By Id</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Select By Id</em>' attribute.
+	 * @see #setSelectById(boolean)
+	 * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableTable_SelectById()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isSelectById();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.table.TableTable#isSelectById <em>Select By Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Select By Id</em>' attribute.
+	 * @see #isSelectById()
+	 * @generated
+	 */
+	void setSelectById(boolean value);
+
+	/**
 	 * Returns the value of the '<em><b>Selectalways</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <p>
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTask.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTask.java
index 5ca45c7..eea5030 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTask.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTask.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTextColor.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTextColor.java
index 013ff01..b34408c 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTextColor.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTextColor.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableTextColor#getRgb <em>Rgb</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableTextColor()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTooltip.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTooltip.java
index f833602..c1c577e 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTooltip.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTooltip.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableTooltip#getTooltip <em>Tooltip</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableTooltip()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTooltipPattern.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTooltipPattern.java
index 576ac6f..9aa2df2 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTooltipPattern.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTooltipPattern.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableTooltipPattern#getTooltipPattern <em>Tooltip Pattern</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableTooltipPattern()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTrend.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTrend.java
index 8ebd580..a4f2bdf 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTrend.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableTrend.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -21,10 +21,10 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableTrend#getIcon <em>Icon</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableTrend()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableValue.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableValue.java
index 6af54dc..a366f85 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableValue.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableValue.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -22,6 +22,7 @@
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableValue#getColumn <em>Column</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableValue#isCollapsed <em>Collapsed</em>}</li>
@@ -35,7 +36,6 @@
  *   <li>{@link org.eclipse.osbp.xtext.table.TableValue#getImage <em>Image</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.TableValue#getIconName <em>Icon Name</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.eclipse.osbp.xtext.table.TableDSLPackage#getTableValue()
  * @model
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableValueElement.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableValueElement.java
index 28da1ba..affe013 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableValueElement.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TableValueElement.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TrendIconEnum.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TrendIconEnum.java
index cd32260..5933816 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TrendIconEnum.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/TrendIconEnum.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table;
@@ -181,6 +181,8 @@
 	 * Returns the '<em><b>Trend Icon Enum</b></em>' literal with the specified literal value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static TrendIconEnum get(String literal) {
@@ -197,6 +199,8 @@
 	 * Returns the '<em><b>Trend Icon Enum</b></em>' literal with the specified name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static TrendIconEnum getByName(String name) {
@@ -213,6 +217,8 @@
 	 * Returns the '<em><b>Trend Icon Enum</b></em>' literal with the specified integer value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static TrendIconEnum get(int value) {
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/CalculationImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/CalculationImpl.java
index bd7d318..417b5b0 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/CalculationImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/CalculationImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,11 +31,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.CalculationImpl#getLeft <em>Left</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.CalculationImpl#getRight <em>Right</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ConditionalExpressionImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ConditionalExpressionImpl.java
index 30a4726..de191f1 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ConditionalExpressionImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ConditionalExpressionImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -29,10 +29,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.ConditionalExpressionImpl#getOperator <em>Operator</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ConjunctionImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ConjunctionImpl.java
index 4016821..c7b56d1 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ConjunctionImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ConjunctionImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -22,8 +22,6 @@
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Conjunction</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/DisjunctionImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/DisjunctionImpl.java
index e67ac99..98246b9 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/DisjunctionImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/DisjunctionImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -22,8 +22,6 @@
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Disjunction</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ExpressionImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ExpressionImpl.java
index 6e3070f..66f9951 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ExpressionImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/ExpressionImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -28,11 +28,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.ExpressionImpl#getNumberValue <em>Number Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.ExpressionImpl#getStringValue <em>String Value</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAggregationImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAggregationImpl.java
index b4d82a8..89bbbea 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAggregationImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAggregationImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,10 +31,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableAggregationImpl#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAllColumnsImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAllColumnsImpl.java
index 89e1988..3827c2f 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAllColumnsImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAllColumnsImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -22,8 +22,6 @@
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Table All Columns</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAttributeImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAttributeImpl.java
new file mode 100644
index 0000000..cda139d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAttributeImpl.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License v1.0 
+ *  which accompanies this distribution, and is available at 
+ *  http{//www.eclipse.org/legal/epl-v10.html 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ * 
+ *  Contributors{  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.table.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartAttribute;
+
+import org.eclipse.osbp.xtext.table.TableAttribute;
+import org.eclipse.osbp.xtext.table.TableDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Attribute</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableAttributeImpl#getValueRef <em>Value Ref</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TableAttributeImpl extends ExpressionImpl implements TableAttribute {
+	/**
+	 * The cached value of the '{@link #getValueRef() <em>Value Ref</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueRef()
+	 * @generated
+	 * @ordered
+	 */
+	protected DatamartAttribute valueRef;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableAttributeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TableDSLPackage.Literals.TABLE_ATTRIBUTE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartAttribute getValueRef() {
+		if (valueRef != null && valueRef.eIsProxy()) {
+			InternalEObject oldValueRef = (InternalEObject)valueRef;
+			valueRef = (DatamartAttribute)eResolveProxy(oldValueRef);
+			if (valueRef != oldValueRef) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TableDSLPackage.TABLE_ATTRIBUTE__VALUE_REF, oldValueRef, valueRef));
+			}
+		}
+		return valueRef;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartAttribute basicGetValueRef() {
+		return valueRef;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValueRef(DatamartAttribute newValueRef) {
+		DatamartAttribute oldValueRef = valueRef;
+		valueRef = newValueRef;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_ATTRIBUTE__VALUE_REF, oldValueRef, valueRef));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_ATTRIBUTE__VALUE_REF:
+				if (resolve) return getValueRef();
+				return basicGetValueRef();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_ATTRIBUTE__VALUE_REF:
+				setValueRef((DatamartAttribute)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_ATTRIBUTE__VALUE_REF:
+				setValueRef((DatamartAttribute)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_ATTRIBUTE__VALUE_REF:
+				return valueRef != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TableAttributeImpl
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAxisImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAxisImpl.java
index e2e5b48..6bc3bd8 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAxisImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableAxisImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -42,6 +42,7 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableAxisImpl#getAxis <em>Axis</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableAxisImpl#isHasRowHeight <em>Has Row Height</em>}</li>
@@ -52,7 +53,6 @@
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableAxisImpl#isHasEvents <em>Has Events</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableAxisImpl#getEvents <em>Events</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableBaseImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableBaseImpl.java
index 5bcaad9..ba8cbe2 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableBaseImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableBaseImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -28,10 +28,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBaseImpl#getName <em>Name</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableBeanDatasourceImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableBeanDatasourceImpl.java
new file mode 100644
index 0000000..22f36cd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableBeanDatasourceImpl.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License v1.0 
+ *  which accompanies this distribution, and is available at 
+ *  http{//www.eclipse.org/legal/epl-v10.html 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ * 
+ *  Contributors{  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.table.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
+
+import org.eclipse.osbp.xtext.table.TableBeanDatasource;
+import org.eclipse.osbp.xtext.table.TableDSLPackage;
+import org.eclipse.osbp.xtext.table.TableElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Bean Datasource</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanDatasourceImpl#getDatamartRef <em>Datamart Ref</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanDatasourceImpl#getElements <em>Elements</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TableBeanDatasourceImpl extends TableLazyResolverImpl implements TableBeanDatasource {
+	/**
+	 * The cached value of the '{@link #getDatamartRef() <em>Datamart Ref</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatamartRef()
+	 * @generated
+	 * @ordered
+	 */
+	protected DatamartDefinition datamartRef;
+
+	/**
+	 * The cached value of the '{@link #getElements() <em>Elements</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getElements()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<TableElement> elements;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableBeanDatasourceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TableDSLPackage.Literals.TABLE_BEAN_DATASOURCE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartDefinition getDatamartRef() {
+		if (datamartRef != null && datamartRef.eIsProxy()) {
+			InternalEObject oldDatamartRef = (InternalEObject)datamartRef;
+			datamartRef = (DatamartDefinition)eResolveProxy(oldDatamartRef);
+			if (datamartRef != oldDatamartRef) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TableDSLPackage.TABLE_BEAN_DATASOURCE__DATAMART_REF, oldDatamartRef, datamartRef));
+			}
+		}
+		return datamartRef;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartDefinition basicGetDatamartRef() {
+		return datamartRef;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDatamartRef(DatamartDefinition newDatamartRef) {
+		DatamartDefinition oldDatamartRef = datamartRef;
+		datamartRef = newDatamartRef;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN_DATASOURCE__DATAMART_REF, oldDatamartRef, datamartRef));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<TableElement> getElements() {
+		if (elements == null) {
+			elements = new EObjectContainmentEList<TableElement>(TableElement.class, this, TableDSLPackage.TABLE_BEAN_DATASOURCE__ELEMENTS);
+		}
+		return elements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE__ELEMENTS:
+				return ((InternalEList<?>)getElements()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE__DATAMART_REF:
+				if (resolve) return getDatamartRef();
+				return basicGetDatamartRef();
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE__ELEMENTS:
+				return getElements();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE__DATAMART_REF:
+				setDatamartRef((DatamartDefinition)newValue);
+				return;
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE__ELEMENTS:
+				getElements().clear();
+				getElements().addAll((Collection<? extends TableElement>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE__DATAMART_REF:
+				setDatamartRef((DatamartDefinition)null);
+				return;
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE__ELEMENTS:
+				getElements().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE__DATAMART_REF:
+				return datamartRef != null;
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE__ELEMENTS:
+				return elements != null && !elements.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TableBeanDatasourceImpl
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableBeanImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableBeanImpl.java
new file mode 100644
index 0000000..744967a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableBeanImpl.java
@@ -0,0 +1,641 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License v1.0 
+ *  which accompanies this distribution, and is available at 
+ *  http{//www.eclipse.org/legal/epl-v10.html 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ * 
+ *  Contributors{  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.table.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.action.ActionToolbar;
+
+import org.eclipse.osbp.xtext.table.RowHeaderMode;
+import org.eclipse.osbp.xtext.table.TableBean;
+import org.eclipse.osbp.xtext.table.TableDSLPackage;
+import org.eclipse.osbp.xtext.table.TableDatamart;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Bean</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl#isPolling <em>Polling</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl#getPollingTime <em>Polling Time</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl#isFiltering <em>Filtering</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl#getToolbar <em>Toolbar</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl#isEmbedded <em>Embedded</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl#isSelectById <em>Select By Id</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl#isSelectalways <em>Selectalways</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl#getHeaderMode <em>Header Mode</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableBeanImpl#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TableBeanImpl extends TableLazyResolverImpl implements TableBean {
+	/**
+	 * The default value of the '{@link #isPolling() <em>Polling</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPolling()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean POLLING_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isPolling() <em>Polling</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isPolling()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean polling = POLLING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPollingTime() <em>Polling Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPollingTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String POLLING_TIME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPollingTime() <em>Polling Time</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPollingTime()
+	 * @generated
+	 * @ordered
+	 */
+	protected String pollingTime = POLLING_TIME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isFiltering() <em>Filtering</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFiltering()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean FILTERING_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isFiltering() <em>Filtering</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isFiltering()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean filtering = FILTERING_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getToolbar() <em>Toolbar</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getToolbar()
+	 * @generated
+	 * @ordered
+	 */
+	protected ActionToolbar toolbar;
+
+	/**
+	 * The default value of the '{@link #isEmbedded() <em>Embedded</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEmbedded()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean EMBEDDED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isEmbedded() <em>Embedded</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isEmbedded()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean embedded = EMBEDDED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isSelectById() <em>Select By Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSelectById()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SELECT_BY_ID_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isSelectById() <em>Select By Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSelectById()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean selectById = SELECT_BY_ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isSelectalways() <em>Selectalways</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSelectalways()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SELECTALWAYS_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isSelectalways() <em>Selectalways</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSelectalways()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean selectalways = SELECTALWAYS_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getHeaderMode() <em>Header Mode</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeaderMode()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final RowHeaderMode HEADER_MODE_EDEFAULT = RowHeaderMode.HIDDEN;
+
+	/**
+	 * The cached value of the '{@link #getHeaderMode() <em>Header Mode</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeaderMode()
+	 * @generated
+	 * @ordered
+	 */
+	protected RowHeaderMode headerMode = HEADER_MODE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getSource() <em>Source</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSource()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableDatamart source;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableBeanImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TableDSLPackage.Literals.TABLE_BEAN;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isPolling() {
+		return polling;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPolling(boolean newPolling) {
+		boolean oldPolling = polling;
+		polling = newPolling;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN__POLLING, oldPolling, polling));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getPollingTime() {
+		return pollingTime;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPollingTime(String newPollingTime) {
+		String oldPollingTime = pollingTime;
+		pollingTime = newPollingTime;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN__POLLING_TIME, oldPollingTime, pollingTime));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isFiltering() {
+		return filtering;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFiltering(boolean newFiltering) {
+		boolean oldFiltering = filtering;
+		filtering = newFiltering;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN__FILTERING, oldFiltering, filtering));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionToolbar getToolbar() {
+		if (toolbar != null && toolbar.eIsProxy()) {
+			InternalEObject oldToolbar = (InternalEObject)toolbar;
+			toolbar = (ActionToolbar)eResolveProxy(oldToolbar);
+			if (toolbar != oldToolbar) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TableDSLPackage.TABLE_BEAN__TOOLBAR, oldToolbar, toolbar));
+			}
+		}
+		return toolbar;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionToolbar basicGetToolbar() {
+		return toolbar;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setToolbar(ActionToolbar newToolbar) {
+		ActionToolbar oldToolbar = toolbar;
+		toolbar = newToolbar;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN__TOOLBAR, oldToolbar, toolbar));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isEmbedded() {
+		return embedded;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEmbedded(boolean newEmbedded) {
+		boolean oldEmbedded = embedded;
+		embedded = newEmbedded;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN__EMBEDDED, oldEmbedded, embedded));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSelectById() {
+		return selectById;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectById(boolean newSelectById) {
+		boolean oldSelectById = selectById;
+		selectById = newSelectById;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN__SELECT_BY_ID, oldSelectById, selectById));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isSelectalways() {
+		return selectalways;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectalways(boolean newSelectalways) {
+		boolean oldSelectalways = selectalways;
+		selectalways = newSelectalways;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN__SELECTALWAYS, oldSelectalways, selectalways));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RowHeaderMode getHeaderMode() {
+		return headerMode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeaderMode(RowHeaderMode newHeaderMode) {
+		RowHeaderMode oldHeaderMode = headerMode;
+		headerMode = newHeaderMode == null ? HEADER_MODE_EDEFAULT : newHeaderMode;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN__HEADER_MODE, oldHeaderMode, headerMode));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableDatamart getSource() {
+		return source;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetSource(TableDatamart newSource, NotificationChain msgs) {
+		TableDatamart oldSource = source;
+		source = newSource;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN__SOURCE, oldSource, newSource);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSource(TableDatamart newSource) {
+		if (newSource != source) {
+			NotificationChain msgs = null;
+			if (source != null)
+				msgs = ((InternalEObject)source).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TableDSLPackage.TABLE_BEAN__SOURCE, null, msgs);
+			if (newSource != null)
+				msgs = ((InternalEObject)newSource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TableDSLPackage.TABLE_BEAN__SOURCE, null, msgs);
+			msgs = basicSetSource(newSource, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_BEAN__SOURCE, newSource, newSource));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_BEAN__SOURCE:
+				return basicSetSource(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_BEAN__POLLING:
+				return isPolling();
+			case TableDSLPackage.TABLE_BEAN__POLLING_TIME:
+				return getPollingTime();
+			case TableDSLPackage.TABLE_BEAN__FILTERING:
+				return isFiltering();
+			case TableDSLPackage.TABLE_BEAN__TOOLBAR:
+				if (resolve) return getToolbar();
+				return basicGetToolbar();
+			case TableDSLPackage.TABLE_BEAN__EMBEDDED:
+				return isEmbedded();
+			case TableDSLPackage.TABLE_BEAN__SELECT_BY_ID:
+				return isSelectById();
+			case TableDSLPackage.TABLE_BEAN__SELECTALWAYS:
+				return isSelectalways();
+			case TableDSLPackage.TABLE_BEAN__HEADER_MODE:
+				return getHeaderMode();
+			case TableDSLPackage.TABLE_BEAN__SOURCE:
+				return getSource();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_BEAN__POLLING:
+				setPolling((Boolean)newValue);
+				return;
+			case TableDSLPackage.TABLE_BEAN__POLLING_TIME:
+				setPollingTime((String)newValue);
+				return;
+			case TableDSLPackage.TABLE_BEAN__FILTERING:
+				setFiltering((Boolean)newValue);
+				return;
+			case TableDSLPackage.TABLE_BEAN__TOOLBAR:
+				setToolbar((ActionToolbar)newValue);
+				return;
+			case TableDSLPackage.TABLE_BEAN__EMBEDDED:
+				setEmbedded((Boolean)newValue);
+				return;
+			case TableDSLPackage.TABLE_BEAN__SELECT_BY_ID:
+				setSelectById((Boolean)newValue);
+				return;
+			case TableDSLPackage.TABLE_BEAN__SELECTALWAYS:
+				setSelectalways((Boolean)newValue);
+				return;
+			case TableDSLPackage.TABLE_BEAN__HEADER_MODE:
+				setHeaderMode((RowHeaderMode)newValue);
+				return;
+			case TableDSLPackage.TABLE_BEAN__SOURCE:
+				setSource((TableDatamart)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_BEAN__POLLING:
+				setPolling(POLLING_EDEFAULT);
+				return;
+			case TableDSLPackage.TABLE_BEAN__POLLING_TIME:
+				setPollingTime(POLLING_TIME_EDEFAULT);
+				return;
+			case TableDSLPackage.TABLE_BEAN__FILTERING:
+				setFiltering(FILTERING_EDEFAULT);
+				return;
+			case TableDSLPackage.TABLE_BEAN__TOOLBAR:
+				setToolbar((ActionToolbar)null);
+				return;
+			case TableDSLPackage.TABLE_BEAN__EMBEDDED:
+				setEmbedded(EMBEDDED_EDEFAULT);
+				return;
+			case TableDSLPackage.TABLE_BEAN__SELECT_BY_ID:
+				setSelectById(SELECT_BY_ID_EDEFAULT);
+				return;
+			case TableDSLPackage.TABLE_BEAN__SELECTALWAYS:
+				setSelectalways(SELECTALWAYS_EDEFAULT);
+				return;
+			case TableDSLPackage.TABLE_BEAN__HEADER_MODE:
+				setHeaderMode(HEADER_MODE_EDEFAULT);
+				return;
+			case TableDSLPackage.TABLE_BEAN__SOURCE:
+				setSource((TableDatamart)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_BEAN__POLLING:
+				return polling != POLLING_EDEFAULT;
+			case TableDSLPackage.TABLE_BEAN__POLLING_TIME:
+				return POLLING_TIME_EDEFAULT == null ? pollingTime != null : !POLLING_TIME_EDEFAULT.equals(pollingTime);
+			case TableDSLPackage.TABLE_BEAN__FILTERING:
+				return filtering != FILTERING_EDEFAULT;
+			case TableDSLPackage.TABLE_BEAN__TOOLBAR:
+				return toolbar != null;
+			case TableDSLPackage.TABLE_BEAN__EMBEDDED:
+				return embedded != EMBEDDED_EDEFAULT;
+			case TableDSLPackage.TABLE_BEAN__SELECT_BY_ID:
+				return selectById != SELECT_BY_ID_EDEFAULT;
+			case TableDSLPackage.TABLE_BEAN__SELECTALWAYS:
+				return selectalways != SELECTALWAYS_EDEFAULT;
+			case TableDSLPackage.TABLE_BEAN__HEADER_MODE:
+				return headerMode != HEADER_MODE_EDEFAULT;
+			case TableDSLPackage.TABLE_BEAN__SOURCE:
+				return source != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (polling: ");
+		result.append(polling);
+		result.append(", pollingTime: ");
+		result.append(pollingTime);
+		result.append(", filtering: ");
+		result.append(filtering);
+		result.append(", embedded: ");
+		result.append(embedded);
+		result.append(", selectById: ");
+		result.append(selectById);
+		result.append(", selectalways: ");
+		result.append(selectalways);
+		result.append(", headerMode: ");
+		result.append(headerMode);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableBeanImpl
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableCellColorImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableCellColorImpl.java
index 1fa5c22..d955592 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableCellColorImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableCellColorImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -28,10 +28,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableCellColorImpl#getRgb <em>Rgb</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableColumnImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableColumnImpl.java
index fc55b7e..c9cc0e0 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableColumnImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableColumnImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,10 +31,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableColumnImpl#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDSLFactoryImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDSLFactoryImpl.java
index 60b7224..c771f62 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDSLFactoryImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDSLFactoryImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -77,6 +77,8 @@
 			case TableDSLPackage.TABLE_SELECTION: return createTableSelection();
 			case TableDSLPackage.TABLE_TABLE: return createTableTable();
 			case TableDSLPackage.TABLE_GRID: return createTableGrid();
+			case TableDSLPackage.TABLE_BEAN: return createTableBean();
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE: return createTableBeanDatasource();
 			case TableDSLPackage.TABLE_DTO_DATASOURCE: return createTableDtoDatasource();
 			case TableDSLPackage.TABLE_GRID_PROPERTY: return createTableGridProperty();
 			case TableDSLPackage.TABLE_PREORDER: return createTablePreorder();
@@ -91,17 +93,18 @@
 			case TableDSLPackage.TABLE_MEASURE: return createTableMeasure();
 			case TableDSLPackage.TABLE_DERIVED: return createTableDerived();
 			case TableDSLPackage.TABLE_HIERARCHY: return createTableHierarchy();
-			case TableDSLPackage.TABLE_PROPERTY: return createTableProperty();
+			case TableDSLPackage.TABLE_ATTRIBUTE: return createTableAttribute();
 			case TableDSLPackage.TABLE_AGGREGATION: return createTableAggregation();
 			case TableDSLPackage.TABLE_NUMBER_INTERVAL: return createTableNumberInterval();
+			case TableDSLPackage.TABLE_INT_INTERVAL: return createTableIntInterval();
 			case TableDSLPackage.TABLE_DATE_DAY_INTERVAL: return createTableDateDayInterval();
 			case TableDSLPackage.TABLE_NUMBER_LOOKUP: return createTableNumberLookup();
+			case TableDSLPackage.TABLE_INT_LOOKUP: return createTableIntLookup();
 			case TableDSLPackage.TABLE_STRING_LOOKUP: return createTableStringLookup();
 			case TableDSLPackage.TABLE_DATE_DAY_LOOKUP: return createTableDateDayLookup();
 			case TableDSLPackage.TABLE_DATAMART: return createTableDatamart();
 			case TableDSLPackage.TABLE_AXIS: return createTableAxis();
 			case TableDSLPackage.TABLE_EVENT: return createTableEvent();
-			case TableDSLPackage.TABLE_BROKER_DATAMART: return createTableBrokerDatamart();
 			case TableDSLPackage.TABLE_TEXT_COLOR: return createTableTextColor();
 			case TableDSLPackage.TABLE_CELL_COLOR: return createTableCellColor();
 			case TableDSLPackage.TABLE_ICON: return createTableIcon();
@@ -244,6 +247,26 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public TableBean createTableBean() {
+		TableBeanImpl tableBean = new TableBeanImpl();
+		return tableBean;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableBeanDatasource createTableBeanDatasource() {
+		TableBeanDatasourceImpl tableBeanDatasource = new TableBeanDatasourceImpl();
+		return tableBeanDatasource;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public TableDtoDatasource createTableDtoDatasource() {
 		TableDtoDatasourceImpl tableDtoDatasource = new TableDtoDatasourceImpl();
 		return tableDtoDatasource;
@@ -384,9 +407,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public TableProperty createTableProperty() {
-		TablePropertyImpl tableProperty = new TablePropertyImpl();
-		return tableProperty;
+	public TableAttribute createTableAttribute() {
+		TableAttributeImpl tableAttribute = new TableAttributeImpl();
+		return tableAttribute;
 	}
 
 	/**
@@ -414,6 +437,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public TableIntInterval createTableIntInterval() {
+		TableIntIntervalImpl tableIntInterval = new TableIntIntervalImpl();
+		return tableIntInterval;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public TableDateDayInterval createTableDateDayInterval() {
 		TableDateDayIntervalImpl tableDateDayInterval = new TableDateDayIntervalImpl();
 		return tableDateDayInterval;
@@ -434,6 +467,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public TableIntLookup createTableIntLookup() {
+		TableIntLookupImpl tableIntLookup = new TableIntLookupImpl();
+		return tableIntLookup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public TableStringLookup createTableStringLookup() {
 		TableStringLookupImpl tableStringLookup = new TableStringLookupImpl();
 		return tableStringLookup;
@@ -484,16 +527,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public TableBrokerDatamart createTableBrokerDatamart() {
-		TableBrokerDatamartImpl tableBrokerDatamart = new TableBrokerDatamartImpl();
-		return tableBrokerDatamart;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public TableTextColor createTableTextColor() {
 		TableTextColorImpl tableTextColor = new TableTextColorImpl();
 		return tableTextColor;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDSLPackageImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDSLPackageImpl.java
index 0c07ba0..6380184 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDSLPackageImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDSLPackageImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -29,8 +29,6 @@
 
 import org.eclipse.osbp.dsl.semantic.dto.OSBPDtoPackage;
 
-import org.eclipse.osbp.dsl.semantic.entity.OSBPEntityPackage;
-
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
 
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
@@ -51,9 +49,11 @@
 import org.eclipse.osbp.xtext.table.Table;
 import org.eclipse.osbp.xtext.table.TableAggregation;
 import org.eclipse.osbp.xtext.table.TableAllColumns;
+import org.eclipse.osbp.xtext.table.TableAttribute;
 import org.eclipse.osbp.xtext.table.TableAxis;
 import org.eclipse.osbp.xtext.table.TableBase;
-import org.eclipse.osbp.xtext.table.TableBrokerDatamart;
+import org.eclipse.osbp.xtext.table.TableBean;
+import org.eclipse.osbp.xtext.table.TableBeanDatasource;
 import org.eclipse.osbp.xtext.table.TableCellColor;
 import org.eclipse.osbp.xtext.table.TableColumn;
 import org.eclipse.osbp.xtext.table.TableDSLFactory;
@@ -71,6 +71,8 @@
 import org.eclipse.osbp.xtext.table.TableHierarchy;
 import org.eclipse.osbp.xtext.table.TableIcon;
 import org.eclipse.osbp.xtext.table.TableImage;
+import org.eclipse.osbp.xtext.table.TableIntInterval;
+import org.eclipse.osbp.xtext.table.TableIntLookup;
 import org.eclipse.osbp.xtext.table.TableInterval;
 import org.eclipse.osbp.xtext.table.TableLazyResolver;
 import org.eclipse.osbp.xtext.table.TableLookup;
@@ -82,7 +84,6 @@
 import org.eclipse.osbp.xtext.table.TableOrdinal;
 import org.eclipse.osbp.xtext.table.TablePackage;
 import org.eclipse.osbp.xtext.table.TablePreorder;
-import org.eclipse.osbp.xtext.table.TableProperty;
 import org.eclipse.osbp.xtext.table.TableRangeElement;
 import org.eclipse.osbp.xtext.table.TableSelection;
 import org.eclipse.osbp.xtext.table.TableStringLookup;
@@ -96,7 +97,7 @@
 import org.eclipse.osbp.xtext.table.TableValueElement;
 import org.eclipse.osbp.xtext.table.TrendIconEnum;
 
-import org.eclipse.xtext.common.types.TypesPackage;
+import org.eclipse.xtext.xtype.XtypePackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -173,6 +174,20 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass tableBeanEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableBeanDatasourceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass tableDtoDatasourceEClass = null;
 
 	/**
@@ -278,7 +293,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass tablePropertyEClass = null;
+	private EClass tableAttributeEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -306,6 +321,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass tableIntIntervalEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass tableDateDayIntervalEClass = null;
 
 	/**
@@ -327,6 +349,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass tableIntLookupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass tableStringLookupEClass = null;
 
 	/**
@@ -369,13 +398,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass tableBrokerDatamartEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	private EClass tableRangeElementEClass = null;
 
 	/**
@@ -523,10 +545,10 @@
 		isInited = true;
 
 		// Initialize simple dependencies
-		CxGridStylePackage.eINSTANCE.eClass();
-		DatamartDSLPackage.eINSTANCE.eClass();
 		ActionDSLPackage.eINSTANCE.eClass();
+		DatamartDSLPackage.eINSTANCE.eClass();
 		CxGridSourcePackage.eINSTANCE.eClass();
+		CxGridStylePackage.eINSTANCE.eClass();
 
 		// Create package meta-data objects
 		theTableDSLPackage.createPackageContents();
@@ -557,7 +579,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getTableModel_Packages() {
+	public EReference getTableModel_ImportSection() {
 		return (EReference)tableModelEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -566,6 +588,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EReference getTableModel_Packages() {
+		return (EReference)tableModelEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getTableLazyResolver() {
 		return tableLazyResolverEClass;
 	}
@@ -728,7 +759,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getTableTable_Selectalways() {
+	public EAttribute getTableTable_SelectById() {
 		return (EAttribute)tableTableEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -737,7 +768,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getTableTable_HeaderMode() {
+	public EAttribute getTableTable_Selectalways() {
 		return (EAttribute)tableTableEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -746,8 +777,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EAttribute getTableTable_HeaderMode() {
+		return (EAttribute)tableTableEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EReference getTableTable_Source() {
-		return (EReference)tableTableEClass.getEStructuralFeatures().get(2);
+		return (EReference)tableTableEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -791,6 +831,78 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EClass getTableBean() {
+		return tableBeanEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableBean_SelectById() {
+		return (EAttribute)tableBeanEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableBean_Selectalways() {
+		return (EAttribute)tableBeanEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableBean_HeaderMode() {
+		return (EAttribute)tableBeanEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableBean_Source() {
+		return (EReference)tableBeanEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableBeanDatasource() {
+		return tableBeanDatasourceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableBeanDatasource_DatamartRef() {
+		return (EReference)tableBeanDatasourceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableBeanDatasource_Elements() {
+		return (EReference)tableBeanDatasourceEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getTableDtoDatasource() {
 		return tableDtoDatasourceEClass;
 	}
@@ -1169,8 +1281,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getTableProperty() {
-		return tablePropertyEClass;
+	public EClass getTableAttribute() {
+		return tableAttributeEClass;
 	}
 
 	/**
@@ -1178,8 +1290,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getTableProperty_ValueRef() {
-		return (EReference)tablePropertyEClass.getEStructuralFeatures().get(0);
+	public EReference getTableAttribute_ValueRef() {
+		return (EReference)tableAttributeEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -1241,6 +1353,33 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EClass getTableIntInterval() {
+		return tableIntIntervalEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableIntInterval_IntIntervalValue() {
+		return (EAttribute)tableIntIntervalEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableIntInterval_IntRange() {
+		return (EReference)tableIntIntervalEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getTableDateDayInterval() {
 		return tableDateDayIntervalEClass;
 	}
@@ -1304,6 +1443,33 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EClass getTableIntLookup() {
+		return tableIntLookupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableIntLookup_LookupValue() {
+		return (EAttribute)tableIntLookupEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableIntLookup_Discrete() {
+		return (EReference)tableIntLookupEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getTableStringLookup() {
 		return tableStringLookupEClass;
 	}
@@ -1493,51 +1659,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getTableEvent_BrokerDatamarts() {
-		return (EReference)tableEventEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getTableBrokerDatamart() {
-		return tableBrokerDatamartEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTableBrokerDatamart_DatamartDef() {
-		return (EReference)tableBrokerDatamartEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getTableBrokerDatamart_Filter() {
-		return (EAttribute)tableBrokerDatamartEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTableBrokerDatamart_Reference() {
-		return (EReference)tableBrokerDatamartEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public EClass getTableRangeElement() {
 		return tableRangeElementEClass;
 	}
@@ -1787,6 +1908,7 @@
 
 		// Create classes and their features
 		tableModelEClass = createEClass(TABLE_MODEL);
+		createEReference(tableModelEClass, TABLE_MODEL__IMPORT_SECTION);
 		createEReference(tableModelEClass, TABLE_MODEL__PACKAGES);
 
 		tableLazyResolverEClass = createEClass(TABLE_LAZY_RESOLVER);
@@ -1813,6 +1935,7 @@
 		createEAttribute(tableSelectionEClass, TABLE_SELECTION__MULTI_SELECTION);
 
 		tableTableEClass = createEClass(TABLE_TABLE);
+		createEAttribute(tableTableEClass, TABLE_TABLE__SELECT_BY_ID);
 		createEAttribute(tableTableEClass, TABLE_TABLE__SELECTALWAYS);
 		createEAttribute(tableTableEClass, TABLE_TABLE__HEADER_MODE);
 		createEReference(tableTableEClass, TABLE_TABLE__SOURCE);
@@ -1822,6 +1945,16 @@
 		createEAttribute(tableGridEClass, TABLE_GRID__HEADER_MODE);
 		createEReference(tableGridEClass, TABLE_GRID__SOURCE);
 
+		tableBeanEClass = createEClass(TABLE_BEAN);
+		createEAttribute(tableBeanEClass, TABLE_BEAN__SELECT_BY_ID);
+		createEAttribute(tableBeanEClass, TABLE_BEAN__SELECTALWAYS);
+		createEAttribute(tableBeanEClass, TABLE_BEAN__HEADER_MODE);
+		createEReference(tableBeanEClass, TABLE_BEAN__SOURCE);
+
+		tableBeanDatasourceEClass = createEClass(TABLE_BEAN_DATASOURCE);
+		createEReference(tableBeanDatasourceEClass, TABLE_BEAN_DATASOURCE__DATAMART_REF);
+		createEReference(tableBeanDatasourceEClass, TABLE_BEAN_DATASOURCE__ELEMENTS);
+
 		tableDtoDatasourceEClass = createEClass(TABLE_DTO_DATASOURCE);
 		createEReference(tableDtoDatasourceEClass, TABLE_DTO_DATASOURCE__DTO_SOURCE);
 
@@ -1879,8 +2012,8 @@
 		tableHierarchyEClass = createEClass(TABLE_HIERARCHY);
 		createEReference(tableHierarchyEClass, TABLE_HIERARCHY__VALUE_REF);
 
-		tablePropertyEClass = createEClass(TABLE_PROPERTY);
-		createEReference(tablePropertyEClass, TABLE_PROPERTY__VALUE_REF);
+		tableAttributeEClass = createEClass(TABLE_ATTRIBUTE);
+		createEReference(tableAttributeEClass, TABLE_ATTRIBUTE__VALUE_REF);
 
 		tableAggregationEClass = createEClass(TABLE_AGGREGATION);
 		createEReference(tableAggregationEClass, TABLE_AGGREGATION__VALUE_REF);
@@ -1891,6 +2024,10 @@
 		createEAttribute(tableNumberIntervalEClass, TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE);
 		createEReference(tableNumberIntervalEClass, TABLE_NUMBER_INTERVAL__NUMBER_RANGE);
 
+		tableIntIntervalEClass = createEClass(TABLE_INT_INTERVAL);
+		createEAttribute(tableIntIntervalEClass, TABLE_INT_INTERVAL__INT_INTERVAL_VALUE);
+		createEReference(tableIntIntervalEClass, TABLE_INT_INTERVAL__INT_RANGE);
+
 		tableDateDayIntervalEClass = createEClass(TABLE_DATE_DAY_INTERVAL);
 		createEAttribute(tableDateDayIntervalEClass, TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE);
 		createEReference(tableDateDayIntervalEClass, TABLE_DATE_DAY_INTERVAL__DATE_RANGE);
@@ -1901,6 +2038,10 @@
 		createEAttribute(tableNumberLookupEClass, TABLE_NUMBER_LOOKUP__LOOKUP_VALUE);
 		createEReference(tableNumberLookupEClass, TABLE_NUMBER_LOOKUP__DISCRETE);
 
+		tableIntLookupEClass = createEClass(TABLE_INT_LOOKUP);
+		createEAttribute(tableIntLookupEClass, TABLE_INT_LOOKUP__LOOKUP_VALUE);
+		createEReference(tableIntLookupEClass, TABLE_INT_LOOKUP__DISCRETE);
+
 		tableStringLookupEClass = createEClass(TABLE_STRING_LOOKUP);
 		createEAttribute(tableStringLookupEClass, TABLE_STRING_LOOKUP__LOOKUP_VALUE);
 		createEReference(tableStringLookupEClass, TABLE_STRING_LOOKUP__DISCRETE);
@@ -1927,12 +2068,6 @@
 
 		tableEventEClass = createEClass(TABLE_EVENT);
 		createEReference(tableEventEClass, TABLE_EVENT__SOURCE);
-		createEReference(tableEventEClass, TABLE_EVENT__BROKER_DATAMARTS);
-
-		tableBrokerDatamartEClass = createEClass(TABLE_BROKER_DATAMART);
-		createEReference(tableBrokerDatamartEClass, TABLE_BROKER_DATAMART__DATAMART_DEF);
-		createEAttribute(tableBrokerDatamartEClass, TABLE_BROKER_DATAMART__FILTER);
-		createEReference(tableBrokerDatamartEClass, TABLE_BROKER_DATAMART__REFERENCE);
 
 		tableRangeElementEClass = createEClass(TABLE_RANGE_ELEMENT);
 
@@ -1999,15 +2134,14 @@
 		setNsURI(eNS_URI);
 
 		// Obtain other dependent packages
+		XtypePackage theXtypePackage = (XtypePackage)EPackage.Registry.INSTANCE.getEPackage(XtypePackage.eNS_URI);
 		EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
 		OSBPTypesPackage theOSBPTypesPackage = (OSBPTypesPackage)EPackage.Registry.INSTANCE.getEPackage(OSBPTypesPackage.eNS_URI);
 		ActionDSLPackage theActionDSLPackage = (ActionDSLPackage)EPackage.Registry.INSTANCE.getEPackage(ActionDSLPackage.eNS_URI);
+		DatamartDSLPackage theDatamartDSLPackage = (DatamartDSLPackage)EPackage.Registry.INSTANCE.getEPackage(DatamartDSLPackage.eNS_URI);
 		CxGridSourcePackage theCxGridSourcePackage = (CxGridSourcePackage)EPackage.Registry.INSTANCE.getEPackage(CxGridSourcePackage.eNS_URI);
 		OSBPDtoPackage theOSBPDtoPackage = (OSBPDtoPackage)EPackage.Registry.INSTANCE.getEPackage(OSBPDtoPackage.eNS_URI);
-		TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
-		DatamartDSLPackage theDatamartDSLPackage = (DatamartDSLPackage)EPackage.Registry.INSTANCE.getEPackage(DatamartDSLPackage.eNS_URI);
 		CubeDSLPackage theCubeDSLPackage = (CubeDSLPackage)EPackage.Registry.INSTANCE.getEPackage(CubeDSLPackage.eNS_URI);
-		OSBPEntityPackage theOSBPEntityPackage = (OSBPEntityPackage)EPackage.Registry.INSTANCE.getEPackage(OSBPEntityPackage.eNS_URI);
 
 		// Create type parameters
 
@@ -2021,6 +2155,8 @@
 		tableSelectionEClass.getESuperTypes().add(this.getTableTable());
 		tableTableEClass.getESuperTypes().add(this.getTableOption());
 		tableGridEClass.getESuperTypes().add(this.getTableOption());
+		tableBeanEClass.getESuperTypes().add(this.getTableOption());
+		tableBeanDatasourceEClass.getESuperTypes().add(this.getTableLazyResolver());
 		tableDtoDatasourceEClass.getESuperTypes().add(theCxGridSourcePackage.getCxGridSource());
 		tableGridPropertyEClass.getESuperTypes().add(theCxGridSourcePackage.getCxGridProperty());
 		tablePreorderEClass.getESuperTypes().add(this.getTableLazyResolver());
@@ -2043,22 +2179,23 @@
 		tableDerivedEClass.getESuperTypes().add(this.getTableValueElement());
 		tableHierarchyEClass.getESuperTypes().add(this.getExpression());
 		tableHierarchyEClass.getESuperTypes().add(this.getTableValueElement());
-		tablePropertyEClass.getESuperTypes().add(this.getExpression());
-		tablePropertyEClass.getESuperTypes().add(this.getTableValueElement());
+		tableAttributeEClass.getESuperTypes().add(this.getExpression());
+		tableAttributeEClass.getESuperTypes().add(this.getTableValueElement());
 		tableAggregationEClass.getESuperTypes().add(this.getExpression());
 		tableAggregationEClass.getESuperTypes().add(this.getTableValueElement());
 		tableIntervalEClass.getESuperTypes().add(this.getTableLazyResolver());
 		tableNumberIntervalEClass.getESuperTypes().add(this.getTableInterval());
+		tableIntIntervalEClass.getESuperTypes().add(this.getTableInterval());
 		tableDateDayIntervalEClass.getESuperTypes().add(this.getTableInterval());
 		tableLookupEClass.getESuperTypes().add(this.getTableLazyResolver());
 		tableNumberLookupEClass.getESuperTypes().add(this.getTableLookup());
+		tableIntLookupEClass.getESuperTypes().add(this.getTableLookup());
 		tableStringLookupEClass.getESuperTypes().add(this.getTableLookup());
 		tableDateDayLookupEClass.getESuperTypes().add(this.getTableLookup());
 		tableDatamartEClass.getESuperTypes().add(this.getTableLazyResolver());
 		tableElementEClass.getESuperTypes().add(this.getTableLazyResolver());
 		tableAxisEClass.getESuperTypes().add(this.getTableElement());
 		tableEventEClass.getESuperTypes().add(this.getTableLazyResolver());
-		tableBrokerDatamartEClass.getESuperTypes().add(this.getTableLazyResolver());
 		tableRangeElementEClass.getESuperTypes().add(this.getTableLazyResolver());
 		tableTextColorEClass.getESuperTypes().add(this.getTableRangeElement());
 		tableCellColorEClass.getESuperTypes().add(this.getTableRangeElement());
@@ -2073,6 +2210,7 @@
 
 		// Initialize classes and features; add operations and parameters
 		initEClass(tableModelEClass, TableModel.class, "TableModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTableModel_ImportSection(), theXtypePackage.getXImportSection(), null, "importSection", null, 0, 1, TableModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getTableModel_Packages(), this.getTablePackage(), null, "packages", null, 0, -1, TableModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(tableLazyResolverEClass, TableLazyResolver.class, "TableLazyResolver", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -2102,6 +2240,7 @@
 		initEAttribute(getTableSelection_MultiSelection(), theEcorePackage.getEBoolean(), "multiSelection", null, 0, 1, TableSelection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(tableTableEClass, TableTable.class, "TableTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableTable_SelectById(), theEcorePackage.getEBoolean(), "selectById", null, 0, 1, TableTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getTableTable_Selectalways(), theEcorePackage.getEBoolean(), "selectalways", null, 0, 1, TableTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getTableTable_HeaderMode(), this.getRowHeaderMode(), "headerMode", null, 0, 1, TableTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getTableTable_Source(), this.getTableDatamart(), null, "source", null, 0, 1, TableTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2111,11 +2250,19 @@
 		initEAttribute(getTableGrid_HeaderMode(), this.getRowHeaderMode(), "headerMode", null, 0, 1, TableGrid.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getTableGrid_Source(), this.getTableDtoDatasource(), null, "source", null, 0, 1, TableGrid.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(tableBeanEClass, TableBean.class, "TableBean", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableBean_SelectById(), theEcorePackage.getEBoolean(), "selectById", null, 0, 1, TableBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getTableBean_Selectalways(), theEcorePackage.getEBoolean(), "selectalways", null, 0, 1, TableBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getTableBean_HeaderMode(), this.getRowHeaderMode(), "headerMode", null, 0, 1, TableBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getTableBean_Source(), this.getTableDatamart(), null, "source", null, 0, 1, TableBean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableBeanDatasourceEClass, TableBeanDatasource.class, "TableBeanDatasource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTableBeanDatasource_DatamartRef(), theDatamartDSLPackage.getDatamartDefinition(), null, "datamartRef", null, 0, 1, TableBeanDatasource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getTableBeanDatasource_Elements(), this.getTableElement(), null, "elements", null, 0, -1, TableBeanDatasource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		initEClass(tableDtoDatasourceEClass, TableDtoDatasource.class, "TableDtoDatasource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getTableDtoDatasource_DtoSource(), theOSBPDtoPackage.getLDto(), null, "dtoSource", null, 0, 1, TableDtoDatasource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		addEOperation(tableDtoDatasourceEClass, theTypesPackage.getJvmTypeReference(), "getRootType", 0, 1, !IS_UNIQUE, IS_ORDERED);
-
 		initEClass(tableGridPropertyEClass, TableGridProperty.class, "TableGridProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(tablePreorderEClass, TablePreorder.class, "TablePreorder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -2170,8 +2317,8 @@
 		initEClass(tableHierarchyEClass, TableHierarchy.class, "TableHierarchy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getTableHierarchy_ValueRef(), theCubeDSLPackage.getCubeLevel(), null, "valueRef", null, 0, 1, TableHierarchy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(tablePropertyEClass, TableProperty.class, "TableProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getTableProperty_ValueRef(), theDatamartDSLPackage.getDatamartProperty(), null, "valueRef", null, 0, 1, TableProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(tableAttributeEClass, TableAttribute.class, "TableAttribute", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTableAttribute_ValueRef(), theDatamartDSLPackage.getDatamartAttribute(), null, "valueRef", null, 0, 1, TableAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(tableAggregationEClass, TableAggregation.class, "TableAggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getTableAggregation_ValueRef(), theDatamartDSLPackage.getDatamartSetAggregationFunction(), null, "valueRef", null, 0, 1, TableAggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2182,8 +2329,12 @@
 		initEAttribute(getTableNumberInterval_NumberIntervalValue(), theEcorePackage.getEDouble(), "numberIntervalValue", null, 0, 1, TableNumberInterval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getTableNumberInterval_NumberRange(), this.getTableRangeElement(), null, "numberRange", null, 0, 1, TableNumberInterval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(tableIntIntervalEClass, TableIntInterval.class, "TableIntInterval", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableIntInterval_IntIntervalValue(), theEcorePackage.getEInt(), "intIntervalValue", null, 0, 1, TableIntInterval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getTableIntInterval_IntRange(), this.getTableRangeElement(), null, "intRange", null, 0, 1, TableIntInterval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		initEClass(tableDateDayIntervalEClass, TableDateDayInterval.class, "TableDateDayInterval", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getTableDateDayInterval_DateIntervalValue(), theEcorePackage.getEDouble(), "dateIntervalValue", null, 0, 1, TableDateDayInterval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getTableDateDayInterval_DateIntervalValue(), theEcorePackage.getEInt(), "dateIntervalValue", null, 0, 1, TableDateDayInterval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getTableDateDayInterval_DateRange(), this.getTableRangeElement(), null, "dateRange", null, 0, 1, TableDateDayInterval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(tableLookupEClass, TableLookup.class, "TableLookup", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -2192,12 +2343,16 @@
 		initEAttribute(getTableNumberLookup_LookupValue(), theEcorePackage.getEDouble(), "lookupValue", null, 0, 1, TableNumberLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getTableNumberLookup_Discrete(), this.getTableRangeElement(), null, "discrete", null, 0, 1, TableNumberLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(tableIntLookupEClass, TableIntLookup.class, "TableIntLookup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableIntLookup_LookupValue(), theEcorePackage.getEInt(), "lookupValue", null, 0, 1, TableIntLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getTableIntLookup_Discrete(), this.getTableRangeElement(), null, "discrete", null, 0, 1, TableIntLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		initEClass(tableStringLookupEClass, TableStringLookup.class, "TableStringLookup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getTableStringLookup_LookupValue(), theEcorePackage.getEString(), "lookupValue", null, 0, 1, TableStringLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getTableStringLookup_Discrete(), this.getTableRangeElement(), null, "discrete", null, 0, 1, TableStringLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(tableDateDayLookupEClass, TableDateDayLookup.class, "TableDateDayLookup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getTableDateDayLookup_LookupValue(), theEcorePackage.getEDouble(), "lookupValue", null, 0, 1, TableDateDayLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getTableDateDayLookup_LookupValue(), theEcorePackage.getEInt(), "lookupValue", null, 0, 1, TableDateDayLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getTableDateDayLookup_Discrete(), this.getTableRangeElement(), null, "discrete", null, 0, 1, TableDateDayLookup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(tableDatamartEClass, TableDatamart.class, "TableDatamart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -2218,12 +2373,6 @@
 
 		initEClass(tableEventEClass, TableEvent.class, "TableEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getTableEvent_Source(), this.getTableValueElement(), null, "source", null, 0, 1, TableEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getTableEvent_BrokerDatamarts(), this.getTableBrokerDatamart(), null, "brokerDatamarts", null, 0, -1, TableEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(tableBrokerDatamartEClass, TableBrokerDatamart.class, "TableBrokerDatamart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getTableBrokerDatamart_DatamartDef(), theDatamartDSLPackage.getDatamartDefinition(), null, "datamartDef", null, 0, 1, TableBrokerDatamart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getTableBrokerDatamart_Filter(), theEcorePackage.getEString(), "filter", null, 0, 1, TableBrokerDatamart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getTableBrokerDatamart_Reference(), theOSBPEntityPackage.getLEntityReference(), null, "reference", null, 0, 1, TableBrokerDatamart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(tableRangeElementEClass, TableRangeElement.class, "TableRangeElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDatamartImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDatamartImpl.java
index 63388d2..d043c8a 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDatamartImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDatamartImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -40,11 +40,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableDatamartImpl#getDatamartRef <em>Datamart Ref</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableDatamartImpl#getElements <em>Elements</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDateDayIntervalImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDateDayIntervalImpl.java
index 8a387b5..210c1d6 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDateDayIntervalImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDateDayIntervalImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,11 +31,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableDateDayIntervalImpl#getDateIntervalValue <em>Date Interval Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableDateDayIntervalImpl#getDateRange <em>Date Range</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
@@ -48,7 +48,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final double DATE_INTERVAL_VALUE_EDEFAULT = 0.0;
+	protected static final int DATE_INTERVAL_VALUE_EDEFAULT = 0;
 
 	/**
 	 * The cached value of the '{@link #getDateIntervalValue() <em>Date Interval Value</em>}' attribute.
@@ -58,7 +58,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected double dateIntervalValue = DATE_INTERVAL_VALUE_EDEFAULT;
+	protected int dateIntervalValue = DATE_INTERVAL_VALUE_EDEFAULT;
 
 	/**
 	 * The cached value of the '{@link #getDateRange() <em>Date Range</em>}' containment reference.
@@ -94,7 +94,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public double getDateIntervalValue() {
+	public int getDateIntervalValue() {
 		return dateIntervalValue;
 	}
 
@@ -103,8 +103,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setDateIntervalValue(double newDateIntervalValue) {
-		double oldDateIntervalValue = dateIntervalValue;
+	public void setDateIntervalValue(int newDateIntervalValue) {
+		int oldDateIntervalValue = dateIntervalValue;
 		dateIntervalValue = newDateIntervalValue;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE, oldDateIntervalValue, dateIntervalValue));
@@ -192,7 +192,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case TableDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE:
-				setDateIntervalValue((Double)newValue);
+				setDateIntervalValue((Integer)newValue);
 				return;
 			case TableDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_RANGE:
 				setDateRange((TableRangeElement)newValue);
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDateDayLookupImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDateDayLookupImpl.java
index 20a67a7..f5c3e1a 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDateDayLookupImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDateDayLookupImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,11 +31,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableDateDayLookupImpl#getLookupValue <em>Lookup Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableDateDayLookupImpl#getDiscrete <em>Discrete</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
@@ -48,7 +48,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final double LOOKUP_VALUE_EDEFAULT = 0.0;
+	protected static final int LOOKUP_VALUE_EDEFAULT = 0;
 
 	/**
 	 * The cached value of the '{@link #getLookupValue() <em>Lookup Value</em>}' attribute.
@@ -58,7 +58,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected double lookupValue = LOOKUP_VALUE_EDEFAULT;
+	protected int lookupValue = LOOKUP_VALUE_EDEFAULT;
 
 	/**
 	 * The cached value of the '{@link #getDiscrete() <em>Discrete</em>}' containment reference.
@@ -94,7 +94,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public double getLookupValue() {
+	public int getLookupValue() {
 		return lookupValue;
 	}
 
@@ -103,8 +103,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setLookupValue(double newLookupValue) {
-		double oldLookupValue = lookupValue;
+	public void setLookupValue(int newLookupValue) {
+		int oldLookupValue = lookupValue;
 		lookupValue = newLookupValue;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE, oldLookupValue, lookupValue));
@@ -192,7 +192,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case TableDSLPackage.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE:
-				setLookupValue((Double)newValue);
+				setLookupValue((Integer)newValue);
 				return;
 			case TableDSLPackage.TABLE_DATE_DAY_LOOKUP__DISCRETE:
 				setDiscrete((TableRangeElement)newValue);
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDerivedImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDerivedImpl.java
index 7c009cd..99d3858 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDerivedImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDerivedImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,10 +31,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableDerivedImpl#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDtoDatasourceImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDtoDatasourceImpl.java
index 1f5e1fe..388b2ba 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDtoDatasourceImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableDtoDatasourceImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -27,18 +27,16 @@
 import org.eclipse.osbp.xtext.table.TableDSLPackage;
 import org.eclipse.osbp.xtext.table.TableDtoDatasource;
 
-import org.eclipse.xtext.common.types.JvmTypeReference;
-
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Table Dto Datasource</b></em>'.
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableDtoDatasourceImpl#getDtoSource <em>Dto Source</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
@@ -115,20 +113,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public JvmTypeReference getRootType() {
-		LDto _dtoSource = this.getDtoSource();
-		JvmTypeReference _wrappedTypeJvm = null;
-		if (_dtoSource!=null) {
-			_wrappedTypeJvm=_dtoSource.getWrappedTypeJvm();
-		}
-		return _wrappedTypeJvm;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableEventImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableEventImpl.java
index a4a0a82..997cf81 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableEventImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableEventImpl.java
@@ -8,27 +8,19 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
 
-import java.util.Collection;
-
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
-import org.eclipse.emf.common.util.EList;
-
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.osbp.xtext.table.TableBrokerDatamart;
 import org.eclipse.osbp.xtext.table.TableDSLPackage;
 import org.eclipse.osbp.xtext.table.TableEvent;
 import org.eclipse.osbp.xtext.table.TableValueElement;
@@ -39,11 +31,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableEventImpl#getSource <em>Source</em>}</li>
- *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableEventImpl#getBrokerDatamarts <em>Broker Datamarts</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
@@ -59,16 +50,6 @@
 	protected TableValueElement source;
 
 	/**
-	 * The cached value of the '{@link #getBrokerDatamarts() <em>Broker Datamarts</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBrokerDatamarts()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<TableBrokerDatamart> brokerDatamarts;
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -135,25 +116,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EList<TableBrokerDatamart> getBrokerDatamarts() {
-		if (brokerDatamarts == null) {
-			brokerDatamarts = new EObjectContainmentEList<TableBrokerDatamart>(TableBrokerDatamart.class, this, TableDSLPackage.TABLE_EVENT__BROKER_DATAMARTS);
-		}
-		return brokerDatamarts;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case TableDSLPackage.TABLE_EVENT__SOURCE:
 				return basicSetSource(null, msgs);
-			case TableDSLPackage.TABLE_EVENT__BROKER_DATAMARTS:
-				return ((InternalEList<?>)getBrokerDatamarts()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -168,8 +135,6 @@
 		switch (featureID) {
 			case TableDSLPackage.TABLE_EVENT__SOURCE:
 				return getSource();
-			case TableDSLPackage.TABLE_EVENT__BROKER_DATAMARTS:
-				return getBrokerDatamarts();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -179,17 +144,12 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case TableDSLPackage.TABLE_EVENT__SOURCE:
 				setSource((TableValueElement)newValue);
 				return;
-			case TableDSLPackage.TABLE_EVENT__BROKER_DATAMARTS:
-				getBrokerDatamarts().clear();
-				getBrokerDatamarts().addAll((Collection<? extends TableBrokerDatamart>)newValue);
-				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -205,9 +165,6 @@
 			case TableDSLPackage.TABLE_EVENT__SOURCE:
 				setSource((TableValueElement)null);
 				return;
-			case TableDSLPackage.TABLE_EVENT__BROKER_DATAMARTS:
-				getBrokerDatamarts().clear();
-				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -222,8 +179,6 @@
 		switch (featureID) {
 			case TableDSLPackage.TABLE_EVENT__SOURCE:
 				return source != null;
-			case TableDSLPackage.TABLE_EVENT__BROKER_DATAMARTS:
-				return brokerDatamarts != null && !brokerDatamarts.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableFormatterImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableFormatterImpl.java
index 1df24ea..5c9db8d 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableFormatterImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableFormatterImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -28,10 +28,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableFormatterImpl#getFormat <em>Format</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableGridImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableGridImpl.java
index 4853ada..02257ea 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableGridImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableGridImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -34,6 +34,7 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableGridImpl#isPolling <em>Polling</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableGridImpl#getPollingTime <em>Polling Time</em>}</li>
@@ -44,7 +45,6 @@
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableGridImpl#getHeaderMode <em>Header Mode</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableGridImpl#getSource <em>Source</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableGridPropertyImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableGridPropertyImpl.java
index 61107c8..19ad490 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableGridPropertyImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableGridPropertyImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -24,8 +24,6 @@
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Table Grid Property</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableHierarchyImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableHierarchyImpl.java
index f5ba0c7..821a1ed 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableHierarchyImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableHierarchyImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,10 +31,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableHierarchyImpl#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableIconImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableIconImpl.java
index 809b0da..8cccf64 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableIconImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableIconImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -28,10 +28,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableIconImpl#getIcon <em>Icon</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableImageImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableImageImpl.java
index 5f92e40..d616b15 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableImageImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableImageImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,6 +31,7 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableImageImpl#getImagePathPattern <em>Image Path Pattern</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableImageImpl#isHideImageLabel <em>Hide Image Label</em>}</li>
@@ -39,7 +40,6 @@
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableImageImpl#getResizeString <em>Resize String</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableImageImpl#getImagePathParameter <em>Image Path Parameter</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableImpl.java
index e3c1423..c1bb4fc 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,12 +31,12 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableImpl#isDescription <em>Description</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableImpl#getDescriptionValue <em>Description Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableImpl#getTabletype <em>Tabletype</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableIntIntervalImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableIntIntervalImpl.java
new file mode 100644
index 0000000..47c1e47
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableIntIntervalImpl.java
@@ -0,0 +1,254 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License v1.0 
+ *  which accompanies this distribution, and is available at 
+ *  http{//www.eclipse.org/legal/epl-v10.html 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ * 
+ *  Contributors{  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.table.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.table.TableDSLPackage;
+import org.eclipse.osbp.xtext.table.TableIntInterval;
+import org.eclipse.osbp.xtext.table.TableRangeElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Int Interval</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableIntIntervalImpl#getIntIntervalValue <em>Int Interval Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableIntIntervalImpl#getIntRange <em>Int Range</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TableIntIntervalImpl extends TableLazyResolverImpl implements TableIntInterval {
+	/**
+	 * The default value of the '{@link #getIntIntervalValue() <em>Int Interval Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIntIntervalValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int INT_INTERVAL_VALUE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getIntIntervalValue() <em>Int Interval Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIntIntervalValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected int intIntervalValue = INT_INTERVAL_VALUE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getIntRange() <em>Int Range</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIntRange()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableRangeElement intRange;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableIntIntervalImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TableDSLPackage.Literals.TABLE_INT_INTERVAL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getIntIntervalValue() {
+		return intIntervalValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIntIntervalValue(int newIntIntervalValue) {
+		int oldIntIntervalValue = intIntervalValue;
+		intIntervalValue = newIntIntervalValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_INT_INTERVAL__INT_INTERVAL_VALUE, oldIntIntervalValue, intIntervalValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableRangeElement getIntRange() {
+		return intRange;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetIntRange(TableRangeElement newIntRange, NotificationChain msgs) {
+		TableRangeElement oldIntRange = intRange;
+		intRange = newIntRange;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_INT_INTERVAL__INT_RANGE, oldIntRange, newIntRange);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIntRange(TableRangeElement newIntRange) {
+		if (newIntRange != intRange) {
+			NotificationChain msgs = null;
+			if (intRange != null)
+				msgs = ((InternalEObject)intRange).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TableDSLPackage.TABLE_INT_INTERVAL__INT_RANGE, null, msgs);
+			if (newIntRange != null)
+				msgs = ((InternalEObject)newIntRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TableDSLPackage.TABLE_INT_INTERVAL__INT_RANGE, null, msgs);
+			msgs = basicSetIntRange(newIntRange, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_INT_INTERVAL__INT_RANGE, newIntRange, newIntRange));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_INT_INTERVAL__INT_RANGE:
+				return basicSetIntRange(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_INT_INTERVAL__INT_INTERVAL_VALUE:
+				return getIntIntervalValue();
+			case TableDSLPackage.TABLE_INT_INTERVAL__INT_RANGE:
+				return getIntRange();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_INT_INTERVAL__INT_INTERVAL_VALUE:
+				setIntIntervalValue((Integer)newValue);
+				return;
+			case TableDSLPackage.TABLE_INT_INTERVAL__INT_RANGE:
+				setIntRange((TableRangeElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_INT_INTERVAL__INT_INTERVAL_VALUE:
+				setIntIntervalValue(INT_INTERVAL_VALUE_EDEFAULT);
+				return;
+			case TableDSLPackage.TABLE_INT_INTERVAL__INT_RANGE:
+				setIntRange((TableRangeElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_INT_INTERVAL__INT_INTERVAL_VALUE:
+				return intIntervalValue != INT_INTERVAL_VALUE_EDEFAULT;
+			case TableDSLPackage.TABLE_INT_INTERVAL__INT_RANGE:
+				return intRange != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (intIntervalValue: ");
+		result.append(intIntervalValue);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableIntIntervalImpl
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableIntLookupImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableIntLookupImpl.java
new file mode 100644
index 0000000..6f18bd8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableIntLookupImpl.java
@@ -0,0 +1,254 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials 
+ *  are made available under the terms of the Eclipse Public License v1.0 
+ *  which accompanies this distribution, and is available at 
+ *  http{//www.eclipse.org/legal/epl-v10.html 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ * 
+ *  Contributors{  
+ *  		Joerg Riegel - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.table.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.table.TableDSLPackage;
+import org.eclipse.osbp.xtext.table.TableIntLookup;
+import org.eclipse.osbp.xtext.table.TableRangeElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Int Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableIntLookupImpl#getLookupValue <em>Lookup Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableIntLookupImpl#getDiscrete <em>Discrete</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TableIntLookupImpl extends TableLazyResolverImpl implements TableIntLookup {
+	/**
+	 * The default value of the '{@link #getLookupValue() <em>Lookup Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLookupValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int LOOKUP_VALUE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getLookupValue() <em>Lookup Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLookupValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected int lookupValue = LOOKUP_VALUE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDiscrete() <em>Discrete</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDiscrete()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableRangeElement discrete;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableIntLookupImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TableDSLPackage.Literals.TABLE_INT_LOOKUP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getLookupValue() {
+		return lookupValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLookupValue(int newLookupValue) {
+		int oldLookupValue = lookupValue;
+		lookupValue = newLookupValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_INT_LOOKUP__LOOKUP_VALUE, oldLookupValue, lookupValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableRangeElement getDiscrete() {
+		return discrete;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDiscrete(TableRangeElement newDiscrete, NotificationChain msgs) {
+		TableRangeElement oldDiscrete = discrete;
+		discrete = newDiscrete;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_INT_LOOKUP__DISCRETE, oldDiscrete, newDiscrete);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDiscrete(TableRangeElement newDiscrete) {
+		if (newDiscrete != discrete) {
+			NotificationChain msgs = null;
+			if (discrete != null)
+				msgs = ((InternalEObject)discrete).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TableDSLPackage.TABLE_INT_LOOKUP__DISCRETE, null, msgs);
+			if (newDiscrete != null)
+				msgs = ((InternalEObject)newDiscrete).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TableDSLPackage.TABLE_INT_LOOKUP__DISCRETE, null, msgs);
+			msgs = basicSetDiscrete(newDiscrete, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_INT_LOOKUP__DISCRETE, newDiscrete, newDiscrete));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_INT_LOOKUP__DISCRETE:
+				return basicSetDiscrete(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_INT_LOOKUP__LOOKUP_VALUE:
+				return getLookupValue();
+			case TableDSLPackage.TABLE_INT_LOOKUP__DISCRETE:
+				return getDiscrete();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_INT_LOOKUP__LOOKUP_VALUE:
+				setLookupValue((Integer)newValue);
+				return;
+			case TableDSLPackage.TABLE_INT_LOOKUP__DISCRETE:
+				setDiscrete((TableRangeElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_INT_LOOKUP__LOOKUP_VALUE:
+				setLookupValue(LOOKUP_VALUE_EDEFAULT);
+				return;
+			case TableDSLPackage.TABLE_INT_LOOKUP__DISCRETE:
+				setDiscrete((TableRangeElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TableDSLPackage.TABLE_INT_LOOKUP__LOOKUP_VALUE:
+				return lookupValue != LOOKUP_VALUE_EDEFAULT;
+			case TableDSLPackage.TABLE_INT_LOOKUP__DISCRETE:
+				return discrete != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (lookupValue: ");
+		result.append(lookupValue);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableIntLookupImpl
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableLazyResolverImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableLazyResolverImpl.java
index d9f8e8a..598a3c8 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableLazyResolverImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableLazyResolverImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -19,10 +19,7 @@
 
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.osbp.dsl.xtext.lazyresolver.api.EcoreUtil3;
+import org.eclipse.osbp.xtext.oxtype.resource.EcoreUtil3;
 
 import org.eclipse.osbp.xtext.table.TableDSLPackage;
 import org.eclipse.osbp.xtext.table.TableLazyResolver;
@@ -31,8 +28,6 @@
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Table Lazy Resolver</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */
@@ -62,9 +57,7 @@
 	 * @generated
 	 */
 	public EObject eResolveProxy(final InternalEObject proxy) {
-		Resource _eResource = this.eResource();
-		ResourceSet _resourceSet = _eResource.getResourceSet();
-		return EcoreUtil3.resolve(proxy, _resourceSet);
+		return EcoreUtil3.resolve(proxy, this.eResource().getResourceSet());
 	}
 
 } //TableLazyResolverImpl
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableMeasureImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableMeasureImpl.java
index d46a4ff..57e9830 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableMeasureImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableMeasureImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,10 +31,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableMeasureImpl#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableModelImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableModelImpl.java
index c91c95b..46e47f2 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableModelImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableModelImpl.java
@@ -8,13 +8,14 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
 
 import java.util.Collection;
 
+import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
 import org.eclipse.emf.common.util.EList;
@@ -22,6 +23,7 @@
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
@@ -31,21 +33,34 @@
 import org.eclipse.osbp.xtext.table.TableModel;
 import org.eclipse.osbp.xtext.table.TablePackage;
 
+import org.eclipse.xtext.xtype.XImportSection;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Table Model</b></em>'.
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableModelImpl#getImportSection <em>Import Section</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableModelImpl#getPackages <em>Packages</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
 public class TableModelImpl extends MinimalEObjectImpl.Container implements TableModel {
 	/**
+	 * The cached value of the '{@link #getImportSection() <em>Import Section</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImportSection()
+	 * @generated
+	 * @ordered
+	 */
+	protected XImportSection importSection;
+
+	/**
 	 * The cached value of the '{@link #getPackages() <em>Packages</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -79,6 +94,49 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public XImportSection getImportSection() {
+		return importSection;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetImportSection(XImportSection newImportSection, NotificationChain msgs) {
+		XImportSection oldImportSection = importSection;
+		importSection = newImportSection;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_MODEL__IMPORT_SECTION, oldImportSection, newImportSection);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setImportSection(XImportSection newImportSection) {
+		if (newImportSection != importSection) {
+			NotificationChain msgs = null;
+			if (importSection != null)
+				msgs = ((InternalEObject)importSection).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TableDSLPackage.TABLE_MODEL__IMPORT_SECTION, null, msgs);
+			if (newImportSection != null)
+				msgs = ((InternalEObject)newImportSection).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TableDSLPackage.TABLE_MODEL__IMPORT_SECTION, null, msgs);
+			msgs = basicSetImportSection(newImportSection, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_MODEL__IMPORT_SECTION, newImportSection, newImportSection));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EList<TablePackage> getPackages() {
 		if (packages == null) {
 			packages = new EObjectContainmentEList<TablePackage>(TablePackage.class, this, TableDSLPackage.TABLE_MODEL__PACKAGES);
@@ -94,6 +152,8 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
+			case TableDSLPackage.TABLE_MODEL__IMPORT_SECTION:
+				return basicSetImportSection(null, msgs);
 			case TableDSLPackage.TABLE_MODEL__PACKAGES:
 				return ((InternalEList<?>)getPackages()).basicRemove(otherEnd, msgs);
 		}
@@ -108,6 +168,8 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case TableDSLPackage.TABLE_MODEL__IMPORT_SECTION:
+				return getImportSection();
 			case TableDSLPackage.TABLE_MODEL__PACKAGES:
 				return getPackages();
 		}
@@ -123,6 +185,9 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case TableDSLPackage.TABLE_MODEL__IMPORT_SECTION:
+				setImportSection((XImportSection)newValue);
+				return;
 			case TableDSLPackage.TABLE_MODEL__PACKAGES:
 				getPackages().clear();
 				getPackages().addAll((Collection<? extends TablePackage>)newValue);
@@ -139,6 +204,9 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case TableDSLPackage.TABLE_MODEL__IMPORT_SECTION:
+				setImportSection((XImportSection)null);
+				return;
 			case TableDSLPackage.TABLE_MODEL__PACKAGES:
 				getPackages().clear();
 				return;
@@ -154,6 +222,8 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case TableDSLPackage.TABLE_MODEL__IMPORT_SECTION:
+				return importSection != null;
 			case TableDSLPackage.TABLE_MODEL__PACKAGES:
 				return packages != null && !packages.isEmpty();
 		}
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableNumberIntervalImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableNumberIntervalImpl.java
index c0b544c..6c4cf43 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableNumberIntervalImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableNumberIntervalImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,11 +31,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableNumberIntervalImpl#getNumberIntervalValue <em>Number Interval Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableNumberIntervalImpl#getNumberRange <em>Number Range</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableNumberLookupImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableNumberLookupImpl.java
index 1b9b1cb..fd12c15 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableNumberLookupImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableNumberLookupImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,11 +31,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableNumberLookupImpl#getLookupValue <em>Lookup Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableNumberLookupImpl#getDiscrete <em>Discrete</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableOrdinalImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableOrdinalImpl.java
index 248b31c..d2b28ef 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableOrdinalImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableOrdinalImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -28,10 +28,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableOrdinalImpl#getValueRef <em>Value Ref</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TablePackageImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TablePackageImpl.java
index ca35af2..1b05755 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TablePackageImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TablePackageImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -37,10 +37,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TablePackageImpl#getTables <em>Tables</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TablePreorderImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TablePreorderImpl.java
index 015dace..45ea0df 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TablePreorderImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TablePreorderImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,11 +31,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TablePreorderImpl#getColumn <em>Column</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TablePreorderImpl#isAscending <em>Ascending</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableSelectionImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableSelectionImpl.java
index 14f7696..56b5b63 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableSelectionImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableSelectionImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -28,10 +28,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableSelectionImpl#isMultiSelection <em>Multi Selection</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableStringLookupImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableStringLookupImpl.java
index df80bb6..5549054 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableStringLookupImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableStringLookupImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -31,11 +31,11 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableStringLookupImpl#getLookupValue <em>Lookup Value</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableStringLookupImpl#getDiscrete <em>Discrete</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTableImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTableImpl.java
index de35cd9..2c2eb13 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTableImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTableImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -34,17 +34,18 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTableImpl#isPolling <em>Polling</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTableImpl#getPollingTime <em>Polling Time</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTableImpl#isFiltering <em>Filtering</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTableImpl#getToolbar <em>Toolbar</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTableImpl#isEmbedded <em>Embedded</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTableImpl#isSelectById <em>Select By Id</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTableImpl#isSelectalways <em>Selectalways</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTableImpl#getHeaderMode <em>Header Mode</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTableImpl#getSource <em>Source</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
@@ -140,6 +141,26 @@
 	protected boolean embedded = EMBEDDED_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #isSelectById() <em>Select By Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSelectById()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SELECT_BY_ID_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isSelectById() <em>Select By Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSelectById()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean selectById = SELECT_BY_ID_EDEFAULT;
+
+	/**
 	 * The default value of the '{@link #isSelectalways() <em>Selectalways</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -335,6 +356,27 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public boolean isSelectById() {
+		return selectById;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSelectById(boolean newSelectById) {
+		boolean oldSelectById = selectById;
+		selectById = newSelectById;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TableDSLPackage.TABLE_TABLE__SELECT_BY_ID, oldSelectById, selectById));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public boolean isSelectalways() {
 		return selectalways;
 	}
@@ -448,6 +490,8 @@
 				return basicGetToolbar();
 			case TableDSLPackage.TABLE_TABLE__EMBEDDED:
 				return isEmbedded();
+			case TableDSLPackage.TABLE_TABLE__SELECT_BY_ID:
+				return isSelectById();
 			case TableDSLPackage.TABLE_TABLE__SELECTALWAYS:
 				return isSelectalways();
 			case TableDSLPackage.TABLE_TABLE__HEADER_MODE:
@@ -481,6 +525,9 @@
 			case TableDSLPackage.TABLE_TABLE__EMBEDDED:
 				setEmbedded((Boolean)newValue);
 				return;
+			case TableDSLPackage.TABLE_TABLE__SELECT_BY_ID:
+				setSelectById((Boolean)newValue);
+				return;
 			case TableDSLPackage.TABLE_TABLE__SELECTALWAYS:
 				setSelectalways((Boolean)newValue);
 				return;
@@ -517,6 +564,9 @@
 			case TableDSLPackage.TABLE_TABLE__EMBEDDED:
 				setEmbedded(EMBEDDED_EDEFAULT);
 				return;
+			case TableDSLPackage.TABLE_TABLE__SELECT_BY_ID:
+				setSelectById(SELECT_BY_ID_EDEFAULT);
+				return;
 			case TableDSLPackage.TABLE_TABLE__SELECTALWAYS:
 				setSelectalways(SELECTALWAYS_EDEFAULT);
 				return;
@@ -548,6 +598,8 @@
 				return toolbar != null;
 			case TableDSLPackage.TABLE_TABLE__EMBEDDED:
 				return embedded != EMBEDDED_EDEFAULT;
+			case TableDSLPackage.TABLE_TABLE__SELECT_BY_ID:
+				return selectById != SELECT_BY_ID_EDEFAULT;
 			case TableDSLPackage.TABLE_TABLE__SELECTALWAYS:
 				return selectalways != SELECTALWAYS_EDEFAULT;
 			case TableDSLPackage.TABLE_TABLE__HEADER_MODE:
@@ -576,6 +628,8 @@
 		result.append(filtering);
 		result.append(", embedded: ");
 		result.append(embedded);
+		result.append(", selectById: ");
+		result.append(selectById);
 		result.append(", selectalways: ");
 		result.append(selectalways);
 		result.append(", headerMode: ");
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTaskImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTaskImpl.java
index 354fa8b..089c019 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTaskImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTaskImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -22,8 +22,6 @@
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Table Task</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTextColorImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTextColorImpl.java
index 02d1ac7..8b61b1b 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTextColorImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTextColorImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -28,10 +28,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTextColorImpl#getRgb <em>Rgb</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTooltipImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTooltipImpl.java
index c22790e..9e87767 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTooltipImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTooltipImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -28,10 +28,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTooltipImpl#getTooltip <em>Tooltip</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTooltipPatternImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTooltipPatternImpl.java
index 26c70e4..0236602 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTooltipPatternImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTooltipPatternImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -28,10 +28,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTooltipPatternImpl#getTooltipPattern <em>Tooltip Pattern</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTrendImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTrendImpl.java
index 6cbb76a..54b2551 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTrendImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableTrendImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -29,10 +29,10 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableTrendImpl#getIcon <em>Icon</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableValueImpl.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableValueImpl.java
index 587dc5e..9a5f68c 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableValueImpl.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/impl/TableValueImpl.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.impl;
@@ -43,6 +43,7 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableValueImpl#getColumn <em>Column</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableValueImpl#isCollapsed <em>Collapsed</em>}</li>
@@ -56,7 +57,6 @@
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableValueImpl#getImage <em>Image</em>}</li>
  *   <li>{@link org.eclipse.osbp.xtext.table.impl.TableValueImpl#getIconName <em>Icon Name</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/util/TableDSLAdapterFactory.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/util/TableDSLAdapterFactory.java
index 88cc25c..48721f6 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/util/TableDSLAdapterFactory.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/util/TableDSLAdapterFactory.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.util;
@@ -121,6 +121,14 @@
 				return createTableGridAdapter();
 			}
 			@Override
+			public Adapter caseTableBean(TableBean object) {
+				return createTableBeanAdapter();
+			}
+			@Override
+			public Adapter caseTableBeanDatasource(TableBeanDatasource object) {
+				return createTableBeanDatasourceAdapter();
+			}
+			@Override
 			public Adapter caseTableDtoDatasource(TableDtoDatasource object) {
 				return createTableDtoDatasourceAdapter();
 			}
@@ -181,8 +189,8 @@
 				return createTableHierarchyAdapter();
 			}
 			@Override
-			public Adapter caseTableProperty(TableProperty object) {
-				return createTablePropertyAdapter();
+			public Adapter caseTableAttribute(TableAttribute object) {
+				return createTableAttributeAdapter();
 			}
 			@Override
 			public Adapter caseTableAggregation(TableAggregation object) {
@@ -197,6 +205,10 @@
 				return createTableNumberIntervalAdapter();
 			}
 			@Override
+			public Adapter caseTableIntInterval(TableIntInterval object) {
+				return createTableIntIntervalAdapter();
+			}
+			@Override
 			public Adapter caseTableDateDayInterval(TableDateDayInterval object) {
 				return createTableDateDayIntervalAdapter();
 			}
@@ -209,6 +221,10 @@
 				return createTableNumberLookupAdapter();
 			}
 			@Override
+			public Adapter caseTableIntLookup(TableIntLookup object) {
+				return createTableIntLookupAdapter();
+			}
+			@Override
 			public Adapter caseTableStringLookup(TableStringLookup object) {
 				return createTableStringLookupAdapter();
 			}
@@ -233,10 +249,6 @@
 				return createTableEventAdapter();
 			}
 			@Override
-			public Adapter caseTableBrokerDatamart(TableBrokerDatamart object) {
-				return createTableBrokerDatamartAdapter();
-			}
-			@Override
 			public Adapter caseTableRangeElement(TableRangeElement object) {
 				return createTableRangeElementAdapter();
 			}
@@ -443,6 +455,34 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableBean <em>Table Bean</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.table.TableBean
+	 * @generated
+	 */
+	public Adapter createTableBeanAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableBeanDatasource <em>Table Bean Datasource</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.table.TableBeanDatasource
+	 * @generated
+	 */
+	public Adapter createTableBeanDatasourceAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableDtoDatasource <em>Table Dto Datasource</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -653,16 +693,16 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableProperty <em>Table Property</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableAttribute <em>Table Attribute</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see org.eclipse.osbp.xtext.table.TableProperty
+	 * @see org.eclipse.osbp.xtext.table.TableAttribute
 	 * @generated
 	 */
-	public Adapter createTablePropertyAdapter() {
+	public Adapter createTableAttributeAdapter() {
 		return null;
 	}
 
@@ -709,6 +749,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableIntInterval <em>Table Int Interval</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.table.TableIntInterval
+	 * @generated
+	 */
+	public Adapter createTableIntIntervalAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableDateDayInterval <em>Table Date Day Interval</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -751,6 +805,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableIntLookup <em>Table Int Lookup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.table.TableIntLookup
+	 * @generated
+	 */
+	public Adapter createTableIntLookupAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableStringLookup <em>Table String Lookup</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -835,20 +903,6 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableBrokerDatamart <em>Table Broker Datamart</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.osbp.xtext.table.TableBrokerDatamart
-	 * @generated
-	 */
-	public Adapter createTableBrokerDatamartAdapter() {
-		return null;
-	}
-
-	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.table.TableRangeElement <em>Table Range Element</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/util/TableDSLSwitch.java b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/util/TableDSLSwitch.java
index 985bff7..73413cd 100644
--- a/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/util/TableDSLSwitch.java
+++ b/org.eclipse.osbp.xtext.table/emf-gen/org/eclipse/osbp/xtext/table/util/TableDSLSwitch.java
@@ -8,7 +8,7 @@
  *  Based on ideas from Xtext, Xtend, Xcore
  * 
  *  Contributors{  
- *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
+ *  		Joerg Riegel - Initial implementation 
  *  
  */
 package org.eclipse.osbp.xtext.table.util;
@@ -64,7 +64,7 @@
 	 * Checks whether this is a switch for the given package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
@@ -150,6 +150,21 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case TableDSLPackage.TABLE_BEAN: {
+				TableBean tableBean = (TableBean)theEObject;
+				T result = caseTableBean(tableBean);
+				if (result == null) result = caseTableOption(tableBean);
+				if (result == null) result = caseTableLazyResolver(tableBean);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case TableDSLPackage.TABLE_BEAN_DATASOURCE: {
+				TableBeanDatasource tableBeanDatasource = (TableBeanDatasource)theEObject;
+				T result = caseTableBeanDatasource(tableBeanDatasource);
+				if (result == null) result = caseTableLazyResolver(tableBeanDatasource);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case TableDSLPackage.TABLE_DTO_DATASOURCE: {
 				TableDtoDatasource tableDtoDatasource = (TableDtoDatasource)theEObject;
 				T result = caseTableDtoDatasource(tableDtoDatasource);
@@ -269,12 +284,12 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case TableDSLPackage.TABLE_PROPERTY: {
-				TableProperty tableProperty = (TableProperty)theEObject;
-				T result = caseTableProperty(tableProperty);
-				if (result == null) result = caseExpression(tableProperty);
-				if (result == null) result = caseTableValueElement(tableProperty);
-				if (result == null) result = caseTableLazyResolver(tableProperty);
+			case TableDSLPackage.TABLE_ATTRIBUTE: {
+				TableAttribute tableAttribute = (TableAttribute)theEObject;
+				T result = caseTableAttribute(tableAttribute);
+				if (result == null) result = caseExpression(tableAttribute);
+				if (result == null) result = caseTableValueElement(tableAttribute);
+				if (result == null) result = caseTableLazyResolver(tableAttribute);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -302,6 +317,14 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case TableDSLPackage.TABLE_INT_INTERVAL: {
+				TableIntInterval tableIntInterval = (TableIntInterval)theEObject;
+				T result = caseTableIntInterval(tableIntInterval);
+				if (result == null) result = caseTableInterval(tableIntInterval);
+				if (result == null) result = caseTableLazyResolver(tableIntInterval);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case TableDSLPackage.TABLE_DATE_DAY_INTERVAL: {
 				TableDateDayInterval tableDateDayInterval = (TableDateDayInterval)theEObject;
 				T result = caseTableDateDayInterval(tableDateDayInterval);
@@ -325,6 +348,14 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case TableDSLPackage.TABLE_INT_LOOKUP: {
+				TableIntLookup tableIntLookup = (TableIntLookup)theEObject;
+				T result = caseTableIntLookup(tableIntLookup);
+				if (result == null) result = caseTableLookup(tableIntLookup);
+				if (result == null) result = caseTableLazyResolver(tableIntLookup);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case TableDSLPackage.TABLE_STRING_LOOKUP: {
 				TableStringLookup tableStringLookup = (TableStringLookup)theEObject;
 				T result = caseTableStringLookup(tableStringLookup);
@@ -370,13 +401,6 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case TableDSLPackage.TABLE_BROKER_DATAMART: {
-				TableBrokerDatamart tableBrokerDatamart = (TableBrokerDatamart)theEObject;
-				T result = caseTableBrokerDatamart(tableBrokerDatamart);
-				if (result == null) result = caseTableLazyResolver(tableBrokerDatamart);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			case TableDSLPackage.TABLE_RANGE_ELEMENT: {
 				TableRangeElement tableRangeElement = (TableRangeElement)theEObject;
 				T result = caseTableRangeElement(tableRangeElement);
@@ -611,6 +635,36 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Bean</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table Bean</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableBean(TableBean object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Bean Datasource</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table Bean Datasource</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableBeanDatasource(TableBeanDatasource object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Table Dto Datasource</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -836,17 +890,17 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Table Property</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Table Attribute</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Table Property</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Table Attribute</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseTableProperty(TableProperty object) {
+	public T caseTableAttribute(TableAttribute object) {
 		return null;
 	}
 
@@ -896,6 +950,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Int Interval</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table Int Interval</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableIntInterval(TableIntInterval object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Table Date Day Interval</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -941,6 +1010,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Int Lookup</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table Int Lookup</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableIntLookup(TableIntLookup object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Table String Lookup</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -1031,21 +1115,6 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Table Broker Datamart</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Table Broker Datamart</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseTableBrokerDatamart(TableBrokerDatamart object) {
-		return null;
-	}
-
-	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Table Range Element</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/org.eclipse.osbp.xtext.table/model/TableDSL.xcore b/org.eclipse.osbp.xtext.table/model/TableDSL.xcore
index c8f2806..bf57e0e 100644
--- a/org.eclipse.osbp.xtext.table/model/TableDSL.xcore
+++ b/org.eclipse.osbp.xtext.table/model/TableDSL.xcore
@@ -3,6 +3,9 @@
 @GenModel(prefix="TableDSL")
 @GenModel(operationReflection="false")
 @GenModel(updateClasspath="false")
+// force bigModel == false
+@GenModel(loadInitialization="false")
+@GenModel(literalsInterface="true")
 @GenModel(copyrightText="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 
@@ -22,10 +25,11 @@
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.emf.ecore.InternalEObject
 import org.eclipse.osbp.dsl.semantic.common.types.LPackage
-import org.eclipse.osbp.dsl.semantic.entity.LEntityReference
-import org.eclipse.osbp.dsl.xtext.lazyresolver.api.EcoreUtil3
+import org.eclipse.osbp.xtext.oxtype.resource.EcoreUtil3
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath
 import org.eclipse.osbp.xtext.action.ActionToolbar
 import org.eclipse.osbp.xtext.cubedsl.CubeLevel
 import org.eclipse.osbp.xtext.datamartdsl.AxisEnum
@@ -33,12 +37,13 @@
 import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition
 import org.eclipse.osbp.xtext.datamartdsl.DatamartDerivedMeasure
 import org.eclipse.osbp.xtext.datamartdsl.DatamartMeasure
-import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty
+import org.eclipse.osbp.xtext.datamartdsl.DatamartAttribute
 import org.eclipse.osbp.xtext.datamartdsl.DatamartSetAggregationFunction
 import org.eclipse.osbp.dsl.semantic.dto.LDto
-import org.eclipse.xtext.common.types.JvmTypeReference
+import org.eclipse.xtext.xtype.XImportSection
 
 class TableModel{
+	contains XImportSection importSection
 	contains TablePackage[] packages
 }
 
@@ -77,6 +82,7 @@
 }
 
 class TableTable extends TableOption{
+	boolean selectById
 	boolean selectalways
 	RowHeaderMode headerMode
 	contains TableDatamart source
@@ -88,14 +94,20 @@
 	contains TableDtoDatasource source
 }
 
+class TableBean extends TableOption{
+	boolean selectById
+	boolean selectalways 
+	RowHeaderMode headerMode
+	contains TableDatamart source
+}
+
+class TableBeanDatasource extends TableLazyResolver{
+	refers DatamartDefinition datamartRef
+	contains TableElement[] elements
+}
+
 class TableDtoDatasource extends CxGridSource {
 	refers LDto dtoSource
-	/**
-	 * @attention returns the wrapped entity instead of the dto
-	 */
-	op JvmTypeReference getRootType() {
-		return dtoSource?.getWrappedTypeJvm
-	}
 }
 
 class TableGridProperty extends CxGridProperty {
@@ -166,8 +178,8 @@
 	refers CubeLevel valueRef
 }
 
-class TableProperty extends Expression, TableValueElement{
-	refers DatamartProperty valueRef
+class TableAttribute extends Expression, TableValueElement{
+	refers DatamartAttribute valueRef
 }
 
 class TableAggregation extends Expression, TableValueElement{
@@ -182,8 +194,13 @@
 	contains TableRangeElement numberRange
 }
 
+class TableIntInterval extends TableInterval{
+	int intIntervalValue
+	contains TableRangeElement intRange
+}
+
 class TableDateDayInterval extends TableInterval{
-	double dateIntervalValue
+	int dateIntervalValue
 	contains TableRangeElement dateRange
 }
 
@@ -195,13 +212,18 @@
 	contains TableRangeElement discrete
 }
 
+class TableIntLookup extends TableLookup{
+	int lookupValue
+	contains TableRangeElement discrete
+}
+
 class TableStringLookup extends TableLookup{
 	String lookupValue
 	contains TableRangeElement discrete
 }
 
 class TableDateDayLookup extends TableLookup{
-	double lookupValue
+	int lookupValue
 	contains TableRangeElement discrete
 }
 
@@ -226,13 +248,6 @@
 
 class TableEvent extends TableLazyResolver{
 	contains TableValueElement source
-	contains TableBrokerDatamart[] brokerDatamarts
-}
-
-class TableBrokerDatamart extends TableLazyResolver{
-	refers DatamartDefinition datamartDef
-	String filter
-	refers LEntityReference reference
 }
 
 interface TableRangeElement extends TableLazyResolver{
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/AbstractTableDSLRuntimeModule.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/AbstractTableDSLRuntimeModule.java
index cd7ad39..e17e64a 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/AbstractTableDSLRuntimeModule.java
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/AbstractTableDSLRuntimeModule.java
@@ -1,31 +1,73 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table;
 
-import java.util.Properties;
-
-import org.eclipse.xtext.Constants;
-import org.eclipse.xtext.service.DefaultRuntimeModule;
-
 import com.google.inject.Binder;
+import com.google.inject.Provider;
 import com.google.inject.name.Names;
+import java.util.Properties;
+import org.eclipse.osbp.xtext.table.jvmmodel.TableDSLJvmModelInferrer;
+import org.eclipse.osbp.xtext.table.parser.antlr.TableDSLAntlrTokenFileProvider;
+import org.eclipse.osbp.xtext.table.parser.antlr.TableDSLParser;
+import org.eclipse.osbp.xtext.table.parser.antlr.internal.InternalTableDSLLexer;
+import org.eclipse.osbp.xtext.table.scoping.TableDSLScopeProvider;
+import org.eclipse.osbp.xtext.table.serializer.TableDSLSemanticSequencer;
+import org.eclipse.osbp.xtext.table.serializer.TableDSLSyntacticSequencer;
+import org.eclipse.osbp.xtext.table.services.TableDSLGrammarAccess;
+import org.eclipse.osbp.xtext.table.validation.TableDSLValidator;
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.parser.IParser;
+import org.eclipse.xtext.parser.ITokenToStringConverter;
+import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
+import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
+import org.eclipse.xtext.parser.antlr.IUnorderedGroupHelper;
+import org.eclipse.xtext.parser.antlr.Lexer;
+import org.eclipse.xtext.parser.antlr.LexerBindings;
+import org.eclipse.xtext.parser.antlr.LexerProvider;
+import org.eclipse.xtext.parser.antlr.UnorderedGroupHelper;
+import org.eclipse.xtext.resource.IContainer;
+import org.eclipse.xtext.resource.ILocationInFileProvider;
+import org.eclipse.xtext.resource.IResourceDescriptions;
+import org.eclipse.xtext.resource.containers.IAllContainersState;
+import org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider;
+import org.eclipse.xtext.resource.containers.StateBasedContainerManager;
+import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
+import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions;
+import org.eclipse.xtext.scoping.IGlobalScopeProvider;
+import org.eclipse.xtext.scoping.IScopeProvider;
+import org.eclipse.xtext.scoping.IgnoreCaseLinking;
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
+import org.eclipse.xtext.serializer.ISerializer;
+import org.eclipse.xtext.serializer.impl.Serializer;
+import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer;
+import org.eclipse.xtext.service.SingletonBinding;
+import org.eclipse.xtext.validation.IResourceValidator;
+import org.eclipse.xtext.xbase.annotations.DefaultXbaseWithAnnotationsRuntimeModule;
+import org.eclipse.xtext.xbase.annotations.validation.DerivedStateAwareResourceValidator;
+import org.eclipse.xtext.xbase.jvmmodel.IJvmModelInferrer;
+import org.eclipse.xtext.xbase.jvmmodel.JvmLocationInFileProvider;
+import org.eclipse.xtext.xbase.scoping.XImportSectionNamespaceScopeProvider;
+import org.eclipse.xtext.xbase.scoping.XbaseQualifiedNameProvider;
+import org.eclipse.xtext.xbase.scoping.batch.IBatchScopeProvider;
+import org.eclipse.xtext.xbase.typesystem.internal.DefaultBatchTypeResolver;
+import org.eclipse.xtext.xbase.typesystem.internal.DefaultReentrantTypeResolver;
+import org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareBatchTypeResolver;
+import org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareReentrantTypeResolver;
+import org.eclipse.xtext.xbase.validation.FeatureNameValidator;
+import org.eclipse.xtext.xbase.validation.LogicalContainerAwareFeatureNameValidator;
 
 /**
- * Manual modifications go to {org.eclipse.osbp.xtext.table.TableDSLRuntimeModule}
+ * Manual modifications go to {@link TableDSLRuntimeModule}.
  */
- @SuppressWarnings("all")
-public abstract class AbstractTableDSLRuntimeModule extends DefaultRuntimeModule {
+@SuppressWarnings("all")
+public abstract class AbstractTableDSLRuntimeModule extends DefaultXbaseWithAnnotationsRuntimeModule {
 
 	protected Properties properties = null;
 
@@ -44,309 +86,152 @@
 			binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("table");
 	}
 	
-	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
-	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
-		return org.eclipse.osbp.xtext.table.serializer.TableDSLSemanticSequencer.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
-	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
-		return org.eclipse.osbp.xtext.table.serializer.TableDSLSyntacticSequencer.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
-	public Class<? extends org.eclipse.xtext.serializer.ISerializer> bindISerializer() {
-		return org.eclipse.xtext.serializer.impl.Serializer.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
-		return org.eclipse.osbp.xtext.table.parser.antlr.TableDSLParser.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
-		return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
-		return org.eclipse.osbp.xtext.table.parser.antlr.TableDSLAntlrTokenFileProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
-		return org.eclipse.osbp.xtext.table.parser.antlr.internal.InternalTableDSLLexer.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public com.google.inject.Provider<org.eclipse.osbp.xtext.table.parser.antlr.internal.InternalTableDSLLexer> provideInternalTableDSLLexer() {
-		return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.osbp.xtext.table.parser.antlr.internal.InternalTableDSLLexer.class);
-	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public void configureRuntimeLexer(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.eclipse.osbp.xtext.table.parser.antlr.internal.InternalTableDSLLexer.class);
-	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
-		return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
-	public Class<? extends org.eclipse.xtext.parser.antlr.IUnorderedGroupHelper> bindIUnorderedGroupHelper() {
-		return org.eclipse.xtext.parser.antlr.UnorderedGroupHelper.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.validation.ValidatorFragment
-	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.eclipse.osbp.xtext.table.validation.TableDSLValidator> bindTableDSLValidator() {
-		return org.eclipse.osbp.xtext.table.validation.TableDSLValidator.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
-	public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
-		binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
-	}
-
-	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
-	public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() {
-		return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
-	public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() {
-		return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
-	public void configureIResourceDescriptions(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
-	}
-
-	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
-	public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
-	}
-
-	// contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
-	public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
-		return org.eclipse.osbp.xtext.table.formatting.TableDSLFormatter.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public org.eclipse.xtext.common.types.TypesFactory bindTypesFactoryToInstance() {
-		return org.eclipse.xtext.common.types.TypesFactory.eINSTANCE;
-	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
-		return org.eclipse.xtext.common.types.access.ClasspathTypeProviderFactory.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
-	public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
-		return org.eclipse.xtext.common.types.xtext.ClasspathBasedTypeScopeProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.interpreter.IEvaluationContext> bindIEvaluationContext() {
-		return org.eclipse.xtext.xbase.interpreter.impl.DefaultEvaluationContext.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.interpreter.IExpressionInterpreter> bindIExpressionInterpreter() {
-		return org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.naming.IQualifiedNameConverter> bindIQualifiedNameConverter() {
-		return org.eclipse.xtext.xbase.XbaseQualifiedNameConverter.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
-		return org.eclipse.xtext.xbase.scoping.XbaseQualifiedNameProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.conversion.IValueConverterService> bindIValueConverterService() {
-		return org.eclipse.xtext.xbase.conversion.XbaseValueConverterService.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
-		return org.eclipse.xtext.xbase.scoping.batch.IBatchScopeProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public void configureLinkingIScopeProvider(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(org.eclipse.xtext.linking.LinkingScopeProviderBinding.class).to(org.eclipse.xtext.xbase.scoping.batch.IBatchScopeProvider.class);
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public void configureSerializerIScopeProvider(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(org.eclipse.xtext.serializer.tokens.SerializerScopeProviderBinding.class).to(org.eclipse.xtext.xbase.serializer.SerializerScopeProvider.class);
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
-		binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.xbase.scoping.XbaseImportedNamespaceScopeProvider.class);
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.linking.ILinker> bindILinker() {
-		return org.eclipse.xtext.xbase.linking.XbaseLazyLinker.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.resource.XtextResource> bindXtextResource() {
-		return org.eclipse.xtext.xbase.resource.BatchLinkableResource.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.eclipse.xtext.xbase.validation.JvmTypeReferencesValidator> bindJvmTypeReferencesValidator() {
-		return org.eclipse.xtext.xbase.validation.JvmTypeReferencesValidator.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.featurecalls.IdentifiableSimpleNameProvider> bindIdentifiableSimpleNameProvider() {
-		return org.eclipse.xtext.xbase.featurecalls.IdentifiableSimpleNameProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.resource.IDerivedStateComputer> bindIDerivedStateComputer() {
-		return org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.resource.IResourceDescription.Manager> bindIResourceDescription$Manager() {
-		return org.eclipse.xtext.resource.DerivedStateAwareResourceDescriptionManager.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() {
-		return org.eclipse.xtext.xbase.compiler.JvmModelGenerator.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public org.eclipse.xtext.xtype.XtypeFactory bindXtypeFactoryToInstance() {
-		return org.eclipse.xtext.xtype.XtypeFactory.eINSTANCE;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.debug.IStratumBreakpointSupport> bindIStratumBreakpointSupport() {
-		return org.eclipse.xtext.xbase.debug.XbaseStratumBreakpointSupport.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.generator.LineSeparatorHarmonizer> bindLineSeparatorHarmonizer() {
-		return org.eclipse.xtext.xbase.compiler.output.TraceAwarePostProcessor.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy> bindIDefaultResourceDescriptionStrategy() {
-		return org.eclipse.xtext.xbase.resource.XbaseResourceDescriptionStrategy.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.validation.SeverityConverter> bindSeverityConverter() {
-		return org.eclipse.xtext.xbase.validation.XbaseSeverityConverter.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.validation.ConfigurableIssueCodesProvider> bindConfigurableIssueCodesProvider() {
-		return org.eclipse.xtext.xbase.validation.XbaseConfigurableIssueCodes.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.resource.EObjectAtOffsetHelper> bindEObjectAtOffsetHelper() {
-		return org.eclipse.xtext.xbase.linking.BrokenConstructorCallAwareEObjectAtOffsetHelper.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.validation.CancelableDiagnostician> bindCancelableDiagnostician() {
-		return org.eclipse.xtext.xbase.validation.XbaseDiagnostician.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.scoping.featurecalls.StaticImplicitMethodsFeatureForTypeProvider.ExtensionClassNameProvider> bindStaticImplicitMethodsFeatureForTypeProvider$ExtensionClassNameProvider() {
-		return org.eclipse.xtext.xbase.scoping.batch.ImplicitlyImportedTypesAdapter.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtend.lib.macro.file.MutableFileSystemSupport> bindMutableFileSystemSupport() {
-		return org.eclipse.xtext.xbase.file.JavaIOFileSystemSupport.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtend.lib.macro.file.FileLocations> bindFileLocations() {
-		return org.eclipse.xtext.xbase.file.FileLocationsImpl.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends com.google.inject.Provider<org.eclipse.xtext.xbase.file.WorkspaceConfig>> provideWorkspaceConfig() {
-		return org.eclipse.xtext.xbase.file.RuntimeWorkspaceConfigProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.typesystem.computation.ITypeComputer> bindITypeComputer() {
-		return org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsTypeComputer.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.scoping.batch.XbaseBatchScopeProvider> bindXbaseBatchScopeProvider() {
-		return org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.linking.ILinkingDiagnosticMessageProvider> bindILinkingDiagnosticMessageProvider() {
-		return org.eclipse.xtext.xbase.annotations.validation.UnresolvedAnnotationTypeAwareMessageProducer.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.resource.ILocationInFileProvider> bindILocationInFileProvider() {
-		return org.eclipse.xtext.xbase.jvmmodel.JvmLocationInFileProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
-		return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.validation.FeatureNameValidator> bindFeatureNameValidator() {
-		return org.eclipse.xtext.xbase.validation.LogicalContainerAwareFeatureNameValidator.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.typesystem.internal.DefaultBatchTypeResolver> bindDefaultBatchTypeResolver() {
-		return org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareBatchTypeResolver.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.typesystem.internal.DefaultReentrantTypeResolver> bindDefaultReentrantTypeResolver() {
-		return org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareReentrantTypeResolver.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.validation.IResourceValidator> bindIResourceValidator() {
-		return org.eclipse.xtext.xbase.annotations.validation.DerivedStateAwareResourceValidator.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
-	public Class<? extends org.eclipse.xtext.xbase.jvmmodel.IJvmModelInferrer> bindIJvmModelInferrer() {
-		return org.eclipse.osbp.xtext.table.jvmmodel.TableDSLJvmModelInferrer.class;
-	}
-
-	// contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
-	public java.lang.ClassLoader bindClassLoaderToInstance() {
+	// contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
+	public ClassLoader bindClassLoaderToInstance() {
 		return getClass().getClassLoader();
 	}
-
-	// contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
-	public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
-		return org.eclipse.osbp.xtext.table.services.TableDSLGrammarAccess.class;
+	
+	// contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
+	public Class<? extends IGrammarAccess> bindIGrammarAccess() {
+		return TableDSLGrammarAccess.class;
 	}
-
+	
+	// contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
+	public Class<? extends ISemanticSequencer> bindISemanticSequencer() {
+		return TableDSLSemanticSequencer.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
+	public Class<? extends ISyntacticSequencer> bindISyntacticSequencer() {
+		return TableDSLSyntacticSequencer.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
+	public Class<? extends ISerializer> bindISerializer() {
+		return Serializer.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends IParser> bindIParser() {
+		return TableDSLParser.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends ITokenToStringConverter> bindITokenToStringConverter() {
+		return AntlrTokenToStringConverter.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+		return TableDSLAntlrTokenFileProvider.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends Lexer> bindLexer() {
+		return InternalTableDSLLexer.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends ITokenDefProvider> bindITokenDefProvider() {
+		return AntlrTokenDefProvider.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Provider<? extends InternalTableDSLLexer> provideInternalTableDSLLexer() {
+		return LexerProvider.create(InternalTableDSLLexer.class);
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public void configureRuntimeLexer(Binder binder) {
+		binder.bind(Lexer.class)
+			.annotatedWith(Names.named(LexerBindings.RUNTIME))
+			.to(InternalTableDSLLexer.class);
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends IUnorderedGroupHelper> bindIUnorderedGroupHelper() {
+		return UnorderedGroupHelper.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
+	@SingletonBinding(eager=true)
+	public Class<? extends TableDSLValidator> bindTableDSLValidator() {
+		return TableDSLValidator.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+	public Class<? extends IBatchScopeProvider> bindIBatchScopeProvider() {
+		return TableDSLScopeProvider.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+	public void configureIScopeProviderDelegate(Binder binder) {
+		binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(XImportSectionNamespaceScopeProvider.class);
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
+	public void configureIgnoreCaseLinking(Binder binder) {
+		binder.bindConstant().annotatedWith(IgnoreCaseLinking.class).to(false);
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+	public Class<? extends IContainer.Manager> bindIContainer$Manager() {
+		return StateBasedContainerManager.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+	public Class<? extends IAllContainersState.Provider> bindIAllContainersState$Provider() {
+		return ResourceSetBasedAllContainersStateProvider.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+	public void configureIResourceDescriptions(Binder binder) {
+		binder.bind(IResourceDescriptions.class).to(ResourceSetBasedResourceDescriptions.class);
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
+	public void configureIResourceDescriptionsPersisted(Binder binder) {
+		binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(ResourceSetBasedResourceDescriptions.class);
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
+		return XbaseQualifiedNameProvider.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends ILocationInFileProvider> bindILocationInFileProvider() {
+		return JvmLocationInFileProvider.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IGlobalScopeProvider> bindIGlobalScopeProvider() {
+		return TypesAwareDefaultGlobalScopeProvider.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends FeatureNameValidator> bindFeatureNameValidator() {
+		return LogicalContainerAwareFeatureNameValidator.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends DefaultBatchTypeResolver> bindDefaultBatchTypeResolver() {
+		return LogicalContainerAwareBatchTypeResolver.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends DefaultReentrantTypeResolver> bindDefaultReentrantTypeResolver() {
+		return LogicalContainerAwareReentrantTypeResolver.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IResourceValidator> bindIResourceValidator() {
+		return DerivedStateAwareResourceValidator.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.xbase.XbaseGeneratorFragment2
+	public Class<? extends IJvmModelInferrer> bindIJvmModelInferrer() {
+		return TableDSLJvmModelInferrer.class;
+	}
+	
 }
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/TableDSL.xtextbin b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/TableDSL.xtextbin
new file mode 100644
index 0000000..504752e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/TableDSL.xtextbin
Binary files differ
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/TableDSLStandaloneSetupGenerated.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/TableDSLStandaloneSetupGenerated.java
index 230fd65..3827d12 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/TableDSLStandaloneSetupGenerated.java
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/TableDSLStandaloneSetupGenerated.java
@@ -1,33 +1,22 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table;
 
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.xtext.ISetup;
-import org.eclipse.emf.ecore.resource.Resource;
-
 import com.google.inject.Guice;
 import com.google.inject.Injector;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.osbp.xtext.oxtype.OXtypeStandaloneSetup;
+import org.eclipse.xtext.ISetup;
+import org.eclipse.xtext.resource.IResourceFactory;
+import org.eclipse.xtext.resource.IResourceServiceProvider;
 
-/**
- * Generated from StandaloneSetup.xpt!
- */
 @SuppressWarnings("all")
 public class TableDSLStandaloneSetupGenerated implements ISetup {
 
+	@Override
 	public Injector createInjectorAndDoEMFRegistration() {
-		org.eclipse.xtext.xbase.annotations.XbaseWithAnnotationsStandaloneSetup.doSetup();
+		OXtypeStandaloneSetup.doSetup();
 
 		Injector injector = createInjector();
 		register(injector);
@@ -35,18 +24,14 @@
 	}
 	
 	public Injector createInjector() {
-		return Guice.createInjector(new org.eclipse.osbp.xtext.table.TableDSLRuntimeModule());
+		return Guice.createInjector(new TableDSLRuntimeModule());
 	}
 	
 	public void register(Injector injector) {
-
-		org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
-		org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
-		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("table", resourceFactory);
-		org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("table", serviceProvider);
+		IResourceFactory resourceFactory = injector.getInstance(IResourceFactory.class);
+		IResourceServiceProvider serviceProvider = injector.getInstance(IResourceServiceProvider.class);
 		
-
-
-
+		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("table", resourceFactory);
+		IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("table", serviceProvider);
 	}
 }
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/TableDSLAntlrTokenFileProvider.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/TableDSLAntlrTokenFileProvider.java
index 7acbba0..f098803 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/TableDSLAntlrTokenFileProvider.java
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/TableDSLAntlrTokenFileProvider.java
@@ -1,15 +1,5 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table.parser.antlr;
 
@@ -17,9 +7,10 @@
 import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
 
 public class TableDSLAntlrTokenFileProvider implements IAntlrTokenFileProvider {
-	
+
+	@Override
 	public InputStream getAntlrTokenFile() {
 		ClassLoader classLoader = getClass().getClassLoader();
-    	return classLoader.getResourceAsStream("org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.tokens");
+		return classLoader.getResourceAsStream("org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.tokens");
 	}
 }
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/TableDSLParser.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/TableDSLParser.java
index 6905671..2d9f8e2 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/TableDSLParser.java
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/TableDSLParser.java
@@ -1,49 +1,40 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table.parser.antlr;
 
 import com.google.inject.Inject;
-
-import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.osbp.xtext.table.parser.antlr.internal.InternalTableDSLParser;
 import org.eclipse.osbp.xtext.table.services.TableDSLGrammarAccess;
+import org.eclipse.xtext.parser.antlr.AbstractAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
 
-public class TableDSLParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
-	
+public class TableDSLParser extends AbstractAntlrParser {
+
 	@Inject
 	private TableDSLGrammarAccess grammarAccess;
-	
+
 	@Override
 	protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
 		tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
 	}
 	
+
 	@Override
-	protected org.eclipse.osbp.xtext.table.parser.antlr.internal.InternalTableDSLParser createParser(XtextTokenStream stream) {
-		return new org.eclipse.osbp.xtext.table.parser.antlr.internal.InternalTableDSLParser(stream, getGrammarAccess());
+	protected InternalTableDSLParser createParser(XtextTokenStream stream) {
+		return new InternalTableDSLParser(stream, getGrammarAccess());
 	}
-	
+
 	@Override 
 	protected String getDefaultRuleName() {
 		return "TableModel";
 	}
-	
+
 	public TableDSLGrammarAccess getGrammarAccess() {
 		return this.grammarAccess;
 	}
-	
+
 	public void setGrammarAccess(TableDSLGrammarAccess grammarAccess) {
 		this.grammarAccess = grammarAccess;
 	}
-	
 }
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g
index 3a1dd60..4b31f19 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g
@@ -1,21 +1,10 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 grammar InternalTableDSL;
 
 options {
 	superClass=AbstractInternalAntlrParser;
-	
 }
 
 @lexer::header {
@@ -27,7 +16,7 @@
 }
 
 @parser::header {
-package org.eclipse.osbp.xtext.table.parser.antlr.internal; 
+package org.eclipse.osbp.xtext.table.parser.antlr.internal;
 
 import org.eclipse.xtext.*;
 import org.eclipse.xtext.parser.*;
@@ -46,9969 +35,12212 @@
 @parser::members {
 
  	private TableDSLGrammarAccess grammarAccess;
- 	
+
     public InternalTableDSLParser(TokenStream input, TableDSLGrammarAccess grammarAccess) {
         this(input);
         this.grammarAccess = grammarAccess;
         registerRules(grammarAccess.getGrammar());
     }
-    
+
     @Override
     protected String getFirstRuleName() {
-    	return "TableModel";	
+    	return "TableModel";
    	}
-   	
+
    	@Override
    	protected TableDSLGrammarAccess getGrammarAccess() {
    		return grammarAccess;
    	}
+
 }
 
-@rulecatch { 
-    catch (RecognitionException re) { 
-        recover(input,re); 
+@rulecatch {
+    catch (RecognitionException re) {
+        recover(input,re);
         appendSkippedTokens();
-    } 
+    }
 }
 
-
-
-
 // Entry rule entryRuleTableModel
-entryRuleTableModel returns [EObject current=null] 
-	:
+entryRuleTableModel returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableModelRule()); }
-	 iv_ruleTableModel=ruleTableModel 
-	 { $current=$iv_ruleTableModel.current; } 
-	 EOF 
-;
+	iv_ruleTableModel=ruleTableModel
+	{ $current=$iv_ruleTableModel.current; }
+	EOF;
 
 // Rule TableModel
-ruleTableModel returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableModelAccess().getPackagesTablePackageParserRuleCall_0()); 
-	    }
-		lv_packages_0_0=ruleTablePackage		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableModelRule());
-	        }
-       		add(
-       			$current, 
-       			"packages",
-        		lv_packages_0_0, 
-        		"TablePackage");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*
+ruleTableModel returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableModelAccess().getImportSectionXImportSectionParserRuleCall_0_0());
+				}
+				lv_importSection_0_0=ruleXImportSection
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableModelRule());
+					}
+					set(
+						$current,
+						"importSection",
+						lv_importSection_0_0,
+						"org.eclipse.xtext.xbase.Xtype.XImportSection");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)?
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableModelAccess().getPackagesTablePackageParserRuleCall_1_0());
+				}
+				lv_packages_1_0=ruleTablePackage
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableModelRule());
+					}
+					add(
+						$current,
+						"packages",
+						lv_packages_1_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TablePackage");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTablePackage
-entryRuleTablePackage returns [EObject current=null] 
-	:
+entryRuleTablePackage returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTablePackageRule()); }
-	 iv_ruleTablePackage=ruleTablePackage 
-	 { $current=$iv_ruleTablePackage.current; } 
-	 EOF 
-;
+	iv_ruleTablePackage=ruleTablePackage
+	{ $current=$iv_ruleTablePackage.current; }
+	EOF;
 
 // Rule TablePackage
-ruleTablePackage returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTablePackageAccess().getTablePackageAction_0(),
-            $current);
-    }
-)	otherlv_1='package' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTablePackageAccess().getPackageKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTablePackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
-	    }
-		lv_name_2_0=ruleQualifiedName		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTablePackageRule());
-	        }
-       		set(
-       			$current, 
-       			"name",
-        		lv_name_2_0, 
-        		"QualifiedName");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_3='{' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getTablePackageAccess().getLeftCurlyBracketKeyword_3_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTablePackageAccess().getImportsTableImportParserRuleCall_3_1_0()); 
-	    }
-		lv_imports_4_0=ruleTableImport		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTablePackageRule());
-	        }
-       		add(
-       			$current, 
-       			"imports",
-        		lv_imports_4_0, 
-        		"TableImport");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTablePackageAccess().getTablesTableParserRuleCall_3_2_0()); 
-	    }
-		lv_tables_5_0=ruleTable		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTablePackageRule());
-	        }
-       		add(
-       			$current, 
-       			"tables",
-        		lv_tables_5_0, 
-        		"Table");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*	otherlv_6='}' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getTablePackageAccess().getRightCurlyBracketKeyword_3_3());
-    }
-)?)
+ruleTablePackage returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTablePackageAccess().getTablePackageAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='package'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTablePackageAccess().getPackageKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTablePackageAccess().getNameQualifiedNameParserRuleCall_2_0());
+				}
+				lv_name_2_0=ruleQualifiedName
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTablePackageRule());
+					}
+					set(
+						$current,
+						"name",
+						lv_name_2_0,
+						"org.eclipse.xtext.xbase.Xbase.QualifiedName");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_3='{'
+			{
+				newLeafNode(otherlv_3, grammarAccess.getTablePackageAccess().getLeftCurlyBracketKeyword_3_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTablePackageAccess().getTablesTableParserRuleCall_3_1_0());
+					}
+					lv_tables_4_0=ruleTable
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTablePackageRule());
+						}
+						add(
+							$current,
+							"tables",
+							lv_tables_4_0,
+							"org.eclipse.osbp.xtext.table.TableDSL.Table");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)*
+			otherlv_5='}'
+			{
+				newLeafNode(otherlv_5, grammarAccess.getTablePackageAccess().getRightCurlyBracketKeyword_3_2());
+			}
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTable
-entryRuleTable returns [EObject current=null] 
-	:
+entryRuleTable returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableRule()); }
-	 iv_ruleTable=ruleTable 
-	 { $current=$iv_ruleTable.current; } 
-	 EOF 
-;
+	iv_ruleTable=ruleTable
+	{ $current=$iv_ruleTable.current; }
+	EOF;
 
 // Rule Table
-ruleTable returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableAccess().getTableAction_0(),
-            $current);
-    }
-)	otherlv_1='table' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableAccess().getTableKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
-	    }
-		lv_name_2_0=ruleTRANSLATABLEID		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableRule());
-	        }
-       		set(
-       			$current, 
-       			"name",
-        		lv_name_2_0, 
-        		"TRANSLATABLEID");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)((
-(
-		lv_description_3_0=	'described by' 
-    {
-        newLeafNode(lv_description_3_0, grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableRule());
-	        }
-       		setWithLastConsumed($current, "description", true, "described by");
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
-	    }
-		lv_descriptionValue_4_0=ruleTRANSLATABLESTRING		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableRule());
-	        }
-       		set(
-       			$current, 
-       			"descriptionValue",
-        		lv_descriptionValue_4_0, 
-        		"TRANSLATABLESTRING");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))?	otherlv_5='as' 
-    {
-    	newLeafNode(otherlv_5, grammarAccess.getTableAccess().getAsKeyword_4());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableAccess().getTabletypeTableOptionParserRuleCall_5_0()); 
-	    }
-		lv_tabletype_6_0=ruleTableOption		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableRule());
-	        }
-       		set(
-       			$current, 
-       			"tabletype",
-        		lv_tabletype_6_0, 
-        		"TableOption");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleTable returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableAccess().getTableAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='table'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableAccess().getTableKeyword_1());
+		}
+		(
+			(
+				lv_name_2_0=RULE_ID
+				{
+					newLeafNode(lv_name_2_0, grammarAccess.getTableAccess().getNameIDTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_2_0,
+						"org.eclipse.xtext.xbase.Xtype.ID");
+				}
+			)
+		)
+		(
+			(
+				(
+					lv_description_3_0='describedBy'
+					{
+						newLeafNode(lv_description_3_0, grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTableRule());
+						}
+						setWithLastConsumed($current, "description", true, "describedBy");
+					}
+				)
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTableAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0());
+					}
+					lv_descriptionValue_4_0=ruleTRANSLATABLESTRING
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTableRule());
+						}
+						set(
+							$current,
+							"descriptionValue",
+							lv_descriptionValue_4_0,
+							"org.eclipse.osbp.xtext.table.TableDSL.TRANSLATABLESTRING");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		otherlv_5='as'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getTableAccess().getAsKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableAccess().getTabletypeTableOptionParserRuleCall_5_0());
+				}
+				lv_tabletype_6_0=ruleTableOption
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableRule());
+					}
+					set(
+						$current,
+						"tabletype",
+						lv_tabletype_6_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TableOption");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableOption
-entryRuleTableOption returns [EObject current=null] 
-	:
+entryRuleTableOption returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableOptionRule()); }
-	 iv_ruleTableOption=ruleTableOption 
-	 { $current=$iv_ruleTableOption.current; } 
-	 EOF 
-;
+	iv_ruleTableOption=ruleTableOption
+	{ $current=$iv_ruleTableOption.current; }
+	EOF;
 
 // Rule TableOption
-ruleTableOption returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getTableOptionAccess().getTableSelectionParserRuleCall_0()); 
-    }
-    this_TableSelection_0=ruleTableSelection
-    { 
-        $current = $this_TableSelection_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableOptionAccess().getTableTableParserRuleCall_1()); 
-    }
-    this_TableTable_1=ruleTableTable
-    { 
-        $current = $this_TableTable_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableOptionAccess().getTableGridParserRuleCall_2()); 
-    }
-    this_TableGrid_2=ruleTableGrid
-    { 
-        $current = $this_TableGrid_2.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleTableOption returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getTableOptionAccess().getTableSelectionParserRuleCall_0());
+		}
+		this_TableSelection_0=ruleTableSelection
+		{
+			$current = $this_TableSelection_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableOptionAccess().getTableTableParserRuleCall_1());
+		}
+		this_TableTable_1=ruleTableTable
+		{
+			$current = $this_TableTable_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableOptionAccess().getTableGridParserRuleCall_2());
+		}
+		this_TableGrid_2=ruleTableGrid
+		{
+			$current = $this_TableGrid_2.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableOptionAccess().getTableBeanParserRuleCall_3());
+		}
+		this_TableBean_3=ruleTableBean
+		{
+			$current = $this_TableBean_3.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableSelection
-entryRuleTableSelection returns [EObject current=null] 
-	:
+entryRuleTableSelection returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableSelectionRule()); }
-	 iv_ruleTableSelection=ruleTableSelection 
-	 { $current=$iv_ruleTableSelection.current; } 
-	 EOF 
-;
+	iv_ruleTableSelection=ruleTableSelection
+	{ $current=$iv_ruleTableSelection.current; }
+	EOF;
 
 // Rule TableSelection
-ruleTableSelection returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableSelectionAccess().getTableSelectionAction_0(),
-            $current);
-    }
-)((
-(
-		lv_multiSelection_1_0=	'multiselection' 
-    {
-        newLeafNode(lv_multiSelection_1_0, grammarAccess.getTableSelectionAccess().getMultiSelectionMultiselectionKeyword_1_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableSelectionRule());
-	        }
-       		setWithLastConsumed($current, "multiSelection", true, "multiselection");
-	    }
-
-)
-)
-    |	otherlv_2='singleselection' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getTableSelectionAccess().getSingleselectionKeyword_1_1());
-    }
-)(
-
-(
-	{ 
-	  getUnorderedGroupHelper().enter(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2());
-	}
+ruleTableSelection returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
 	(
 		(
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 0)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 0);
-	 				}
-					({true}?=>(
-(
-		lv_selectalways_4_0=	'selectalways' 
-    {
-        newLeafNode(lv_selectalways_4_0, grammarAccess.getTableSelectionAccess().getSelectalwaysSelectalwaysKeyword_2_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableSelectionRule());
-	        }
-       		setWithLastConsumed($current, "selectalways", true, "selectalways");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 1)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 1);
-	 				}
-					({true}?=>(	otherlv_5='rowheader' 
-    {
-    	newLeafNode(otherlv_5, grammarAccess.getTableSelectionAccess().getRowheaderKeyword_2_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableSelectionAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0()); 
-	    }
-		lv_headerMode_6_0=ruleRowHeaderMode		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableSelectionRule());
-	        }
-       		set(
-       			$current, 
-       			"headerMode",
-        		lv_headerMode_6_0, 
-        		"RowHeaderMode");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2());
-	 				}
- 				)
-			)  
-
-		)*	
-	)
-)
-	{ 
-	  getUnorderedGroupHelper().leave(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2());
-	}
-
-)(
-
-(
-	{ 
-	  getUnorderedGroupHelper().enter(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-	}
-	(
-		(
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0);
-	 				}
-					({true}?=>((
-(
-		lv_polling_8_0=	'polling' 
-    {
-        newLeafNode(lv_polling_8_0, grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_0_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableSelectionRule());
-	        }
-       		setWithLastConsumed($current, "polling", true, "polling");
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableSelectionAccess().getPollingTimeNumberParserRuleCall_3_0_1_0()); 
-	    }
-		lv_pollingTime_9_0=ruleNumber		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableSelectionRule());
-	        }
-       		set(
-       			$current, 
-       			"pollingTime",
-        		lv_pollingTime_9_0, 
-        		"Number");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1);
-	 				}
-					({true}?=>(
-(
-		lv_filtering_10_0=	'filtering' 
-    {
-        newLeafNode(lv_filtering_10_0, grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableSelectionRule());
-	        }
-       		setWithLastConsumed($current, "filtering", true, "filtering");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2);
-	 				}
-					({true}?=>(
-(
-		lv_embedded_11_0=	'embedded' 
-    {
-        newLeafNode(lv_embedded_11_0, grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_2_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableSelectionRule());
-	        }
-       		setWithLastConsumed($current, "embedded", true, "embedded");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3);
-	 				}
-					({true}?=>(	otherlv_12='toolbar' 
-    {
-    	newLeafNode(otherlv_12, grammarAccess.getTableSelectionAccess().getToolbarKeyword_3_3_0());
-    }
-(
-(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableSelectionAccess().getTableSelectionAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='selection'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableSelectionRule());
-	        }
-        }
-	otherlv_13=RULE_ID
-	{
-		newLeafNode(otherlv_13, grammarAccess.getTableSelectionAccess().getToolbarActionToolbarCrossReference_3_3_1_0()); 
-	}
-
-)
-)))
+			newLeafNode(otherlv_1, grammarAccess.getTableSelectionAccess().getSelectionKeyword_1());
+		}
+		(
+			(
+				(
+					lv_multiSelection_2_0='multiple'
+					{
+						newLeafNode(lv_multiSelection_2_0, grammarAccess.getTableSelectionAccess().getMultiSelectionMultipleKeyword_2_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTableSelectionRule());
+						}
+						setWithLastConsumed($current, "multiSelection", true, "multiple");
+					}
+				)
+			)
+			    |
+			otherlv_3='single'
+			{
+				newLeafNode(otherlv_3, grammarAccess.getTableSelectionAccess().getSingleKeyword_2_1());
+			}
+		)
+		(
+			(
+				{ 
+				  getUnorderedGroupHelper().enter(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+				}
+				(
+					(
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0);
+					}
+								({true}?=>((
+									lv_selectalways_5_0='alwaysSelected'
+									{
+										newLeafNode(lv_selectalways_5_0, grammarAccess.getTableSelectionAccess().getSelectalwaysAlwaysSelectedKeyword_3_0_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableSelectionRule());
+										}
+										setWithLastConsumed($current, "selectalways", true, "alwaysSelected");
+									}
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  
-
-		)*	
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1);
+					}
+								({true}?=>(otherlv_6='rowHeader'
+								{
+									newLeafNode(otherlv_6, grammarAccess.getTableSelectionAccess().getRowHeaderKeyword_3_1_0());
+								}
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableSelectionAccess().getHeaderModeRowHeaderModeEnumRuleCall_3_1_1_0());
+										}
+										lv_headerMode_7_0=ruleRowHeaderMode
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableSelectionRule());
+											}
+											set(
+												$current,
+												"headerMode",
+												lv_headerMode_7_0,
+												"org.eclipse.osbp.xtext.table.TableDSL.RowHeaderMode");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2);
+					}
+								({true}?=>((
+									(
+										lv_polling_8_0='polling'
+										{
+											newLeafNode(lv_polling_8_0, grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_2_0_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableSelectionRule());
+											}
+											setWithLastConsumed($current, "polling", true, "polling");
+										}
+									)
+								)
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableSelectionAccess().getPollingTimeNumberParserRuleCall_3_2_1_0());
+										}
+										lv_pollingTime_9_0=ruleNumber
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableSelectionRule());
+											}
+											set(
+												$current,
+												"pollingTime",
+												lv_pollingTime_9_0,
+												"org.eclipse.xtext.xbase.Xbase.Number");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3);
+					}
+								({true}?=>((
+									lv_filtering_10_0='filtering'
+									{
+										newLeafNode(lv_filtering_10_0, grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_3_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableSelectionRule());
+										}
+										setWithLastConsumed($current, "filtering", true, "filtering");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4);
+					}
+								({true}?=>((
+									lv_embedded_11_0='embedded'
+									{
+										newLeafNode(lv_embedded_11_0, grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_4_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableSelectionRule());
+										}
+										setWithLastConsumed($current, "embedded", true, "embedded");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5);
+					}
+								({true}?=>(otherlv_12='toolbar'
+								{
+									newLeafNode(otherlv_12, grammarAccess.getTableSelectionAccess().getToolbarKeyword_3_5_0());
+								}
+								(
+									(
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableSelectionRule());
+											}
+										}
+										otherlv_13=RULE_ID
+										{
+											newLeafNode(otherlv_13, grammarAccess.getTableSelectionAccess().getToolbarActionToolbarCrossReference_3_5_1_0());
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+					}
+				)
+			)
+					)*
+				)
+			)
+				{ 
+				  getUnorderedGroupHelper().leave(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+				}
+		)
+		(
+			otherlv_14='using'
+			{
+				newLeafNode(otherlv_14, grammarAccess.getTableSelectionAccess().getUsingKeyword_4_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTableSelectionAccess().getSourceTableDatamartParserRuleCall_4_1_0());
+					}
+					lv_source_15_0=ruleTableDatamart
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTableSelectionRule());
+						}
+						set(
+							$current,
+							"source",
+							lv_source_15_0,
+							"org.eclipse.osbp.xtext.table.TableDSL.TableDatamart");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
 	)
-)
-	{ 
-	  getUnorderedGroupHelper().leave(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-	}
-
-)(	otherlv_14='using' 
-    {
-    	newLeafNode(otherlv_14, grammarAccess.getTableSelectionAccess().getUsingKeyword_4_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableSelectionAccess().getSourceTableDatamartParserRuleCall_4_1_0()); 
-	    }
-		lv_source_15_0=ruleTableDatamart		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableSelectionRule());
-	        }
-       		set(
-       			$current, 
-       			"source",
-        		lv_source_15_0, 
-        		"TableDatamart");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))?)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableTable
-entryRuleTableTable returns [EObject current=null] 
-	:
+entryRuleTableTable returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableTableRule()); }
-	 iv_ruleTableTable=ruleTableTable 
-	 { $current=$iv_ruleTableTable.current; } 
-	 EOF 
-;
+	iv_ruleTableTable=ruleTableTable
+	{ $current=$iv_ruleTableTable.current; }
+	EOF;
 
 // Rule TableTable
-ruleTableTable returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableTableAccess().getTableTableAction_0(),
-            $current);
-    }
-)	otherlv_1='table' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableTableAccess().getTableKeyword_1());
-    }
-(
-
-(
-	{ 
-	  getUnorderedGroupHelper().enter(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
-	}
+ruleTableTable returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
 	(
 		(
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0);
-	 				}
-					({true}?=>(
-(
-		lv_selectalways_3_0=	'selectalways' 
-    {
-        newLeafNode(lv_selectalways_3_0, grammarAccess.getTableTableAccess().getSelectalwaysSelectalwaysKeyword_2_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableTableRule());
-	        }
-       		setWithLastConsumed($current, "selectalways", true, "selectalways");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1);
-	 				}
-					({true}?=>(	otherlv_4='rowheader' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getTableTableAccess().getRowheaderKeyword_2_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableTableAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0()); 
-	    }
-		lv_headerMode_5_0=ruleRowHeaderMode		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableTableRule());
-	        }
-       		set(
-       			$current, 
-       			"headerMode",
-        		lv_headerMode_5_0, 
-        		"RowHeaderMode");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
-	 				}
- 				)
-			)  
-
-		)*	
-	)
-)
-	{ 
-	  getUnorderedGroupHelper().leave(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
-	}
-
-)(
-
-(
-	{ 
-	  getUnorderedGroupHelper().enter(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
-	}
-	(
-		(
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 0)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 0);
-	 				}
-					({true}?=>((
-(
-		lv_polling_7_0=	'polling' 
-    {
-        newLeafNode(lv_polling_7_0, grammarAccess.getTableTableAccess().getPollingPollingKeyword_3_0_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableTableRule());
-	        }
-       		setWithLastConsumed($current, "polling", true, "polling");
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableTableAccess().getPollingTimeNumberParserRuleCall_3_0_1_0()); 
-	    }
-		lv_pollingTime_8_0=ruleNumber		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableTableRule());
-	        }
-       		set(
-       			$current, 
-       			"pollingTime",
-        		lv_pollingTime_8_0, 
-        		"Number");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 1)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 1);
-	 				}
-					({true}?=>(
-(
-		lv_filtering_9_0=	'filtering' 
-    {
-        newLeafNode(lv_filtering_9_0, grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_3_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableTableRule());
-	        }
-       		setWithLastConsumed($current, "filtering", true, "filtering");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 2)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 2);
-	 				}
-					({true}?=>(
-(
-		lv_embedded_10_0=	'embedded' 
-    {
-        newLeafNode(lv_embedded_10_0, grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_3_2_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableTableRule());
-	        }
-       		setWithLastConsumed($current, "embedded", true, "embedded");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 3)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 3);
-	 				}
-					({true}?=>(	otherlv_11='toolbar' 
-    {
-    	newLeafNode(otherlv_11, grammarAccess.getTableTableAccess().getToolbarKeyword_3_3_0());
-    }
-(
-(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableTableAccess().getTableTableAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='table'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableTableRule());
-	        }
-        }
-	otherlv_12=RULE_ID
-	{
-		newLeafNode(otherlv_12, grammarAccess.getTableTableAccess().getToolbarActionToolbarCrossReference_3_3_1_0()); 
-	}
-
-)
-)))
+			newLeafNode(otherlv_1, grammarAccess.getTableTableAccess().getTableKeyword_1());
+		}
+		(
+			(
+				{ 
+				  getUnorderedGroupHelper().enter(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+				}
+				(
+					(
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0);
+					}
+								({true}?=>((
+									lv_selectalways_3_0='alwaysSelected'
+									{
+										newLeafNode(lv_selectalways_3_0, grammarAccess.getTableTableAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableTableRule());
+										}
+										setWithLastConsumed($current, "selectalways", true, "alwaysSelected");
+									}
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  
-
-		)*	
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1);
+					}
+								({true}?=>((
+									lv_selectById_4_0='selectById'
+									{
+										newLeafNode(lv_selectById_4_0, grammarAccess.getTableTableAccess().getSelectByIdSelectByIdKeyword_2_1_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableTableRule());
+										}
+										setWithLastConsumed($current, "selectById", true, "selectById");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2);
+					}
+								({true}?=>(otherlv_5='rowHeader'
+								{
+									newLeafNode(otherlv_5, grammarAccess.getTableTableAccess().getRowHeaderKeyword_2_2_0());
+								}
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableTableAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0());
+										}
+										lv_headerMode_6_0=ruleRowHeaderMode
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableTableRule());
+											}
+											set(
+												$current,
+												"headerMode",
+												lv_headerMode_6_0,
+												"org.eclipse.osbp.xtext.table.TableDSL.RowHeaderMode");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3);
+					}
+								({true}?=>((
+									(
+										lv_polling_7_0='polling'
+										{
+											newLeafNode(lv_polling_7_0, grammarAccess.getTableTableAccess().getPollingPollingKeyword_2_3_0_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableTableRule());
+											}
+											setWithLastConsumed($current, "polling", true, "polling");
+										}
+									)
+								)
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableTableAccess().getPollingTimeNumberParserRuleCall_2_3_1_0());
+										}
+										lv_pollingTime_8_0=ruleNumber
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableTableRule());
+											}
+											set(
+												$current,
+												"pollingTime",
+												lv_pollingTime_8_0,
+												"org.eclipse.xtext.xbase.Xbase.Number");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4);
+					}
+								({true}?=>((
+									lv_filtering_9_0='filtering'
+									{
+										newLeafNode(lv_filtering_9_0, grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_2_4_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableTableRule());
+										}
+										setWithLastConsumed($current, "filtering", true, "filtering");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5);
+					}
+								({true}?=>((
+									lv_embedded_10_0='embedded'
+									{
+										newLeafNode(lv_embedded_10_0, grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_2_5_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableTableRule());
+										}
+										setWithLastConsumed($current, "embedded", true, "embedded");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6);
+					}
+								({true}?=>(otherlv_11='toolbar'
+								{
+									newLeafNode(otherlv_11, grammarAccess.getTableTableAccess().getToolbarKeyword_2_6_0());
+								}
+								(
+									(
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableTableRule());
+											}
+										}
+										otherlv_12=RULE_ID
+										{
+											newLeafNode(otherlv_12, grammarAccess.getTableTableAccess().getToolbarActionToolbarCrossReference_2_6_1_0());
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+					}
+				)
+			)
+					)*
+				)
+			)
+				{ 
+				  getUnorderedGroupHelper().leave(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+				}
+		)
+		(
+			otherlv_13='using'
+			{
+				newLeafNode(otherlv_13, grammarAccess.getTableTableAccess().getUsingKeyword_3_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTableTableAccess().getSourceTableDatamartParserRuleCall_3_1_0());
+					}
+					lv_source_14_0=ruleTableDatamart
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTableTableRule());
+						}
+						set(
+							$current,
+							"source",
+							lv_source_14_0,
+							"org.eclipse.osbp.xtext.table.TableDSL.TableDatamart");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
 	)
-)
-	{ 
-	  getUnorderedGroupHelper().leave(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
-	}
-
-)(	otherlv_13='using' 
-    {
-    	newLeafNode(otherlv_13, grammarAccess.getTableTableAccess().getUsingKeyword_4_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableTableAccess().getSourceTableDatamartParserRuleCall_4_1_0()); 
-	    }
-		lv_source_14_0=ruleTableDatamart		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableTableRule());
-	        }
-       		set(
-       			$current, 
-       			"source",
-        		lv_source_14_0, 
-        		"TableDatamart");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))?)
 ;
 
+// Entry rule entryRuleTableBean
+entryRuleTableBean returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTableBeanRule()); }
+	iv_ruleTableBean=ruleTableBean
+	{ $current=$iv_ruleTableBean.current; }
+	EOF;
 
-
-
+// Rule TableBean
+ruleTableBean returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableBeanAccess().getTableBeanAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='bean'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableBeanAccess().getBeanKeyword_1());
+		}
+		(
+			(
+				{ 
+				  getUnorderedGroupHelper().enter(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+				}
+				(
+					(
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0);
+					}
+								({true}?=>((
+									lv_selectalways_3_0='alwaysSelected'
+									{
+										newLeafNode(lv_selectalways_3_0, grammarAccess.getTableBeanAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableBeanRule());
+										}
+										setWithLastConsumed($current, "selectalways", true, "alwaysSelected");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1);
+					}
+								({true}?=>((
+									lv_selectById_4_0='selectById'
+									{
+										newLeafNode(lv_selectById_4_0, grammarAccess.getTableBeanAccess().getSelectByIdSelectByIdKeyword_2_1_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableBeanRule());
+										}
+										setWithLastConsumed($current, "selectById", true, "selectById");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2);
+					}
+								({true}?=>(otherlv_5='rowHeader'
+								{
+									newLeafNode(otherlv_5, grammarAccess.getTableBeanAccess().getRowHeaderKeyword_2_2_0());
+								}
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableBeanAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0());
+										}
+										lv_headerMode_6_0=ruleRowHeaderMode
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableBeanRule());
+											}
+											set(
+												$current,
+												"headerMode",
+												lv_headerMode_6_0,
+												"org.eclipse.osbp.xtext.table.TableDSL.RowHeaderMode");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3);
+					}
+								({true}?=>((
+									(
+										lv_polling_7_0='polling'
+										{
+											newLeafNode(lv_polling_7_0, grammarAccess.getTableBeanAccess().getPollingPollingKeyword_2_3_0_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableBeanRule());
+											}
+											setWithLastConsumed($current, "polling", true, "polling");
+										}
+									)
+								)
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableBeanAccess().getPollingTimeNumberParserRuleCall_2_3_1_0());
+										}
+										lv_pollingTime_8_0=ruleNumber
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableBeanRule());
+											}
+											set(
+												$current,
+												"pollingTime",
+												lv_pollingTime_8_0,
+												"org.eclipse.xtext.xbase.Xbase.Number");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4);
+					}
+								({true}?=>((
+									lv_filtering_9_0='filtering'
+									{
+										newLeafNode(lv_filtering_9_0, grammarAccess.getTableBeanAccess().getFilteringFilteringKeyword_2_4_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableBeanRule());
+										}
+										setWithLastConsumed($current, "filtering", true, "filtering");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5);
+					}
+								({true}?=>((
+									lv_embedded_10_0='embedded'
+									{
+										newLeafNode(lv_embedded_10_0, grammarAccess.getTableBeanAccess().getEmbeddedEmbeddedKeyword_2_5_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableBeanRule());
+										}
+										setWithLastConsumed($current, "embedded", true, "embedded");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6);
+					}
+								({true}?=>(otherlv_11='toolbar'
+								{
+									newLeafNode(otherlv_11, grammarAccess.getTableBeanAccess().getToolbarKeyword_2_6_0());
+								}
+								(
+									(
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableBeanRule());
+											}
+										}
+										otherlv_12=RULE_ID
+										{
+											newLeafNode(otherlv_12, grammarAccess.getTableBeanAccess().getToolbarActionToolbarCrossReference_2_6_1_0());
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+					}
+				)
+			)
+					)*
+				)
+			)
+				{ 
+				  getUnorderedGroupHelper().leave(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+				}
+		)
+		(
+			otherlv_13='using'
+			{
+				newLeafNode(otherlv_13, grammarAccess.getTableBeanAccess().getUsingKeyword_3_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTableBeanAccess().getSourceTableDatamartParserRuleCall_3_1_0());
+					}
+					lv_source_14_0=ruleTableDatamart
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTableBeanRule());
+						}
+						set(
+							$current,
+							"source",
+							lv_source_14_0,
+							"org.eclipse.osbp.xtext.table.TableDSL.TableDatamart");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+	)
+;
 
 // Entry rule entryRuleTablePreorder
-entryRuleTablePreorder returns [EObject current=null] 
-	:
+entryRuleTablePreorder returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTablePreorderRule()); }
-	 iv_ruleTablePreorder=ruleTablePreorder 
-	 { $current=$iv_ruleTablePreorder.current; } 
-	 EOF 
-;
+	iv_ruleTablePreorder=ruleTablePreorder
+	{ $current=$iv_ruleTablePreorder.current; }
+	EOF;
 
 // Rule TablePreorder
-ruleTablePreorder returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTablePreorderAccess().getTablePreorderAction_0(),
-            $current);
-    }
-)	otherlv_1='preorder' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTablePreorderAccess().getPreorderKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTablePreorderAccess().getColumnTableValueElementParserRuleCall_2_0()); 
-	    }
-		lv_column_2_0=ruleTableValueElement		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTablePreorderRule());
-	        }
-       		set(
-       			$current, 
-       			"column",
-        		lv_column_2_0, 
-        		"TableValueElement");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-(
-		lv_ascending_3_0=	'ascending' 
-    {
-        newLeafNode(lv_ascending_3_0, grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTablePreorderRule());
-	        }
-       		setWithLastConsumed($current, "ascending", true, "ascending");
-	    }
-
-)
-)?)
+ruleTablePreorder returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTablePreorderAccess().getTablePreorderAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='preorder'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTablePreorderAccess().getPreorderKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTablePreorderAccess().getColumnTableValueElementParserRuleCall_2_0());
+				}
+				lv_column_2_0=ruleTableValueElement
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTablePreorderRule());
+					}
+					set(
+						$current,
+						"column",
+						lv_column_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TableValueElement");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				lv_ascending_3_0='ascending'
+				{
+					newLeafNode(lv_ascending_3_0, grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTablePreorderRule());
+					}
+					setWithLastConsumed($current, "ascending", true, "ascending");
+				}
+			)
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableValue
-entryRuleTableValue returns [EObject current=null] 
-	:
+entryRuleTableValue returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableValueRule()); }
-	 iv_ruleTableValue=ruleTableValue 
-	 { $current=$iv_ruleTableValue.current; } 
-	 EOF 
-;
+	iv_ruleTableValue=ruleTableValue
+	{ $current=$iv_ruleTableValue.current; }
+	EOF;
 
 // Rule TableValue
-ruleTableValue returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableValueAccess().getTableValueAction_0(),
-            $current);
-    }
-)	otherlv_1='value' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableValueAccess().getValueKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableValueAccess().getColumnTableValueElementParserRuleCall_2_0()); 
-	    }
-		lv_column_2_0=ruleTableValueElement		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableValueRule());
-	        }
-       		set(
-       			$current, 
-       			"column",
-        		lv_column_2_0, 
-        		"TableValueElement");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-
-(
-	{ 
-	  getUnorderedGroupHelper().enter(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
-	}
+ruleTableValue returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
 	(
 		(
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0);
-	 				}
-					({true}?=>(
-(
-		lv_collapsed_4_0=	'collapse' 
-    {
-        newLeafNode(lv_collapsed_4_0, grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableValueRule());
-	        }
-       		setWithLastConsumed($current, "collapsed", true, "collapse");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1);
-	 				}
-					({true}?=>(	otherlv_5='icon' 
-    {
-    	newLeafNode(otherlv_5, grammarAccess.getTableValueAccess().getIconKeyword_3_1_0());
-    }
-(
-(
-		lv_iconName_6_0=RULE_STRING
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableValueAccess().getTableValueAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='value'
 		{
-			newLeafNode(lv_iconName_6_0, grammarAccess.getTableValueAccess().getIconNameSTRINGTerminalRuleCall_3_1_1_0()); 
+			newLeafNode(otherlv_1, grammarAccess.getTableValueAccess().getValueKeyword_1());
 		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableValueRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"iconName",
-        		lv_iconName_6_0, 
-        		"STRING");
-	    }
-
-)
-)))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2);
-	 				}
-					({true}?=>(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableValueAccess().getFormatterTableFormatterParserRuleCall_3_2_0()); 
-	    }
-		lv_formatter_7_0=ruleTableFormatter		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableValueRule());
-	        }
-       		set(
-       			$current, 
-       			"formatter",
-        		lv_formatter_7_0, 
-        		"TableFormatter");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3);
-	 				}
-					({true}?=>((
-(
-		lv_hasImage_8_0=	'image' 
-    {
-        newLeafNode(lv_hasImage_8_0, grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableValueRule());
-	        }
-       		setWithLastConsumed($current, "hasImage", true, "image");
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableValueAccess().getImageTableImageParserRuleCall_3_3_1_0()); 
-	    }
-		lv_image_9_0=ruleTableImage		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableValueRule());
-	        }
-       		set(
-       			$current, 
-       			"image",
-        		lv_image_9_0, 
-        		"TableImage");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4);
-	 				}
-					({true}?=>(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableValueAccess().getTooltipPatternTableTooltipPatternParserRuleCall_3_4_0()); 
-	    }
-		lv_tooltipPattern_10_0=ruleTableTooltipPattern		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableValueRule());
-	        }
-       		set(
-       			$current, 
-       			"tooltipPattern",
-        		lv_tooltipPattern_10_0, 
-        		"TableTooltipPattern");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  
-
-		)*	
-	)
-)
-	{ 
-	  getUnorderedGroupHelper().leave(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
-	}
-
-)(
-
-(
-	{ 
-	  getUnorderedGroupHelper().enter(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
-	}
-	(
 		(
-
-			( 
+			(
+				{
+					newCompositeNode(grammarAccess.getTableValueAccess().getColumnTableValueElementParserRuleCall_2_0());
+				}
+				lv_column_2_0=ruleTableValueElement
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableValueRule());
+					}
+					set(
+						$current,
+						"column",
+						lv_column_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TableValueElement");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{ 
+				  getUnorderedGroupHelper().enter(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+				}
+				(
+					(
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0);
+					}
+								({true}?=>((
+									lv_collapsed_4_0='collapse'
+									{
+										newLeafNode(lv_collapsed_4_0, grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableValueRule());
+										}
+										setWithLastConsumed($current, "collapsed", true, "collapse");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1);
+					}
+								({true}?=>(otherlv_5='icon'
+								{
+									newLeafNode(otherlv_5, grammarAccess.getTableValueAccess().getIconKeyword_3_1_0());
+								}
+								(
+									(
+										lv_iconName_6_0=RULE_STRING
+										{
+											newLeafNode(lv_iconName_6_0, grammarAccess.getTableValueAccess().getIconNameSTRINGTerminalRuleCall_3_1_1_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableValueRule());
+											}
+											setWithLastConsumed(
+												$current,
+												"iconName",
+												lv_iconName_6_0,
+												"org.eclipse.xtext.xbase.Xtype.STRING");
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2);
+					}
+								({true}?=>((
+									{
+										newCompositeNode(grammarAccess.getTableValueAccess().getFormatterTableFormatterParserRuleCall_3_2_0());
+									}
+									lv_formatter_7_0=ruleTableFormatter
+									{
+										if ($current==null) {
+											$current = createModelElementForParent(grammarAccess.getTableValueRule());
+										}
+										set(
+											$current,
+											"formatter",
+											lv_formatter_7_0,
+											"org.eclipse.osbp.xtext.table.TableDSL.TableFormatter");
+										afterParserOrEnumRuleCall();
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3);
+					}
+								({true}?=>((
+									(
+										lv_hasImage_8_0='image'
+										{
+											newLeafNode(lv_hasImage_8_0, grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableValueRule());
+											}
+											setWithLastConsumed($current, "hasImage", true, "image");
+										}
+									)
+								)
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableValueAccess().getImageTableImageParserRuleCall_3_3_1_0());
+										}
+										lv_image_9_0=ruleTableImage
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableValueRule());
+											}
+											set(
+												$current,
+												"image",
+												lv_image_9_0,
+												"org.eclipse.osbp.xtext.table.TableDSL.TableImage");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4);
+					}
+								({true}?=>((
+									{
+										newCompositeNode(grammarAccess.getTableValueAccess().getTooltipPatternTableTooltipPatternParserRuleCall_3_4_0());
+									}
+									lv_tooltipPattern_10_0=ruleTableTooltipPattern
+									{
+										if ($current==null) {
+											$current = createModelElementForParent(grammarAccess.getTableValueRule());
+										}
+										set(
+											$current,
+											"tooltipPattern",
+											lv_tooltipPattern_10_0,
+											"org.eclipse.osbp.xtext.table.TableDSL.TableTooltipPattern");
+										afterParserOrEnumRuleCall();
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+					}
+				)
+			)
+					)*
+				)
+			)
+				{ 
+				  getUnorderedGroupHelper().leave(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
+				}
+		)
+		(
+			(
+				{ 
+				  getUnorderedGroupHelper().enter(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
+				}
+				(
+					(
+			(
 				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0);
+					}
+								({true}?=>(otherlv_12='intervals'
+								{
+									newLeafNode(otherlv_12, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0());
+								}
+								(
+									(
+										lv_hideLabelInterval_13_0='hidelabel'
+										{
+											newLeafNode(lv_hideLabelInterval_13_0, grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableValueRule());
+											}
+											setWithLastConsumed($current, "hideLabelInterval", true, "hidelabel");
+										}
+									)
+								)?
+								otherlv_14='{'
+								{
+									newLeafNode(otherlv_14, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2());
+								}
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableValueAccess().getIntervalsTableIntervalParserRuleCall_4_0_3_0());
+										}
+										lv_intervals_15_0=ruleTableInterval
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableValueRule());
+											}
+											add(
+												$current,
+												"intervals",
+												lv_intervals_15_0,
+												"org.eclipse.osbp.xtext.table.TableDSL.TableInterval");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)*
+								otherlv_16='}'
+								{
+									newLeafNode(otherlv_16, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4());
+								}
+								))
 					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0);
-	 				}
-					({true}?=>(	otherlv_12='intervals' 
-    {
-    	newLeafNode(otherlv_12, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0());
-    }
-(
-(
-		lv_hideLabelInterval_13_0=	'hidelabel' 
-    {
-        newLeafNode(lv_hideLabelInterval_13_0, grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableValueRule());
-	        }
-       		setWithLastConsumed($current, "hideLabelInterval", true, "hidelabel");
-	    }
-
-)
-)?	otherlv_14='{' 
-    {
-    	newLeafNode(otherlv_14, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableValueAccess().getIntervalsTableIntervalParserRuleCall_4_0_3_0()); 
-	    }
-		lv_intervals_15_0=ruleTableInterval		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableValueRule());
-	        }
-       		add(
-       			$current, 
-       			"intervals",
-        		lv_intervals_15_0, 
-        		"TableInterval");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*	otherlv_16='}' 
-    {
-    	newLeafNode(otherlv_16, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4());
-    }
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
-	 				}
- 				)
-			)  |
-
-			( 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
+					}
+				)
+			)|
+			(
 				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1);
+					}
+								({true}?=>(otherlv_17='lookups'
+								{
+									newLeafNode(otherlv_17, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0());
+								}
+								(
+									(
+										lv_hideLabelLookup_18_0='hidelabel'
+										{
+											newLeafNode(lv_hideLabelLookup_18_0, grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableValueRule());
+											}
+											setWithLastConsumed($current, "hideLabelLookup", true, "hidelabel");
+										}
+									)
+								)?
+								otherlv_19='{'
+								{
+									newLeafNode(otherlv_19, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2());
+								}
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableValueAccess().getLookupsTableLookupParserRuleCall_4_1_3_0());
+										}
+										lv_lookups_20_0=ruleTableLookup
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableValueRule());
+											}
+											add(
+												$current,
+												"lookups",
+												lv_lookups_20_0,
+												"org.eclipse.osbp.xtext.table.TableDSL.TableLookup");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)*
+								otherlv_21='}'
+								{
+									newLeafNode(otherlv_21, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4());
+								}
+								))
 					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1);
-	 				}
-					({true}?=>(	otherlv_17='lookups' 
-    {
-    	newLeafNode(otherlv_17, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0());
-    }
-(
-(
-		lv_hideLabelLookup_18_0=	'hidelabel' 
-    {
-        newLeafNode(lv_hideLabelLookup_18_0, grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableValueRule());
-	        }
-       		setWithLastConsumed($current, "hideLabelLookup", true, "hidelabel");
-	    }
-
-)
-)?	otherlv_19='{' 
-    {
-    	newLeafNode(otherlv_19, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableValueAccess().getLookupsTableLookupParserRuleCall_4_1_3_0()); 
-	    }
-		lv_lookups_20_0=ruleTableLookup		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableValueRule());
-	        }
-       		add(
-       			$current, 
-       			"lookups",
-        		lv_lookups_20_0, 
-        		"TableLookup");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*	otherlv_21='}' 
-    {
-    	newLeafNode(otherlv_21, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4());
-    }
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
-	 				}
- 				)
-			)  
-
-		)*	
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
+					}
+				)
+			)
+					)*
+				)
+			)
+				{ 
+				  getUnorderedGroupHelper().leave(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
+				}
+		)
 	)
-)
-	{ 
-	  getUnorderedGroupHelper().leave(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
-	}
-
-))
 ;
 
-
-
-
-
 // Entry rule entryRuleTableFormatter
-entryRuleTableFormatter returns [EObject current=null] 
-	:
+entryRuleTableFormatter returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableFormatterRule()); }
-	 iv_ruleTableFormatter=ruleTableFormatter 
-	 { $current=$iv_ruleTableFormatter.current; } 
-	 EOF 
-;
+	iv_ruleTableFormatter=ruleTableFormatter
+	{ $current=$iv_ruleTableFormatter.current; }
+	EOF;
 
 // Rule TableFormatter
-ruleTableFormatter returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableFormatterAccess().getTableFormatterAction_0(),
-            $current);
-    }
-)	otherlv_1='formatter' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableFormatterAccess().getFormatterKeyword_1());
-    }
-(
-(
-		lv_format_2_0=RULE_STRING
+ruleTableFormatter returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableFormatterAccess().getTableFormatterAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='formatter'
 		{
-			newLeafNode(lv_format_2_0, grammarAccess.getTableFormatterAccess().getFormatSTRINGTerminalRuleCall_2_0()); 
+			newLeafNode(otherlv_1, grammarAccess.getTableFormatterAccess().getFormatterKeyword_1());
 		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableFormatterRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"format",
-        		lv_format_2_0, 
-        		"STRING");
-	    }
-
-)
-))
+		(
+			(
+				lv_format_2_0=RULE_STRING
+				{
+					newLeafNode(lv_format_2_0, grammarAccess.getTableFormatterAccess().getFormatSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableFormatterRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"format",
+						lv_format_2_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableImage
-entryRuleTableImage returns [EObject current=null] 
-	:
+entryRuleTableImage returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableImageRule()); }
-	 iv_ruleTableImage=ruleTableImage 
-	 { $current=$iv_ruleTableImage.current; } 
-	 EOF 
-;
+	iv_ruleTableImage=ruleTableImage
+	{ $current=$iv_ruleTableImage.current; }
+	EOF;
 
 // Rule TableImage
-ruleTableImage returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableImageAccess().getTableImageAction_0(),
-            $current);
-    }
-)	otherlv_1='path' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableImageAccess().getPathKeyword_1());
-    }
-(
-(
-		lv_imagePathPattern_2_0=RULE_STRING
-		{
-			newLeafNode(lv_imagePathPattern_2_0, grammarAccess.getTableImageAccess().getImagePathPatternSTRINGTerminalRuleCall_2_0()); 
-		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableImageRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"imagePathPattern",
-        		lv_imagePathPattern_2_0, 
-        		"STRING");
-	    }
-
-)
-)(
-
-(
-	{ 
-	  getUnorderedGroupHelper().enter(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
-	}
+ruleTableImage returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
 	(
 		(
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0);
-	 				}
-					({true}?=>(
-(
-		lv_hasParameter_4_0=	'dynamic' 
-    {
-        newLeafNode(lv_hasParameter_4_0, grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableImageRule());
-	        }
-       		setWithLastConsumed($current, "hasParameter", true, "dynamic");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1);
-	 				}
-					({true}?=>(
-(
-		lv_hideImageLabel_5_0=	'hidelabel' 
-    {
-        newLeafNode(lv_hideImageLabel_5_0, grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableImageRule());
-	        }
-       		setWithLastConsumed($current, "hideImageLabel", true, "hidelabel");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
-				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2)}?=>(
-					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2);
-	 				}
-					({true}?=>((
-(
-		lv_resize_6_0=	'resize' 
-    {
-        newLeafNode(lv_resize_6_0, grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableImageRule());
-	        }
-       		setWithLastConsumed($current, "resize", true, "resize");
-	    }
-
-)
-)(
-(
-		lv_resizeString_7_0=RULE_STRING
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableImageAccess().getTableImageAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='path'
 		{
-			newLeafNode(lv_resizeString_7_0, grammarAccess.getTableImageAccess().getResizeStringSTRINGTerminalRuleCall_3_2_1_0()); 
+			newLeafNode(otherlv_1, grammarAccess.getTableImageAccess().getPathKeyword_1());
 		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableImageRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"resizeString",
-        		lv_resizeString_7_0, 
-        		"STRING");
-	    }
-
-)
-)))
+		(
+			(
+				lv_imagePathPattern_2_0=RULE_STRING
+				{
+					newLeafNode(lv_imagePathPattern_2_0, grammarAccess.getTableImageAccess().getImagePathPatternSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableImageRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"imagePathPattern",
+						lv_imagePathPattern_2_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+		(
+			(
+				{ 
+				  getUnorderedGroupHelper().enter(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+				}
+				(
+					(
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0);
+					}
+								({true}?=>((
+									lv_hasParameter_4_0='dynamic'
+									{
+										newLeafNode(lv_hasParameter_4_0, grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableImageRule());
+										}
+										setWithLastConsumed($current, "hasParameter", true, "dynamic");
+									}
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  
-
-		)*	
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1);
+					}
+								({true}?=>((
+									lv_hideImageLabel_5_0='hidelabel'
+									{
+										newLeafNode(lv_hideImageLabel_5_0, grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableImageRule());
+										}
+										setWithLastConsumed($current, "hideImageLabel", true, "hidelabel");
+									}
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2);
+					}
+								({true}?=>((
+									(
+										lv_resize_6_0='resize'
+										{
+											newLeafNode(lv_resize_6_0, grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableImageRule());
+											}
+											setWithLastConsumed($current, "resize", true, "resize");
+										}
+									)
+								)
+								(
+									(
+										lv_resizeString_7_0=RULE_STRING
+										{
+											newLeafNode(lv_resizeString_7_0, grammarAccess.getTableImageAccess().getResizeStringSTRINGTerminalRuleCall_3_2_1_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableImageRule());
+											}
+											setWithLastConsumed(
+												$current,
+												"resizeString",
+												lv_resizeString_7_0,
+												"org.eclipse.xtext.xbase.Xtype.STRING");
+										}
+									)
+								)
+								))
+					{ 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+					}
+				)
+			)
+					)*
+				)
+			)
+				{ 
+				  getUnorderedGroupHelper().leave(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+				}
+		)
 	)
-)
-	{ 
-	  getUnorderedGroupHelper().leave(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
-	}
-
-))
 ;
 
-
-
-
-
 // Entry rule entryRuleTableTooltipPattern
-entryRuleTableTooltipPattern returns [EObject current=null] 
-	:
+entryRuleTableTooltipPattern returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableTooltipPatternRule()); }
-	 iv_ruleTableTooltipPattern=ruleTableTooltipPattern 
-	 { $current=$iv_ruleTableTooltipPattern.current; } 
-	 EOF 
-;
+	iv_ruleTableTooltipPattern=ruleTableTooltipPattern
+	{ $current=$iv_ruleTableTooltipPattern.current; }
+	EOF;
 
 // Rule TableTooltipPattern
-ruleTableTooltipPattern returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableTooltipPatternAccess().getTableTooltipPatternAction_0(),
-            $current);
-    }
-)	otherlv_1='tooltipPattern' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableTooltipPatternAccess().getTooltipPatternKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0()); 
-	    }
-		lv_tooltipPattern_2_0=ruleTRANSLATABLESTRING		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableTooltipPatternRule());
-	        }
-       		set(
-       			$current, 
-       			"tooltipPattern",
-        		lv_tooltipPattern_2_0, 
-        		"TRANSLATABLESTRING");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleTableTooltipPattern returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableTooltipPatternAccess().getTableTooltipPatternAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='tooltipPattern'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableTooltipPatternAccess().getTooltipPatternKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0());
+				}
+				lv_tooltipPattern_2_0=ruleTRANSLATABLESTRING
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableTooltipPatternRule());
+					}
+					set(
+						$current,
+						"tooltipPattern",
+						lv_tooltipPattern_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TRANSLATABLESTRING");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableValueElement
-entryRuleTableValueElement returns [EObject current=null] 
-	:
+entryRuleTableValueElement returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableValueElementRule()); }
-	 iv_ruleTableValueElement=ruleTableValueElement 
-	 { $current=$iv_ruleTableValueElement.current; } 
-	 EOF 
-;
+	iv_ruleTableValueElement=ruleTableValueElement
+	{ $current=$iv_ruleTableValueElement.current; }
+	EOF;
 
 // Rule TableValueElement
-ruleTableValueElement returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getTableValueElementAccess().getTableMeasureParserRuleCall_0()); 
-    }
-    this_TableMeasure_0=ruleTableMeasure
-    { 
-        $current = $this_TableMeasure_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableValueElementAccess().getTableDerivedParserRuleCall_1()); 
-    }
-    this_TableDerived_1=ruleTableDerived
-    { 
-        $current = $this_TableDerived_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableValueElementAccess().getTableHierarchyParserRuleCall_2()); 
-    }
-    this_TableHierarchy_2=ruleTableHierarchy
-    { 
-        $current = $this_TableHierarchy_2.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableValueElementAccess().getTablePropertyParserRuleCall_3()); 
-    }
-    this_TableProperty_3=ruleTableProperty
-    { 
-        $current = $this_TableProperty_3.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_4()); 
-    }
-    this_TableAggregation_4=ruleTableAggregation
-    { 
-        $current = $this_TableAggregation_4.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableValueElementAccess().getTableOrdinalParserRuleCall_5()); 
-    }
-    this_TableOrdinal_5=ruleTableOrdinal
-    { 
-        $current = $this_TableOrdinal_5.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableValueElementAccess().getTableColumnParserRuleCall_6()); 
-    }
-    this_TableColumn_6=ruleTableColumn
-    { 
-        $current = $this_TableColumn_6.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableValueElementAccess().getTableTaskParserRuleCall_7()); 
-    }
-    this_TableTask_7=ruleTableTask
-    { 
-        $current = $this_TableTask_7.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAllColumnsParserRuleCall_8()); 
-    }
-    this_TableAllColumns_8=ruleTableAllColumns
-    { 
-        $current = $this_TableAllColumns_8.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleTableValueElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableMeasureParserRuleCall_0());
+		}
+		this_TableMeasure_0=ruleTableMeasure
+		{
+			$current = $this_TableMeasure_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableDerivedParserRuleCall_1());
+		}
+		this_TableDerived_1=ruleTableDerived
+		{
+			$current = $this_TableDerived_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableHierarchyParserRuleCall_2());
+		}
+		this_TableHierarchy_2=ruleTableHierarchy
+		{
+			$current = $this_TableHierarchy_2.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAttributeParserRuleCall_3());
+		}
+		this_TableAttribute_3=ruleTableAttribute
+		{
+			$current = $this_TableAttribute_3.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_4());
+		}
+		this_TableAggregation_4=ruleTableAggregation
+		{
+			$current = $this_TableAggregation_4.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableOrdinalParserRuleCall_5());
+		}
+		this_TableOrdinal_5=ruleTableOrdinal
+		{
+			$current = $this_TableOrdinal_5.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableColumnParserRuleCall_6());
+		}
+		this_TableColumn_6=ruleTableColumn
+		{
+			$current = $this_TableColumn_6.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableTaskParserRuleCall_7());
+		}
+		this_TableTask_7=ruleTableTask
+		{
+			$current = $this_TableTask_7.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAllColumnsParserRuleCall_8());
+		}
+		this_TableAllColumns_8=ruleTableAllColumns
+		{
+			$current = $this_TableAllColumns_8.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableTask
-entryRuleTableTask returns [EObject current=null] 
-	:
+entryRuleTableTask returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableTaskRule()); }
-	 iv_ruleTableTask=ruleTableTask 
-	 { $current=$iv_ruleTableTask.current; } 
-	 EOF 
-;
+	iv_ruleTableTask=ruleTableTask
+	{ $current=$iv_ruleTableTask.current; }
+	EOF;
 
 // Rule TableTask
-ruleTableTask returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableTaskAccess().getTableTaskAction_0(),
-            $current);
-    }
-)	otherlv_1='taskId' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableTaskAccess().getTaskIdKeyword_1());
-    }
-)
+ruleTableTask returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableTaskAccess().getTableTaskAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='taskId'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableTaskAccess().getTaskIdKeyword_1());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableAllColumns
-entryRuleTableAllColumns returns [EObject current=null] 
-	:
+entryRuleTableAllColumns returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableAllColumnsRule()); }
-	 iv_ruleTableAllColumns=ruleTableAllColumns 
-	 { $current=$iv_ruleTableAllColumns.current; } 
-	 EOF 
-;
+	iv_ruleTableAllColumns=ruleTableAllColumns
+	{ $current=$iv_ruleTableAllColumns.current; }
+	EOF;
 
 // Rule TableAllColumns
-ruleTableAllColumns returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableAllColumnsAccess().getTableAllColumnsAction_0(),
-            $current);
-    }
-)	otherlv_1='allColumns' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableAllColumnsAccess().getAllColumnsKeyword_1());
-    }
-)
+ruleTableAllColumns returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableAllColumnsAccess().getTableAllColumnsAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='allColumns'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableAllColumnsAccess().getAllColumnsKeyword_1());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableOrdinal
-entryRuleTableOrdinal returns [EObject current=null] 
-	:
+entryRuleTableOrdinal returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableOrdinalRule()); }
-	 iv_ruleTableOrdinal=ruleTableOrdinal 
-	 { $current=$iv_ruleTableOrdinal.current; } 
-	 EOF 
-;
+	iv_ruleTableOrdinal=ruleTableOrdinal
+	{ $current=$iv_ruleTableOrdinal.current; }
+	EOF;
 
 // Rule TableOrdinal
-ruleTableOrdinal returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='ordinal' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableOrdinalAccess().getOrdinalKeyword_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableOrdinalAccess().getValueRefNumberParserRuleCall_1_0()); 
-	    }
-		lv_valueRef_1_0=ruleNumber		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableOrdinalRule());
-	        }
-       		set(
-       			$current, 
-       			"valueRef",
-        		lv_valueRef_1_0, 
-        		"Number");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleTableOrdinal returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='ordinal'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getTableOrdinalAccess().getOrdinalKeyword_0());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableOrdinalAccess().getValueRefNumberParserRuleCall_1_0());
+				}
+				lv_valueRef_1_0=ruleNumber
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableOrdinalRule());
+					}
+					set(
+						$current,
+						"valueRef",
+						lv_valueRef_1_0,
+						"org.eclipse.xtext.xbase.Xbase.Number");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableColumn
-entryRuleTableColumn returns [EObject current=null] 
-	:
+entryRuleTableColumn returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableColumnRule()); }
-	 iv_ruleTableColumn=ruleTableColumn 
-	 { $current=$iv_ruleTableColumn.current; } 
-	 EOF 
-;
+	iv_ruleTableColumn=ruleTableColumn
+	{ $current=$iv_ruleTableColumn.current; }
+	EOF;
 
 // Rule TableColumn
-ruleTableColumn returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='column' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableColumnAccess().getColumnKeyword_0());
-    }
-(
-(
+ruleTableColumn returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='column'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableColumnRule());
-	        }
-        }
-	otherlv_1=RULE_ID
-	{
-		newLeafNode(otherlv_1, grammarAccess.getTableColumnAccess().getValueRefDatamartColumnCrossReference_1_0()); 
-	}
-
-)
-))
+			newLeafNode(otherlv_0, grammarAccess.getTableColumnAccess().getColumnKeyword_0());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableColumnRule());
+					}
+				}
+				otherlv_1=RULE_ID
+				{
+					newLeafNode(otherlv_1, grammarAccess.getTableColumnAccess().getValueRefDatamartColumnCrossReference_1_0());
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableMeasure
-entryRuleTableMeasure returns [EObject current=null] 
-	:
+entryRuleTableMeasure returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableMeasureRule()); }
-	 iv_ruleTableMeasure=ruleTableMeasure 
-	 { $current=$iv_ruleTableMeasure.current; } 
-	 EOF 
-;
+	iv_ruleTableMeasure=ruleTableMeasure
+	{ $current=$iv_ruleTableMeasure.current; }
+	EOF;
 
 // Rule TableMeasure
-ruleTableMeasure returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='measure' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableMeasureAccess().getMeasureKeyword_0());
-    }
-(
-(
+ruleTableMeasure returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='measure'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableMeasureRule());
-	        }
-        }
-	otherlv_1=RULE_ID
-	{
-		newLeafNode(otherlv_1, grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureCrossReference_1_0()); 
-	}
-
-)
-))
+			newLeafNode(otherlv_0, grammarAccess.getTableMeasureAccess().getMeasureKeyword_0());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableMeasureRule());
+					}
+				}
+				otherlv_1=RULE_ID
+				{
+					newLeafNode(otherlv_1, grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureCrossReference_1_0());
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableDerived
-entryRuleTableDerived returns [EObject current=null] 
-	:
+entryRuleTableDerived returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableDerivedRule()); }
-	 iv_ruleTableDerived=ruleTableDerived 
-	 { $current=$iv_ruleTableDerived.current; } 
-	 EOF 
-;
+	iv_ruleTableDerived=ruleTableDerived
+	{ $current=$iv_ruleTableDerived.current; }
+	EOF;
 
 // Rule TableDerived
-ruleTableDerived returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='derived' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableDerivedAccess().getDerivedKeyword_0());
-    }
-(
-(
+ruleTableDerived returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='derived'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableDerivedRule());
-	        }
-        }
-	otherlv_1=RULE_ID
-	{
-		newLeafNode(otherlv_1, grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureCrossReference_1_0()); 
-	}
-
-)
-))
+			newLeafNode(otherlv_0, grammarAccess.getTableDerivedAccess().getDerivedKeyword_0());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableDerivedRule());
+					}
+				}
+				otherlv_1=RULE_ID
+				{
+					newLeafNode(otherlv_1, grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureCrossReference_1_0());
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableHierarchy
-entryRuleTableHierarchy returns [EObject current=null] 
-	:
+entryRuleTableHierarchy returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableHierarchyRule()); }
-	 iv_ruleTableHierarchy=ruleTableHierarchy 
-	 { $current=$iv_ruleTableHierarchy.current; } 
-	 EOF 
-;
+	iv_ruleTableHierarchy=ruleTableHierarchy
+	{ $current=$iv_ruleTableHierarchy.current; }
+	EOF;
 
 // Rule TableHierarchy
-ruleTableHierarchy returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='level' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableHierarchyAccess().getLevelKeyword_0());
-    }
-(
-(
+ruleTableHierarchy returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='level'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableHierarchyRule());
-	        }
-        }
-	otherlv_1=RULE_ID
-	{
-		newLeafNode(otherlv_1, grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelCrossReference_1_0()); 
-	}
-
-)
-))
+			newLeafNode(otherlv_0, grammarAccess.getTableHierarchyAccess().getLevelKeyword_0());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableHierarchyRule());
+					}
+				}
+				otherlv_1=RULE_ID
+				{
+					newLeafNode(otherlv_1, grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelCrossReference_1_0());
+				}
+			)
+		)
+	)
 ;
 
+// Entry rule entryRuleTableAttribute
+entryRuleTableAttribute returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTableAttributeRule()); }
+	iv_ruleTableAttribute=ruleTableAttribute
+	{ $current=$iv_ruleTableAttribute.current; }
+	EOF;
 
-
-
-
-// Entry rule entryRuleTableProperty
-entryRuleTableProperty returns [EObject current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getTablePropertyRule()); }
-	 iv_ruleTableProperty=ruleTableProperty 
-	 { $current=$iv_ruleTableProperty.current; } 
-	 EOF 
-;
-
-// Rule TableProperty
-ruleTableProperty returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTablePropertyAccess().getTablePropertyAction_0(),
-            $current);
-    }
-)	otherlv_1='property' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTablePropertyAccess().getPropertyKeyword_1());
-    }
-(
-(
+// Rule TableAttribute
+ruleTableAttribute returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableAttributeAccess().getTableAttributeAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='property'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTablePropertyRule());
-	        }
-        }
-	otherlv_2=RULE_ID
-	{
-		newLeafNode(otherlv_2, grammarAccess.getTablePropertyAccess().getValueRefDatamartPropertyCrossReference_2_0()); 
-	}
-
-)
-))
+			newLeafNode(otherlv_1, grammarAccess.getTableAttributeAccess().getPropertyKeyword_1());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableAttributeRule());
+					}
+				}
+				otherlv_2=RULE_ID
+				{
+					newLeafNode(otherlv_2, grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeCrossReference_2_0());
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableAggregation
-entryRuleTableAggregation returns [EObject current=null] 
-	:
+entryRuleTableAggregation returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableAggregationRule()); }
-	 iv_ruleTableAggregation=ruleTableAggregation 
-	 { $current=$iv_ruleTableAggregation.current; } 
-	 EOF 
-;
+	iv_ruleTableAggregation=ruleTableAggregation
+	{ $current=$iv_ruleTableAggregation.current; }
+	EOF;
 
 // Rule TableAggregation
-ruleTableAggregation returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='aggregation' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableAggregationAccess().getAggregationKeyword_0());
-    }
-(
-(
+ruleTableAggregation returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='aggregation'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableAggregationRule());
-	        }
-        }
-	otherlv_1=RULE_ID
-	{
-		newLeafNode(otherlv_1, grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionCrossReference_1_0()); 
-	}
-
-)
-))
+			newLeafNode(otherlv_0, grammarAccess.getTableAggregationAccess().getAggregationKeyword_0());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableAggregationRule());
+					}
+				}
+				otherlv_1=RULE_ID
+				{
+					newLeafNode(otherlv_1, grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionCrossReference_1_0());
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableInterval
-entryRuleTableInterval returns [EObject current=null] 
-	:
+entryRuleTableInterval returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableIntervalRule()); }
-	 iv_ruleTableInterval=ruleTableInterval 
-	 { $current=$iv_ruleTableInterval.current; } 
-	 EOF 
-;
+	iv_ruleTableInterval=ruleTableInterval
+	{ $current=$iv_ruleTableInterval.current; }
+	EOF;
 
 // Rule TableInterval
-ruleTableInterval returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getTableIntervalAccess().getTableNumberIntervalParserRuleCall_0()); 
-    }
-    this_TableNumberInterval_0=ruleTableNumberInterval
-    { 
-        $current = $this_TableNumberInterval_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableIntervalAccess().getTableDateDayIntervalParserRuleCall_1()); 
-    }
-    this_TableDateDayInterval_1=ruleTableDateDayInterval
-    { 
-        $current = $this_TableDateDayInterval_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleTableInterval returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getTableIntervalAccess().getTableNumberIntervalParserRuleCall_0());
+		}
+		this_TableNumberInterval_0=ruleTableNumberInterval
+		{
+			$current = $this_TableNumberInterval_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableIntervalAccess().getTableIntIntervalParserRuleCall_1());
+		}
+		this_TableIntInterval_1=ruleTableIntInterval
+		{
+			$current = $this_TableIntInterval_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableIntervalAccess().getTableDateDayIntervalParserRuleCall_2());
+		}
+		this_TableDateDayInterval_2=ruleTableDateDayInterval
+		{
+			$current = $this_TableDateDayInterval_2.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableNumberInterval
-entryRuleTableNumberInterval returns [EObject current=null] 
-	:
+entryRuleTableNumberInterval returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableNumberIntervalRule()); }
-	 iv_ruleTableNumberInterval=ruleTableNumberInterval 
-	 { $current=$iv_ruleTableNumberInterval.current; } 
-	 EOF 
-;
+	iv_ruleTableNumberInterval=ruleTableNumberInterval
+	{ $current=$iv_ruleTableNumberInterval.current; }
+	EOF;
 
 // Rule TableNumberInterval
-ruleTableNumberInterval returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableNumberIntervalAccess().getTableNumberIntervalAction_0(),
-            $current);
-    }
-)	otherlv_1='up to' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableNumberIntervalAccess().getUpToKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0()); 
-	    }
-		lv_numberIntervalValue_2_0=ruleSignedNumber		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableNumberIntervalRule());
-	        }
-       		set(
-       			$current, 
-       			"numberIntervalValue",
-        		lv_numberIntervalValue_2_0, 
-        		"SignedNumber");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableNumberIntervalAccess().getNumberRangeTableRangeElementParserRuleCall_3_0()); 
-	    }
-		lv_numberRange_3_0=ruleTableRangeElement		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableNumberIntervalRule());
-	        }
-       		set(
-       			$current, 
-       			"numberRange",
-        		lv_numberRange_3_0, 
-        		"TableRangeElement");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleTableNumberInterval returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableNumberIntervalAccess().getTableNumberIntervalAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='upToNumber'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableNumberIntervalAccess().getUpToNumberKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0());
+				}
+				lv_numberIntervalValue_2_0=ruleSignedNumber
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableNumberIntervalRule());
+					}
+					set(
+						$current,
+						"numberIntervalValue",
+						lv_numberIntervalValue_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.SignedNumber");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableNumberIntervalAccess().getNumberRangeTableRangeElementParserRuleCall_3_0());
+				}
+				lv_numberRange_3_0=ruleTableRangeElement
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableNumberIntervalRule());
+					}
+					set(
+						$current,
+						"numberRange",
+						lv_numberRange_3_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
+// Entry rule entryRuleTableIntInterval
+entryRuleTableIntInterval returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTableIntIntervalRule()); }
+	iv_ruleTableIntInterval=ruleTableIntInterval
+	{ $current=$iv_ruleTableIntInterval.current; }
+	EOF;
 
-
-
+// Rule TableIntInterval
+ruleTableIntInterval returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableIntIntervalAccess().getTableIntIntervalAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='upToInteger'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableIntIntervalAccess().getUpToIntegerKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueSignedIntParserRuleCall_2_0());
+				}
+				lv_intIntervalValue_2_0=ruleSignedInt
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableIntIntervalRule());
+					}
+					set(
+						$current,
+						"intIntervalValue",
+						lv_intIntervalValue_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.SignedInt");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableIntIntervalAccess().getIntRangeTableRangeElementParserRuleCall_3_0());
+				}
+				lv_intRange_3_0=ruleTableRangeElement
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableIntIntervalRule());
+					}
+					set(
+						$current,
+						"intRange",
+						lv_intRange_3_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
 
 // Entry rule entryRuleTableDateDayInterval
-entryRuleTableDateDayInterval returns [EObject current=null] 
-	:
+entryRuleTableDateDayInterval returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableDateDayIntervalRule()); }
-	 iv_ruleTableDateDayInterval=ruleTableDateDayInterval 
-	 { $current=$iv_ruleTableDateDayInterval.current; } 
-	 EOF 
-;
+	iv_ruleTableDateDayInterval=ruleTableDateDayInterval
+	{ $current=$iv_ruleTableDateDayInterval.current; }
+	EOF;
 
 // Rule TableDateDayInterval
-ruleTableDateDayInterval returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableDateDayIntervalAccess().getTableDateDayIntervalAction_0(),
-            $current);
-    }
-)	otherlv_1='days in past' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableDateDayIntervalAccess().getDaysInPastKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueSignedNumberParserRuleCall_2_0()); 
-	    }
-		lv_dateIntervalValue_2_0=ruleSignedNumber		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableDateDayIntervalRule());
-	        }
-       		set(
-       			$current, 
-       			"dateIntervalValue",
-        		lv_dateIntervalValue_2_0, 
-        		"SignedNumber");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableDateDayIntervalAccess().getDateRangeTableRangeElementParserRuleCall_3_0()); 
-	    }
-		lv_dateRange_3_0=ruleTableRangeElement		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableDateDayIntervalRule());
-	        }
-       		set(
-       			$current, 
-       			"dateRange",
-        		lv_dateRange_3_0, 
-        		"TableRangeElement");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleTableDateDayInterval returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableDateDayIntervalAccess().getTableDateDayIntervalAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='daysInPast'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableDateDayIntervalAccess().getDaysInPastKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueSignedIntParserRuleCall_2_0());
+				}
+				lv_dateIntervalValue_2_0=ruleSignedInt
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableDateDayIntervalRule());
+					}
+					set(
+						$current,
+						"dateIntervalValue",
+						lv_dateIntervalValue_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.SignedInt");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableDateDayIntervalAccess().getDateRangeTableRangeElementParserRuleCall_3_0());
+				}
+				lv_dateRange_3_0=ruleTableRangeElement
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableDateDayIntervalRule());
+					}
+					set(
+						$current,
+						"dateRange",
+						lv_dateRange_3_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableLookup
-entryRuleTableLookup returns [EObject current=null] 
-	:
+entryRuleTableLookup returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableLookupRule()); }
-	 iv_ruleTableLookup=ruleTableLookup 
-	 { $current=$iv_ruleTableLookup.current; } 
-	 EOF 
-;
+	iv_ruleTableLookup=ruleTableLookup
+	{ $current=$iv_ruleTableLookup.current; }
+	EOF;
 
 // Rule TableLookup
-ruleTableLookup returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getTableLookupAccess().getTableNumberLookupParserRuleCall_0()); 
-    }
-    this_TableNumberLookup_0=ruleTableNumberLookup
-    { 
-        $current = $this_TableNumberLookup_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableLookupAccess().getTableStringLookupParserRuleCall_1()); 
-    }
-    this_TableStringLookup_1=ruleTableStringLookup
-    { 
-        $current = $this_TableStringLookup_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableLookupAccess().getTableDateDayLookupParserRuleCall_2()); 
-    }
-    this_TableDateDayLookup_2=ruleTableDateDayLookup
-    { 
-        $current = $this_TableDateDayLookup_2.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleTableLookup returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getTableLookupAccess().getTableNumberLookupParserRuleCall_0());
+		}
+		this_TableNumberLookup_0=ruleTableNumberLookup
+		{
+			$current = $this_TableNumberLookup_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableLookupAccess().getTableIntLookupParserRuleCall_1());
+		}
+		this_TableIntLookup_1=ruleTableIntLookup
+		{
+			$current = $this_TableIntLookup_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableLookupAccess().getTableStringLookupParserRuleCall_2());
+		}
+		this_TableStringLookup_2=ruleTableStringLookup
+		{
+			$current = $this_TableStringLookup_2.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableLookupAccess().getTableDateDayLookupParserRuleCall_3());
+		}
+		this_TableDateDayLookup_3=ruleTableDateDayLookup
+		{
+			$current = $this_TableDateDayLookup_3.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
+// Entry rule entryRuleTableIntLookup
+entryRuleTableIntLookup returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTableIntLookupRule()); }
+	iv_ruleTableIntLookup=ruleTableIntLookup
+	{ $current=$iv_ruleTableIntLookup.current; }
+	EOF;
 
-
-
+// Rule TableIntLookup
+ruleTableIntLookup returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableIntLookupAccess().getTableIntLookupAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='integer'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableIntLookupAccess().getIntegerKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableIntLookupAccess().getLookupValueSignedIntParserRuleCall_2_0());
+				}
+				lv_lookupValue_2_0=ruleSignedInt
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableIntLookupRule());
+					}
+					set(
+						$current,
+						"lookupValue",
+						lv_lookupValue_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.SignedInt");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableIntLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0());
+				}
+				lv_discrete_3_0=ruleTableRangeElement
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableIntLookupRule());
+					}
+					set(
+						$current,
+						"discrete",
+						lv_discrete_3_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
 
 // Entry rule entryRuleTableNumberLookup
-entryRuleTableNumberLookup returns [EObject current=null] 
-	:
+entryRuleTableNumberLookup returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableNumberLookupRule()); }
-	 iv_ruleTableNumberLookup=ruleTableNumberLookup 
-	 { $current=$iv_ruleTableNumberLookup.current; } 
-	 EOF 
-;
+	iv_ruleTableNumberLookup=ruleTableNumberLookup
+	{ $current=$iv_ruleTableNumberLookup.current; }
+	EOF;
 
 // Rule TableNumberLookup
-ruleTableNumberLookup returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableNumberLookupAccess().getTableNumberLookupAction_0(),
-            $current);
-    }
-)	otherlv_1='number' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableNumberLookupAccess().getNumberKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableNumberLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0()); 
-	    }
-		lv_lookupValue_2_0=ruleSignedNumber		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableNumberLookupRule());
-	        }
-       		set(
-       			$current, 
-       			"lookupValue",
-        		lv_lookupValue_2_0, 
-        		"SignedNumber");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableNumberLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
-	    }
-		lv_discrete_3_0=ruleTableRangeElement		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableNumberLookupRule());
-	        }
-       		set(
-       			$current, 
-       			"discrete",
-        		lv_discrete_3_0, 
-        		"TableRangeElement");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleTableNumberLookup returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableNumberLookupAccess().getTableNumberLookupAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='number'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableNumberLookupAccess().getNumberKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableNumberLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0());
+				}
+				lv_lookupValue_2_0=ruleSignedNumber
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableNumberLookupRule());
+					}
+					set(
+						$current,
+						"lookupValue",
+						lv_lookupValue_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.SignedNumber");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableNumberLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0());
+				}
+				lv_discrete_3_0=ruleTableRangeElement
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableNumberLookupRule());
+					}
+					set(
+						$current,
+						"discrete",
+						lv_discrete_3_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableStringLookup
-entryRuleTableStringLookup returns [EObject current=null] 
-	:
+entryRuleTableStringLookup returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableStringLookupRule()); }
-	 iv_ruleTableStringLookup=ruleTableStringLookup 
-	 { $current=$iv_ruleTableStringLookup.current; } 
-	 EOF 
-;
+	iv_ruleTableStringLookup=ruleTableStringLookup
+	{ $current=$iv_ruleTableStringLookup.current; }
+	EOF;
 
 // Rule TableStringLookup
-ruleTableStringLookup returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableStringLookupAccess().getTableStringLookupAction_0(),
-            $current);
-    }
-)	otherlv_1='string' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableStringLookupAccess().getStringKeyword_1());
-    }
-(
-(
-		lv_lookupValue_2_0=RULE_STRING
+ruleTableStringLookup returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableStringLookupAccess().getTableStringLookupAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='string'
 		{
-			newLeafNode(lv_lookupValue_2_0, grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0()); 
+			newLeafNode(otherlv_1, grammarAccess.getTableStringLookupAccess().getStringKeyword_1());
 		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableStringLookupRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"lookupValue",
-        		lv_lookupValue_2_0, 
-        		"STRING");
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableStringLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
-	    }
-		lv_discrete_3_0=ruleTableRangeElement		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableStringLookupRule());
-	        }
-       		set(
-       			$current, 
-       			"discrete",
-        		lv_discrete_3_0, 
-        		"TableRangeElement");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+		(
+			(
+				lv_lookupValue_2_0=RULE_STRING
+				{
+					newLeafNode(lv_lookupValue_2_0, grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableStringLookupRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"lookupValue",
+						lv_lookupValue_2_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableStringLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0());
+				}
+				lv_discrete_3_0=ruleTableRangeElement
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableStringLookupRule());
+					}
+					set(
+						$current,
+						"discrete",
+						lv_discrete_3_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableDateDayLookup
-entryRuleTableDateDayLookup returns [EObject current=null] 
-	:
+entryRuleTableDateDayLookup returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableDateDayLookupRule()); }
-	 iv_ruleTableDateDayLookup=ruleTableDateDayLookup 
-	 { $current=$iv_ruleTableDateDayLookup.current; } 
-	 EOF 
-;
+	iv_ruleTableDateDayLookup=ruleTableDateDayLookup
+	{ $current=$iv_ruleTableDateDayLookup.current; }
+	EOF;
 
 // Rule TableDateDayLookup
-ruleTableDateDayLookup returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableDateDayLookupAccess().getTableDateDayLookupAction_0(),
-            $current);
-    }
-)	otherlv_1='days in past' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableDateDayLookupAccess().getDaysInPastKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0()); 
-	    }
-		lv_lookupValue_2_0=ruleSignedNumber		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableDateDayLookupRule());
-	        }
-       		set(
-       			$current, 
-       			"lookupValue",
-        		lv_lookupValue_2_0, 
-        		"SignedNumber");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableDateDayLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
-	    }
-		lv_discrete_3_0=ruleTableRangeElement		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableDateDayLookupRule());
-	        }
-       		set(
-       			$current, 
-       			"discrete",
-        		lv_discrete_3_0, 
-        		"TableRangeElement");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleTableDateDayLookup returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableDateDayLookupAccess().getTableDateDayLookupAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='daysInPast'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableDateDayLookupAccess().getDaysInPastKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedIntParserRuleCall_2_0());
+				}
+				lv_lookupValue_2_0=ruleSignedInt
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableDateDayLookupRule());
+					}
+					set(
+						$current,
+						"lookupValue",
+						lv_lookupValue_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.SignedInt");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableDateDayLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0());
+				}
+				lv_discrete_3_0=ruleTableRangeElement
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableDateDayLookupRule());
+					}
+					set(
+						$current,
+						"discrete",
+						lv_discrete_3_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableDatamart
-entryRuleTableDatamart returns [EObject current=null] 
-	:
+entryRuleTableDatamart returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableDatamartRule()); }
-	 iv_ruleTableDatamart=ruleTableDatamart 
-	 { $current=$iv_ruleTableDatamart.current; } 
-	 EOF 
-;
+	iv_ruleTableDatamart=ruleTableDatamart
+	{ $current=$iv_ruleTableDatamart.current; }
+	EOF;
 
 // Rule TableDatamart
-ruleTableDatamart returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='datamart' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableDatamartAccess().getDatamartKeyword_0());
-    }
-(
-(
+ruleTableDatamart returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='datamart'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableDatamartRule());
-	        }
-        }
-	otherlv_1=RULE_ID
-	{
-		newLeafNode(otherlv_1, grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionCrossReference_1_0()); 
-	}
-
-)
-)(	otherlv_2='{' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getTableDatamartAccess().getLeftCurlyBracketKeyword_2_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableDatamartAccess().getElementsTableElementParserRuleCall_2_1_0()); 
-	    }
-		lv_elements_3_0=ruleTableElement		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableDatamartRule());
-	        }
-       		add(
-       			$current, 
-       			"elements",
-        		lv_elements_3_0, 
-        		"TableElement");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*	otherlv_4='}' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getTableDatamartAccess().getRightCurlyBracketKeyword_2_2());
-    }
-)?)
+			newLeafNode(otherlv_0, grammarAccess.getTableDatamartAccess().getDatamartKeyword_0());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableDatamartRule());
+					}
+				}
+				otherlv_1=RULE_ID
+				{
+					newLeafNode(otherlv_1, grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionCrossReference_1_0());
+				}
+			)
+		)
+		(
+			otherlv_2='{'
+			{
+				newLeafNode(otherlv_2, grammarAccess.getTableDatamartAccess().getLeftCurlyBracketKeyword_2_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTableDatamartAccess().getElementsTableElementParserRuleCall_2_1_0());
+					}
+					lv_elements_3_0=ruleTableElement
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTableDatamartRule());
+						}
+						add(
+							$current,
+							"elements",
+							lv_elements_3_0,
+							"org.eclipse.osbp.xtext.table.TableDSL.TableElement");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)*
+			otherlv_4='}'
+			{
+				newLeafNode(otherlv_4, grammarAccess.getTableDatamartAccess().getRightCurlyBracketKeyword_2_2());
+			}
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableElement
-entryRuleTableElement returns [EObject current=null] 
-	:
+entryRuleTableElement returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableElementRule()); }
-	 iv_ruleTableElement=ruleTableElement 
-	 { $current=$iv_ruleTableElement.current; } 
-	 EOF 
-;
+	iv_ruleTableElement=ruleTableElement
+	{ $current=$iv_ruleTableElement.current; }
+	EOF;
 
 // Rule TableElement
-ruleTableElement returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-
-    { 
-        newCompositeNode(grammarAccess.getTableElementAccess().getTableAxisParserRuleCall()); 
-    }
-    this_TableAxis_0=ruleTableAxis
-    { 
-        $current = $this_TableAxis_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
+ruleTableElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	{
+		newCompositeNode(grammarAccess.getTableElementAccess().getTableAxisParserRuleCall());
+	}
+	this_TableAxis_0=ruleTableAxis
+	{
+		$current = $this_TableAxis_0.current;
+		afterParserOrEnumRuleCall();
+	}
 ;
 
-
-
-
-
 // Entry rule entryRuleTableEvent
-entryRuleTableEvent returns [EObject current=null] 
-	:
+entryRuleTableEvent returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableEventRule()); }
-	 iv_ruleTableEvent=ruleTableEvent 
-	 { $current=$iv_ruleTableEvent.current; } 
-	 EOF 
-;
+	iv_ruleTableEvent=ruleTableEvent
+	{ $current=$iv_ruleTableEvent.current; }
+	EOF;
 
 // Rule TableEvent
-ruleTableEvent returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='broker' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableEventAccess().getBrokerKeyword_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableEventAccess().getSourceTableValueElementParserRuleCall_1_0()); 
-	    }
-		lv_source_1_0=ruleTableValueElement		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableEventRule());
-	        }
-       		set(
-       			$current, 
-       			"source",
-        		lv_source_1_0, 
-        		"TableValueElement");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_2='to' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getTableEventAccess().getToKeyword_2());
-    }
-	otherlv_3='{' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getTableEventAccess().getLeftCurlyBracketKeyword_3());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableEventAccess().getBrokerDatamartsTableBrokerDatamartParserRuleCall_4_0()); 
-	    }
-		lv_brokerDatamarts_4_0=ruleTableBrokerDatamart		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableEventRule());
-	        }
-       		add(
-       			$current, 
-       			"brokerDatamarts",
-        		lv_brokerDatamarts_4_0, 
-        		"TableBrokerDatamart");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*	otherlv_5='}' 
-    {
-    	newLeafNode(otherlv_5, grammarAccess.getTableEventAccess().getRightCurlyBracketKeyword_5());
-    }
-)
+ruleTableEvent returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				newCompositeNode(grammarAccess.getTableEventAccess().getSourceTableValueElementParserRuleCall_0());
+			}
+			lv_source_0_0=ruleTableValueElement
+			{
+				if ($current==null) {
+					$current = createModelElementForParent(grammarAccess.getTableEventRule());
+				}
+				set(
+					$current,
+					"source",
+					lv_source_0_0,
+					"org.eclipse.osbp.xtext.table.TableDSL.TableValueElement");
+				afterParserOrEnumRuleCall();
+			}
+		)
+	)
 ;
 
-
-
-
-
-// Entry rule entryRuleTableBrokerDatamart
-entryRuleTableBrokerDatamart returns [EObject current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getTableBrokerDatamartRule()); }
-	 iv_ruleTableBrokerDatamart=ruleTableBrokerDatamart 
-	 { $current=$iv_ruleTableBrokerDatamart.current; } 
-	 EOF 
-;
-
-// Rule TableBrokerDatamart
-ruleTableBrokerDatamart returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='datamart' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableBrokerDatamartAccess().getDatamartKeyword_0());
-    }
-(
-(
-		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableBrokerDatamartRule());
-	        }
-        }
-	otherlv_1=RULE_ID
-	{
-		newLeafNode(otherlv_1, grammarAccess.getTableBrokerDatamartAccess().getDatamartDefDatamartDefinitionCrossReference_1_0()); 
-	}
-
-)
-)((	otherlv_2='filter' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getTableBrokerDatamartAccess().getFilterKeyword_2_0_0());
-    }
-(
-(
-		lv_filter_3_0=RULE_STRING
-		{
-			newLeafNode(lv_filter_3_0, grammarAccess.getTableBrokerDatamartAccess().getFilterSTRINGTerminalRuleCall_2_0_1_0()); 
-		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableBrokerDatamartRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"filter",
-        		lv_filter_3_0, 
-        		"STRING");
-	    }
-
-)
-))
-    |(	otherlv_4='referenced' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getTableBrokerDatamartAccess().getReferencedKeyword_2_1_0());
-    }
-(
-(
-		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableBrokerDatamartRule());
-	        }
-        }
-	otherlv_5=RULE_ID
-	{
-		newLeafNode(otherlv_5, grammarAccess.getTableBrokerDatamartAccess().getReferenceLEntityReferenceCrossReference_2_1_1_0()); 
-	}
-
-)
-))))
-;
-
-
-
-
-
 // Entry rule entryRuleTableAxis
-entryRuleTableAxis returns [EObject current=null] 
-	:
+entryRuleTableAxis returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableAxisRule()); }
-	 iv_ruleTableAxis=ruleTableAxis 
-	 { $current=$iv_ruleTableAxis.current; } 
-	 EOF 
-;
+	iv_ruleTableAxis=ruleTableAxis
+	{ $current=$iv_ruleTableAxis.current; }
+	EOF;
 
 // Rule TableAxis
-ruleTableAxis returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='axis' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableAxisAccess().getAxisKeyword_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableAxisAccess().getAxisAxisEnumEnumRuleCall_1_0()); 
-	    }
-		lv_axis_1_0=ruleAxisEnum		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableAxisRule());
-	        }
-       		set(
-       			$current, 
-       			"axis",
-        		lv_axis_1_0, 
-        		"AxisEnum");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-
-(
-	{ 
-	  getUnorderedGroupHelper().enter(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
-	}
+ruleTableAxis returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
 	(
+		otherlv_0='axis'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getTableAxisAccess().getAxisKeyword_0());
+		}
 		(
-
-			( 
+			(
+				{
+					newCompositeNode(grammarAccess.getTableAxisAccess().getAxisAxisEnumEnumRuleCall_1_0());
+				}
+				lv_axis_1_0=ruleAxisEnum
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableAxisRule());
+					}
+					set(
+						$current,
+						"axis",
+						lv_axis_1_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.AxisEnum");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{ 
+				  getUnorderedGroupHelper().enter(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
+				}
+				(
+					(
+			(
 				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0);
+					}
+								({true}?=>((
+									(
+										lv_hasRowHeight_3_0='rowheight'
+										{
+											newLeafNode(lv_hasRowHeight_3_0, grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableAxisRule());
+											}
+											setWithLastConsumed($current, "hasRowHeight", true, "rowheight");
+										}
+									)
+								)
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableAxisAccess().getRowHeightNumberParserRuleCall_2_0_1_0());
+										}
+										lv_rowHeight_4_0=ruleNumber
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableAxisRule());
+											}
+											set(
+												$current,
+												"rowHeight",
+												lv_rowHeight_4_0,
+												"org.eclipse.xtext.xbase.Xbase.Number");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0);
-	 				}
-					({true}?=>((
-(
-		lv_hasRowHeight_3_0=	'rowheight' 
-    {
-        newLeafNode(lv_hasRowHeight_3_0, grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableAxisRule());
-	        }
-       		setWithLastConsumed($current, "hasRowHeight", true, "rowheight");
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableAxisAccess().getRowHeightNumberParserRuleCall_2_0_1_0()); 
-	    }
-		lv_rowHeight_4_0=ruleNumber		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableAxisRule());
-	        }
-       		set(
-       			$current, 
-       			"rowHeight",
-        		lv_rowHeight_4_0, 
-        		"Number");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
-	 				}
- 				)
-			)  |
-
-			( 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
 				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1);
+					}
+								({true}?=>((
+									{
+										newCompositeNode(grammarAccess.getTableAxisAccess().getPreOrderTablePreorderParserRuleCall_2_1_0());
+									}
+									lv_preOrder_5_0=ruleTablePreorder
+									{
+										if ($current==null) {
+											$current = createModelElementForParent(grammarAccess.getTableAxisRule());
+										}
+										set(
+											$current,
+											"preOrder",
+											lv_preOrder_5_0,
+											"org.eclipse.osbp.xtext.table.TableDSL.TablePreorder");
+										afterParserOrEnumRuleCall();
+									}
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1);
-	 				}
-					({true}?=>(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableAxisAccess().getPreOrderTablePreorderParserRuleCall_2_1_0()); 
-	    }
-		lv_preOrder_5_0=ruleTablePreorder		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableAxisRule());
-	        }
-       		set(
-       			$current, 
-       			"preOrder",
-        		lv_preOrder_5_0, 
-        		"TablePreorder");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
-	 				}
- 				)
-			)  
-
-		)*	
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
+					}
+				)
+			)
+					)*
+				)
+			)
+				{ 
+				  getUnorderedGroupHelper().leave(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
+				}
+		)
+		(
+			(
+				(
+					lv_hasDetails_6_0='details'
+					{
+						newLeafNode(lv_hasDetails_6_0, grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTableAxisRule());
+						}
+						setWithLastConsumed($current, "hasDetails", true, "details");
+					}
+				)
+			)
+			otherlv_7='{'
+			{
+				newLeafNode(otherlv_7, grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_3_1());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTableAxisAccess().getValuesTableValueParserRuleCall_3_2_0());
+					}
+					lv_values_8_0=ruleTableValue
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTableAxisRule());
+						}
+						add(
+							$current,
+							"values",
+							lv_values_8_0,
+							"org.eclipse.osbp.xtext.table.TableDSL.TableValue");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)*
+			otherlv_9='}'
+			{
+				newLeafNode(otherlv_9, grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_3_3());
+			}
+		)?
+		(
+			(
+				(
+					lv_hasEvents_10_0='notifyOnSelect'
+					{
+						newLeafNode(lv_hasEvents_10_0, grammarAccess.getTableAxisAccess().getHasEventsNotifyOnSelectKeyword_4_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTableAxisRule());
+						}
+						setWithLastConsumed($current, "hasEvents", true, "notifyOnSelect");
+					}
+				)
+			)
+			otherlv_11='{'
+			{
+				newLeafNode(otherlv_11, grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_4_1());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTableAxisAccess().getEventsTableEventParserRuleCall_4_2_0());
+					}
+					lv_events_12_0=ruleTableEvent
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTableAxisRule());
+						}
+						add(
+							$current,
+							"events",
+							lv_events_12_0,
+							"org.eclipse.osbp.xtext.table.TableDSL.TableEvent");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)*
+			otherlv_13='}'
+			{
+				newLeafNode(otherlv_13, grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_4_3());
+			}
+		)?
 	)
-)
-	{ 
-	  getUnorderedGroupHelper().leave(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
-	}
-
-)((
-(
-		lv_hasDetails_6_0=	'details' 
-    {
-        newLeafNode(lv_hasDetails_6_0, grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableAxisRule());
-	        }
-       		setWithLastConsumed($current, "hasDetails", true, "details");
-	    }
-
-)
-)	otherlv_7='{' 
-    {
-    	newLeafNode(otherlv_7, grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_3_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableAxisAccess().getValuesTableValueParserRuleCall_3_2_0()); 
-	    }
-		lv_values_8_0=ruleTableValue		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableAxisRule());
-	        }
-       		add(
-       			$current, 
-       			"values",
-        		lv_values_8_0, 
-        		"TableValue");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*	otherlv_9='}' 
-    {
-    	newLeafNode(otherlv_9, grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_3_3());
-    }
-)?((
-(
-		lv_hasEvents_10_0=	'events' 
-    {
-        newLeafNode(lv_hasEvents_10_0, grammarAccess.getTableAxisAccess().getHasEventsEventsKeyword_4_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableAxisRule());
-	        }
-       		setWithLastConsumed($current, "hasEvents", true, "events");
-	    }
-
-)
-)	otherlv_11='{' 
-    {
-    	newLeafNode(otherlv_11, grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_4_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableAxisAccess().getEventsTableEventParserRuleCall_4_2_0()); 
-	    }
-		lv_events_12_0=ruleTableEvent		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableAxisRule());
-	        }
-       		add(
-       			$current, 
-       			"events",
-        		lv_events_12_0, 
-        		"TableEvent");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*	otherlv_13='}' 
-    {
-    	newLeafNode(otherlv_13, grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_4_3());
-    }
-)?)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableRangeElement
-entryRuleTableRangeElement returns [EObject current=null] 
-	:
+entryRuleTableRangeElement returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableRangeElementRule()); }
-	 iv_ruleTableRangeElement=ruleTableRangeElement 
-	 { $current=$iv_ruleTableRangeElement.current; } 
-	 EOF 
-;
+	iv_ruleTableRangeElement=ruleTableRangeElement
+	{ $current=$iv_ruleTableRangeElement.current; }
+	EOF;
 
 // Rule TableRangeElement
-ruleTableRangeElement returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTextColorParserRuleCall_0()); 
-    }
-    this_TableTextColor_0=ruleTableTextColor
-    { 
-        $current = $this_TableTextColor_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableCellColorParserRuleCall_1()); 
-    }
-    this_TableCellColor_1=ruleTableCellColor
-    { 
-        $current = $this_TableCellColor_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableIconParserRuleCall_2()); 
-    }
-    this_TableIcon_2=ruleTableIcon
-    { 
-        $current = $this_TableIcon_2.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTrendParserRuleCall_3()); 
-    }
-    this_TableTrend_3=ruleTableTrend
-    { 
-        $current = $this_TableTrend_3.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTooltipParserRuleCall_4()); 
-    }
-    this_TableTooltip_4=ruleTableTooltip
-    { 
-        $current = $this_TableTooltip_4.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleTableRangeElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTextColorParserRuleCall_0());
+		}
+		this_TableTextColor_0=ruleTableTextColor
+		{
+			$current = $this_TableTextColor_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableCellColorParserRuleCall_1());
+		}
+		this_TableCellColor_1=ruleTableCellColor
+		{
+			$current = $this_TableCellColor_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableIconParserRuleCall_2());
+		}
+		this_TableIcon_2=ruleTableIcon
+		{
+			$current = $this_TableIcon_2.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTrendParserRuleCall_3());
+		}
+		this_TableTrend_3=ruleTableTrend
+		{
+			$current = $this_TableTrend_3.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTooltipParserRuleCall_4());
+		}
+		this_TableTooltip_4=ruleTableTooltip
+		{
+			$current = $this_TableTooltip_4.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableTextColor
-entryRuleTableTextColor returns [EObject current=null] 
-	:
+entryRuleTableTextColor returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableTextColorRule()); }
-	 iv_ruleTableTextColor=ruleTableTextColor 
-	 { $current=$iv_ruleTableTextColor.current; } 
-	 EOF 
-;
+	iv_ruleTableTextColor=ruleTableTextColor
+	{ $current=$iv_ruleTableTextColor.current; }
+	EOF;
 
 // Rule TableTextColor
-ruleTableTextColor returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='textcolor' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableTextColorAccess().getTextcolorKeyword_0());
-    }
-(
-(
-		lv_rgb_1_0=RULE_STRING
+ruleTableTextColor returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='textcolor'
 		{
-			newLeafNode(lv_rgb_1_0, grammarAccess.getTableTextColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
+			newLeafNode(otherlv_0, grammarAccess.getTableTextColorAccess().getTextcolorKeyword_0());
 		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableTextColorRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"rgb",
-        		lv_rgb_1_0, 
-        		"STRING");
-	    }
-
-)
-))
+		(
+			(
+				lv_rgb_1_0=RULE_STRING
+				{
+					newLeafNode(lv_rgb_1_0, grammarAccess.getTableTextColorAccess().getRgbSTRINGTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableTextColorRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"rgb",
+						lv_rgb_1_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableCellColor
-entryRuleTableCellColor returns [EObject current=null] 
-	:
+entryRuleTableCellColor returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableCellColorRule()); }
-	 iv_ruleTableCellColor=ruleTableCellColor 
-	 { $current=$iv_ruleTableCellColor.current; } 
-	 EOF 
-;
+	iv_ruleTableCellColor=ruleTableCellColor
+	{ $current=$iv_ruleTableCellColor.current; }
+	EOF;
 
 // Rule TableCellColor
-ruleTableCellColor returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='cellcolor' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableCellColorAccess().getCellcolorKeyword_0());
-    }
-(
-(
-		lv_rgb_1_0=RULE_STRING
+ruleTableCellColor returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='cellcolor'
 		{
-			newLeafNode(lv_rgb_1_0, grammarAccess.getTableCellColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
+			newLeafNode(otherlv_0, grammarAccess.getTableCellColorAccess().getCellcolorKeyword_0());
 		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableCellColorRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"rgb",
-        		lv_rgb_1_0, 
-        		"STRING");
-	    }
-
-)
-))
+		(
+			(
+				lv_rgb_1_0=RULE_STRING
+				{
+					newLeafNode(lv_rgb_1_0, grammarAccess.getTableCellColorAccess().getRgbSTRINGTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableCellColorRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"rgb",
+						lv_rgb_1_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableIcon
-entryRuleTableIcon returns [EObject current=null] 
-	:
+entryRuleTableIcon returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableIconRule()); }
-	 iv_ruleTableIcon=ruleTableIcon 
-	 { $current=$iv_ruleTableIcon.current; } 
-	 EOF 
-;
+	iv_ruleTableIcon=ruleTableIcon
+	{ $current=$iv_ruleTableIcon.current; }
+	EOF;
 
 // Rule TableIcon
-ruleTableIcon returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='icon' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableIconAccess().getIconKeyword_0());
-    }
-(
-(
-		lv_icon_1_0=RULE_STRING
+ruleTableIcon returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='icon'
 		{
-			newLeafNode(lv_icon_1_0, grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0()); 
+			newLeafNode(otherlv_0, grammarAccess.getTableIconAccess().getIconKeyword_0());
 		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableIconRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"icon",
-        		lv_icon_1_0, 
-        		"STRING");
-	    }
-
-)
-))
+		(
+			(
+				lv_icon_1_0=RULE_STRING
+				{
+					newLeafNode(lv_icon_1_0, grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableIconRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"icon",
+						lv_icon_1_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableTrend
-entryRuleTableTrend returns [EObject current=null] 
-	:
+entryRuleTableTrend returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableTrendRule()); }
-	 iv_ruleTableTrend=ruleTableTrend 
-	 { $current=$iv_ruleTableTrend.current; } 
-	 EOF 
-;
+	iv_ruleTableTrend=ruleTableTrend
+	{ $current=$iv_ruleTableTrend.current; }
+	EOF;
 
 // Rule TableTrend
-ruleTableTrend returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='trend' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableTrendAccess().getTrendKeyword_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableTrendAccess().getIconTrendIconEnumEnumRuleCall_1_0()); 
-	    }
-		lv_icon_1_0=ruleTrendIconEnum		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableTrendRule());
-	        }
-       		set(
-       			$current, 
-       			"icon",
-        		lv_icon_1_0, 
-        		"TrendIconEnum");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleTableTrend returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='trend'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getTableTrendAccess().getTrendKeyword_0());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableTrendAccess().getIconTrendIconEnumEnumRuleCall_1_0());
+				}
+				lv_icon_1_0=ruleTrendIconEnum
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableTrendRule());
+					}
+					set(
+						$current,
+						"icon",
+						lv_icon_1_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TrendIconEnum");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleTableTooltip
-entryRuleTableTooltip returns [EObject current=null] 
-	:
+entryRuleTableTooltip returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableTooltipRule()); }
-	 iv_ruleTableTooltip=ruleTableTooltip 
-	 { $current=$iv_ruleTableTooltip.current; } 
-	 EOF 
-;
+	iv_ruleTableTooltip=ruleTableTooltip
+	{ $current=$iv_ruleTableTooltip.current; }
+	EOF;
 
 // Rule TableTooltip
-ruleTableTooltip returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='tooltip' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableTooltipAccess().getTooltipKeyword_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableTooltipAccess().getTooltipTRANSLATABLESTRINGParserRuleCall_1_0()); 
-	    }
-		lv_tooltip_1_0=ruleTRANSLATABLESTRING		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableTooltipRule());
-	        }
-       		set(
-       			$current, 
-       			"tooltip",
-        		lv_tooltip_1_0, 
-        		"TRANSLATABLESTRING");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleTableTooltip returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='tooltip'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getTableTooltipAccess().getTooltipKeyword_0());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTableTooltipAccess().getTooltipTRANSLATABLESTRINGParserRuleCall_1_0());
+				}
+				lv_tooltip_1_0=ruleTRANSLATABLESTRING
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTableTooltipRule());
+					}
+					set(
+						$current,
+						"tooltip",
+						lv_tooltip_1_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.TRANSLATABLESTRING");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
-// Entry rule entryRuleTableImport
-entryRuleTableImport returns [EObject current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getTableImportRule()); }
-	 iv_ruleTableImport=ruleTableImport 
-	 { $current=$iv_ruleTableImport.current; } 
-	 EOF 
-;
-
-// Rule TableImport
-ruleTableImport returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='import' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableImportAccess().getImportKeyword_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableImportAccess().getImportedNamespaceTableQualifiedNameWithWildCardParserRuleCall_1_0()); 
-	    }
-		lv_importedNamespace_1_0=ruleTableQualifiedNameWithWildCard		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableImportRule());
-	        }
-       		set(
-       			$current, 
-       			"importedNamespace",
-        		lv_importedNamespace_1_0, 
-        		"TableQualifiedNameWithWildCard");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
-;
-
-
-
-
-
 // Entry rule entryRuleTableGrid
-entryRuleTableGrid returns [EObject current=null] 
-	:
+entryRuleTableGrid returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getTableGridRule()); }
-	 iv_ruleTableGrid=ruleTableGrid 
-	 { $current=$iv_ruleTableGrid.current; } 
-	 EOF 
-;
+	iv_ruleTableGrid=ruleTableGrid
+	{ $current=$iv_ruleTableGrid.current; }
+	EOF;
 
 // Rule TableGrid
-ruleTableGrid returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getTableGridAccess().getTableGridAction_0(),
-            $current);
-    }
-)	otherlv_1='grid' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getTableGridAccess().getGridKeyword_1());
-    }
-(
-
-(
-	{ 
-	  getUnorderedGroupHelper().enter(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
-	}
+ruleTableGrid returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
 	(
 		(
-
-			( 
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getTableGridAccess().getTableGridAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='grid'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTableGridAccess().getGridKeyword_1());
+		}
+		(
+			(
+				{ 
+				  getUnorderedGroupHelper().enter(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
+				}
+				(
+					(
+			(
 				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0);
+					}
+								({true}?=>((
+									lv_selectalways_3_0='selectalways'
+									{
+										newLeafNode(lv_selectalways_3_0, grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableGridRule());
+										}
+										setWithLastConsumed($current, "selectalways", true, "selectalways");
+									}
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0);
-	 				}
-					({true}?=>(
-(
-		lv_selectalways_3_0=	'selectalways' 
-    {
-        newLeafNode(lv_selectalways_3_0, grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableGridRule());
-	        }
-       		setWithLastConsumed($current, "selectalways", true, "selectalways");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
-	 				}
- 				)
-			)  |
-
-			( 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
+					}
+				)
+			)|
+			(
 				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1);
+					}
+								({true}?=>(otherlv_4='rowheader'
+								{
+									newLeafNode(otherlv_4, grammarAccess.getTableGridAccess().getRowheaderKeyword_2_1_0());
+								}
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableGridAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0());
+										}
+										lv_headerMode_5_0=ruleRowHeaderMode
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableGridRule());
+											}
+											set(
+												$current,
+												"headerMode",
+												lv_headerMode_5_0,
+												"org.eclipse.osbp.xtext.table.TableDSL.RowHeaderMode");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1);
-	 				}
-					({true}?=>(	otherlv_4='rowheader' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getTableGridAccess().getRowheaderKeyword_2_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableGridAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0()); 
-	    }
-		lv_headerMode_5_0=ruleRowHeaderMode		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableGridRule());
-	        }
-       		set(
-       			$current, 
-       			"headerMode",
-        		lv_headerMode_5_0, 
-        		"RowHeaderMode");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
-	 				}
- 				)
-			)  
-
-		)*	
-	)
-)
-	{ 
-	  getUnorderedGroupHelper().leave(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
-	}
-
-)(
-
-(
-	{ 
-	  getUnorderedGroupHelper().enter(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
-	}
-	(
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
+					}
+				)
+			)
+					)*
+				)
+			)
+				{ 
+				  getUnorderedGroupHelper().leave(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
+				}
+		)
 		(
-
-			( 
+			(
+				{ 
+				  getUnorderedGroupHelper().enter(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+				}
+				(
+					(
+			(
 				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0);
+					}
+								({true}?=>((
+									(
+										lv_polling_7_0='polling'
+										{
+											newLeafNode(lv_polling_7_0, grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0());
+										}
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableGridRule());
+											}
+											setWithLastConsumed($current, "polling", true, "polling");
+										}
+									)
+								)
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getTableGridAccess().getPollingTimeNumberParserRuleCall_3_0_1_0());
+										}
+										lv_pollingTime_8_0=ruleNumber
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getTableGridRule());
+											}
+											set(
+												$current,
+												"pollingTime",
+												lv_pollingTime_8_0,
+												"org.eclipse.xtext.xbase.Xbase.Number");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0);
-	 				}
-					({true}?=>((
-(
-		lv_polling_7_0=	'polling' 
-    {
-        newLeafNode(lv_polling_7_0, grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableGridRule());
-	        }
-       		setWithLastConsumed($current, "polling", true, "polling");
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableGridAccess().getPollingTimeNumberParserRuleCall_3_0_1_0()); 
-	    }
-		lv_pollingTime_8_0=ruleNumber		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableGridRule());
-	        }
-       		set(
-       			$current, 
-       			"pollingTime",
-        		lv_pollingTime_8_0, 
-        		"Number");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
 				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1);
+					}
+								({true}?=>((
+									lv_filtering_9_0='filtering'
+									{
+										newLeafNode(lv_filtering_9_0, grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableGridRule());
+										}
+										setWithLastConsumed($current, "filtering", true, "filtering");
+									}
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1);
-	 				}
-					({true}?=>(
-(
-		lv_filtering_9_0=	'filtering' 
-    {
-        newLeafNode(lv_filtering_9_0, grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableGridRule());
-	        }
-       		setWithLastConsumed($current, "filtering", true, "filtering");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
 				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2);
+					}
+								({true}?=>((
+									lv_embedded_10_0='embedded'
+									{
+										newLeafNode(lv_embedded_10_0, grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getTableGridRule());
+										}
+										setWithLastConsumed($current, "embedded", true, "embedded");
+									}
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2);
-	 				}
-					({true}?=>(
-(
-		lv_embedded_10_0=	'embedded' 
-    {
-        newLeafNode(lv_embedded_10_0, grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableGridRule());
-	        }
-       		setWithLastConsumed($current, "embedded", true, "embedded");
-	    }
-
-)
-))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  |
-
-			( 
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+					}
+				)
+			)|
+			(
 				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3)}?=>(
+					{
+						getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3);
+					}
+								({true}?=>(otherlv_11='toolbar'
+								{
+									newLeafNode(otherlv_11, grammarAccess.getTableGridAccess().getToolbarKeyword_3_3_0());
+								}
+								(
+									(
+										{
+											if ($current==null) {
+												$current = createModelElement(grammarAccess.getTableGridRule());
+											}
+										}
+										otherlv_12=RULE_ID
+										{
+											newLeafNode(otherlv_12, grammarAccess.getTableGridAccess().getToolbarActionToolbarCrossReference_3_3_1_0());
+										}
+									)
+								)
+								))
 					{ 
-	 				  getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3);
-	 				}
-					({true}?=>(	otherlv_11='toolbar' 
-    {
-    	newLeafNode(otherlv_11, grammarAccess.getTableGridAccess().getToolbarKeyword_3_3_0());
-    }
-(
-(
-		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableGridRule());
-	        }
-        }
-	otherlv_12=RULE_ID
-	{
-		newLeafNode(otherlv_12, grammarAccess.getTableGridAccess().getToolbarActionToolbarCrossReference_3_3_1_0()); 
-	}
-
-)
-)))
-					{ 
-	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
-	 				}
- 				)
-			)  
-
-		)*	
+						getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+					}
+				)
+			)
+					)*
+				)
+			)
+				{ 
+				  getUnorderedGroupHelper().leave(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
+				}
+		)
+		(
+			otherlv_13='using'
+			{
+				newLeafNode(otherlv_13, grammarAccess.getTableGridAccess().getUsingKeyword_4_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTableGridAccess().getSourceTableDtoDatasourceParserRuleCall_4_1_0());
+					}
+					lv_source_14_0=ruleTableDtoDatasource
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTableGridRule());
+						}
+						set(
+							$current,
+							"source",
+							lv_source_14_0,
+							"org.eclipse.osbp.xtext.table.TableDSL.TableDtoDatasource");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
 	)
-)
-	{ 
-	  getUnorderedGroupHelper().leave(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
-	}
-
-)(	otherlv_13='using' 
-    {
-    	newLeafNode(otherlv_13, grammarAccess.getTableGridAccess().getUsingKeyword_4_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableGridAccess().getSourceTableDtoDatasourceParserRuleCall_4_1_0()); 
-	    }
-		lv_source_14_0=ruleTableDtoDatasource		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableGridRule());
-	        }
-       		set(
-       			$current, 
-       			"source",
-        		lv_source_14_0, 
-        		"TableDtoDatasource");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))?)
 ;
 
-
-
-
-
-// Entry rule entryRuleTableDtoDatasource
-entryRuleTableDtoDatasource returns [EObject current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getTableDtoDatasourceRule()); }
-	 iv_ruleTableDtoDatasource=ruleTableDtoDatasource 
-	 { $current=$iv_ruleTableDtoDatasource.current; } 
-	 EOF 
-;
-
-// Rule TableDtoDatasource
-ruleTableDtoDatasource returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='dto' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getTableDtoDatasourceAccess().getDtoKeyword_0());
-    }
-(
-(
-		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getTableDtoDatasourceRule());
-	        }
-        }
-	otherlv_1=RULE_ID
-	{
-		newLeafNode(otherlv_1, grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoCrossReference_1_0()); 
-	}
-
-)
-)(	otherlv_2='{' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getTableDtoDatasourceAccess().getLeftCurlyBracketKeyword_2_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getTableDtoDatasourceAccess().getPropertiesPropertyParserRuleCall_2_1_0()); 
-	    }
-		lv_properties_3_0=ruleProperty		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getTableDtoDatasourceRule());
-	        }
-       		add(
-       			$current, 
-       			"properties",
-        		lv_properties_3_0, 
-        		"Property");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*	otherlv_4='}' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getTableDtoDatasourceAccess().getRightCurlyBracketKeyword_2_2());
-    }
-)?)
-;
-
-
-
-
-
 // Entry rule entryRuleProperty
-entryRuleProperty returns [EObject current=null] 
-	:
+entryRuleProperty returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyRule()); }
-	 iv_ruleProperty=ruleProperty 
-	 { $current=$iv_ruleProperty.current; } 
-	 EOF 
-;
+	iv_ruleProperty=ruleProperty
+	{ $current=$iv_ruleProperty.current; }
+	EOF;
 
 // Rule Property
-ruleProperty returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-(
-		lv_editable_0_0=	'editable' 
-    {
-        newLeafNode(lv_editable_0_0, grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getPropertyRule());
-	        }
-       		setWithLastConsumed($current, "editable", true, "editable");
-	    }
-
-)
-)?	otherlv_1='prop' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyAccess().getPropKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getPropertyAccess().getPathNestedFieldParserRuleCall_2_0()); 
-	    }
-		lv_path_2_0=ruleNestedField		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getPropertyRule());
-	        }
-       		set(
-       			$current, 
-       			"path",
-        		lv_path_2_0, 
-        		"NestedField");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_3='style' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getPropertyAccess().getStyleKeyword_3());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getPropertyAccess().getStylePropertyStyleParserRuleCall_4_0()); 
-	    }
-		lv_style_4_0=rulePropertyStyle		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getPropertyRule());
-	        }
-       		set(
-       			$current, 
-       			"style",
-        		lv_style_4_0, 
-        		"PropertyStyle");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleProperty returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				lv_editable_0_0='editable'
+				{
+					newLeafNode(lv_editable_0_0, grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getPropertyRule());
+					}
+					setWithLastConsumed($current, "editable", true, "editable");
+				}
+			)
+		)?
+		otherlv_1='prop'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getPropertyAccess().getPropKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getPropertyAccess().getPathNestedFieldParserRuleCall_2_0());
+				}
+				lv_path_2_0=ruleNestedField
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getPropertyRule());
+					}
+					set(
+						$current,
+						"path",
+						lv_path_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.NestedField");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_3='style'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getPropertyAccess().getStyleKeyword_3());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getPropertyAccess().getStylePropertyStyleParserRuleCall_4_0());
+				}
+				lv_style_4_0=rulePropertyStyle
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getPropertyRule());
+					}
+					set(
+						$current,
+						"style",
+						lv_style_4_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.PropertyStyle");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
+// Entry rule entryRuleTableDtoDatasource
+entryRuleTableDtoDatasource returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTableDtoDatasourceRule()); }
+	iv_ruleTableDtoDatasource=ruleTableDtoDatasource
+	{ $current=$iv_ruleTableDtoDatasource.current; }
+	EOF;
 
-
-
+// Rule TableDtoDatasource
+ruleTableDtoDatasource returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='dto'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getTableDtoDatasourceAccess().getDtoKeyword_0());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTableDtoDatasourceRule());
+					}
+				}
+				otherlv_1=RULE_ID
+				{
+					newLeafNode(otherlv_1, grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoCrossReference_1_0());
+				}
+			)
+		)
+		(
+			otherlv_2='{'
+			{
+				newLeafNode(otherlv_2, grammarAccess.getTableDtoDatasourceAccess().getLeftCurlyBracketKeyword_2_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTableDtoDatasourceAccess().getPropertiesPropertyParserRuleCall_2_1_0());
+					}
+					lv_properties_3_0=ruleProperty
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTableDtoDatasourceRule());
+						}
+						add(
+							$current,
+							"properties",
+							lv_properties_3_0,
+							"org.eclipse.osbp.xtext.table.TableDSL.Property");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)*
+			otherlv_4='}'
+			{
+				newLeafNode(otherlv_4, grammarAccess.getTableDtoDatasourceAccess().getRightCurlyBracketKeyword_2_2());
+			}
+		)?
+	)
+;
 
 // Entry rule entryRuleNestedField
-entryRuleNestedField returns [EObject current=null] 
-	:
+entryRuleNestedField returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getNestedFieldRule()); }
-	 iv_ruleNestedField=ruleNestedField 
-	 { $current=$iv_ruleNestedField.current; } 
-	 EOF 
-;
+	iv_ruleNestedField=ruleNestedField
+	{ $current=$iv_ruleNestedField.current; }
+	EOF;
 
 // Rule NestedField
-ruleNestedField returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getNestedFieldAccess().getCxGridNestedFieldAction_0(),
-            $current);
-    }
-)(
-(
-		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getNestedFieldRule());
-	        }
-        }
-	otherlv_1=RULE_ID
-	{
-		newLeafNode(otherlv_1, grammarAccess.getNestedFieldAccess().getFieldJvmOperationCrossReference_1_0()); 
-	}
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getNestedFieldAccess().getPathNestedPathParserRuleCall_2_0()); 
-	    }
-		lv_path_2_0=ruleNestedPath		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getNestedFieldRule());
-	        }
-       		set(
-       			$current, 
-       			"path",
-        		lv_path_2_0, 
-        		"NestedPath");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)?)
+ruleNestedField returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getNestedFieldAccess().getCxGridNestedFieldAction_0(),
+					$current);
+			}
+		)
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getNestedFieldRule());
+					}
+				}
+				otherlv_1=RULE_ID
+				{
+					newLeafNode(otherlv_1, grammarAccess.getNestedFieldAccess().getFieldJvmOperationCrossReference_1_0());
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getNestedFieldAccess().getPathNestedPathParserRuleCall_2_0());
+				}
+				lv_path_2_0=ruleNestedPath
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getNestedFieldRule());
+					}
+					set(
+						$current,
+						"path",
+						lv_path_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.NestedPath");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleNestedPath
-entryRuleNestedPath returns [EObject current=null] 
-	:
+entryRuleNestedPath returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getNestedPathRule()); }
-	 iv_ruleNestedPath=ruleNestedPath 
-	 { $current=$iv_ruleNestedPath.current; } 
-	 EOF 
-;
+	iv_ruleNestedPath=ruleNestedPath
+	{ $current=$iv_ruleNestedPath.current; }
+	EOF;
 
 // Rule NestedPath
-ruleNestedPath returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getNestedPathAccess().getCxGridNestedPathAction_0(),
-            $current);
-    }
-)	otherlv_1='.' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getNestedPathAccess().getFullStopKeyword_1());
-    }
-(
-(
+ruleNestedPath returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getNestedPathAccess().getCxGridNestedPathAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='.'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getNestedPathRule());
-	        }
-        }
-	otherlv_2=RULE_ID
-	{
-		newLeafNode(otherlv_2, grammarAccess.getNestedPathAccess().getFieldJvmOperationCrossReference_2_0()); 
-	}
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getNestedPathAccess().getPathNestedPathParserRuleCall_3_0()); 
-	    }
-		lv_path_3_0=ruleNestedPath		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getNestedPathRule());
-	        }
-       		set(
-       			$current, 
-       			"path",
-        		lv_path_3_0, 
-        		"NestedPath");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)?)
+			newLeafNode(otherlv_1, grammarAccess.getNestedPathAccess().getFullStopKeyword_1());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getNestedPathRule());
+					}
+				}
+				otherlv_2=RULE_ID
+				{
+					newLeafNode(otherlv_2, grammarAccess.getNestedPathAccess().getFieldJvmOperationCrossReference_2_0());
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getNestedPathAccess().getPathNestedPathParserRuleCall_3_0());
+				}
+				lv_path_3_0=ruleNestedPath
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getNestedPathRule());
+					}
+					set(
+						$current,
+						"path",
+						lv_path_3_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.NestedPath");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyStyle
-entryRulePropertyStyle returns [EObject current=null] 
-	:
+entryRulePropertyStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyStyleRule()); }
-	 iv_rulePropertyStyle=rulePropertyStyle 
-	 { $current=$iv_rulePropertyStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyStyle=rulePropertyStyle
+	{ $current=$iv_rulePropertyStyle.current; }
+	EOF;
 
 // Rule PropertyStyle
-rulePropertyStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyButtonStyleParserRuleCall_0()); 
-    }
-    this_PropertyButtonStyle_0=rulePropertyButtonStyle
-    { 
-        $current = $this_PropertyButtonStyle_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyHtmlStyleParserRuleCall_1()); 
-    }
-    this_PropertyHtmlStyle_1=rulePropertyHtmlStyle
-    { 
-        $current = $this_PropertyHtmlStyle_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyProgressbarStyleParserRuleCall_2()); 
-    }
-    this_PropertyProgressbarStyle_2=rulePropertyProgressbarStyle
-    { 
-        $current = $this_PropertyProgressbarStyle_2.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyTextStyleParserRuleCall_3()); 
-    }
-    this_PropertyTextStyle_3=rulePropertyTextStyle
-    { 
-        $current = $this_PropertyTextStyle_3.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyBooleanStyleParserRuleCall_4()); 
-    }
-    this_PropertyBooleanStyle_4=rulePropertyBooleanStyle
-    { 
-        $current = $this_PropertyBooleanStyle_4.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyDateStyleParserRuleCall_5()); 
-    }
-    this_PropertyDateStyle_5=rulePropertyDateStyle
-    { 
-        $current = $this_PropertyDateStyle_5.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyNumberStyleParserRuleCall_6()); 
-    }
-    this_PropertyNumberStyle_6=rulePropertyNumberStyle
-    { 
-        $current = $this_PropertyNumberStyle_6.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyImageStyleParserRuleCall_7()); 
-    }
-    this_PropertyImageStyle_7=rulePropertyImageStyle
-    { 
-        $current = $this_PropertyImageStyle_7.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyQuantityStyleParserRuleCall_8()); 
-    }
-    this_PropertyQuantityStyle_8=rulePropertyQuantityStyle
-    { 
-        $current = $this_PropertyQuantityStyle_8.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyPriceStyleParserRuleCall_9()); 
-    }
-    this_PropertyPriceStyle_9=rulePropertyPriceStyle
-    { 
-        $current = $this_PropertyPriceStyle_9.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getPropertyStyleAccess().getGridPropIndicatorStyleParserRuleCall_10()); 
-    }
-    this_GridPropIndicatorStyle_10=ruleGridPropIndicatorStyle
-    { 
-        $current = $this_GridPropIndicatorStyle_10.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+rulePropertyStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyButtonStyleParserRuleCall_0());
+		}
+		this_PropertyButtonStyle_0=rulePropertyButtonStyle
+		{
+			$current = $this_PropertyButtonStyle_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyHtmlStyleParserRuleCall_1());
+		}
+		this_PropertyHtmlStyle_1=rulePropertyHtmlStyle
+		{
+			$current = $this_PropertyHtmlStyle_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyProgressbarStyleParserRuleCall_2());
+		}
+		this_PropertyProgressbarStyle_2=rulePropertyProgressbarStyle
+		{
+			$current = $this_PropertyProgressbarStyle_2.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyTextStyleParserRuleCall_3());
+		}
+		this_PropertyTextStyle_3=rulePropertyTextStyle
+		{
+			$current = $this_PropertyTextStyle_3.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyBooleanStyleParserRuleCall_4());
+		}
+		this_PropertyBooleanStyle_4=rulePropertyBooleanStyle
+		{
+			$current = $this_PropertyBooleanStyle_4.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyDateStyleParserRuleCall_5());
+		}
+		this_PropertyDateStyle_5=rulePropertyDateStyle
+		{
+			$current = $this_PropertyDateStyle_5.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyNumberStyleParserRuleCall_6());
+		}
+		this_PropertyNumberStyle_6=rulePropertyNumberStyle
+		{
+			$current = $this_PropertyNumberStyle_6.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyImageStyleParserRuleCall_7());
+		}
+		this_PropertyImageStyle_7=rulePropertyImageStyle
+		{
+			$current = $this_PropertyImageStyle_7.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyQuantityStyleParserRuleCall_8());
+		}
+		this_PropertyQuantityStyle_8=rulePropertyQuantityStyle
+		{
+			$current = $this_PropertyQuantityStyle_8.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyPriceStyleParserRuleCall_9());
+		}
+		this_PropertyPriceStyle_9=rulePropertyPriceStyle
+		{
+			$current = $this_PropertyPriceStyle_9.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getPropertyStyleAccess().getGridPropIndicatorStyleParserRuleCall_10());
+		}
+		this_GridPropIndicatorStyle_10=ruleGridPropIndicatorStyle
+		{
+			$current = $this_GridPropIndicatorStyle_10.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyButtonStyle
-entryRulePropertyButtonStyle returns [EObject current=null] 
-	:
+entryRulePropertyButtonStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyButtonStyleRule()); }
-	 iv_rulePropertyButtonStyle=rulePropertyButtonStyle 
-	 { $current=$iv_rulePropertyButtonStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyButtonStyle=rulePropertyButtonStyle
+	{ $current=$iv_rulePropertyButtonStyle.current; }
+	EOF;
 
 // Rule PropertyButtonStyle
-rulePropertyButtonStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getPropertyButtonStyleAccess().getCxGridPropButtonStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='buttonStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyButtonStyleAccess().getButtonStyleKeyword_1());
-    }
-	otherlv_2='eventTopic' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getPropertyButtonStyleAccess().getEventTopicKeyword_2());
-    }
-(
-(
-		lv_eventTopic_3_0=RULE_STRING
+rulePropertyButtonStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getPropertyButtonStyleAccess().getCxGridPropButtonStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='buttonStyle'
 		{
-			newLeafNode(lv_eventTopic_3_0, grammarAccess.getPropertyButtonStyleAccess().getEventTopicSTRINGTerminalRuleCall_3_0()); 
+			newLeafNode(otherlv_1, grammarAccess.getPropertyButtonStyleAccess().getButtonStyleKeyword_1());
 		}
+		otherlv_2='eventTopic'
 		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getPropertyButtonStyleRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"eventTopic",
-        		lv_eventTopic_3_0, 
-        		"STRING");
-	    }
-
-)
-))
+			newLeafNode(otherlv_2, grammarAccess.getPropertyButtonStyleAccess().getEventTopicKeyword_2());
+		}
+		(
+			(
+				lv_eventTopic_3_0=RULE_STRING
+				{
+					newLeafNode(lv_eventTopic_3_0, grammarAccess.getPropertyButtonStyleAccess().getEventTopicSTRINGTerminalRuleCall_3_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getPropertyButtonStyleRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"eventTopic",
+						lv_eventTopic_3_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyHtmlStyle
-entryRulePropertyHtmlStyle returns [EObject current=null] 
-	:
+entryRulePropertyHtmlStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyHtmlStyleRule()); }
-	 iv_rulePropertyHtmlStyle=rulePropertyHtmlStyle 
-	 { $current=$iv_rulePropertyHtmlStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyHtmlStyle=rulePropertyHtmlStyle
+	{ $current=$iv_rulePropertyHtmlStyle.current; }
+	EOF;
 
 // Rule PropertyHtmlStyle
-rulePropertyHtmlStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getPropertyHtmlStyleAccess().getCxGridPropHtmlStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='htmlStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyHtmlStyleAccess().getHtmlStyleKeyword_1());
-    }
-)
+rulePropertyHtmlStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getPropertyHtmlStyleAccess().getCxGridPropHtmlStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='htmlStyle'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getPropertyHtmlStyleAccess().getHtmlStyleKeyword_1());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyBooleanStyle
-entryRulePropertyBooleanStyle returns [EObject current=null] 
-	:
+entryRulePropertyBooleanStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyBooleanStyleRule()); }
-	 iv_rulePropertyBooleanStyle=rulePropertyBooleanStyle 
-	 { $current=$iv_rulePropertyBooleanStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyBooleanStyle=rulePropertyBooleanStyle
+	{ $current=$iv_rulePropertyBooleanStyle.current; }
+	EOF;
 
 // Rule PropertyBooleanStyle
-rulePropertyBooleanStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getPropertyBooleanStyleAccess().getCxGridPropBooleanStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='boolStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyBooleanStyleAccess().getBoolStyleKeyword_1());
-    }
-)
+rulePropertyBooleanStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getPropertyBooleanStyleAccess().getCxGridPropBooleanStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='boolStyle'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getPropertyBooleanStyleAccess().getBoolStyleKeyword_1());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyDateStyle
-entryRulePropertyDateStyle returns [EObject current=null] 
-	:
+entryRulePropertyDateStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyDateStyleRule()); }
-	 iv_rulePropertyDateStyle=rulePropertyDateStyle 
-	 { $current=$iv_rulePropertyDateStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyDateStyle=rulePropertyDateStyle
+	{ $current=$iv_rulePropertyDateStyle.current; }
+	EOF;
 
 // Rule PropertyDateStyle
-rulePropertyDateStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getPropertyDateStyleAccess().getCxGridPropDateStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='dateStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyDateStyleAccess().getDateStyleKeyword_1());
-    }
-	otherlv_2='format' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getPropertyDateStyleAccess().getFormatKeyword_2());
-    }
-(
-(
-		lv_dateFormat_3_0=RULE_STRING
+rulePropertyDateStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getPropertyDateStyleAccess().getCxGridPropDateStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='dateStyle'
 		{
-			newLeafNode(lv_dateFormat_3_0, grammarAccess.getPropertyDateStyleAccess().getDateFormatSTRINGTerminalRuleCall_3_0()); 
+			newLeafNode(otherlv_1, grammarAccess.getPropertyDateStyleAccess().getDateStyleKeyword_1());
 		}
+		otherlv_2='format'
 		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getPropertyDateStyleRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"dateFormat",
-        		lv_dateFormat_3_0, 
-        		"STRING");
-	    }
-
-)
-))
+			newLeafNode(otherlv_2, grammarAccess.getPropertyDateStyleAccess().getFormatKeyword_2());
+		}
+		(
+			(
+				lv_dateFormat_3_0=RULE_STRING
+				{
+					newLeafNode(lv_dateFormat_3_0, grammarAccess.getPropertyDateStyleAccess().getDateFormatSTRINGTerminalRuleCall_3_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getPropertyDateStyleRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"dateFormat",
+						lv_dateFormat_3_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyNumberStyle
-entryRulePropertyNumberStyle returns [EObject current=null] 
-	:
+entryRulePropertyNumberStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyNumberStyleRule()); }
-	 iv_rulePropertyNumberStyle=rulePropertyNumberStyle 
-	 { $current=$iv_rulePropertyNumberStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyNumberStyle=rulePropertyNumberStyle
+	{ $current=$iv_rulePropertyNumberStyle.current; }
+	EOF;
 
 // Rule PropertyNumberStyle
-rulePropertyNumberStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getPropertyNumberStyleAccess().getCxGridPropNumberStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='numberStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyNumberStyleAccess().getNumberStyleKeyword_1());
-    }
-	otherlv_2='format' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getPropertyNumberStyleAccess().getFormatKeyword_2());
-    }
-(
-(
-		lv_numberFormat_3_0=RULE_STRING
+rulePropertyNumberStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getPropertyNumberStyleAccess().getCxGridPropNumberStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='numberStyle'
 		{
-			newLeafNode(lv_numberFormat_3_0, grammarAccess.getPropertyNumberStyleAccess().getNumberFormatSTRINGTerminalRuleCall_3_0()); 
+			newLeafNode(otherlv_1, grammarAccess.getPropertyNumberStyleAccess().getNumberStyleKeyword_1());
 		}
+		otherlv_2='format'
 		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getPropertyNumberStyleRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"numberFormat",
-        		lv_numberFormat_3_0, 
-        		"STRING");
-	    }
-
-)
-))
+			newLeafNode(otherlv_2, grammarAccess.getPropertyNumberStyleAccess().getFormatKeyword_2());
+		}
+		(
+			(
+				lv_numberFormat_3_0=RULE_STRING
+				{
+					newLeafNode(lv_numberFormat_3_0, grammarAccess.getPropertyNumberStyleAccess().getNumberFormatSTRINGTerminalRuleCall_3_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getPropertyNumberStyleRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"numberFormat",
+						lv_numberFormat_3_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyProgressbarStyle
-entryRulePropertyProgressbarStyle returns [EObject current=null] 
-	:
+entryRulePropertyProgressbarStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyProgressbarStyleRule()); }
-	 iv_rulePropertyProgressbarStyle=rulePropertyProgressbarStyle 
-	 { $current=$iv_rulePropertyProgressbarStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyProgressbarStyle=rulePropertyProgressbarStyle
+	{ $current=$iv_rulePropertyProgressbarStyle.current; }
+	EOF;
 
 // Rule PropertyProgressbarStyle
-rulePropertyProgressbarStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getPropertyProgressbarStyleAccess().getCxGridPropProgressbarStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='progressbarStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyProgressbarStyleAccess().getProgressbarStyleKeyword_1());
-    }
-	otherlv_2='max' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getPropertyProgressbarStyleAccess().getMaxKeyword_2());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueLDoubleParserRuleCall_3_0()); 
-	    }
-		lv_maxValue_3_0=ruleLDouble		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getPropertyProgressbarStyleRule());
-	        }
-       		set(
-       			$current, 
-       			"maxValue",
-        		lv_maxValue_3_0, 
-        		"LDouble");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+rulePropertyProgressbarStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getPropertyProgressbarStyleAccess().getCxGridPropProgressbarStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='progressbarStyle'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getPropertyProgressbarStyleAccess().getProgressbarStyleKeyword_1());
+		}
+		otherlv_2='max'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getPropertyProgressbarStyleAccess().getMaxKeyword_2());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueLDoubleParserRuleCall_3_0());
+				}
+				lv_maxValue_3_0=ruleLDouble
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getPropertyProgressbarStyleRule());
+					}
+					set(
+						$current,
+						"maxValue",
+						lv_maxValue_3_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.LDouble");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleGridPropIndicatorStyle
-entryRuleGridPropIndicatorStyle returns [EObject current=null] 
-	:
+entryRuleGridPropIndicatorStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getGridPropIndicatorStyleRule()); }
-	 iv_ruleGridPropIndicatorStyle=ruleGridPropIndicatorStyle 
-	 { $current=$iv_ruleGridPropIndicatorStyle.current; } 
-	 EOF 
-;
+	iv_ruleGridPropIndicatorStyle=ruleGridPropIndicatorStyle
+	{ $current=$iv_ruleGridPropIndicatorStyle.current; }
+	EOF;
 
 // Rule GridPropIndicatorStyle
-ruleGridPropIndicatorStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getGridPropIndicatorStyleAccess().getCxGridPropIndicatorStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='indicatorStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getGridPropIndicatorStyleAccess().getIndicatorStyleKeyword_1());
-    }
-	otherlv_2='greenFrom' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getGridPropIndicatorStyleAccess().getGreenFromKeyword_2());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsLDoubleParserRuleCall_3_0()); 
-	    }
-		lv_greenStarts_3_0=ruleLDouble		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getGridPropIndicatorStyleRule());
-	        }
-       		set(
-       			$current, 
-       			"greenStarts",
-        		lv_greenStarts_3_0, 
-        		"LDouble");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_4='redUntil' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getGridPropIndicatorStyleAccess().getRedUntilKeyword_4());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsLDoubleParserRuleCall_5_0()); 
-	    }
-		lv_redEnds_5_0=ruleLDouble		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getGridPropIndicatorStyleRule());
-	        }
-       		set(
-       			$current, 
-       			"redEnds",
-        		lv_redEnds_5_0, 
-        		"LDouble");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleGridPropIndicatorStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getGridPropIndicatorStyleAccess().getCxGridPropIndicatorStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='indicatorStyle'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getGridPropIndicatorStyleAccess().getIndicatorStyleKeyword_1());
+		}
+		otherlv_2='greenFrom'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getGridPropIndicatorStyleAccess().getGreenFromKeyword_2());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsLDoubleParserRuleCall_3_0());
+				}
+				lv_greenStarts_3_0=ruleLDouble
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getGridPropIndicatorStyleRule());
+					}
+					set(
+						$current,
+						"greenStarts",
+						lv_greenStarts_3_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.LDouble");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_4='redUntil'
+		{
+			newLeafNode(otherlv_4, grammarAccess.getGridPropIndicatorStyleAccess().getRedUntilKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsLDoubleParserRuleCall_5_0());
+				}
+				lv_redEnds_5_0=ruleLDouble
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getGridPropIndicatorStyleRule());
+					}
+					set(
+						$current,
+						"redEnds",
+						lv_redEnds_5_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.LDouble");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyQuantityStyle
-entryRulePropertyQuantityStyle returns [EObject current=null] 
-	:
+entryRulePropertyQuantityStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyQuantityStyleRule()); }
-	 iv_rulePropertyQuantityStyle=rulePropertyQuantityStyle 
-	 { $current=$iv_rulePropertyQuantityStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyQuantityStyle=rulePropertyQuantityStyle
+	{ $current=$iv_rulePropertyQuantityStyle.current; }
+	EOF;
 
 // Rule PropertyQuantityStyle
-rulePropertyQuantityStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getPropertyQuantityStyleAccess().getCxGridPropQuantityStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='quantityStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyQuantityStyleAccess().getQuantityStyleKeyword_1());
-    }
-(
-(
-		lv_htmlPattern_2_0=RULE_STRING
+rulePropertyQuantityStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getPropertyQuantityStyleAccess().getCxGridPropQuantityStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='quantityStyle'
 		{
-			newLeafNode(lv_htmlPattern_2_0, grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0()); 
+			newLeafNode(otherlv_1, grammarAccess.getPropertyQuantityStyleAccess().getQuantityStyleKeyword_1());
 		}
+		(
+			(
+				lv_htmlPattern_2_0=RULE_STRING
+				{
+					newLeafNode(lv_htmlPattern_2_0, grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getPropertyQuantityStyleRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"htmlPattern",
+						lv_htmlPattern_2_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)?
+		otherlv_3='value'
 		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getPropertyQuantityStyleRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"htmlPattern",
-        		lv_htmlPattern_2_0, 
-        		"STRING");
-	    }
-
-)
-)?	otherlv_3='value' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getPropertyQuantityStyleAccess().getValueKeyword_3());
-    }
-	otherlv_4='=' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_4());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0()); 
-	    }
-		lv_valuePropertyPath_5_0=ruleNestedField		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getPropertyQuantityStyleRule());
-	        }
-       		set(
-       			$current, 
-       			"valuePropertyPath",
-        		lv_valuePropertyPath_5_0, 
-        		"NestedField");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_6='(' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getPropertyQuantityStyleAccess().getLeftParenthesisKeyword_6_0());
-    }
-	otherlv_7='format' 
-    {
-    	newLeafNode(otherlv_7, grammarAccess.getPropertyQuantityStyleAccess().getFormatKeyword_6_1());
-    }
-(
-(
-		lv_valueNumberFormat_8_0=RULE_STRING
-		{
-			newLeafNode(lv_valueNumberFormat_8_0, grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0()); 
+			newLeafNode(otherlv_3, grammarAccess.getPropertyQuantityStyleAccess().getValueKeyword_3());
 		}
+		otherlv_4='='
 		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getPropertyQuantityStyleRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"valueNumberFormat",
-        		lv_valueNumberFormat_8_0, 
-        		"STRING");
-	    }
-
-)
-)	otherlv_9=')' 
-    {
-    	newLeafNode(otherlv_9, grammarAccess.getPropertyQuantityStyleAccess().getRightParenthesisKeyword_6_3());
-    }
-)?	otherlv_10='uom' 
-    {
-    	newLeafNode(otherlv_10, grammarAccess.getPropertyQuantityStyleAccess().getUomKeyword_7());
-    }
-	otherlv_11='=' 
-    {
-    	newLeafNode(otherlv_11, grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_8());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathNestedFieldParserRuleCall_9_0()); 
-	    }
-		lv_uomPropertyPath_12_0=ruleNestedField		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getPropertyQuantityStyleRule());
-	        }
-       		set(
-       			$current, 
-       			"uomPropertyPath",
-        		lv_uomPropertyPath_12_0, 
-        		"NestedField");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+			newLeafNode(otherlv_4, grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0());
+				}
+				lv_valuePropertyPath_5_0=ruleNestedField
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getPropertyQuantityStyleRule());
+					}
+					set(
+						$current,
+						"valuePropertyPath",
+						lv_valuePropertyPath_5_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.NestedField");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_6='('
+			{
+				newLeafNode(otherlv_6, grammarAccess.getPropertyQuantityStyleAccess().getLeftParenthesisKeyword_6_0());
+			}
+			otherlv_7='format'
+			{
+				newLeafNode(otherlv_7, grammarAccess.getPropertyQuantityStyleAccess().getFormatKeyword_6_1());
+			}
+			(
+				(
+					lv_valueNumberFormat_8_0=RULE_STRING
+					{
+						newLeafNode(lv_valueNumberFormat_8_0, grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getPropertyQuantityStyleRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"valueNumberFormat",
+							lv_valueNumberFormat_8_0,
+							"org.eclipse.xtext.xbase.Xtype.STRING");
+					}
+				)
+			)
+			otherlv_9=')'
+			{
+				newLeafNode(otherlv_9, grammarAccess.getPropertyQuantityStyleAccess().getRightParenthesisKeyword_6_3());
+			}
+		)?
+		otherlv_10='uom'
+		{
+			newLeafNode(otherlv_10, grammarAccess.getPropertyQuantityStyleAccess().getUomKeyword_7());
+		}
+		otherlv_11='='
+		{
+			newLeafNode(otherlv_11, grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_8());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathNestedFieldParserRuleCall_9_0());
+				}
+				lv_uomPropertyPath_12_0=ruleNestedField
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getPropertyQuantityStyleRule());
+					}
+					set(
+						$current,
+						"uomPropertyPath",
+						lv_uomPropertyPath_12_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.NestedField");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyPriceStyle
-entryRulePropertyPriceStyle returns [EObject current=null] 
-	:
+entryRulePropertyPriceStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyPriceStyleRule()); }
-	 iv_rulePropertyPriceStyle=rulePropertyPriceStyle 
-	 { $current=$iv_rulePropertyPriceStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyPriceStyle=rulePropertyPriceStyle
+	{ $current=$iv_rulePropertyPriceStyle.current; }
+	EOF;
 
 // Rule PropertyPriceStyle
-rulePropertyPriceStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getPropertyPriceStyleAccess().getCxGridPropPriceStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='priceStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyPriceStyleAccess().getPriceStyleKeyword_1());
-    }
-(
-(
-		lv_htmlPattern_2_0=RULE_STRING
+rulePropertyPriceStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getPropertyPriceStyleAccess().getCxGridPropPriceStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='priceStyle'
 		{
-			newLeafNode(lv_htmlPattern_2_0, grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0()); 
+			newLeafNode(otherlv_1, grammarAccess.getPropertyPriceStyleAccess().getPriceStyleKeyword_1());
 		}
+		(
+			(
+				lv_htmlPattern_2_0=RULE_STRING
+				{
+					newLeafNode(lv_htmlPattern_2_0, grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getPropertyPriceStyleRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"htmlPattern",
+						lv_htmlPattern_2_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)?
+		otherlv_3='value'
 		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getPropertyPriceStyleRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"htmlPattern",
-        		lv_htmlPattern_2_0, 
-        		"STRING");
-	    }
-
-)
-)?	otherlv_3='value' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getPropertyPriceStyleAccess().getValueKeyword_3());
-    }
-	otherlv_4='=' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_4());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0()); 
-	    }
-		lv_valuePropertyPath_5_0=ruleNestedField		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getPropertyPriceStyleRule());
-	        }
-       		set(
-       			$current, 
-       			"valuePropertyPath",
-        		lv_valuePropertyPath_5_0, 
-        		"NestedField");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_6='(' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getPropertyPriceStyleAccess().getLeftParenthesisKeyword_6_0());
-    }
-	otherlv_7='format' 
-    {
-    	newLeafNode(otherlv_7, grammarAccess.getPropertyPriceStyleAccess().getFormatKeyword_6_1());
-    }
-(
-(
-		lv_valueNumberFormat_8_0=RULE_STRING
-		{
-			newLeafNode(lv_valueNumberFormat_8_0, grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0()); 
+			newLeafNode(otherlv_3, grammarAccess.getPropertyPriceStyleAccess().getValueKeyword_3());
 		}
+		otherlv_4='='
 		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getPropertyPriceStyleRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"valueNumberFormat",
-        		lv_valueNumberFormat_8_0, 
-        		"STRING");
-	    }
-
-)
-)	otherlv_9=')' 
-    {
-    	newLeafNode(otherlv_9, grammarAccess.getPropertyPriceStyleAccess().getRightParenthesisKeyword_6_3());
-    }
-)?	otherlv_10='currency' 
-    {
-    	newLeafNode(otherlv_10, grammarAccess.getPropertyPriceStyleAccess().getCurrencyKeyword_7());
-    }
-	otherlv_11='=' 
-    {
-    	newLeafNode(otherlv_11, grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_8());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathNestedFieldParserRuleCall_9_0()); 
-	    }
-		lv_currencyPropertyPath_12_0=ruleNestedField		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getPropertyPriceStyleRule());
-	        }
-       		set(
-       			$current, 
-       			"currencyPropertyPath",
-        		lv_currencyPropertyPath_12_0, 
-        		"NestedField");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+			newLeafNode(otherlv_4, grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0());
+				}
+				lv_valuePropertyPath_5_0=ruleNestedField
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getPropertyPriceStyleRule());
+					}
+					set(
+						$current,
+						"valuePropertyPath",
+						lv_valuePropertyPath_5_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.NestedField");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_6='('
+			{
+				newLeafNode(otherlv_6, grammarAccess.getPropertyPriceStyleAccess().getLeftParenthesisKeyword_6_0());
+			}
+			otherlv_7='format'
+			{
+				newLeafNode(otherlv_7, grammarAccess.getPropertyPriceStyleAccess().getFormatKeyword_6_1());
+			}
+			(
+				(
+					lv_valueNumberFormat_8_0=RULE_STRING
+					{
+						newLeafNode(lv_valueNumberFormat_8_0, grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getPropertyPriceStyleRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"valueNumberFormat",
+							lv_valueNumberFormat_8_0,
+							"org.eclipse.xtext.xbase.Xtype.STRING");
+					}
+				)
+			)
+			otherlv_9=')'
+			{
+				newLeafNode(otherlv_9, grammarAccess.getPropertyPriceStyleAccess().getRightParenthesisKeyword_6_3());
+			}
+		)?
+		otherlv_10='currency'
+		{
+			newLeafNode(otherlv_10, grammarAccess.getPropertyPriceStyleAccess().getCurrencyKeyword_7());
+		}
+		otherlv_11='='
+		{
+			newLeafNode(otherlv_11, grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_8());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathNestedFieldParserRuleCall_9_0());
+				}
+				lv_currencyPropertyPath_12_0=ruleNestedField
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getPropertyPriceStyleRule());
+					}
+					set(
+						$current,
+						"currencyPropertyPath",
+						lv_currencyPropertyPath_12_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.NestedField");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyTextStyle
-entryRulePropertyTextStyle returns [EObject current=null] 
-	:
+entryRulePropertyTextStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyTextStyleRule()); }
-	 iv_rulePropertyTextStyle=rulePropertyTextStyle 
-	 { $current=$iv_rulePropertyTextStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyTextStyle=rulePropertyTextStyle
+	{ $current=$iv_rulePropertyTextStyle.current; }
+	EOF;
 
 // Rule PropertyTextStyle
-rulePropertyTextStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getPropertyTextStyleAccess().getCxGridPropTextStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='textStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyTextStyleAccess().getTextStyleKeyword_1());
-    }
-)
+rulePropertyTextStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getPropertyTextStyleAccess().getCxGridPropTextStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='textStyle'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getPropertyTextStyleAccess().getTextStyleKeyword_1());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRulePropertyImageStyle
-entryRulePropertyImageStyle returns [EObject current=null] 
-	:
+entryRulePropertyImageStyle returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getPropertyImageStyleRule()); }
-	 iv_rulePropertyImageStyle=rulePropertyImageStyle 
-	 { $current=$iv_rulePropertyImageStyle.current; } 
-	 EOF 
-;
+	iv_rulePropertyImageStyle=rulePropertyImageStyle
+	{ $current=$iv_rulePropertyImageStyle.current; }
+	EOF;
 
 // Rule PropertyImageStyle
-rulePropertyImageStyle returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getPropertyImageStyleAccess().getCxGridPropImageStyleAction_0(),
-            $current);
-    }
-)	otherlv_1='imageStyle' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getPropertyImageStyleAccess().getImageStyleKeyword_1());
-    }
-(	otherlv_2='eventTopic' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getPropertyImageStyleAccess().getEventTopicKeyword_2_0());
-    }
-(
-(
-		lv_eventTopic_3_0=RULE_STRING
+rulePropertyImageStyle returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getPropertyImageStyleAccess().getCxGridPropImageStyleAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='imageStyle'
 		{
-			newLeafNode(lv_eventTopic_3_0, grammarAccess.getPropertyImageStyleAccess().getEventTopicSTRINGTerminalRuleCall_2_1_0()); 
+			newLeafNode(otherlv_1, grammarAccess.getPropertyImageStyleAccess().getImageStyleKeyword_1());
 		}
+		(
+			otherlv_2='eventTopic'
+			{
+				newLeafNode(otherlv_2, grammarAccess.getPropertyImageStyleAccess().getEventTopicKeyword_2_0());
+			}
+			(
+				(
+					lv_eventTopic_3_0=RULE_STRING
+					{
+						newLeafNode(lv_eventTopic_3_0, grammarAccess.getPropertyImageStyleAccess().getEventTopicSTRINGTerminalRuleCall_2_1_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getPropertyImageStyleRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"eventTopic",
+							lv_eventTopic_3_0,
+							"org.eclipse.xtext.xbase.Xtype.STRING");
+					}
+				)
+			)
+		)?
+		otherlv_4='{'
 		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getPropertyImageStyleRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"eventTopic",
-        		lv_eventTopic_3_0, 
-        		"STRING");
-	    }
-
-)
-))?	otherlv_4='{' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getPropertyImageStyleAccess().getLeftCurlyBracketKeyword_3());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getPropertyImageStyleAccess().getConfigsStyleConfigParserRuleCall_4_0()); 
-	    }
-		lv_configs_5_0=ruleStyleConfig		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getPropertyImageStyleRule());
-	        }
-       		add(
-       			$current, 
-       			"configs",
-        		lv_configs_5_0, 
-        		"StyleConfig");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*	otherlv_6='}' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getPropertyImageStyleAccess().getRightCurlyBracketKeyword_5());
-    }
-)
+			newLeafNode(otherlv_4, grammarAccess.getPropertyImageStyleAccess().getLeftCurlyBracketKeyword_3());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getPropertyImageStyleAccess().getConfigsStyleConfigParserRuleCall_4_0());
+				}
+				lv_configs_5_0=ruleStyleConfig
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getPropertyImageStyleRule());
+					}
+					add(
+						$current,
+						"configs",
+						lv_configs_5_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.StyleConfig");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+		otherlv_6='}'
+		{
+			newLeafNode(otherlv_6, grammarAccess.getPropertyImageStyleAccess().getRightCurlyBracketKeyword_5());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleStyleConfig
-entryRuleStyleConfig returns [EObject current=null] 
-	:
+entryRuleStyleConfig returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getStyleConfigRule()); }
-	 iv_ruleStyleConfig=ruleStyleConfig 
-	 { $current=$iv_ruleStyleConfig.current; } 
-	 EOF 
-;
+	iv_ruleStyleConfig=ruleStyleConfig
+	{ $current=$iv_ruleStyleConfig.current; }
+	EOF;
 
 // Rule StyleConfig
-ruleStyleConfig returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getStyleConfigAccess().getNumericToResourceStyleConfigParserRuleCall_0()); 
-    }
-    this_NumericToResourceStyleConfig_0=ruleNumericToResourceStyleConfig
-    { 
-        $current = $this_NumericToResourceStyleConfig_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getStyleConfigAccess().getStringToResourceStyleConfigParserRuleCall_1()); 
-    }
-    this_StringToResourceStyleConfig_1=ruleStringToResourceStyleConfig
-    { 
-        $current = $this_StringToResourceStyleConfig_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleStyleConfig returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getStyleConfigAccess().getNumericToResourceStyleConfigParserRuleCall_0());
+		}
+		this_NumericToResourceStyleConfig_0=ruleNumericToResourceStyleConfig
+		{
+			$current = $this_NumericToResourceStyleConfig_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getStyleConfigAccess().getStringToResourceStyleConfigParserRuleCall_1());
+		}
+		this_StringToResourceStyleConfig_1=ruleStringToResourceStyleConfig
+		{
+			$current = $this_StringToResourceStyleConfig_1.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleNumericToResourceStyleConfig
-entryRuleNumericToResourceStyleConfig returns [EObject current=null] 
-	:
+entryRuleNumericToResourceStyleConfig returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getNumericToResourceStyleConfigRule()); }
-	 iv_ruleNumericToResourceStyleConfig=ruleNumericToResourceStyleConfig 
-	 { $current=$iv_ruleNumericToResourceStyleConfig.current; } 
-	 EOF 
-;
+	iv_ruleNumericToResourceStyleConfig=ruleNumericToResourceStyleConfig
+	{ $current=$iv_ruleNumericToResourceStyleConfig.current; }
+	EOF;
 
 // Rule NumericToResourceStyleConfig
-ruleNumericToResourceStyleConfig returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='number' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getNumericToResourceStyleConfigAccess().getNumberKeyword_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0()); 
-	    }
-		lv_compare_1_0=ruleStyleCompare		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getNumericToResourceStyleConfigRule());
-	        }
-       		set(
-       			$current, 
-       			"compare",
-        		lv_compare_1_0, 
-        		"StyleCompare");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getNumericToResourceStyleConfigAccess().getValueLDoubleParserRuleCall_2_0()); 
-	    }
-		lv_value_2_0=ruleLDouble		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getNumericToResourceStyleConfigRule());
-	        }
-       		set(
-       			$current, 
-       			"value",
-        		lv_value_2_0, 
-        		"LDouble");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_3='then' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getNumericToResourceStyleConfigAccess().getThenKeyword_3());
-    }
-(
-(
-		lv_resourceThemePath_4_0=RULE_THEME_RESOURCE
+ruleNumericToResourceStyleConfig returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='number'
 		{
-			newLeafNode(lv_resourceThemePath_4_0, grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0()); 
+			newLeafNode(otherlv_0, grammarAccess.getNumericToResourceStyleConfigAccess().getNumberKeyword_0());
 		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0());
+				}
+				lv_compare_1_0=ruleStyleCompare
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getNumericToResourceStyleConfigRule());
+					}
+					set(
+						$current,
+						"compare",
+						lv_compare_1_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.StyleCompare");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getNumericToResourceStyleConfigAccess().getValueLDoubleParserRuleCall_2_0());
+				}
+				lv_value_2_0=ruleLDouble
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getNumericToResourceStyleConfigRule());
+					}
+					set(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.LDouble");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_3='then'
 		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getNumericToResourceStyleConfigRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"resourceThemePath",
-        		lv_resourceThemePath_4_0, 
-        		"THEME_RESOURCE");
-	    }
-
-)
-))
+			newLeafNode(otherlv_3, grammarAccess.getNumericToResourceStyleConfigAccess().getThenKeyword_3());
+		}
+		(
+			(
+				lv_resourceThemePath_4_0=RULE_THEME_RESOURCE
+				{
+					newLeafNode(lv_resourceThemePath_4_0, grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getNumericToResourceStyleConfigRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"resourceThemePath",
+						lv_resourceThemePath_4_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.THEME_RESOURCE");
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleStringToResourceStyleConfig
-entryRuleStringToResourceStyleConfig returns [EObject current=null] 
-	:
+entryRuleStringToResourceStyleConfig returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getStringToResourceStyleConfigRule()); }
-	 iv_ruleStringToResourceStyleConfig=ruleStringToResourceStyleConfig 
-	 { $current=$iv_ruleStringToResourceStyleConfig.current; } 
-	 EOF 
-;
+	iv_ruleStringToResourceStyleConfig=ruleStringToResourceStyleConfig
+	{ $current=$iv_ruleStringToResourceStyleConfig.current; }
+	EOF;
 
 // Rule StringToResourceStyleConfig
-ruleStringToResourceStyleConfig returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='string' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getStringToResourceStyleConfigAccess().getStringKeyword_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getStringToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0()); 
-	    }
-		lv_compare_1_0=ruleStyleCompare		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getStringToResourceStyleConfigRule());
-	        }
-       		set(
-       			$current, 
-       			"compare",
-        		lv_compare_1_0, 
-        		"StyleCompare");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-(
-		lv_value_2_0=RULE_STRING
+ruleStringToResourceStyleConfig returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='string'
 		{
-			newLeafNode(lv_value_2_0, grammarAccess.getStringToResourceStyleConfigAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+			newLeafNode(otherlv_0, grammarAccess.getStringToResourceStyleConfigAccess().getStringKeyword_0());
 		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getStringToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0());
+				}
+				lv_compare_1_0=ruleStyleCompare
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getStringToResourceStyleConfigRule());
+					}
+					set(
+						$current,
+						"compare",
+						lv_compare_1_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.StyleCompare");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				lv_value_2_0=RULE_STRING
+				{
+					newLeafNode(lv_value_2_0, grammarAccess.getStringToResourceStyleConfigAccess().getValueSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringToResourceStyleConfigRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+		otherlv_3='then'
 		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getStringToResourceStyleConfigRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"value",
-        		lv_value_2_0, 
-        		"STRING");
-	    }
-
-)
-)	otherlv_3='then' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getStringToResourceStyleConfigAccess().getThenKeyword_3());
-    }
-(
-(
-		lv_resourceThemePath_4_0=RULE_THEME_RESOURCE
-		{
-			newLeafNode(lv_resourceThemePath_4_0, grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0()); 
+			newLeafNode(otherlv_3, grammarAccess.getStringToResourceStyleConfigAccess().getThenKeyword_3());
 		}
-		{
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getStringToResourceStyleConfigRule());
-	        }
-       		setWithLastConsumed(
-       			$current, 
-       			"resourceThemePath",
-        		lv_resourceThemePath_4_0, 
-        		"THEME_RESOURCE");
-	    }
-
-)
-))
+		(
+			(
+				lv_resourceThemePath_4_0=RULE_THEME_RESOURCE
+				{
+					newLeafNode(lv_resourceThemePath_4_0, grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringToResourceStyleConfigRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"resourceThemePath",
+						lv_resourceThemePath_4_0,
+						"org.eclipse.osbp.xtext.table.TableDSL.THEME_RESOURCE");
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleLInt
-entryRuleLInt returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getLIntRule()); } 
-	 iv_ruleLInt=ruleLInt 
-	 { $current=$iv_ruleLInt.current.getText(); }  
-	 EOF 
-;
+entryRuleLInt returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getLIntRule()); }
+	iv_ruleLInt=ruleLInt
+	{ $current=$iv_ruleLInt.current.getText(); }
+	EOF;
 
 // Rule LInt
-ruleLInt returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-	kw='+' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getLIntAccess().getPlusSignKeyword_0_0()); 
-    }
-
-    |
-	kw='-' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getLIntAccess().getHyphenMinusKeyword_0_1()); 
-    }
-)?    this_INT_2=RULE_INT    {
-		$current.merge(this_INT_2);
-    }
-
-    { 
-    newLeafNode(this_INT_2, grammarAccess.getLIntAccess().getINTTerminalRuleCall_1()); 
-    }
-)
-    ;
-
-
-
-
+ruleLInt returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			kw='+'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getLIntAccess().getPlusSignKeyword_0_0());
+			}
+			    |
+			kw='-'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getLIntAccess().getHyphenMinusKeyword_0_1());
+			}
+		)?
+		this_INT_2=RULE_INT
+		{
+			$current.merge(this_INT_2);
+		}
+		{
+			newLeafNode(this_INT_2, grammarAccess.getLIntAccess().getINTTerminalRuleCall_1());
+		}
+	)
+;
 
 // Entry rule entryRuleLDouble
-entryRuleLDouble returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getLDoubleRule()); } 
-	 iv_ruleLDouble=ruleLDouble 
-	 { $current=$iv_ruleLDouble.current.getText(); }  
-	 EOF 
-;
+entryRuleLDouble returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getLDoubleRule()); }
+	iv_ruleLDouble=ruleLDouble
+	{ $current=$iv_ruleLDouble.current.getText(); }
+	EOF;
 
 // Rule LDouble
-ruleLDouble returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getLDoubleAccess().getLIntParserRuleCall_0()); 
-    }
-    this_LInt_0=ruleLInt    {
-		$current.merge(this_LInt_0);
-    }
-
-    { 
-        afterParserOrEnumRuleCall();
-    }
-(
-	kw='.' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getLDoubleAccess().getFullStopKeyword_1_0()); 
-    }
-    this_INT_2=RULE_INT    {
-		$current.merge(this_INT_2);
-    }
-
-    { 
-    newLeafNode(this_INT_2, grammarAccess.getLDoubleAccess().getINTTerminalRuleCall_1_1()); 
-    }
-)?)
-    ;
-
-
-
-
+ruleLDouble returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getLDoubleAccess().getLIntParserRuleCall_0());
+		}
+		this_LInt_0=ruleLInt
+		{
+			$current.merge(this_LInt_0);
+		}
+		{
+			afterParserOrEnumRuleCall();
+		}
+		(
+			kw='.'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getLDoubleAccess().getFullStopKeyword_1_0());
+			}
+			this_INT_2=RULE_INT
+			{
+				$current.merge(this_INT_2);
+			}
+			{
+				newLeafNode(this_INT_2, grammarAccess.getLDoubleAccess().getINTTerminalRuleCall_1_1());
+			}
+		)?
+	)
+;
 
 // Entry rule entryRuleSignedNumber
-entryRuleSignedNumber returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getSignedNumberRule()); } 
-	 iv_ruleSignedNumber=ruleSignedNumber 
-	 { $current=$iv_ruleSignedNumber.current.getText(); }  
-	 EOF 
-;
+entryRuleSignedNumber returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getSignedNumberRule()); }
+	iv_ruleSignedNumber=ruleSignedNumber
+	{ $current=$iv_ruleSignedNumber.current.getText(); }
+	EOF;
 
 // Rule SignedNumber
-ruleSignedNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-	kw='-' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getSignedNumberAccess().getHyphenMinusKeyword_0()); 
-    }
-)?
-    { 
-        newCompositeNode(grammarAccess.getSignedNumberAccess().getNumberParserRuleCall_1()); 
-    }
-    this_Number_1=ruleNumber    {
-		$current.merge(this_Number_1);
-    }
-
-    { 
-        afterParserOrEnumRuleCall();
-    }
-)
-    ;
-
-
-
-
-
-// Entry rule entryRuleTableQualifiedNameWithWildCard
-entryRuleTableQualifiedNameWithWildCard returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getTableQualifiedNameWithWildCardRule()); } 
-	 iv_ruleTableQualifiedNameWithWildCard=ruleTableQualifiedNameWithWildCard 
-	 { $current=$iv_ruleTableQualifiedNameWithWildCard.current.getText(); }  
-	 EOF 
+ruleSignedNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			kw='-'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getSignedNumberAccess().getHyphenMinusKeyword_0());
+			}
+		)?
+		{
+			newCompositeNode(grammarAccess.getSignedNumberAccess().getNumberParserRuleCall_1());
+		}
+		this_Number_1=ruleNumber
+		{
+			$current.merge(this_Number_1);
+		}
+		{
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-// Rule TableQualifiedNameWithWildCard
-ruleTableQualifiedNameWithWildCard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getTableQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 
-    }
-    this_QualifiedName_0=ruleQualifiedName    {
-		$current.merge(this_QualifiedName_0);
-    }
+// Entry rule entryRuleSignedInt
+entryRuleSignedInt returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getSignedIntRule()); }
+	iv_ruleSignedInt=ruleSignedInt
+	{ $current=$iv_ruleSignedInt.current.getText(); }
+	EOF;
 
-    { 
-        afterParserOrEnumRuleCall();
-    }
-(
-	kw='.' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getTableQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); 
-    }
-
-	kw='*' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getTableQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); 
-    }
-)?)
-    ;
-
-
-
-
-
-// Entry rule entryRuleQualifiedName
-entryRuleQualifiedName returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getQualifiedNameRule()); } 
-	 iv_ruleQualifiedName=ruleQualifiedName 
-	 { $current=$iv_ruleQualifiedName.current.getText(); }  
-	 EOF 
+// Rule SignedInt
+ruleSignedInt returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			kw='-'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getSignedIntAccess().getHyphenMinusKeyword_0());
+			}
+		)?
+		this_INT_1=RULE_INT
+		{
+			$current.merge(this_INT_1);
+		}
+		{
+			newLeafNode(this_INT_1, grammarAccess.getSignedIntAccess().getINTTerminalRuleCall_1());
+		}
+	)
 ;
 
-// Rule QualifiedName
-ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
-    }
-    this_ValidID_0=ruleValidID    {
-		$current.merge(this_ValidID_0);
-    }
-
-    { 
-        afterParserOrEnumRuleCall();
-    }
-(((
-	'.' 
-)=>
-	kw='.' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
-    }
-)
-    { 
-        newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
-    }
-    this_ValidID_2=ruleValidID    {
-		$current.merge(this_ValidID_2);
-    }
-
-    { 
-        afterParserOrEnumRuleCall();
-    }
-)*)
-    ;
-
-
-
-
-
-// Entry rule entryRuleValidID
-entryRuleValidID returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getValidIDRule()); } 
-	 iv_ruleValidID=ruleValidID 
-	 { $current=$iv_ruleValidID.current.getText(); }  
-	 EOF 
-;
-
-// Rule ValidID
-ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-    this_ID_0=RULE_ID    {
-		$current.merge(this_ID_0);
-    }
-
-    { 
-    newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
-    }
-
-    ;
-
-
-
-
-
 // Entry rule entryRuleTRANSLATABLESTRING
-entryRuleTRANSLATABLESTRING returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getTRANSLATABLESTRINGRule()); } 
-	 iv_ruleTRANSLATABLESTRING=ruleTRANSLATABLESTRING 
-	 { $current=$iv_ruleTRANSLATABLESTRING.current.getText(); }  
-	 EOF 
-;
+entryRuleTRANSLATABLESTRING returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getTRANSLATABLESTRINGRule()); }
+	iv_ruleTRANSLATABLESTRING=ruleTRANSLATABLESTRING
+	{ $current=$iv_ruleTRANSLATABLESTRING.current.getText(); }
+	EOF;
 
 // Rule TRANSLATABLESTRING
-ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-    this_STRING_0=RULE_STRING    {
+ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	this_STRING_0=RULE_STRING
+	{
 		$current.merge(this_STRING_0);
-    }
-
-    { 
-    newLeafNode(this_STRING_0, grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
-    }
-
-    ;
-
-
-
-
-
-// Entry rule entryRuleTRANSLATABLEID
-entryRuleTRANSLATABLEID returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); } 
-	 iv_ruleTRANSLATABLEID=ruleTRANSLATABLEID 
-	 { $current=$iv_ruleTRANSLATABLEID.current.getText(); }  
-	 EOF 
+	}
+	{
+		newLeafNode(this_STRING_0, grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall());
+	}
 ;
 
-// Rule TRANSLATABLEID
-ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-    this_ID_0=RULE_ID    {
-		$current.merge(this_ID_0);
-    }
+// Entry rule entryRuleXImportDeclaration
+entryRuleXImportDeclaration returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getXImportDeclarationRule()); }
+	iv_ruleXImportDeclaration=ruleXImportDeclaration
+	{ $current=$iv_ruleXImportDeclaration.current; }
+	EOF;
 
-    { 
-    newLeafNode(this_ID_0, grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
-    }
-
-    ;
-
-
-
-
+// Rule XImportDeclaration
+ruleXImportDeclaration returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='import'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXImportDeclarationAccess().getImportKeyword_1());
+		}
+		(
+			(
+				(
+					(
+						lv_static_2_0='static'
+						{
+							newLeafNode(lv_static_2_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getXImportDeclarationRule());
+							}
+							setWithLastConsumed($current, "static", true, "static");
+						}
+					)
+				)
+				(
+					(
+						lv_extension_3_0='extension'
+						{
+							newLeafNode(lv_extension_3_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getXImportDeclarationRule());
+							}
+							setWithLastConsumed($current, "extension", true, "extension");
+						}
+					)
+				)?
+				(
+					(
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getXImportDeclarationRule());
+							}
+						}
+						{
+							newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0());
+						}
+						ruleQualifiedNameInStaticImport
+						{
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					(
+						(
+							lv_wildcard_5_0='*'
+							{
+								newLeafNode(lv_wildcard_5_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0());
+							}
+							{
+								if ($current==null) {
+									$current = createModelElement(grammarAccess.getXImportDeclarationRule());
+								}
+								setWithLastConsumed($current, "wildcard", true, "*");
+							}
+						)
+					)
+					    |
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0());
+							}
+							lv_memberName_6_0=ruleValidID
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+								}
+								set(
+									$current,
+									"memberName",
+									lv_memberName_6_0,
+									"org.eclipse.xtext.xbase.Xtype.ValidID");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)
+			)
+			    |
+			(
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getXImportDeclarationRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0());
+					}
+					ruleQualifiedName
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			    |
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0());
+					}
+					lv_importedNamespace_8_0=ruleQualifiedNameWithWildcard
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+						}
+						set(
+							$current,
+							"importedNamespace",
+							lv_importedNamespace_8_0,
+							"org.eclipse.xtext.xbase.Xtype.QualifiedNameWithWildcard");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			    |
+			(
+				(
+					(
+						lv_fqnImport_9_0='ns'
+						{
+							newLeafNode(lv_fqnImport_9_0, grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getXImportDeclarationRule());
+							}
+							setWithLastConsumed($current, "fqnImport", true, "ns");
+						}
+					)
+				)
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0());
+						}
+						lv_importedFullyQualifiedName_10_0=ruleQualifiedName
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+							}
+							set(
+								$current,
+								"importedFullyQualifiedName",
+								lv_importedFullyQualifiedName_10_0,
+								"org.eclipse.xtext.xbase.Xbase.QualifiedName");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)
+		)
+		(
+			otherlv_11=';'
+			{
+				newLeafNode(otherlv_11, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3());
+			}
+		)?
+	)
+;
 
 // Entry rule entryRuleXAnnotation
-entryRuleXAnnotation returns [EObject current=null] 
-	:
+entryRuleXAnnotation returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXAnnotationRule()); }
-	 iv_ruleXAnnotation=ruleXAnnotation 
-	 { $current=$iv_ruleXAnnotation.current; } 
-	 EOF 
-;
+	iv_ruleXAnnotation=ruleXAnnotation
+	{ $current=$iv_ruleXAnnotation.current; }
+	EOF;
 
 // Rule XAnnotation
-ruleXAnnotation returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXAnnotationAccess().getXAnnotationAction_0(),
-            $current);
-    }
-)	otherlv_1='@' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
-    }
-(
-(
+ruleXAnnotation returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXAnnotationAccess().getXAnnotationAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='@'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXAnnotationRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
-	    }
-		ruleQualifiedName		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(((	'(' 
-)=>	otherlv_3='(' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
-    }
-)((((((
-(
-		ruleValidID
-)
-)	'=' 
-))=>
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
-	    }
-		lv_elementValuePairs_4_0=ruleXAnnotationElementValuePair		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAnnotationRule());
-	        }
-       		add(
-       			$current, 
-       			"elementValuePairs",
-        		lv_elementValuePairs_4_0, 
-        		"XAnnotationElementValuePair");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_5=',' 
-    {
-    	newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
-    }
-((((
-(
-		ruleValidID
-)
-)	'=' 
-))=>
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
-	    }
-		lv_elementValuePairs_6_0=ruleXAnnotationElementValuePair		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAnnotationRule());
-	        }
-       		add(
-       			$current, 
-       			"elementValuePairs",
-        		lv_elementValuePairs_6_0, 
-        		"XAnnotationElementValuePair");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)
-    |(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
-	    }
-		lv_value_7_0=ruleXAnnotationElementValueOrCommaList		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAnnotationRule());
-	        }
-       		set(
-       			$current, 
-       			"value",
-        		lv_value_7_0, 
-        		"XAnnotationElementValueOrCommaList");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))?	otherlv_8=')' 
-    {
-    	newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
-    }
-)?)
+			newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getXAnnotationRule());
+					}
+				}
+				{
+					newCompositeNode(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0());
+				}
+				ruleQualifiedName
+				{
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				('(')=>
+				otherlv_3='('
+				{
+					newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
+				}
+			)
+			(
+				(
+					(
+						((
+							(
+								(
+									ruleValidID
+								)
+							)
+							'='
+						)
+						)=>
+						(
+							{
+								newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0());
+							}
+							lv_elementValuePairs_4_0=ruleXAnnotationElementValuePair
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+								}
+								add(
+									$current,
+									"elementValuePairs",
+									lv_elementValuePairs_4_0,
+									"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationElementValuePair");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+					(
+						otherlv_5=','
+						{
+							newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
+						}
+						(
+							((
+								(
+									(
+										ruleValidID
+									)
+								)
+								'='
+							)
+							)=>
+							(
+								{
+									newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0());
+								}
+								lv_elementValuePairs_6_0=ruleXAnnotationElementValuePair
+								{
+									if ($current==null) {
+										$current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+									}
+									add(
+										$current,
+										"elementValuePairs",
+										lv_elementValuePairs_6_0,
+										"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationElementValuePair");
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+					)*
+				)
+				    |
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0());
+						}
+						lv_value_7_0=ruleXAnnotationElementValueOrCommaList
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+							}
+							set(
+								$current,
+								"value",
+								lv_value_7_0,
+								"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationElementValueOrCommaList");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)?
+			otherlv_8=')'
+			{
+				newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
+			}
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXAnnotationElementValuePair
-entryRuleXAnnotationElementValuePair returns [EObject current=null] 
-	:
+entryRuleXAnnotationElementValuePair returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); }
-	 iv_ruleXAnnotationElementValuePair=ruleXAnnotationElementValuePair 
-	 { $current=$iv_ruleXAnnotationElementValuePair.current; } 
-	 EOF 
-;
+	iv_ruleXAnnotationElementValuePair=ruleXAnnotationElementValuePair
+	{ $current=$iv_ruleXAnnotationElementValuePair.current; }
+	EOF;
 
 // Rule XAnnotationElementValuePair
-ruleXAnnotationElementValuePair returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(((((
-(
-		ruleValidID
-)
-)	'=' 
-))=>((
-(
-		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXAnnotationElementValuePairRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
-	    }
-		ruleValidID		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_1='=' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
-    }
-))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
-	    }
-		lv_value_2_0=ruleXAnnotationElementValue		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValuePairRule());
-	        }
-       		set(
-       			$current, 
-       			"value",
-        		lv_value_2_0, 
-        		"XAnnotationElementValue");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleXAnnotationElementValuePair returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			((
+				(
+					(
+						ruleValidID
+					)
+				)
+				'='
+			)
+			)=>
+			(
+				(
+					(
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getXAnnotationElementValuePairRule());
+							}
+						}
+						{
+							newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0());
+						}
+						ruleValidID
+						{
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				otherlv_1='='
+				{
+					newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0());
+				}
+				lv_value_2_0=ruleXAnnotationElementValue
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXAnnotationElementValuePairRule());
+					}
+					set(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationElementValue");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXAnnotationElementValueOrCommaList
-entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] 
-	:
+entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); }
-	 iv_ruleXAnnotationElementValueOrCommaList=ruleXAnnotationElementValueOrCommaList 
-	 { $current=$iv_ruleXAnnotationElementValueOrCommaList.current; } 
-	 EOF 
-;
+	iv_ruleXAnnotationElementValueOrCommaList=ruleXAnnotationElementValueOrCommaList
+	{ $current=$iv_ruleXAnnotationElementValueOrCommaList.current; }
+	EOF;
 
 // Rule XAnnotationElementValueOrCommaList
-ruleXAnnotationElementValueOrCommaList returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((((((
-)	'#' 
-	'[' 
-))=>((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0(),
-            $current);
-    }
-)	otherlv_1='#' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
-    }
-	otherlv_2='[' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
-    }
-))((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
-	    }
-		lv_elements_3_0=ruleXAnnotationOrExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
-	        }
-       		add(
-       			$current, 
-       			"elements",
-        		lv_elements_3_0, 
-        		"XAnnotationOrExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_4=',' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
-	    }
-		lv_elements_5_0=ruleXAnnotationOrExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
-	        }
-       		add(
-       			$current, 
-       			"elements",
-        		lv_elements_5_0, 
-        		"XAnnotationOrExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)?	otherlv_6=']' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
-    }
-)
-    |(
-    { 
-        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
-    }
-    this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression
-    { 
-        $current = $this_XAnnotationOrExpression_7.current; 
-        afterParserOrEnumRuleCall();
-    }
-((
-    {
-        $current = forceCreateModelElementAndAdd(
-            grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0(),
-            $current);
-    }
-)(	otherlv_9=',' 
-    {
-    	newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
-	    }
-		lv_elements_10_0=ruleXAnnotationOrExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
-	        }
-       		add(
-       			$current, 
-       			"elements",
-        		lv_elements_10_0, 
-        		"XAnnotationOrExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))+)?))
+ruleXAnnotationElementValueOrCommaList returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				((
+					(
+					)
+					'#'
+					'['
+				)
+				)=>
+				(
+					(
+						{
+							$current = forceCreateModelElement(
+								grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0(),
+								$current);
+						}
+					)
+					otherlv_1='#'
+					{
+						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
+					}
+					otherlv_2='['
+					{
+						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
+					}
+				)
+			)
+			(
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0());
+						}
+						lv_elements_3_0=ruleXAnnotationOrExpression
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+							}
+							add(
+								$current,
+								"elements",
+								lv_elements_3_0,
+								"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationOrExpression");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					otherlv_4=','
+					{
+						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
+					}
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0());
+							}
+							lv_elements_5_0=ruleXAnnotationOrExpression
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+								}
+								add(
+									$current,
+									"elements",
+									lv_elements_5_0,
+									"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationOrExpression");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)*
+			)?
+			otherlv_6=']'
+			{
+				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
+			}
+		)
+		    |
+		(
+			{
+				newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0());
+			}
+			this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression
+			{
+				$current = $this_XAnnotationOrExpression_7.current;
+				afterParserOrEnumRuleCall();
+			}
+			(
+				(
+					{
+						$current = forceCreateModelElementAndAdd(
+							grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0(),
+							$current);
+					}
+				)
+				(
+					otherlv_9=','
+					{
+						newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
+					}
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0());
+							}
+							lv_elements_10_0=ruleXAnnotationOrExpression
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+								}
+								add(
+									$current,
+									"elements",
+									lv_elements_10_0,
+									"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationOrExpression");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)+
+			)?
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXAnnotationElementValue
-entryRuleXAnnotationElementValue returns [EObject current=null] 
-	:
+entryRuleXAnnotationElementValue returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); }
-	 iv_ruleXAnnotationElementValue=ruleXAnnotationElementValue 
-	 { $current=$iv_ruleXAnnotationElementValue.current; } 
-	 EOF 
-;
+	iv_ruleXAnnotationElementValue=ruleXAnnotationElementValue
+	{ $current=$iv_ruleXAnnotationElementValue.current; }
+	EOF;
 
 // Rule XAnnotationElementValue
-ruleXAnnotationElementValue returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((((((
-)	'#' 
-	'[' 
-))=>((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0(),
-            $current);
-    }
-)	otherlv_1='#' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
-    }
-	otherlv_2='[' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
-    }
-))((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
-	    }
-		lv_elements_3_0=ruleXAnnotationOrExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
-	        }
-       		add(
-       			$current, 
-       			"elements",
-        		lv_elements_3_0, 
-        		"XAnnotationOrExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_4=',' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
-	    }
-		lv_elements_5_0=ruleXAnnotationOrExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
-	        }
-       		add(
-       			$current, 
-       			"elements",
-        		lv_elements_5_0, 
-        		"XAnnotationOrExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)?	otherlv_6=']' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
-    }
-)
-    |
-    { 
-        newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
-    }
-    this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression
-    { 
-        $current = $this_XAnnotationOrExpression_7.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleXAnnotationElementValue returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				((
+					(
+					)
+					'#'
+					'['
+				)
+				)=>
+				(
+					(
+						{
+							$current = forceCreateModelElement(
+								grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0(),
+								$current);
+						}
+					)
+					otherlv_1='#'
+					{
+						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
+					}
+					otherlv_2='['
+					{
+						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
+					}
+				)
+			)
+			(
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0());
+						}
+						lv_elements_3_0=ruleXAnnotationOrExpression
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
+							}
+							add(
+								$current,
+								"elements",
+								lv_elements_3_0,
+								"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationOrExpression");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					otherlv_4=','
+					{
+						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
+					}
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0());
+							}
+							lv_elements_5_0=ruleXAnnotationOrExpression
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
+								}
+								add(
+									$current,
+									"elements",
+									lv_elements_5_0,
+									"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationOrExpression");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)*
+			)?
+			otherlv_6=']'
+			{
+				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
+			}
+		)
+		    |
+		{
+			newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1());
+		}
+		this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression
+		{
+			$current = $this_XAnnotationOrExpression_7.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXAnnotationOrExpression
-entryRuleXAnnotationOrExpression returns [EObject current=null] 
-	:
+entryRuleXAnnotationOrExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); }
-	 iv_ruleXAnnotationOrExpression=ruleXAnnotationOrExpression 
-	 { $current=$iv_ruleXAnnotationOrExpression.current; } 
-	 EOF 
-;
+	iv_ruleXAnnotationOrExpression=ruleXAnnotationOrExpression
+	{ $current=$iv_ruleXAnnotationOrExpression.current; }
+	EOF;
 
 // Rule XAnnotationOrExpression
-ruleXAnnotationOrExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
-    }
-    this_XAnnotation_0=ruleXAnnotation
-    { 
-        $current = $this_XAnnotation_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
-    }
-    this_XExpression_1=ruleXExpression
-    { 
-        $current = $this_XExpression_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleXAnnotationOrExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0());
+		}
+		this_XAnnotation_0=ruleXAnnotation
+		{
+			$current = $this_XAnnotation_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1());
+		}
+		this_XExpression_1=ruleXExpression
+		{
+			$current = $this_XExpression_1.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXExpression
-entryRuleXExpression returns [EObject current=null] 
-	:
+entryRuleXExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXExpressionRule()); }
-	 iv_ruleXExpression=ruleXExpression 
-	 { $current=$iv_ruleXExpression.current; } 
-	 EOF 
-;
+	iv_ruleXExpression=ruleXExpression
+	{ $current=$iv_ruleXExpression.current; }
+	EOF;
 
 // Rule XExpression
-ruleXExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-
-    { 
-        newCompositeNode(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
-    }
-    this_XAssignment_0=ruleXAssignment
-    { 
-        $current = $this_XAssignment_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
+ruleXExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	{
+		newCompositeNode(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall());
+	}
+	this_XAssignment_0=ruleXAssignment
+	{
+		$current = $this_XAssignment_0.current;
+		afterParserOrEnumRuleCall();
+	}
 ;
 
-
-
-
-
 // Entry rule entryRuleXAssignment
-entryRuleXAssignment returns [EObject current=null] 
-	:
+entryRuleXAssignment returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXAssignmentRule()); }
-	 iv_ruleXAssignment=ruleXAssignment 
-	 { $current=$iv_ruleXAssignment.current; } 
-	 EOF 
-;
+	iv_ruleXAssignment=ruleXAssignment
+	{ $current=$iv_ruleXAssignment.current; }
+	EOF;
 
 // Rule XAssignment
-ruleXAssignment returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0(),
-            $current);
-    }
-)(
-(
-		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXAssignmentRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
-	    }
-		ruleFeatureCallID		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)
-    { 
-        newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
-    }
-ruleOpSingleAssign
-    { 
-        afterParserOrEnumRuleCall();
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
-	    }
-		lv_value_3_0=ruleXAssignment		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAssignmentRule());
-	        }
-       		set(
-       			$current, 
-       			"value",
-        		lv_value_3_0, 
-        		"XAssignment");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
-    |(
-    { 
-        newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
-    }
-    this_XOrExpression_4=ruleXOrExpression
-    { 
-        $current = $this_XOrExpression_4.current; 
-        afterParserOrEnumRuleCall();
-    }
-(((((
-)(
-(
-		ruleOpMultiAssign
-)
-)))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
-            $current);
-    }
-)(
-(
-		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXAssignmentRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
-	    }
-		ruleOpMultiAssign		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
-	    }
-		lv_rightOperand_7_0=ruleXAssignment		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAssignmentRule());
-	        }
-       		set(
-       			$current, 
-       			"rightOperand",
-        		lv_rightOperand_7_0, 
-        		"XAssignment");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))?))
+ruleXAssignment returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					$current = forceCreateModelElement(
+						grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0(),
+						$current);
+				}
+			)
+			(
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getXAssignmentRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+					}
+					ruleFeatureCallID
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			{
+				newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2());
+			}
+			ruleOpSingleAssign
+			{
+				afterParserOrEnumRuleCall();
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0());
+					}
+					lv_value_3_0=ruleXAssignment
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+						}
+						set(
+							$current,
+							"value",
+							lv_value_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XAssignment");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)
+		    |
+		(
+			{
+				newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0());
+			}
+			this_XOrExpression_4=ruleXOrExpression
+			{
+				$current = $this_XOrExpression_4.current;
+				afterParserOrEnumRuleCall();
+			}
+			(
+				(
+					((
+						(
+						)
+						(
+							(
+								ruleOpMultiAssign
+							)
+						)
+					)
+					)=>
+					(
+						(
+							{
+								$current = forceCreateModelElementAndSet(
+									grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+									$current);
+							}
+						)
+						(
+							(
+								{
+									if ($current==null) {
+										$current = createModelElement(grammarAccess.getXAssignmentRule());
+									}
+								}
+								{
+									newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+								}
+								ruleOpMultiAssign
+								{
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+					)
+				)
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0());
+						}
+						lv_rightOperand_7_0=ruleXAssignment
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+							}
+							set(
+								$current,
+								"rightOperand",
+								lv_rightOperand_7_0,
+								"org.eclipse.xtext.xbase.Xbase.XAssignment");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)?
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleOpSingleAssign
-entryRuleOpSingleAssign returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpSingleAssignRule()); } 
-	 iv_ruleOpSingleAssign=ruleOpSingleAssign 
-	 { $current=$iv_ruleOpSingleAssign.current.getText(); }  
-	 EOF 
-;
+entryRuleOpSingleAssign returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpSingleAssignRule()); }
+	iv_ruleOpSingleAssign=ruleOpSingleAssign
+	{ $current=$iv_ruleOpSingleAssign.current.getText(); }
+	EOF;
 
 // Rule OpSingleAssign
-ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-
-	kw='=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
-    }
-
-    ;
-
-
-
-
+ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	kw='='
+	{
+		$current.merge(kw);
+		newLeafNode(kw, grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword());
+	}
+;
 
 // Entry rule entryRuleOpMultiAssign
-entryRuleOpMultiAssign returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpMultiAssignRule()); } 
-	 iv_ruleOpMultiAssign=ruleOpMultiAssign 
-	 { $current=$iv_ruleOpMultiAssign.current.getText(); }  
-	 EOF 
-;
+entryRuleOpMultiAssign returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpMultiAssignRule()); }
+	iv_ruleOpMultiAssign=ruleOpMultiAssign
+	{ $current=$iv_ruleOpMultiAssign.current.getText(); }
+	EOF;
 
 // Rule OpMultiAssign
-ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-	kw='+=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
-    }
-
-    |
-	kw='-=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
-    }
-
-    |
-	kw='*=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
-    }
-
-    |
-	kw='/=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
-    }
-
-    |
-	kw='%=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
-    }
-
-    |(
-	kw='<' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
-    }
-
-	kw='<' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
-    }
-
-	kw='=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
-    }
-)
-    |(
-	kw='>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
-    }
-(
-	kw='>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
-    }
-)?
-	kw='>=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
-    }
-))
-    ;
-
-
-
-
+ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		kw='+='
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0());
+		}
+		    |
+		kw='-='
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1());
+		}
+		    |
+		kw='*='
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2());
+		}
+		    |
+		kw='/='
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3());
+		}
+		    |
+		kw='%='
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4());
+		}
+		    |
+		(
+			kw='<'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0());
+			}
+			kw='<'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1());
+			}
+			kw='='
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2());
+			}
+		)
+		    |
+		(
+			kw='>'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0());
+			}
+			(
+				kw='>'
+				{
+					$current.merge(kw);
+					newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1());
+				}
+			)?
+			kw='>='
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2());
+			}
+		)
+	)
+;
 
 // Entry rule entryRuleXOrExpression
-entryRuleXOrExpression returns [EObject current=null] 
-	:
+entryRuleXOrExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXOrExpressionRule()); }
-	 iv_ruleXOrExpression=ruleXOrExpression 
-	 { $current=$iv_ruleXOrExpression.current; } 
-	 EOF 
-;
+	iv_ruleXOrExpression=ruleXOrExpression
+	{ $current=$iv_ruleXOrExpression.current; }
+	EOF;
 
 // Rule XOrExpression
-ruleXOrExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
-    }
-    this_XAndExpression_0=ruleXAndExpression
-    { 
-        $current = $this_XAndExpression_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-(((((
-)(
-(
-		ruleOpOr
-)
-)))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            $current);
-    }
-)(
-(
+ruleXOrExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXOrExpressionRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
-	    }
-		ruleOpOr		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
-	    }
-		lv_rightOperand_3_0=ruleXAndExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXOrExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"rightOperand",
-        		lv_rightOperand_3_0, 
-        		"XAndExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)
+			newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0());
+		}
+		this_XAndExpression_0=ruleXAndExpression
+		{
+			$current = $this_XAndExpression_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		(
+			(
+				((
+					(
+					)
+					(
+						(
+							ruleOpOr
+						)
+					)
+				)
+				)=>
+				(
+					(
+						{
+							$current = forceCreateModelElementAndSet(
+								grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+								$current);
+						}
+					)
+					(
+						(
+							{
+								if ($current==null) {
+									$current = createModelElement(grammarAccess.getXOrExpressionRule());
+								}
+							}
+							{
+								newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+							}
+							ruleOpOr
+							{
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0());
+					}
+					lv_rightOperand_3_0=ruleXAndExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXOrExpressionRule());
+						}
+						set(
+							$current,
+							"rightOperand",
+							lv_rightOperand_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XAndExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleOpOr
-entryRuleOpOr returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpOrRule()); } 
-	 iv_ruleOpOr=ruleOpOr 
-	 { $current=$iv_ruleOpOr.current.getText(); }  
-	 EOF 
-;
+entryRuleOpOr returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpOrRule()); }
+	iv_ruleOpOr=ruleOpOr
+	{ $current=$iv_ruleOpOr.current.getText(); }
+	EOF;
 
 // Rule OpOr
-ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-
-	kw='||' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
-    }
-
-    ;
-
-
-
-
+ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	kw='||'
+	{
+		$current.merge(kw);
+		newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
+	}
+;
 
 // Entry rule entryRuleXAndExpression
-entryRuleXAndExpression returns [EObject current=null] 
-	:
+entryRuleXAndExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXAndExpressionRule()); }
-	 iv_ruleXAndExpression=ruleXAndExpression 
-	 { $current=$iv_ruleXAndExpression.current; } 
-	 EOF 
-;
+	iv_ruleXAndExpression=ruleXAndExpression
+	{ $current=$iv_ruleXAndExpression.current; }
+	EOF;
 
 // Rule XAndExpression
-ruleXAndExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
-    }
-    this_XEqualityExpression_0=ruleXEqualityExpression
-    { 
-        $current = $this_XEqualityExpression_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-(((((
-)(
-(
-		ruleOpAnd
-)
-)))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            $current);
-    }
-)(
-(
+ruleXAndExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXAndExpressionRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
-	    }
-		ruleOpAnd		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
-	    }
-		lv_rightOperand_3_0=ruleXEqualityExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"rightOperand",
-        		lv_rightOperand_3_0, 
-        		"XEqualityExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)
+			newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
+		}
+		this_XEqualityExpression_0=ruleXEqualityExpression
+		{
+			$current = $this_XEqualityExpression_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		(
+			(
+				((
+					(
+					)
+					(
+						(
+							ruleOpAnd
+						)
+					)
+				)
+				)=>
+				(
+					(
+						{
+							$current = forceCreateModelElementAndSet(
+								grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+								$current);
+						}
+					)
+					(
+						(
+							{
+								if ($current==null) {
+									$current = createModelElement(grammarAccess.getXAndExpressionRule());
+								}
+							}
+							{
+								newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+							}
+							ruleOpAnd
+							{
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
+					}
+					lv_rightOperand_3_0=ruleXEqualityExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
+						}
+						set(
+							$current,
+							"rightOperand",
+							lv_rightOperand_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XEqualityExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleOpAnd
-entryRuleOpAnd returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpAndRule()); } 
-	 iv_ruleOpAnd=ruleOpAnd 
-	 { $current=$iv_ruleOpAnd.current.getText(); }  
-	 EOF 
-;
+entryRuleOpAnd returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpAndRule()); }
+	iv_ruleOpAnd=ruleOpAnd
+	{ $current=$iv_ruleOpAnd.current.getText(); }
+	EOF;
 
 // Rule OpAnd
-ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-
-	kw='&&' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
-    }
-
-    ;
-
-
-
-
+ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	kw='&&'
+	{
+		$current.merge(kw);
+		newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
+	}
+;
 
 // Entry rule entryRuleXEqualityExpression
-entryRuleXEqualityExpression returns [EObject current=null] 
-	:
+entryRuleXEqualityExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXEqualityExpressionRule()); }
-	 iv_ruleXEqualityExpression=ruleXEqualityExpression 
-	 { $current=$iv_ruleXEqualityExpression.current; } 
-	 EOF 
-;
+	iv_ruleXEqualityExpression=ruleXEqualityExpression
+	{ $current=$iv_ruleXEqualityExpression.current; }
+	EOF;
 
 // Rule XEqualityExpression
-ruleXEqualityExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
-    }
-    this_XRelationalExpression_0=ruleXRelationalExpression
-    { 
-        $current = $this_XRelationalExpression_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-(((((
-)(
-(
-		ruleOpEquality
-)
-)))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            $current);
-    }
-)(
-(
+ruleXEqualityExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXEqualityExpressionRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
-	    }
-		ruleOpEquality		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
-	    }
-		lv_rightOperand_3_0=ruleXRelationalExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"rightOperand",
-        		lv_rightOperand_3_0, 
-        		"XRelationalExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)
+			newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
+		}
+		this_XRelationalExpression_0=ruleXRelationalExpression
+		{
+			$current = $this_XRelationalExpression_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		(
+			(
+				((
+					(
+					)
+					(
+						(
+							ruleOpEquality
+						)
+					)
+				)
+				)=>
+				(
+					(
+						{
+							$current = forceCreateModelElementAndSet(
+								grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+								$current);
+						}
+					)
+					(
+						(
+							{
+								if ($current==null) {
+									$current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+								}
+							}
+							{
+								newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+							}
+							ruleOpEquality
+							{
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+					}
+					lv_rightOperand_3_0=ruleXRelationalExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+						}
+						set(
+							$current,
+							"rightOperand",
+							lv_rightOperand_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XRelationalExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleOpEquality
-entryRuleOpEquality returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpEqualityRule()); } 
-	 iv_ruleOpEquality=ruleOpEquality 
-	 { $current=$iv_ruleOpEquality.current.getText(); }  
-	 EOF 
-;
+entryRuleOpEquality returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpEqualityRule()); }
+	iv_ruleOpEquality=ruleOpEquality
+	{ $current=$iv_ruleOpEquality.current.getText(); }
+	EOF;
 
 // Rule OpEquality
-ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-	kw='==' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
-    }
-
-    |
-	kw='!=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
-    }
-
-    |
-	kw='===' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
-    }
-
-    |
-	kw='!==' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
-    }
-)
-    ;
-
-
-
-
+ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		kw='=='
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
+		}
+		    |
+		kw='!='
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
+		}
+		    |
+		kw='==='
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
+		}
+		    |
+		kw='!=='
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
+		}
+	)
+;
 
 // Entry rule entryRuleXRelationalExpression
-entryRuleXRelationalExpression returns [EObject current=null] 
-	:
+entryRuleXRelationalExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXRelationalExpressionRule()); }
-	 iv_ruleXRelationalExpression=ruleXRelationalExpression 
-	 { $current=$iv_ruleXRelationalExpression.current; } 
-	 EOF 
-;
+	iv_ruleXRelationalExpression=ruleXRelationalExpression
+	{ $current=$iv_ruleXRelationalExpression.current; }
+	EOF;
 
 // Rule XRelationalExpression
-ruleXRelationalExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
-    }
-    this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression
-    { 
-        $current = $this_XOtherOperatorExpression_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-((((((
-)	'instanceof' 
-))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
-            $current);
-    }
-)	otherlv_2='instanceof' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
-    }
-))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
-	    }
-		lv_type_3_0=ruleJvmTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"type",
-        		lv_type_3_0, 
-        		"JvmTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
-    |(((((
-)(
-(
-		ruleOpCompare
-)
-)))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
-            $current);
-    }
-)(
-(
+ruleXRelationalExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXRelationalExpressionRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
-	    }
-		ruleOpCompare		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
-	    }
-		lv_rightOperand_6_0=ruleXOtherOperatorExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"rightOperand",
-        		lv_rightOperand_6_0, 
-        		"XOtherOperatorExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))*)
+			newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
+		}
+		this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression
+		{
+			$current = $this_XOtherOperatorExpression_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		(
+			(
+				(
+					((
+						(
+						)
+						'instanceof'
+					)
+					)=>
+					(
+						(
+							{
+								$current = forceCreateModelElementAndSet(
+									grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
+									$current);
+							}
+						)
+						otherlv_2='instanceof'
+						{
+							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+						}
+					)
+				)
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
+						}
+						lv_type_3_0=ruleJvmTypeReference
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+							}
+							set(
+								$current,
+								"type",
+								lv_type_3_0,
+								"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)
+			    |
+			(
+				(
+					((
+						(
+						)
+						(
+							(
+								ruleOpCompare
+							)
+						)
+					)
+					)=>
+					(
+						(
+							{
+								$current = forceCreateModelElementAndSet(
+									grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+									$current);
+							}
+						)
+						(
+							(
+								{
+									if ($current==null) {
+										$current = createModelElement(grammarAccess.getXRelationalExpressionRule());
+									}
+								}
+								{
+									newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+								}
+								ruleOpCompare
+								{
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+					)
+				)
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
+						}
+						lv_rightOperand_6_0=ruleXOtherOperatorExpression
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+							}
+							set(
+								$current,
+								"rightOperand",
+								lv_rightOperand_6_0,
+								"org.eclipse.xtext.xbase.Xbase.XOtherOperatorExpression");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleOpCompare
-entryRuleOpCompare returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpCompareRule()); } 
-	 iv_ruleOpCompare=ruleOpCompare 
-	 { $current=$iv_ruleOpCompare.current.getText(); }  
-	 EOF 
-;
+entryRuleOpCompare returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpCompareRule()); }
+	iv_ruleOpCompare=ruleOpCompare
+	{ $current=$iv_ruleOpCompare.current.getText(); }
+	EOF;
 
 // Rule OpCompare
-ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-	kw='>=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
-    }
-
-    |(
-	kw='<' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
-    }
-
-	kw='=' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
-    }
-)
-    |
-	kw='>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
-    }
-
-    |
-	kw='<' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
-    }
-)
-    ;
-
-
-
-
+ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		kw='>='
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0());
+		}
+		    |
+		(
+			kw='<'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0());
+			}
+			kw='='
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1());
+			}
+		)
+		    |
+		kw='>'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2());
+		}
+		    |
+		kw='<'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3());
+		}
+	)
+;
 
 // Entry rule entryRuleXOtherOperatorExpression
-entryRuleXOtherOperatorExpression returns [EObject current=null] 
-	:
+entryRuleXOtherOperatorExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); }
-	 iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression 
-	 { $current=$iv_ruleXOtherOperatorExpression.current; } 
-	 EOF 
-;
+	iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression
+	{ $current=$iv_ruleXOtherOperatorExpression.current; }
+	EOF;
 
 // Rule XOtherOperatorExpression
-ruleXOtherOperatorExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
-    }
-    this_XAdditiveExpression_0=ruleXAdditiveExpression
-    { 
-        $current = $this_XAdditiveExpression_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-(((((
-)(
-(
-		ruleOpOther
-)
-)))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            $current);
-    }
-)(
-(
+ruleXOtherOperatorExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
-	    }
-		ruleOpOther		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
-	    }
-		lv_rightOperand_3_0=ruleXAdditiveExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"rightOperand",
-        		lv_rightOperand_3_0, 
-        		"XAdditiveExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)
+			newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
+		}
+		this_XAdditiveExpression_0=ruleXAdditiveExpression
+		{
+			$current = $this_XAdditiveExpression_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		(
+			(
+				((
+					(
+					)
+					(
+						(
+							ruleOpOther
+						)
+					)
+				)
+				)=>
+				(
+					(
+						{
+							$current = forceCreateModelElementAndSet(
+								grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+								$current);
+						}
+					)
+					(
+						(
+							{
+								if ($current==null) {
+									$current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
+								}
+							}
+							{
+								newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+							}
+							ruleOpOther
+							{
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
+					}
+					lv_rightOperand_3_0=ruleXAdditiveExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
+						}
+						set(
+							$current,
+							"rightOperand",
+							lv_rightOperand_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XAdditiveExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleOpOther
-entryRuleOpOther returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpOtherRule()); } 
-	 iv_ruleOpOther=ruleOpOther 
-	 { $current=$iv_ruleOpOther.current.getText(); }  
-	 EOF 
-;
+entryRuleOpOther returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpOtherRule()); }
+	iv_ruleOpOther=ruleOpOther
+	{ $current=$iv_ruleOpOther.current.getText(); }
+	EOF;
 
 // Rule OpOther
-ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-	kw='->' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
-    }
-
-    |
-	kw='..<' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
-    }
-
-    |(
-	kw='>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
-    }
-
-	kw='..' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
-    }
-)
-    |
-	kw='..' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
-    }
-
-    |
-	kw='=>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
-    }
-
-    |(
-	kw='>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
-    }
-((((
-	'>' 
-
-	'>' 
-))=>(
-	kw='>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
-    }
-
-	kw='>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
-    }
-))
-    |
-	kw='>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
-    }
-))
-    |(
-	kw='<' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
-    }
-((((
-	'<' 
-
-	'<' 
-))=>(
-	kw='<' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
-    }
-
-	kw='<' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
-    }
-))
-    |
-	kw='<' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
-    }
-
-    |
-	kw='=>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
-    }
-))
-    |
-	kw='<>' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
-    }
-
-    |
-	kw='?:' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
-    }
-)
-    ;
-
-
-
-
+ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		kw='->'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0());
+		}
+		    |
+		kw='..<'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1());
+		}
+		    |
+		(
+			kw='>'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
+			}
+			kw='..'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1());
+			}
+		)
+		    |
+		kw='..'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3());
+		}
+		    |
+		kw='=>'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4());
+		}
+		    |
+		(
+			kw='>'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
+			}
+			(
+				(
+					((
+						'>'
+						'>'
+					)
+					)=>
+					(
+						kw='>'
+						{
+							$current.merge(kw);
+							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
+						}
+						kw='>'
+						{
+							$current.merge(kw);
+							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1());
+						}
+					)
+				)
+				    |
+				kw='>'
+				{
+					$current.merge(kw);
+					newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1());
+				}
+			)
+		)
+		    |
+		(
+			kw='<'
+			{
+				$current.merge(kw);
+				newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
+			}
+			(
+				(
+					((
+						'<'
+						'<'
+					)
+					)=>
+					(
+						kw='<'
+						{
+							$current.merge(kw);
+							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
+						}
+						kw='<'
+						{
+							$current.merge(kw);
+							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1());
+						}
+					)
+				)
+				    |
+				kw='<'
+				{
+					$current.merge(kw);
+					newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1());
+				}
+				    |
+				kw='=>'
+				{
+					$current.merge(kw);
+					newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2());
+				}
+			)
+		)
+		    |
+		kw='<>'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7());
+		}
+		    |
+		kw='?:'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8());
+		}
+	)
+;
 
 // Entry rule entryRuleXAdditiveExpression
-entryRuleXAdditiveExpression returns [EObject current=null] 
-	:
+entryRuleXAdditiveExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); }
-	 iv_ruleXAdditiveExpression=ruleXAdditiveExpression 
-	 { $current=$iv_ruleXAdditiveExpression.current; } 
-	 EOF 
-;
+	iv_ruleXAdditiveExpression=ruleXAdditiveExpression
+	{ $current=$iv_ruleXAdditiveExpression.current; }
+	EOF;
 
 // Rule XAdditiveExpression
-ruleXAdditiveExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
-    }
-    this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression
-    { 
-        $current = $this_XMultiplicativeExpression_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-(((((
-)(
-(
-		ruleOpAdd
-)
-)))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            $current);
-    }
-)(
-(
+ruleXAdditiveExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXAdditiveExpressionRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
-	    }
-		ruleOpAdd		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
-	    }
-		lv_rightOperand_3_0=ruleXMultiplicativeExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXAdditiveExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"rightOperand",
-        		lv_rightOperand_3_0, 
-        		"XMultiplicativeExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)
+			newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0());
+		}
+		this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression
+		{
+			$current = $this_XMultiplicativeExpression_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		(
+			(
+				((
+					(
+					)
+					(
+						(
+							ruleOpAdd
+						)
+					)
+				)
+				)=>
+				(
+					(
+						{
+							$current = forceCreateModelElementAndSet(
+								grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+								$current);
+						}
+					)
+					(
+						(
+							{
+								if ($current==null) {
+									$current = createModelElement(grammarAccess.getXAdditiveExpressionRule());
+								}
+							}
+							{
+								newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+							}
+							ruleOpAdd
+							{
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0());
+					}
+					lv_rightOperand_3_0=ruleXMultiplicativeExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXAdditiveExpressionRule());
+						}
+						set(
+							$current,
+							"rightOperand",
+							lv_rightOperand_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XMultiplicativeExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleOpAdd
-entryRuleOpAdd returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpAddRule()); } 
-	 iv_ruleOpAdd=ruleOpAdd 
-	 { $current=$iv_ruleOpAdd.current.getText(); }  
-	 EOF 
-;
+entryRuleOpAdd returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpAddRule()); }
+	iv_ruleOpAdd=ruleOpAdd
+	{ $current=$iv_ruleOpAdd.current.getText(); }
+	EOF;
 
 // Rule OpAdd
-ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-	kw='+' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
-    }
-
-    |
-	kw='-' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
-    }
-)
-    ;
-
-
-
-
+ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		kw='+'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0());
+		}
+		    |
+		kw='-'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1());
+		}
+	)
+;
 
 // Entry rule entryRuleXMultiplicativeExpression
-entryRuleXMultiplicativeExpression returns [EObject current=null] 
-	:
+entryRuleXMultiplicativeExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); }
-	 iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression 
-	 { $current=$iv_ruleXMultiplicativeExpression.current; } 
-	 EOF 
-;
+	iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression
+	{ $current=$iv_ruleXMultiplicativeExpression.current; }
+	EOF;
 
 // Rule XMultiplicativeExpression
-ruleXMultiplicativeExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
-    }
-    this_XUnaryOperation_0=ruleXUnaryOperation
-    { 
-        $current = $this_XUnaryOperation_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-(((((
-)(
-(
-		ruleOpMulti
-)
-)))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
-            $current);
-    }
-)(
-(
+ruleXMultiplicativeExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
-	    }
-		ruleOpMulti		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
-	    }
-		lv_rightOperand_3_0=ruleXUnaryOperation		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"rightOperand",
-        		lv_rightOperand_3_0, 
-        		"XUnaryOperation");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)
+			newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
+		}
+		this_XUnaryOperation_0=ruleXUnaryOperation
+		{
+			$current = $this_XUnaryOperation_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		(
+			(
+				((
+					(
+					)
+					(
+						(
+							ruleOpMulti
+						)
+					)
+				)
+				)=>
+				(
+					(
+						{
+							$current = forceCreateModelElementAndSet(
+								grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+								$current);
+						}
+					)
+					(
+						(
+							{
+								if ($current==null) {
+									$current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
+								}
+							}
+							{
+								newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+							}
+							ruleOpMulti
+							{
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
+					}
+					lv_rightOperand_3_0=ruleXUnaryOperation
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
+						}
+						set(
+							$current,
+							"rightOperand",
+							lv_rightOperand_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XUnaryOperation");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleOpMulti
-entryRuleOpMulti returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpMultiRule()); } 
-	 iv_ruleOpMulti=ruleOpMulti 
-	 { $current=$iv_ruleOpMulti.current.getText(); }  
-	 EOF 
-;
+entryRuleOpMulti returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpMultiRule()); }
+	iv_ruleOpMulti=ruleOpMulti
+	{ $current=$iv_ruleOpMulti.current.getText(); }
+	EOF;
 
 // Rule OpMulti
-ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-	kw='*' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
-    }
-
-    |
-	kw='**' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
-    }
-
-    |
-	kw='/' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
-    }
-
-    |
-	kw='%' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
-    }
-)
-    ;
-
-
-
-
+ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		kw='*'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskKeyword_0());
+		}
+		    |
+		kw='**'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1());
+		}
+		    |
+		kw='/'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpMultiAccess().getSolidusKeyword_2());
+		}
+		    |
+		kw='%'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpMultiAccess().getPercentSignKeyword_3());
+		}
+	)
+;
 
 // Entry rule entryRuleXUnaryOperation
-entryRuleXUnaryOperation returns [EObject current=null] 
-	:
+entryRuleXUnaryOperation returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXUnaryOperationRule()); }
-	 iv_ruleXUnaryOperation=ruleXUnaryOperation 
-	 { $current=$iv_ruleXUnaryOperation.current; } 
-	 EOF 
-;
+	iv_ruleXUnaryOperation=ruleXUnaryOperation
+	{ $current=$iv_ruleXUnaryOperation.current; }
+	EOF;
 
 // Rule XUnaryOperation
-ruleXUnaryOperation returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0(),
-            $current);
-    }
-)(
-(
+ruleXUnaryOperation returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					$current = forceCreateModelElement(
+						grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0(),
+						$current);
+				}
+			)
+			(
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getXUnaryOperationRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+					}
+					ruleOpUnary
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0());
+					}
+					lv_operand_2_0=ruleXUnaryOperation
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXUnaryOperationRule());
+						}
+						set(
+							$current,
+							"operand",
+							lv_operand_2_0,
+							"org.eclipse.xtext.xbase.Xbase.XUnaryOperation");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)
+		    |
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXUnaryOperationRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
-	    }
-		ruleOpUnary		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
-	    }
-		lv_operand_2_0=ruleXUnaryOperation		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXUnaryOperationRule());
-	        }
-       		set(
-       			$current, 
-       			"operand",
-        		lv_operand_2_0, 
-        		"XUnaryOperation");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
-    |
-    { 
-        newCompositeNode(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
-    }
-    this_XCastedExpression_3=ruleXCastedExpression
-    { 
-        $current = $this_XCastedExpression_3.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+			newCompositeNode(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1());
+		}
+		this_XCastedExpression_3=ruleXCastedExpression
+		{
+			$current = $this_XCastedExpression_3.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleOpUnary
-entryRuleOpUnary returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpUnaryRule()); } 
-	 iv_ruleOpUnary=ruleOpUnary 
-	 { $current=$iv_ruleOpUnary.current.getText(); }  
-	 EOF 
-;
+entryRuleOpUnary returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpUnaryRule()); }
+	iv_ruleOpUnary=ruleOpUnary
+	{ $current=$iv_ruleOpUnary.current.getText(); }
+	EOF;
 
 // Rule OpUnary
-ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-	kw='!' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
-    }
-
-    |
-	kw='-' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
-    }
-
-    |
-	kw='+' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
-    }
-)
-    ;
-
-
-
-
+ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		kw='!'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0());
+		}
+		    |
+		kw='-'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1());
+		}
+		    |
+		kw='+'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2());
+		}
+	)
+;
 
 // Entry rule entryRuleXCastedExpression
-entryRuleXCastedExpression returns [EObject current=null] 
-	:
+entryRuleXCastedExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXCastedExpressionRule()); }
-	 iv_ruleXCastedExpression=ruleXCastedExpression 
-	 { $current=$iv_ruleXCastedExpression.current; } 
-	 EOF 
-;
+	iv_ruleXCastedExpression=ruleXCastedExpression
+	{ $current=$iv_ruleXCastedExpression.current; }
+	EOF;
 
 // Rule XCastedExpression
-ruleXCastedExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
-    }
-    this_XPostfixOperation_0=ruleXPostfixOperation
-    { 
-        $current = $this_XPostfixOperation_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-(((((
-)	'as' 
-))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0(),
-            $current);
-    }
-)	otherlv_2='as' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
-    }
-))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
-	    }
-		lv_type_3_0=ruleJvmTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXCastedExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"type",
-        		lv_type_3_0, 
-        		"JvmTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)
+ruleXCastedExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0());
+		}
+		this_XPostfixOperation_0=ruleXPostfixOperation
+		{
+			$current = $this_XPostfixOperation_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		(
+			(
+				((
+					(
+					)
+					'as'
+				)
+				)=>
+				(
+					(
+						{
+							$current = forceCreateModelElementAndSet(
+								grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0(),
+								$current);
+						}
+					)
+					otherlv_2='as'
+					{
+						newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
+					}
+				)
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0());
+					}
+					lv_type_3_0=ruleJvmTypeReference
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXCastedExpressionRule());
+						}
+						set(
+							$current,
+							"type",
+							lv_type_3_0,
+							"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXPostfixOperation
-entryRuleXPostfixOperation returns [EObject current=null] 
-	:
+entryRuleXPostfixOperation returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXPostfixOperationRule()); }
-	 iv_ruleXPostfixOperation=ruleXPostfixOperation 
-	 { $current=$iv_ruleXPostfixOperation.current; } 
-	 EOF 
-;
+	iv_ruleXPostfixOperation=ruleXPostfixOperation
+	{ $current=$iv_ruleXPostfixOperation.current; }
+	EOF;
 
 // Rule XPostfixOperation
-ruleXPostfixOperation returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
-    }
-    this_XMemberFeatureCall_0=ruleXMemberFeatureCall
-    { 
-        $current = $this_XMemberFeatureCall_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-((((
-)(
-(
-		ruleOpPostfix
-)
-)))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0(),
-            $current);
-    }
-)(
-(
+ruleXPostfixOperation returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXPostfixOperationRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
-	    }
-		ruleOpPostfix		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))?)
+			newCompositeNode(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0());
+		}
+		this_XMemberFeatureCall_0=ruleXMemberFeatureCall
+		{
+			$current = $this_XMemberFeatureCall_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		(
+			((
+				(
+				)
+				(
+					(
+						ruleOpPostfix
+					)
+				)
+			)
+			)=>
+			(
+				(
+					{
+						$current = forceCreateModelElementAndSet(
+							grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0(),
+							$current);
+					}
+				)
+				(
+					(
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getXPostfixOperationRule());
+							}
+						}
+						{
+							newCompositeNode(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0());
+						}
+						ruleOpPostfix
+						{
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleOpPostfix
-entryRuleOpPostfix returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getOpPostfixRule()); } 
-	 iv_ruleOpPostfix=ruleOpPostfix 
-	 { $current=$iv_ruleOpPostfix.current.getText(); }  
-	 EOF 
-;
+entryRuleOpPostfix returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getOpPostfixRule()); }
+	iv_ruleOpPostfix=ruleOpPostfix
+	{ $current=$iv_ruleOpPostfix.current.getText(); }
+	EOF;
 
 // Rule OpPostfix
-ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-	kw='++' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
-    }
-
-    |
-	kw='--' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
-    }
-)
-    ;
-
-
-
-
+ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		kw='++'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0());
+		}
+		    |
+		kw='--'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1());
+		}
+	)
+;
 
 // Entry rule entryRuleXMemberFeatureCall
-entryRuleXMemberFeatureCall returns [EObject current=null] 
-	:
+entryRuleXMemberFeatureCall returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); }
-	 iv_ruleXMemberFeatureCall=ruleXMemberFeatureCall 
-	 { $current=$iv_ruleXMemberFeatureCall.current; } 
-	 EOF 
-;
+	iv_ruleXMemberFeatureCall=ruleXMemberFeatureCall
+	{ $current=$iv_ruleXMemberFeatureCall.current; }
+	EOF;
 
 // Rule XMemberFeatureCall
-ruleXMemberFeatureCall returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
-    }
-    this_XPrimaryExpression_0=ruleXPrimaryExpression
-    { 
-        $current = $this_XPrimaryExpression_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-((((((
-)(	'.' 
-
-    |(
-(
-	'::' 
- 
-
-)
-))(
-(
-		ruleFeatureCallID
-)
-)	ruleOpSingleAssign))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0(),
-            $current);
-    }
-)(	otherlv_2='.' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
-    }
-
-    |(
-(
-		lv_explicitStatic_3_0=	'::' 
-    {
-        newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		setWithLastConsumed($current, "explicitStatic", true, "::");
-	    }
-
-)
-))(
-(
+ruleXMemberFeatureCall returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
-	    }
-		ruleFeatureCallID		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)
-    { 
-        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
-    }
-ruleOpSingleAssign
-    { 
-        afterParserOrEnumRuleCall();
-    }
-))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
-	    }
-		lv_value_6_0=ruleXAssignment		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		set(
-       			$current, 
-       			"value",
-        		lv_value_6_0, 
-        		"XAssignment");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
-    |(((((
-)(	'.' 
-
-    |(
-(
-	'?.' 
- 
-
-)
-)
-    |(
-(
-	'::' 
- 
-
-)
-))))=>((
-    {
-        $current = forceCreateModelElementAndSet(
-            grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0(),
-            $current);
-    }
-)(	otherlv_8='.' 
-    {
-    	newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
-    }
-
-    |(
-(
-		lv_nullSafe_9_0=	'?.' 
-    {
-        newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		setWithLastConsumed($current, "nullSafe", true, "?.");
-	    }
-
-)
-)
-    |(
-(
-		lv_explicitStatic_10_0=	'::' 
-    {
-        newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		setWithLastConsumed($current, "explicitStatic", true, "::");
-	    }
-
-)
-))))(	otherlv_11='<' 
-    {
-    	newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
-	    }
-		lv_typeArguments_12_0=ruleJvmArgumentTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"typeArguments",
-        		lv_typeArguments_12_0, 
-        		"JvmArgumentTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_13=',' 
-    {
-    	newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
-	    }
-		lv_typeArguments_14_0=ruleJvmArgumentTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"typeArguments",
-        		lv_typeArguments_14_0, 
-        		"JvmArgumentTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*	otherlv_15='>' 
-    {
-    	newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
-    }
-)?(
-(
+			newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0());
+		}
+		this_XPrimaryExpression_0=ruleXPrimaryExpression
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
-	    }
-		ruleIdOrSuper		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(((
-(
-	'(' 
- 
-
-)
-)=>
-(
-		lv_explicitOperationCall_17_0=	'(' 
-    {
-        newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		setWithLastConsumed($current, "explicitOperationCall", true, "(");
-	    }
-
-)
-)(((((
-)((
-(
-ruleJvmFormalParameter
-)
-)(	',' 
-(
-(
-ruleJvmFormalParameter
-)
-))*)?(
-(
-	'|' 
- 
-
-)
-)))=>
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
-	    }
-		lv_memberCallArguments_18_0=ruleXShortClosure		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"memberCallArguments",
-        		lv_memberCallArguments_18_0, 
-        		"XShortClosure");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)
-    |((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
-	    }
-		lv_memberCallArguments_19_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"memberCallArguments",
-        		lv_memberCallArguments_19_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_20=',' 
-    {
-    	newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
-	    }
-		lv_memberCallArguments_21_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"memberCallArguments",
-        		lv_memberCallArguments_21_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*))?	otherlv_22=')' 
-    {
-    	newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
-    }
-)?((((
-)	'[' 
-))=>
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
-	    }
-		lv_memberCallArguments_23_0=ruleXClosure		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"memberCallArguments",
-        		lv_memberCallArguments_23_0, 
-        		"XClosure");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)?))*)
+			$current = $this_XPrimaryExpression_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		(
+			(
+				(
+					((
+						(
+						)
+						(
+							'.'
+							    |
+							(
+								(
+									'::'
+								)
+							)
+						)
+						(
+							(
+								ruleFeatureCallID
+							)
+						)
+						ruleOpSingleAssign
+					)
+					)=>
+					(
+						(
+							{
+								$current = forceCreateModelElementAndSet(
+									grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0(),
+									$current);
+							}
+						)
+						(
+							otherlv_2='.'
+							{
+								newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
+							}
+							    |
+							(
+								(
+									lv_explicitStatic_3_0='::'
+									{
+										newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+										}
+										setWithLastConsumed($current, "explicitStatic", true, "::");
+									}
+								)
+							)
+						)
+						(
+							(
+								{
+									if ($current==null) {
+										$current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+									}
+								}
+								{
+									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0());
+								}
+								ruleFeatureCallID
+								{
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+						{
+							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3());
+						}
+						ruleOpSingleAssign
+						{
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0());
+						}
+						lv_value_6_0=ruleXAssignment
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+							}
+							set(
+								$current,
+								"value",
+								lv_value_6_0,
+								"org.eclipse.xtext.xbase.Xbase.XAssignment");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)
+			    |
+			(
+				(
+					((
+						(
+						)
+						(
+							'.'
+							    |
+							(
+								(
+									'?.'
+								)
+							)
+							    |
+							(
+								(
+									'::'
+								)
+							)
+						)
+					)
+					)=>
+					(
+						(
+							{
+								$current = forceCreateModelElementAndSet(
+									grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0(),
+									$current);
+							}
+						)
+						(
+							otherlv_8='.'
+							{
+								newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
+							}
+							    |
+							(
+								(
+									lv_nullSafe_9_0='?.'
+									{
+										newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+										}
+										setWithLastConsumed($current, "nullSafe", true, "?.");
+									}
+								)
+							)
+							    |
+							(
+								(
+									lv_explicitStatic_10_0='::'
+									{
+										newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+									}
+									{
+										if ($current==null) {
+											$current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+										}
+										setWithLastConsumed($current, "explicitStatic", true, "::");
+									}
+								)
+							)
+						)
+					)
+				)
+				(
+					otherlv_11='<'
+					{
+						newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
+					}
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0());
+							}
+							lv_typeArguments_12_0=ruleJvmArgumentTypeReference
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+								}
+								add(
+									$current,
+									"typeArguments",
+									lv_typeArguments_12_0,
+									"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+					(
+						otherlv_13=','
+						{
+							newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
+						}
+						(
+							(
+								{
+									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0());
+								}
+								lv_typeArguments_14_0=ruleJvmArgumentTypeReference
+								{
+									if ($current==null) {
+										$current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+									}
+									add(
+										$current,
+										"typeArguments",
+										lv_typeArguments_14_0,
+										"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+					)*
+					otherlv_15='>'
+					{
+						newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
+					}
+				)?
+				(
+					(
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+							}
+						}
+						{
+							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0());
+						}
+						ruleIdOrSuper
+						{
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					(
+						((
+							'('
+						)
+						)=>
+						(
+							lv_explicitOperationCall_17_0='('
+							{
+								newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
+							}
+							{
+								if ($current==null) {
+									$current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+								}
+								setWithLastConsumed($current, "explicitOperationCall", true, "(");
+							}
+						)
+					)
+					(
+						(
+							((
+								(
+								)
+								(
+									(
+										(
+											ruleJvmFormalParameter
+										)
+									)
+									(
+										','
+										(
+											(
+												ruleJvmFormalParameter
+											)
+										)
+									)*
+								)?
+								(
+									(
+										'|'
+									)
+								)
+							)
+							)=>
+							(
+								{
+									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0());
+								}
+								lv_memberCallArguments_18_0=ruleXShortClosure
+								{
+									if ($current==null) {
+										$current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+									}
+									add(
+										$current,
+										"memberCallArguments",
+										lv_memberCallArguments_18_0,
+										"org.eclipse.xtext.xbase.Xbase.XShortClosure");
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+						    |
+						(
+							(
+								(
+									{
+										newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0());
+									}
+									lv_memberCallArguments_19_0=ruleXExpression
+									{
+										if ($current==null) {
+											$current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+										}
+										add(
+											$current,
+											"memberCallArguments",
+											lv_memberCallArguments_19_0,
+											"org.eclipse.xtext.xbase.Xbase.XExpression");
+										afterParserOrEnumRuleCall();
+									}
+								)
+							)
+							(
+								otherlv_20=','
+								{
+									newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
+								}
+								(
+									(
+										{
+											newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0());
+										}
+										lv_memberCallArguments_21_0=ruleXExpression
+										{
+											if ($current==null) {
+												$current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+											}
+											add(
+												$current,
+												"memberCallArguments",
+												lv_memberCallArguments_21_0,
+												"org.eclipse.xtext.xbase.Xbase.XExpression");
+											afterParserOrEnumRuleCall();
+										}
+									)
+								)
+							)*
+						)
+					)?
+					otherlv_22=')'
+					{
+						newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
+					}
+				)?
+				(
+					((
+						(
+						)
+						'['
+					)
+					)=>
+					(
+						{
+							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0());
+						}
+						lv_memberCallArguments_23_0=ruleXClosure
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+							}
+							add(
+								$current,
+								"memberCallArguments",
+								lv_memberCallArguments_23_0,
+								"org.eclipse.xtext.xbase.Xbase.XClosure");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)?
+			)
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXPrimaryExpression
-entryRuleXPrimaryExpression returns [EObject current=null] 
-	:
+entryRuleXPrimaryExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXPrimaryExpressionRule()); }
-	 iv_ruleXPrimaryExpression=ruleXPrimaryExpression 
-	 { $current=$iv_ruleXPrimaryExpression.current; } 
-	 EOF 
-;
+	iv_ruleXPrimaryExpression=ruleXPrimaryExpression
+	{ $current=$iv_ruleXPrimaryExpression.current; }
+	EOF;
 
 // Rule XPrimaryExpression
-ruleXPrimaryExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
-    }
-    this_XConstructorCall_0=ruleXConstructorCall
-    { 
-        $current = $this_XConstructorCall_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
-    }
-    this_XBlockExpression_1=ruleXBlockExpression
-    { 
-        $current = $this_XBlockExpression_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
-    }
-    this_XSwitchExpression_2=ruleXSwitchExpression
-    { 
-        $current = $this_XSwitchExpression_2.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |((((
-)	'synchronized' 
-	'(' 
-))=>
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
-    }
-    this_XSynchronizedExpression_3=ruleXSynchronizedExpression
-    { 
-        $current = $this_XSynchronizedExpression_3.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
-    }
-    this_XFeatureCall_4=ruleXFeatureCall
-    { 
-        $current = $this_XFeatureCall_4.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
-    }
-    this_XLiteral_5=ruleXLiteral
-    { 
-        $current = $this_XLiteral_5.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
-    }
-    this_XIfExpression_6=ruleXIfExpression
-    { 
-        $current = $this_XIfExpression_6.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |((((
-)	'for' 
-	'(' 
-(
-(
-ruleJvmFormalParameter
-)
-)	':' 
-))=>
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
-    }
-    this_XForLoopExpression_7=ruleXForLoopExpression
-    { 
-        $current = $this_XForLoopExpression_7.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
-    }
-    this_XBasicForLoopExpression_8=ruleXBasicForLoopExpression
-    { 
-        $current = $this_XBasicForLoopExpression_8.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
-    }
-    this_XWhileExpression_9=ruleXWhileExpression
-    { 
-        $current = $this_XWhileExpression_9.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
-    }
-    this_XDoWhileExpression_10=ruleXDoWhileExpression
-    { 
-        $current = $this_XDoWhileExpression_10.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
-    }
-    this_XThrowExpression_11=ruleXThrowExpression
-    { 
-        $current = $this_XThrowExpression_11.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
-    }
-    this_XReturnExpression_12=ruleXReturnExpression
-    { 
-        $current = $this_XReturnExpression_12.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
-    }
-    this_XTryCatchFinallyExpression_13=ruleXTryCatchFinallyExpression
-    { 
-        $current = $this_XTryCatchFinallyExpression_13.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
-    }
-    this_XParenthesizedExpression_14=ruleXParenthesizedExpression
-    { 
-        $current = $this_XParenthesizedExpression_14.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleXPrimaryExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0());
+		}
+		this_XConstructorCall_0=ruleXConstructorCall
+		{
+			$current = $this_XConstructorCall_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1());
+		}
+		this_XBlockExpression_1=ruleXBlockExpression
+		{
+			$current = $this_XBlockExpression_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2());
+		}
+		this_XSwitchExpression_2=ruleXSwitchExpression
+		{
+			$current = $this_XSwitchExpression_2.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		(
+			((
+				(
+				)
+				'synchronized'
+				'('
+			)
+			)=>
+			{
+				newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3());
+			}
+			this_XSynchronizedExpression_3=ruleXSynchronizedExpression
+			{
+				$current = $this_XSynchronizedExpression_3.current;
+				afterParserOrEnumRuleCall();
+			}
+		)
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4());
+		}
+		this_XFeatureCall_4=ruleXFeatureCall
+		{
+			$current = $this_XFeatureCall_4.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5());
+		}
+		this_XLiteral_5=ruleXLiteral
+		{
+			$current = $this_XLiteral_5.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6());
+		}
+		this_XIfExpression_6=ruleXIfExpression
+		{
+			$current = $this_XIfExpression_6.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		(
+			((
+				(
+				)
+				'for'
+				'('
+				(
+					(
+						ruleJvmFormalParameter
+					)
+				)
+				':'
+			)
+			)=>
+			{
+				newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7());
+			}
+			this_XForLoopExpression_7=ruleXForLoopExpression
+			{
+				$current = $this_XForLoopExpression_7.current;
+				afterParserOrEnumRuleCall();
+			}
+		)
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8());
+		}
+		this_XBasicForLoopExpression_8=ruleXBasicForLoopExpression
+		{
+			$current = $this_XBasicForLoopExpression_8.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9());
+		}
+		this_XWhileExpression_9=ruleXWhileExpression
+		{
+			$current = $this_XWhileExpression_9.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10());
+		}
+		this_XDoWhileExpression_10=ruleXDoWhileExpression
+		{
+			$current = $this_XDoWhileExpression_10.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11());
+		}
+		this_XThrowExpression_11=ruleXThrowExpression
+		{
+			$current = $this_XThrowExpression_11.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12());
+		}
+		this_XReturnExpression_12=ruleXReturnExpression
+		{
+			$current = $this_XReturnExpression_12.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13());
+		}
+		this_XTryCatchFinallyExpression_13=ruleXTryCatchFinallyExpression
+		{
+			$current = $this_XTryCatchFinallyExpression_13.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14());
+		}
+		this_XParenthesizedExpression_14=ruleXParenthesizedExpression
+		{
+			$current = $this_XParenthesizedExpression_14.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXLiteral
-entryRuleXLiteral returns [EObject current=null] 
-	:
+entryRuleXLiteral returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXLiteralRule()); }
-	 iv_ruleXLiteral=ruleXLiteral 
-	 { $current=$iv_ruleXLiteral.current; } 
-	 EOF 
-;
+	iv_ruleXLiteral=ruleXLiteral
+	{ $current=$iv_ruleXLiteral.current; }
+	EOF;
 
 // Rule XLiteral
-ruleXLiteral returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
-    }
-    this_XCollectionLiteral_0=ruleXCollectionLiteral
-    { 
-        $current = $this_XCollectionLiteral_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |((((
-)	'[' 
-))=>
-    { 
-        newCompositeNode(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
-    }
-    this_XClosure_1=ruleXClosure
-    { 
-        $current = $this_XClosure_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
-    |
-    { 
-        newCompositeNode(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
-    }
-    this_XBooleanLiteral_2=ruleXBooleanLiteral
-    { 
-        $current = $this_XBooleanLiteral_2.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
-    }
-    this_XNumberLiteral_3=ruleXNumberLiteral
-    { 
-        $current = $this_XNumberLiteral_3.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
-    }
-    this_XNullLiteral_4=ruleXNullLiteral
-    { 
-        $current = $this_XNullLiteral_4.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
-    }
-    this_XStringLiteral_5=ruleXStringLiteral
-    { 
-        $current = $this_XStringLiteral_5.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
-    }
-    this_XTypeLiteral_6=ruleXTypeLiteral
-    { 
-        $current = $this_XTypeLiteral_6.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleXLiteral returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0());
+		}
+		this_XCollectionLiteral_0=ruleXCollectionLiteral
+		{
+			$current = $this_XCollectionLiteral_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		(
+			((
+				(
+				)
+				'['
+			)
+			)=>
+			{
+				newCompositeNode(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1());
+			}
+			this_XClosure_1=ruleXClosure
+			{
+				$current = $this_XClosure_1.current;
+				afterParserOrEnumRuleCall();
+			}
+		)
+		    |
+		{
+			newCompositeNode(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2());
+		}
+		this_XBooleanLiteral_2=ruleXBooleanLiteral
+		{
+			$current = $this_XBooleanLiteral_2.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3());
+		}
+		this_XNumberLiteral_3=ruleXNumberLiteral
+		{
+			$current = $this_XNumberLiteral_3.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4());
+		}
+		this_XNullLiteral_4=ruleXNullLiteral
+		{
+			$current = $this_XNullLiteral_4.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5());
+		}
+		this_XStringLiteral_5=ruleXStringLiteral
+		{
+			$current = $this_XStringLiteral_5.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6());
+		}
+		this_XTypeLiteral_6=ruleXTypeLiteral
+		{
+			$current = $this_XTypeLiteral_6.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXCollectionLiteral
-entryRuleXCollectionLiteral returns [EObject current=null] 
-	:
+entryRuleXCollectionLiteral returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXCollectionLiteralRule()); }
-	 iv_ruleXCollectionLiteral=ruleXCollectionLiteral 
-	 { $current=$iv_ruleXCollectionLiteral.current; } 
-	 EOF 
-;
+	iv_ruleXCollectionLiteral=ruleXCollectionLiteral
+	{ $current=$iv_ruleXCollectionLiteral.current; }
+	EOF;
 
 // Rule XCollectionLiteral
-ruleXCollectionLiteral returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
-    }
-    this_XSetLiteral_0=ruleXSetLiteral
-    { 
-        $current = $this_XSetLiteral_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
-    }
-    this_XListLiteral_1=ruleXListLiteral
-    { 
-        $current = $this_XListLiteral_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleXCollectionLiteral returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0());
+		}
+		this_XSetLiteral_0=ruleXSetLiteral
+		{
+			$current = $this_XSetLiteral_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1());
+		}
+		this_XListLiteral_1=ruleXListLiteral
+		{
+			$current = $this_XListLiteral_1.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXSetLiteral
-entryRuleXSetLiteral returns [EObject current=null] 
-	:
+entryRuleXSetLiteral returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXSetLiteralRule()); }
-	 iv_ruleXSetLiteral=ruleXSetLiteral 
-	 { $current=$iv_ruleXSetLiteral.current; } 
-	 EOF 
-;
+	iv_ruleXSetLiteral=ruleXSetLiteral
+	{ $current=$iv_ruleXSetLiteral.current; }
+	EOF;
 
 // Rule XSetLiteral
-ruleXSetLiteral returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0(),
-            $current);
-    }
-)	otherlv_1='#' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
-    }
-	otherlv_2='{' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
-    }
-((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
-	    }
-		lv_elements_3_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
-	        }
-       		add(
-       			$current, 
-       			"elements",
-        		lv_elements_3_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_4=',' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
-	    }
-		lv_elements_5_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
-	        }
-       		add(
-       			$current, 
-       			"elements",
-        		lv_elements_5_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)?	otherlv_6='}' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
-    }
-)
+ruleXSetLiteral returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='#'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
+		}
+		otherlv_2='{'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+					}
+					lv_elements_3_0=ruleXExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+						}
+						add(
+							$current,
+							"elements",
+							lv_elements_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				otherlv_4=','
+				{
+					newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+						}
+						lv_elements_5_0=ruleXExpression
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+							}
+							add(
+								$current,
+								"elements",
+								lv_elements_5_0,
+								"org.eclipse.xtext.xbase.Xbase.XExpression");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		otherlv_6='}'
+		{
+			newLeafNode(otherlv_6, grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXListLiteral
-entryRuleXListLiteral returns [EObject current=null] 
-	:
+entryRuleXListLiteral returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXListLiteralRule()); }
-	 iv_ruleXListLiteral=ruleXListLiteral 
-	 { $current=$iv_ruleXListLiteral.current; } 
-	 EOF 
-;
+	iv_ruleXListLiteral=ruleXListLiteral
+	{ $current=$iv_ruleXListLiteral.current; }
+	EOF;
 
 // Rule XListLiteral
-ruleXListLiteral returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXListLiteralAccess().getXListLiteralAction_0(),
-            $current);
-    }
-)	otherlv_1='#' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
-    }
-	otherlv_2='[' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
-    }
-((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
-	    }
-		lv_elements_3_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXListLiteralRule());
-	        }
-       		add(
-       			$current, 
-       			"elements",
-        		lv_elements_3_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_4=',' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
-	    }
-		lv_elements_5_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXListLiteralRule());
-	        }
-       		add(
-       			$current, 
-       			"elements",
-        		lv_elements_5_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)?	otherlv_6=']' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
-    }
-)
+ruleXListLiteral returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXListLiteralAccess().getXListLiteralAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='#'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
+		}
+		otherlv_2='['
+		{
+			newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+					}
+					lv_elements_3_0=ruleXExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+						}
+						add(
+							$current,
+							"elements",
+							lv_elements_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				otherlv_4=','
+				{
+					newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+						}
+						lv_elements_5_0=ruleXExpression
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+							}
+							add(
+								$current,
+								"elements",
+								lv_elements_5_0,
+								"org.eclipse.xtext.xbase.Xbase.XExpression");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		otherlv_6=']'
+		{
+			newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXClosure
-entryRuleXClosure returns [EObject current=null] 
-	:
+entryRuleXClosure returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXClosureRule()); }
-	 iv_ruleXClosure=ruleXClosure 
-	 { $current=$iv_ruleXClosure.current; } 
-	 EOF 
-;
+	iv_ruleXClosure=ruleXClosure
+	{ $current=$iv_ruleXClosure.current; }
+	EOF;
 
 // Rule XClosure
-ruleXClosure returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(((((
-)	'[' 
-))=>((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXClosureAccess().getXClosureAction_0_0_0(),
-            $current);
-    }
-)	otherlv_1='[' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
-    }
-))(((((
-(
-ruleJvmFormalParameter
-)
-)(	',' 
-(
-(
-ruleJvmFormalParameter
-)
-))*)?(
-(
-	'|' 
- 
-
-)
-)))=>(((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
-	    }
-		lv_declaredFormalParameters_2_0=ruleJvmFormalParameter		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXClosureRule());
-	        }
-       		add(
-       			$current, 
-       			"declaredFormalParameters",
-        		lv_declaredFormalParameters_2_0, 
-        		"JvmFormalParameter");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_3=',' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
-	    }
-		lv_declaredFormalParameters_4_0=ruleJvmFormalParameter		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXClosureRule());
-	        }
-       		add(
-       			$current, 
-       			"declaredFormalParameters",
-        		lv_declaredFormalParameters_4_0, 
-        		"JvmFormalParameter");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)?(
-(
-		lv_explicitSyntax_5_0=	'|' 
-    {
-        newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXClosureRule());
-	        }
-       		setWithLastConsumed($current, "explicitSyntax", true, "|");
-	    }
-
-)
-)))?(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
-	    }
-		lv_expression_6_0=ruleXExpressionInClosure		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXClosureRule());
-	        }
-       		set(
-       			$current, 
-       			"expression",
-        		lv_expression_6_0, 
-        		"XExpressionInClosure");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_7=']' 
-    {
-    	newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
-    }
-)
+ruleXClosure returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			((
+				(
+				)
+				'['
+			)
+			)=>
+			(
+				(
+					{
+						$current = forceCreateModelElement(
+							grammarAccess.getXClosureAccess().getXClosureAction_0_0_0(),
+							$current);
+					}
+				)
+				otherlv_1='['
+				{
+					newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
+				}
+			)
+		)
+		(
+			((
+				(
+					(
+						(
+							ruleJvmFormalParameter
+						)
+					)
+					(
+						','
+						(
+							(
+								ruleJvmFormalParameter
+							)
+						)
+					)*
+				)?
+				(
+					(
+						'|'
+					)
+				)
+			)
+			)=>
+			(
+				(
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0());
+							}
+							lv_declaredFormalParameters_2_0=ruleJvmFormalParameter
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXClosureRule());
+								}
+								add(
+									$current,
+									"declaredFormalParameters",
+									lv_declaredFormalParameters_2_0,
+									"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+					(
+						otherlv_3=','
+						{
+							newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
+						}
+						(
+							(
+								{
+									newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0());
+								}
+								lv_declaredFormalParameters_4_0=ruleJvmFormalParameter
+								{
+									if ($current==null) {
+										$current = createModelElementForParent(grammarAccess.getXClosureRule());
+									}
+									add(
+										$current,
+										"declaredFormalParameters",
+										lv_declaredFormalParameters_4_0,
+										"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+					)*
+				)?
+				(
+					(
+						lv_explicitSyntax_5_0='|'
+						{
+							newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getXClosureRule());
+							}
+							setWithLastConsumed($current, "explicitSyntax", true, "|");
+						}
+					)
+				)
+			)
+		)?
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0());
+				}
+				lv_expression_6_0=ruleXExpressionInClosure
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXClosureRule());
+					}
+					set(
+						$current,
+						"expression",
+						lv_expression_6_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpressionInClosure");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_7=']'
+		{
+			newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXExpressionInClosure
-entryRuleXExpressionInClosure returns [EObject current=null] 
-	:
+entryRuleXExpressionInClosure returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXExpressionInClosureRule()); }
-	 iv_ruleXExpressionInClosure=ruleXExpressionInClosure 
-	 { $current=$iv_ruleXExpressionInClosure.current; } 
-	 EOF 
-;
+	iv_ruleXExpressionInClosure=ruleXExpressionInClosure
+	{ $current=$iv_ruleXExpressionInClosure.current; }
+	EOF;
 
 // Rule XExpressionInClosure
-ruleXExpressionInClosure returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0(),
-            $current);
-    }
-)((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
-	    }
-		lv_expressions_1_0=ruleXExpressionOrVarDeclaration		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXExpressionInClosureRule());
-	        }
-       		add(
-       			$current, 
-       			"expressions",
-        		lv_expressions_1_0, 
-        		"XExpressionOrVarDeclaration");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_2=';' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
-    }
-)?)*)
+ruleXExpressionInClosure returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0(),
+					$current);
+			}
+		)
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0());
+					}
+					lv_expressions_1_0=ruleXExpressionOrVarDeclaration
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXExpressionInClosureRule());
+						}
+						add(
+							$current,
+							"expressions",
+							lv_expressions_1_0,
+							"org.eclipse.xtext.xbase.Xbase.XExpressionOrVarDeclaration");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				otherlv_2=';'
+				{
+					newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
+				}
+			)?
+		)*
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXShortClosure
-entryRuleXShortClosure returns [EObject current=null] 
-	:
+entryRuleXShortClosure returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXShortClosureRule()); }
-	 iv_ruleXShortClosure=ruleXShortClosure 
-	 { $current=$iv_ruleXShortClosure.current; } 
-	 EOF 
-;
+	iv_ruleXShortClosure=ruleXShortClosure
+	{ $current=$iv_ruleXShortClosure.current; }
+	EOF;
 
 // Rule XShortClosure
-ruleXShortClosure returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(((((
-)((
-(
-ruleJvmFormalParameter
-)
-)(	',' 
-(
-(
-ruleJvmFormalParameter
-)
-))*)?(
-(
-	'|' 
- 
-
-)
-)))=>((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0(),
-            $current);
-    }
-)((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
-	    }
-		lv_declaredFormalParameters_1_0=ruleJvmFormalParameter		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
-	        }
-       		add(
-       			$current, 
-       			"declaredFormalParameters",
-        		lv_declaredFormalParameters_1_0, 
-        		"JvmFormalParameter");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_2=',' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
-	    }
-		lv_declaredFormalParameters_3_0=ruleJvmFormalParameter		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
-	        }
-       		add(
-       			$current, 
-       			"declaredFormalParameters",
-        		lv_declaredFormalParameters_3_0, 
-        		"JvmFormalParameter");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)?(
-(
-		lv_explicitSyntax_4_0=	'|' 
-    {
-        newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXShortClosureRule());
-	        }
-       		setWithLastConsumed($current, "explicitSyntax", true, "|");
-	    }
-
-)
-)))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
-	    }
-		lv_expression_5_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
-	        }
-       		set(
-       			$current, 
-       			"expression",
-        		lv_expression_5_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleXShortClosure returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			((
+				(
+				)
+				(
+					(
+						(
+							ruleJvmFormalParameter
+						)
+					)
+					(
+						','
+						(
+							(
+								ruleJvmFormalParameter
+							)
+						)
+					)*
+				)?
+				(
+					(
+						'|'
+					)
+				)
+			)
+			)=>
+			(
+				(
+					{
+						$current = forceCreateModelElement(
+							grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0(),
+							$current);
+					}
+				)
+				(
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0());
+							}
+							lv_declaredFormalParameters_1_0=ruleJvmFormalParameter
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+								}
+								add(
+									$current,
+									"declaredFormalParameters",
+									lv_declaredFormalParameters_1_0,
+									"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+					(
+						otherlv_2=','
+						{
+							newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
+						}
+						(
+							(
+								{
+									newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0());
+								}
+								lv_declaredFormalParameters_3_0=ruleJvmFormalParameter
+								{
+									if ($current==null) {
+										$current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+									}
+									add(
+										$current,
+										"declaredFormalParameters",
+										lv_declaredFormalParameters_3_0,
+										"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+					)*
+				)?
+				(
+					(
+						lv_explicitSyntax_4_0='|'
+						{
+							newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getXShortClosureRule());
+							}
+							setWithLastConsumed($current, "explicitSyntax", true, "|");
+						}
+					)
+				)
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0());
+				}
+				lv_expression_5_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+					}
+					set(
+						$current,
+						"expression",
+						lv_expression_5_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXParenthesizedExpression
-entryRuleXParenthesizedExpression returns [EObject current=null] 
-	:
+entryRuleXParenthesizedExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXParenthesizedExpressionRule()); }
-	 iv_ruleXParenthesizedExpression=ruleXParenthesizedExpression 
-	 { $current=$iv_ruleXParenthesizedExpression.current; } 
-	 EOF 
-;
+	iv_ruleXParenthesizedExpression=ruleXParenthesizedExpression
+	{ $current=$iv_ruleXParenthesizedExpression.current; }
+	EOF;
 
 // Rule XParenthesizedExpression
-ruleXParenthesizedExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(	otherlv_0='(' 
-    {
-    	newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
-    }
-
-    { 
-        newCompositeNode(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
-    }
-    this_XExpression_1=ruleXExpression
-    { 
-        $current = $this_XExpression_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-	otherlv_2=')' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
-    }
-)
+ruleXParenthesizedExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='('
+		{
+			newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+		}
+		{
+			newCompositeNode(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
+		}
+		this_XExpression_1=ruleXExpression
+		{
+			$current = $this_XExpression_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		otherlv_2=')'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXIfExpression
-entryRuleXIfExpression returns [EObject current=null] 
-	:
+entryRuleXIfExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXIfExpressionRule()); }
-	 iv_ruleXIfExpression=ruleXIfExpression 
-	 { $current=$iv_ruleXIfExpression.current; } 
-	 EOF 
-;
+	iv_ruleXIfExpression=ruleXIfExpression
+	{ $current=$iv_ruleXIfExpression.current; }
+	EOF;
 
 // Rule XIfExpression
-ruleXIfExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0(),
-            $current);
-    }
-)	otherlv_1='if' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
-    }
-	otherlv_2='(' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
-	    }
-		lv_if_3_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"if",
-        		lv_if_3_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_4=')' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
-	    }
-		lv_then_5_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"then",
-        		lv_then_5_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(((	'else' 
-)=>	otherlv_6='else' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
-    }
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
-	    }
-		lv_else_7_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"else",
-        		lv_else_7_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))?)
+ruleXIfExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='if'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
+		}
+		otherlv_2='('
+		{
+			newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0());
+				}
+				lv_if_3_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+					}
+					set(
+						$current,
+						"if",
+						lv_if_3_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_4=')'
+		{
+			newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0());
+				}
+				lv_then_5_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+					}
+					set(
+						$current,
+						"then",
+						lv_then_5_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				('else')=>
+				otherlv_6='else'
+				{
+					newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
+				}
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0());
+					}
+					lv_else_7_0=ruleXExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+						}
+						set(
+							$current,
+							"else",
+							lv_else_7_0,
+							"org.eclipse.xtext.xbase.Xbase.XExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXSwitchExpression
-entryRuleXSwitchExpression returns [EObject current=null] 
-	:
+entryRuleXSwitchExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXSwitchExpressionRule()); }
-	 iv_ruleXSwitchExpression=ruleXSwitchExpression 
-	 { $current=$iv_ruleXSwitchExpression.current; } 
-	 EOF 
-;
+	iv_ruleXSwitchExpression=ruleXSwitchExpression
+	{ $current=$iv_ruleXSwitchExpression.current; }
+	EOF;
 
 // Rule XSwitchExpression
-ruleXSwitchExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0(),
-            $current);
-    }
-)	otherlv_1='switch' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
-    }
-(((((	'(' 
-(
-(
-ruleJvmFormalParameter
-)
-)	':' 
-))=>(	otherlv_2='(' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
-	    }
-		lv_declaredParam_3_0=ruleJvmFormalParameter		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"declaredParam",
-        		lv_declaredParam_3_0, 
-        		"JvmFormalParameter");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_4=':' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2());
-    }
-))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
-	    }
-		lv_switch_5_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"switch",
-        		lv_switch_5_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_6=')' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2());
-    }
-)
-    |(((((
-(
-ruleJvmFormalParameter
-)
-)	':' 
-))=>((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
-	    }
-		lv_declaredParam_7_0=ruleJvmFormalParameter		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"declaredParam",
-        		lv_declaredParam_7_0, 
-        		"JvmFormalParameter");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_8=':' 
-    {
-    	newLeafNode(otherlv_8, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1());
-    }
-))?(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
-	    }
-		lv_switch_9_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"switch",
-        		lv_switch_9_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))	otherlv_10='{' 
-    {
-    	newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
-	    }
-		lv_cases_11_0=ruleXCasePart		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
-	        }
-       		add(
-       			$current, 
-       			"cases",
-        		lv_cases_11_0, 
-        		"XCasePart");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)*(	otherlv_12='default' 
-    {
-    	newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
-    }
-	otherlv_13=':' 
-    {
-    	newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
-	    }
-		lv_default_14_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"default",
-        		lv_default_14_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))?	otherlv_15='}' 
-    {
-    	newLeafNode(otherlv_15, grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6());
-    }
-)
+ruleXSwitchExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='switch'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
+		}
+		(
+			(
+				(
+					((
+						'('
+						(
+							(
+								ruleJvmFormalParameter
+							)
+						)
+						':'
+					)
+					)=>
+					(
+						otherlv_2='('
+						{
+							newLeafNode(otherlv_2, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0());
+						}
+						(
+							(
+								{
+									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0());
+								}
+								lv_declaredParam_3_0=ruleJvmFormalParameter
+								{
+									if ($current==null) {
+										$current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+									}
+									set(
+										$current,
+										"declaredParam",
+										lv_declaredParam_3_0,
+										"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+						otherlv_4=':'
+						{
+							newLeafNode(otherlv_4, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2());
+						}
+					)
+				)
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0());
+						}
+						lv_switch_5_0=ruleXExpression
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+							}
+							set(
+								$current,
+								"switch",
+								lv_switch_5_0,
+								"org.eclipse.xtext.xbase.Xbase.XExpression");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				otherlv_6=')'
+				{
+					newLeafNode(otherlv_6, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2());
+				}
+			)
+			    |
+			(
+				(
+					((
+						(
+							(
+								ruleJvmFormalParameter
+							)
+						)
+						':'
+					)
+					)=>
+					(
+						(
+							(
+								{
+									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0());
+								}
+								lv_declaredParam_7_0=ruleJvmFormalParameter
+								{
+									if ($current==null) {
+										$current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+									}
+									set(
+										$current,
+										"declaredParam",
+										lv_declaredParam_7_0,
+										"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+						otherlv_8=':'
+						{
+							newLeafNode(otherlv_8, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1());
+						}
+					)
+				)?
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0());
+						}
+						lv_switch_9_0=ruleXExpression
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+							}
+							set(
+								$current,
+								"switch",
+								lv_switch_9_0,
+								"org.eclipse.xtext.xbase.Xbase.XExpression");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)
+		)
+		otherlv_10='{'
+		{
+			newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0());
+				}
+				lv_cases_11_0=ruleXCasePart
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+					}
+					add(
+						$current,
+						"cases",
+						lv_cases_11_0,
+						"org.eclipse.xtext.xbase.Xbase.XCasePart");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+		(
+			otherlv_12='default'
+			{
+				newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
+			}
+			otherlv_13=':'
+			{
+				newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0());
+					}
+					lv_default_14_0=ruleXExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+						}
+						set(
+							$current,
+							"default",
+							lv_default_14_0,
+							"org.eclipse.xtext.xbase.Xbase.XExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		otherlv_15='}'
+		{
+			newLeafNode(otherlv_15, grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXCasePart
-entryRuleXCasePart returns [EObject current=null] 
-	:
+entryRuleXCasePart returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXCasePartRule()); }
-	 iv_ruleXCasePart=ruleXCasePart 
-	 { $current=$iv_ruleXCasePart.current; } 
-	 EOF 
-;
+	iv_ruleXCasePart=ruleXCasePart
+	{ $current=$iv_ruleXCasePart.current; }
+	EOF;
 
 // Rule XCasePart
-ruleXCasePart returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXCasePartAccess().getXCasePartAction_0(),
-            $current);
-    }
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
-	    }
-		lv_typeGuard_1_0=ruleJvmTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXCasePartRule());
-	        }
-       		set(
-       			$current, 
-       			"typeGuard",
-        		lv_typeGuard_1_0, 
-        		"JvmTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)?(	otherlv_2='case' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXCasePartAccess().getCaseKeyword_2_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
-	    }
-		lv_case_3_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXCasePartRule());
-	        }
-       		set(
-       			$current, 
-       			"case",
-        		lv_case_3_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))?((	otherlv_4=':' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
-	    }
-		lv_then_5_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXCasePartRule());
-	        }
-       		set(
-       			$current, 
-       			"then",
-        		lv_then_5_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
-    |(
-(
-		lv_fallThrough_6_0=	',' 
-    {
-        newLeafNode(lv_fallThrough_6_0, grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXCasePartRule());
-	        }
-       		setWithLastConsumed($current, "fallThrough", true, ",");
-	    }
-
-)
-)))
+ruleXCasePart returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXCasePartAccess().getXCasePartAction_0(),
+					$current);
+			}
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0());
+				}
+				lv_typeGuard_1_0=ruleJvmTypeReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXCasePartRule());
+					}
+					set(
+						$current,
+						"typeGuard",
+						lv_typeGuard_1_0,
+						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)?
+		(
+			otherlv_2='case'
+			{
+				newLeafNode(otherlv_2, grammarAccess.getXCasePartAccess().getCaseKeyword_2_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0());
+					}
+					lv_case_3_0=ruleXExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXCasePartRule());
+						}
+						set(
+							$current,
+							"case",
+							lv_case_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		(
+			(
+				otherlv_4=':'
+				{
+					newLeafNode(otherlv_4, grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0());
+						}
+						lv_then_5_0=ruleXExpression
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXCasePartRule());
+							}
+							set(
+								$current,
+								"then",
+								lv_then_5_0,
+								"org.eclipse.xtext.xbase.Xbase.XExpression");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)
+			    |
+			(
+				(
+					lv_fallThrough_6_0=','
+					{
+						newLeafNode(lv_fallThrough_6_0, grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getXCasePartRule());
+						}
+						setWithLastConsumed($current, "fallThrough", true, ",");
+					}
+				)
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXForLoopExpression
-entryRuleXForLoopExpression returns [EObject current=null] 
-	:
+entryRuleXForLoopExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXForLoopExpressionRule()); }
-	 iv_ruleXForLoopExpression=ruleXForLoopExpression 
-	 { $current=$iv_ruleXForLoopExpression.current; } 
-	 EOF 
-;
+	iv_ruleXForLoopExpression=ruleXForLoopExpression
+	{ $current=$iv_ruleXForLoopExpression.current; }
+	EOF;
 
 // Rule XForLoopExpression
-ruleXForLoopExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(((((
-)	'for' 
-	'(' 
-(
-(
-ruleJvmFormalParameter
-)
-)	':' 
-))=>((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0(),
-            $current);
-    }
-)	otherlv_1='for' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1());
-    }
-	otherlv_2='(' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
-	    }
-		lv_declaredParam_3_0=ruleJvmFormalParameter		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"declaredParam",
-        		lv_declaredParam_3_0, 
-        		"JvmFormalParameter");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_4=':' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4());
-    }
-))(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
-	    }
-		lv_forExpression_5_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"forExpression",
-        		lv_forExpression_5_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_6=')' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
-	    }
-		lv_eachExpression_7_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"eachExpression",
-        		lv_eachExpression_7_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleXForLoopExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			((
+				(
+				)
+				'for'
+				'('
+				(
+					(
+						ruleJvmFormalParameter
+					)
+				)
+				':'
+			)
+			)=>
+			(
+				(
+					{
+						$current = forceCreateModelElement(
+							grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0(),
+							$current);
+					}
+				)
+				otherlv_1='for'
+				{
+					newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1());
+				}
+				otherlv_2='('
+				{
+					newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0());
+						}
+						lv_declaredParam_3_0=ruleJvmFormalParameter
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+							}
+							set(
+								$current,
+								"declaredParam",
+								lv_declaredParam_3_0,
+								"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				otherlv_4=':'
+				{
+					newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4());
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0());
+				}
+				lv_forExpression_5_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+					}
+					set(
+						$current,
+						"forExpression",
+						lv_forExpression_5_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_6=')'
+		{
+			newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0());
+				}
+				lv_eachExpression_7_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+					}
+					set(
+						$current,
+						"eachExpression",
+						lv_eachExpression_7_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXBasicForLoopExpression
-entryRuleXBasicForLoopExpression returns [EObject current=null] 
-	:
+entryRuleXBasicForLoopExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXBasicForLoopExpressionRule()); }
-	 iv_ruleXBasicForLoopExpression=ruleXBasicForLoopExpression 
-	 { $current=$iv_ruleXBasicForLoopExpression.current; } 
-	 EOF 
-;
+	iv_ruleXBasicForLoopExpression=ruleXBasicForLoopExpression
+	{ $current=$iv_ruleXBasicForLoopExpression.current; }
+	EOF;
 
 // Rule XBasicForLoopExpression
-ruleXBasicForLoopExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0(),
-            $current);
-    }
-)	otherlv_1='for' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1());
-    }
-	otherlv_2='(' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2());
-    }
-((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
-	    }
-		lv_initExpressions_3_0=ruleXExpressionOrVarDeclaration		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
-	        }
-       		add(
-       			$current, 
-       			"initExpressions",
-        		lv_initExpressions_3_0, 
-        		"XExpressionOrVarDeclaration");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_4=',' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
-	    }
-		lv_initExpressions_5_0=ruleXExpressionOrVarDeclaration		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
-	        }
-       		add(
-       			$current, 
-       			"initExpressions",
-        		lv_initExpressions_5_0, 
-        		"XExpressionOrVarDeclaration");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)?	otherlv_6=';' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
-	    }
-		lv_expression_7_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"expression",
-        		lv_expression_7_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)?	otherlv_8=';' 
-    {
-    	newLeafNode(otherlv_8, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6());
-    }
-((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
-	    }
-		lv_updateExpressions_9_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
-	        }
-       		add(
-       			$current, 
-       			"updateExpressions",
-        		lv_updateExpressions_9_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_10=',' 
-    {
-    	newLeafNode(otherlv_10, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
-	    }
-		lv_updateExpressions_11_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
-	        }
-       		add(
-       			$current, 
-       			"updateExpressions",
-        		lv_updateExpressions_11_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*)?	otherlv_12=')' 
-    {
-    	newLeafNode(otherlv_12, grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
-	    }
-		lv_eachExpression_13_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"eachExpression",
-        		lv_eachExpression_13_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleXBasicForLoopExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='for'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1());
+		}
+		otherlv_2='('
+		{
+			newLeafNode(otherlv_2, grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0());
+					}
+					lv_initExpressions_3_0=ruleXExpressionOrVarDeclaration
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+						}
+						add(
+							$current,
+							"initExpressions",
+							lv_initExpressions_3_0,
+							"org.eclipse.xtext.xbase.Xbase.XExpressionOrVarDeclaration");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				otherlv_4=','
+				{
+					newLeafNode(otherlv_4, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0());
+						}
+						lv_initExpressions_5_0=ruleXExpressionOrVarDeclaration
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+							}
+							add(
+								$current,
+								"initExpressions",
+								lv_initExpressions_5_0,
+								"org.eclipse.xtext.xbase.Xbase.XExpressionOrVarDeclaration");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		otherlv_6=';'
+		{
+			newLeafNode(otherlv_6, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0());
+				}
+				lv_expression_7_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+					}
+					set(
+						$current,
+						"expression",
+						lv_expression_7_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)?
+		otherlv_8=';'
+		{
+			newLeafNode(otherlv_8, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0());
+					}
+					lv_updateExpressions_9_0=ruleXExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+						}
+						add(
+							$current,
+							"updateExpressions",
+							lv_updateExpressions_9_0,
+							"org.eclipse.xtext.xbase.Xbase.XExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				otherlv_10=','
+				{
+					newLeafNode(otherlv_10, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0());
+						}
+						lv_updateExpressions_11_0=ruleXExpression
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+							}
+							add(
+								$current,
+								"updateExpressions",
+								lv_updateExpressions_11_0,
+								"org.eclipse.xtext.xbase.Xbase.XExpression");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		otherlv_12=')'
+		{
+			newLeafNode(otherlv_12, grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0());
+				}
+				lv_eachExpression_13_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+					}
+					set(
+						$current,
+						"eachExpression",
+						lv_eachExpression_13_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXWhileExpression
-entryRuleXWhileExpression returns [EObject current=null] 
-	:
+entryRuleXWhileExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXWhileExpressionRule()); }
-	 iv_ruleXWhileExpression=ruleXWhileExpression 
-	 { $current=$iv_ruleXWhileExpression.current; } 
-	 EOF 
-;
+	iv_ruleXWhileExpression=ruleXWhileExpression
+	{ $current=$iv_ruleXWhileExpression.current; }
+	EOF;
 
 // Rule XWhileExpression
-ruleXWhileExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0(),
-            $current);
-    }
-)	otherlv_1='while' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
-    }
-	otherlv_2='(' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
-	    }
-		lv_predicate_3_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"predicate",
-        		lv_predicate_3_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_4=')' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
-	    }
-		lv_body_5_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"body",
-        		lv_body_5_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleXWhileExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='while'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
+		}
+		otherlv_2='('
+		{
+			newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0());
+				}
+				lv_predicate_3_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+					}
+					set(
+						$current,
+						"predicate",
+						lv_predicate_3_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_4=')'
+		{
+			newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0());
+				}
+				lv_body_5_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+					}
+					set(
+						$current,
+						"body",
+						lv_body_5_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXDoWhileExpression
-entryRuleXDoWhileExpression returns [EObject current=null] 
-	:
+entryRuleXDoWhileExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXDoWhileExpressionRule()); }
-	 iv_ruleXDoWhileExpression=ruleXDoWhileExpression 
-	 { $current=$iv_ruleXDoWhileExpression.current; } 
-	 EOF 
-;
+	iv_ruleXDoWhileExpression=ruleXDoWhileExpression
+	{ $current=$iv_ruleXDoWhileExpression.current; }
+	EOF;
 
 // Rule XDoWhileExpression
-ruleXDoWhileExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0(),
-            $current);
-    }
-)	otherlv_1='do' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
-	    }
-		lv_body_2_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"body",
-        		lv_body_2_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_3='while' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
-    }
-	otherlv_4='(' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
-	    }
-		lv_predicate_5_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
-	        }
-       		set(
-       			$current, 
-       			"predicate",
-        		lv_predicate_5_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)	otherlv_6=')' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
-    }
-)
+ruleXDoWhileExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='do'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0());
+				}
+				lv_body_2_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+					}
+					set(
+						$current,
+						"body",
+						lv_body_2_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_3='while'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
+		}
+		otherlv_4='('
+		{
+			newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0());
+				}
+				lv_predicate_5_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+					}
+					set(
+						$current,
+						"predicate",
+						lv_predicate_5_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_6=')'
+		{
+			newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXBlockExpression
-entryRuleXBlockExpression returns [EObject current=null] 
-	:
+entryRuleXBlockExpression returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXBlockExpressionRule()); }
-	 iv_ruleXBlockExpression=ruleXBlockExpression 
-	 { $current=$iv_ruleXBlockExpression.current; } 
-	 EOF 
-;
+	iv_ruleXBlockExpression=ruleXBlockExpression
+	{ $current=$iv_ruleXBlockExpression.current; }
+	EOF;
 
 // Rule XBlockExpression
-ruleXBlockExpression returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0(),
-            $current);
-    }
-)	otherlv_1='{' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
-    }
-((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
-	    }
-		lv_expressions_2_0=ruleXExpressionOrVarDeclaration		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXBlockExpressionRule());
-	        }
-       		add(
-       			$current, 
-       			"expressions",
-        		lv_expressions_2_0, 
-        		"XExpressionOrVarDeclaration");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_3=';' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
-    }
-)?)*	otherlv_4='}' 
-    {
-    	newLeafNode(otherlv_4, grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3());
-    }
-)
+ruleXBlockExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='{'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0());
+					}
+					lv_expressions_2_0=ruleXExpressionOrVarDeclaration
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXBlockExpressionRule());
+						}
+						add(
+							$current,
+							"expressions",
+							lv_expressions_2_0,
+							"org.eclipse.xtext.xbase.Xbase.XExpressionOrVarDeclaration");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				otherlv_3=';'
+				{
+					newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
+				}
+			)?
+		)*
+		otherlv_4='}'
+		{
+			newLeafNode(otherlv_4, grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXExpressionOrVarDeclaration
-entryRuleXExpressionOrVarDeclaration returns [EObject current=null] 
-	:
+entryRuleXExpressionOrVarDeclaration returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationRule()); }
-	 iv_ruleXExpressionOrVarDeclaration=ruleXExpressionOrVarDeclaration 
-	 { $current=$iv_ruleXExpressionOrVarDeclaration.current; } 
-	 EOF 
-;
+	iv_ruleXExpressionOrVarDeclaration=ruleXExpressionOrVarDeclaration
+	{ $current=$iv_ruleXExpressionOrVarDeclaration.current; }
+	EOF;
 
 // Rule XExpressionOrVarDeclaration
-ruleXExpressionOrVarDeclaration returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
-    }
-    this_XVariableDeclaration_0=ruleXVariableDeclaration
-    { 
-        $current = $this_XVariableDeclaration_0.current; 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-    { 
-        newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
-    }
-    this_XExpression_1=ruleXExpression
-    { 
-        $current = $this_XExpression_1.current; 
-        afterParserOrEnumRuleCall();
-    }
-)
+ruleXExpressionOrVarDeclaration returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0());
+		}
+		this_XVariableDeclaration_0=ruleXVariableDeclaration
+		{
+			$current = $this_XVariableDeclaration_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1());
+		}
+		this_XExpression_1=ruleXExpression
+		{
+			$current = $this_XExpression_1.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXVariableDeclaration
-entryRuleXVariableDeclaration returns [EObject current=null] 
-	:
+entryRuleXVariableDeclaration returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXVariableDeclarationRule()); }
-	 iv_ruleXVariableDeclaration=ruleXVariableDeclaration 
-	 { $current=$iv_ruleXVariableDeclaration.current; } 
-	 EOF 
-;
+	iv_ruleXVariableDeclaration=ruleXVariableDeclaration
+	{ $current=$iv_ruleXVariableDeclaration.current; }
+	EOF;
 
 // Rule XVariableDeclaration
-ruleXVariableDeclaration returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0(),
-            $current);
-    }
-)((
-(
-		lv_writeable_1_0=	'var' 
-    {
-        newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXVariableDeclarationRule());
-	        }
-       		setWithLastConsumed($current, "writeable", true, "var");
-	    }
-
-)
-)
-    |	otherlv_2='val' 
-    {
-    	newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
-    }
-)(((((
-(
-ruleJvmTypeReference
-)
-)(
-(
-ruleValidID
-)
-)))=>((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
-	    }
-		lv_type_3_0=ruleJvmTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
-	        }
-       		set(
-       			$current, 
-       			"type",
-        		lv_type_3_0, 
-        		"JvmTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
-	    }
-		lv_name_4_0=ruleValidID		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
-	        }
-       		set(
-       			$current, 
-       			"name",
-        		lv_name_4_0, 
-        		"ValidID");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)))
-    |(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
-	    }
-		lv_name_5_0=ruleValidID		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
-	        }
-       		set(
-       			$current, 
-       			"name",
-        		lv_name_5_0, 
-        		"ValidID");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))(	otherlv_6='=' 
-    {
-    	newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
-	    }
-		lv_right_7_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
-	        }
-       		set(
-       			$current, 
-       			"right",
-        		lv_right_7_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))?)
+ruleXVariableDeclaration returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0(),
+					$current);
+			}
+		)
+		(
+			(
+				(
+					lv_writeable_1_0='var'
+					{
+						newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getXVariableDeclarationRule());
+						}
+						setWithLastConsumed($current, "writeable", true, "var");
+					}
+				)
+			)
+			    |
+			otherlv_2='val'
+			{
+				newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
+			}
+		)
+		(
+			(
+				((
+					(
+						(
+							ruleJvmTypeReference
+						)
+					)
+					(
+						(
+							ruleValidID
+						)
+					)
+				)
+				)=>
+				(
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0());
+							}
+							lv_type_3_0=ruleJvmTypeReference
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+								}
+								set(
+									$current,
+									"type",
+									lv_type_3_0,
+									"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0());
+							}
+							lv_name_4_0=ruleValidID
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+								}
+								set(
+									$current,
+									"name",
+									lv_name_4_0,
+									"org.eclipse.xtext.xbase.Xtype.ValidID");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)
+			)
+			    |
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0());
+					}
+					lv_name_5_0=ruleValidID
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+						}
+						set(
+							$current,
+							"name",
+							lv_name_5_0,
+							"org.eclipse.xtext.xbase.Xtype.ValidID");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)
+		(
+			otherlv_6='='
+			{
+				newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0());
+					}
+					lv_right_7_0=ruleXExpression
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+						}
+						set(
+							$current,
+							"right",
+							lv_right_7_0,
+							"org.eclipse.xtext.xbase.Xbase.XExpression");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleJvmFormalParameter
-entryRuleJvmFormalParameter returns [EObject current=null] 
-	:
+entryRuleJvmFormalParameter returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getJvmFormalParameterRule()); }
-	 iv_ruleJvmFormalParameter=ruleJvmFormalParameter 
-	 { $current=$iv_ruleJvmFormalParameter.current; } 
-	 EOF 
-;
+	iv_ruleJvmFormalParameter=ruleJvmFormalParameter
+	{ $current=$iv_ruleJvmFormalParameter.current; }
+	EOF;
 
 // Rule JvmFormalParameter
-ruleJvmFormalParameter returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
-	    }
-		lv_parameterType_0_0=ruleJvmTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
-	        }
-       		set(
-       			$current, 
-       			"parameterType",
-        		lv_parameterType_0_0, 
-        		"JvmTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)?(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
-	    }
-		lv_name_1_0=ruleValidID		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
-	        }
-       		set(
-       			$current, 
-       			"name",
-        		lv_name_1_0, 
-        		"ValidID");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleJvmFormalParameter returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+				}
+				lv_parameterType_0_0=ruleJvmTypeReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+					}
+					set(
+						$current,
+						"parameterType",
+						lv_parameterType_0_0,
+						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)?
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+				}
+				lv_name_1_0=ruleValidID
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+					}
+					set(
+						$current,
+						"name",
+						lv_name_1_0,
+						"org.eclipse.xtext.xbase.Xtype.ValidID");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleFullJvmFormalParameter
-entryRuleFullJvmFormalParameter returns [EObject current=null] 
-	:
+entryRuleFullJvmFormalParameter returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getFullJvmFormalParameterRule()); }
-	 iv_ruleFullJvmFormalParameter=ruleFullJvmFormalParameter 
-	 { $current=$iv_ruleFullJvmFormalParameter.current; } 
-	 EOF 
-;
+	iv_ruleFullJvmFormalParameter=ruleFullJvmFormalParameter
+	{ $current=$iv_ruleFullJvmFormalParameter.current; }
+	EOF;
 
 // Rule FullJvmFormalParameter
-ruleFullJvmFormalParameter returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
-	    }
-		lv_parameterType_0_0=ruleJvmTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
-	        }
-       		set(
-       			$current, 
-       			"parameterType",
-        		lv_parameterType_0_0, 
-        		"JvmTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
-	    }
-		lv_name_1_0=ruleValidID		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
-	        }
-       		set(
-       			$current, 
-       			"name",
-        		lv_name_1_0, 
-        		"ValidID");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))
+ruleFullJvmFormalParameter returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+				}
+				lv_parameterType_0_0=ruleJvmTypeReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+					}
+					set(
+						$current,
+						"parameterType",
+						lv_parameterType_0_0,
+						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+				}
+				lv_name_1_0=ruleValidID
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+					}
+					set(
+						$current,
+						"name",
+						lv_name_1_0,
+						"org.eclipse.xtext.xbase.Xtype.ValidID");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXFeatureCall
-entryRuleXFeatureCall returns [EObject current=null] 
-	:
+entryRuleXFeatureCall returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXFeatureCallRule()); }
-	 iv_ruleXFeatureCall=ruleXFeatureCall 
-	 { $current=$iv_ruleXFeatureCall.current; } 
-	 EOF 
-;
+	iv_ruleXFeatureCall=ruleXFeatureCall
+	{ $current=$iv_ruleXFeatureCall.current; }
+	EOF;
 
 // Rule XFeatureCall
-ruleXFeatureCall returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0(),
-            $current);
-    }
-)(	otherlv_1='<' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
-	    }
-		lv_typeArguments_2_0=ruleJvmArgumentTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"typeArguments",
-        		lv_typeArguments_2_0, 
-        		"JvmArgumentTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_3=',' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
-	    }
-		lv_typeArguments_4_0=ruleJvmArgumentTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"typeArguments",
-        		lv_typeArguments_4_0, 
-        		"JvmArgumentTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*	otherlv_5='>' 
-    {
-    	newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
-    }
-)?(
-(
-		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXFeatureCallRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
-	    }
-		ruleIdOrSuper		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(((
-(
-	'(' 
- 
-
-)
-)=>
-(
-		lv_explicitOperationCall_7_0=	'(' 
-    {
-        newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXFeatureCallRule());
-	        }
-       		setWithLastConsumed($current, "explicitOperationCall", true, "(");
-	    }
-
-)
-)(((((
-)((
-(
-ruleJvmFormalParameter
-)
-)(	',' 
-(
-(
-ruleJvmFormalParameter
-)
-))*)?(
-(
-	'|' 
- 
-
-)
-)))=>
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
-	    }
-		lv_featureCallArguments_8_0=ruleXShortClosure		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"featureCallArguments",
-        		lv_featureCallArguments_8_0, 
-        		"XShortClosure");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)
-    |((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
-	    }
-		lv_featureCallArguments_9_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"featureCallArguments",
-        		lv_featureCallArguments_9_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_10=',' 
-    {
-    	newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
-	    }
-		lv_featureCallArguments_11_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"featureCallArguments",
-        		lv_featureCallArguments_11_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*))?	otherlv_12=')' 
-    {
-    	newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
-    }
-)?((((
-)	'[' 
-))=>
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
-	    }
-		lv_featureCallArguments_13_0=ruleXClosure		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
-	        }
-       		add(
-       			$current, 
-       			"featureCallArguments",
-        		lv_featureCallArguments_13_0, 
-        		"XClosure");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)?)
+ruleXFeatureCall returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0(),
+					$current);
+			}
+		)
+		(
+			otherlv_1='<'
+			{
+				newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
+			}
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+					}
+					lv_typeArguments_2_0=ruleJvmArgumentTypeReference
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+						}
+						add(
+							$current,
+							"typeArguments",
+							lv_typeArguments_2_0,
+							"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				otherlv_3=','
+				{
+					newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+						}
+						lv_typeArguments_4_0=ruleJvmArgumentTypeReference
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+							}
+							add(
+								$current,
+								"typeArguments",
+								lv_typeArguments_4_0,
+								"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+			otherlv_5='>'
+			{
+				newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
+			}
+		)?
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getXFeatureCallRule());
+					}
+				}
+				{
+					newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0());
+				}
+				ruleIdOrSuper
+				{
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				((
+					'('
+				)
+				)=>
+				(
+					lv_explicitOperationCall_7_0='('
+					{
+						newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getXFeatureCallRule());
+						}
+						setWithLastConsumed($current, "explicitOperationCall", true, "(");
+					}
+				)
+			)
+			(
+				(
+					((
+						(
+						)
+						(
+							(
+								(
+									ruleJvmFormalParameter
+								)
+							)
+							(
+								','
+								(
+									(
+										ruleJvmFormalParameter
+									)
+								)
+							)*
+						)?
+						(
+							(
+								'|'
+							)
+						)
+					)
+					)=>
+					(
+						{
+							newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0());
+						}
+						lv_featureCallArguments_8_0=ruleXShortClosure
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+							}
+							add(
+								$current,
+								"featureCallArguments",
+								lv_featureCallArguments_8_0,
+								"org.eclipse.xtext.xbase.Xbase.XShortClosure");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				    |
+				(
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0());
+							}
+							lv_featureCallArguments_9_0=ruleXExpression
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+								}
+								add(
+									$current,
+									"featureCallArguments",
+									lv_featureCallArguments_9_0,
+									"org.eclipse.xtext.xbase.Xbase.XExpression");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+					(
+						otherlv_10=','
+						{
+							newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
+						}
+						(
+							(
+								{
+									newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0());
+								}
+								lv_featureCallArguments_11_0=ruleXExpression
+								{
+									if ($current==null) {
+										$current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+									}
+									add(
+										$current,
+										"featureCallArguments",
+										lv_featureCallArguments_11_0,
+										"org.eclipse.xtext.xbase.Xbase.XExpression");
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+					)*
+				)
+			)?
+			otherlv_12=')'
+			{
+				newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
+			}
+		)?
+		(
+			((
+				(
+				)
+				'['
+			)
+			)=>
+			(
+				{
+					newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0());
+				}
+				lv_featureCallArguments_13_0=ruleXClosure
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+					}
+					add(
+						$current,
+						"featureCallArguments",
+						lv_featureCallArguments_13_0,
+						"org.eclipse.xtext.xbase.Xbase.XClosure");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleFeatureCallID
-entryRuleFeatureCallID returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getFeatureCallIDRule()); } 
-	 iv_ruleFeatureCallID=ruleFeatureCallID 
-	 { $current=$iv_ruleFeatureCallID.current.getText(); }  
-	 EOF 
-;
+entryRuleFeatureCallID returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getFeatureCallIDRule()); }
+	iv_ruleFeatureCallID=ruleFeatureCallID
+	{ $current=$iv_ruleFeatureCallID.current.getText(); }
+	EOF;
 
 // Rule FeatureCallID
-ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
-    }
-    this_ValidID_0=ruleValidID    {
-		$current.merge(this_ValidID_0);
-    }
-
-    { 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-	kw='extends' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
-    }
-
-    |
-	kw='static' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
-    }
-
-    |
-	kw='import' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
-    }
-
-    |
-	kw='extension' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
-    }
-)
-    ;
-
-
-
-
+ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0());
+		}
+		this_ValidID_0=ruleValidID
+		{
+			$current.merge(this_ValidID_0);
+		}
+		{
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		kw='extends'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1());
+		}
+		    |
+		kw='static'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2());
+		}
+		    |
+		kw='import'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getImportKeyword_3());
+		}
+		    |
+		kw='extension'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4());
+		}
+	)
+;
 
 // Entry rule entryRuleIdOrSuper
-entryRuleIdOrSuper returns [String current=null] 
-	:
-	{ newCompositeNode(grammarAccess.getIdOrSuperRule()); } 
-	 iv_ruleIdOrSuper=ruleIdOrSuper 
-	 { $current=$iv_ruleIdOrSuper.current.getText(); }  
-	 EOF 
-;
+entryRuleIdOrSuper returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getIdOrSuperRule()); }
+	iv_ruleIdOrSuper=ruleIdOrSuper
+	{ $current=$iv_ruleIdOrSuper.current.getText(); }
+	EOF;
 
 // Rule IdOrSuper
-ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-(
-    { 
-        newCompositeNode(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
-    }
-    this_FeatureCallID_0=ruleFeatureCallID    {
-		$current.merge(this_FeatureCallID_0);
-    }
-
-    { 
-        afterParserOrEnumRuleCall();
-    }
-
-    |
-	kw='super' 
-    {
-        $current.merge(kw);
-        newLeafNode(kw, grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
-    }
-)
-    ;
-
-
-
-
+ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0());
+		}
+		this_FeatureCallID_0=ruleFeatureCallID
+		{
+			$current.merge(this_FeatureCallID_0);
+		}
+		{
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		kw='super'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getIdOrSuperAccess().getSuperKeyword_1());
+		}
+	)
+;
 
 // Entry rule entryRuleXConstructorCall
-entryRuleXConstructorCall returns [EObject current=null] 
-	:
+entryRuleXConstructorCall returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXConstructorCallRule()); }
-	 iv_ruleXConstructorCall=ruleXConstructorCall 
-	 { $current=$iv_ruleXConstructorCall.current; } 
-	 EOF 
-;
+	iv_ruleXConstructorCall=ruleXConstructorCall
+	{ $current=$iv_ruleXConstructorCall.current; }
+	EOF;
 
 // Rule XConstructorCall
-ruleXConstructorCall returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0(),
-            $current);
-    }
-)	otherlv_1='new' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
-    }
-(
-(
+ruleXConstructorCall returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='new'
 		{
-			if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXConstructorCallRule());
-	        }
-        }
-		{ 
-	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
-	    }
-		ruleQualifiedName		{ 
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(((	'<' 
-)=>	otherlv_3='<' 
-    {
-    	newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
-    }
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
-	    }
-		lv_typeArguments_4_0=ruleJvmArgumentTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
-	        }
-       		add(
-       			$current, 
-       			"typeArguments",
-        		lv_typeArguments_4_0, 
-        		"JvmArgumentTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_5=',' 
-    {
-    	newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
-	    }
-		lv_typeArguments_6_0=ruleJvmArgumentTypeReference		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
-	        }
-       		add(
-       			$current, 
-       			"typeArguments",
-        		lv_typeArguments_6_0, 
-        		"JvmArgumentTypeReference");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*	otherlv_7='>' 
-    {
-    	newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
-    }
-)?(((
-(
-	'(' 
- 
-
-)
-)=>
-(
-		lv_explicitConstructorCall_8_0=	'(' 
-    {
-        newLeafNode(lv_explicitConstructorCall_8_0, grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXConstructorCallRule());
-	        }
-       		setWithLastConsumed($current, "explicitConstructorCall", true, "(");
-	    }
-
-)
-)(((((
-)((
-(
-ruleJvmFormalParameter
-)
-)(	',' 
-(
-(
-ruleJvmFormalParameter
-)
-))*)?(
-(
-	'|' 
- 
-
-)
-)))=>
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
-	    }
-		lv_arguments_9_0=ruleXShortClosure		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
-	        }
-       		add(
-       			$current, 
-       			"arguments",
-        		lv_arguments_9_0, 
-        		"XShortClosure");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)
-    |((
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
-	    }
-		lv_arguments_10_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
-	        }
-       		add(
-       			$current, 
-       			"arguments",
-        		lv_arguments_10_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)(	otherlv_11=',' 
-    {
-    	newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
-    }
-(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
-	    }
-		lv_arguments_12_0=ruleXExpression		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
-	        }
-       		add(
-       			$current, 
-       			"arguments",
-        		lv_arguments_12_0, 
-        		"XExpression");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-))*))?	otherlv_13=')' 
-    {
-    	newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
-    }
-)?((((
-)	'[' 
-))=>
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
-	    }
-		lv_arguments_14_0=ruleXClosure		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
-	        }
-       		add(
-       			$current, 
-       			"arguments",
-        		lv_arguments_14_0, 
-        		"XClosure");
-	        afterParserOrEnumRuleCall();
-	    }
-
-)
-)?)
+			newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getXConstructorCallRule());
+					}
+				}
+				{
+					newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0());
+				}
+				ruleQualifiedName
+				{
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				('<')=>
+				otherlv_3='<'
+				{
+					newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
+				}
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0());
+					}
+					lv_typeArguments_4_0=ruleJvmArgumentTypeReference
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+						}
+						add(
+							$current,
+							"typeArguments",
+							lv_typeArguments_4_0,
+							"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				otherlv_5=','
+				{
+					newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0());
+						}
+						lv_typeArguments_6_0=ruleJvmArgumentTypeReference
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+							}
+							add(
+								$current,
+								"typeArguments",
+								lv_typeArguments_6_0,
+								"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+			otherlv_7='>'
+			{
+				newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
+			}
+		)?
+		(
+			(
+				((
+					'('
+				)
+				)=>
+				(
+					lv_explicitConstructorCall_8_0='('
+					{
+						newLeafNode(lv_explicitConstructorCall_8_0, grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getXConstructorCallRule());
+						}
+						setWithLastConsumed($current, "explicitConstructorCall", true, "(");
+					}
+				)
+			)
+			(
+				(
+					((
+						(
+						)
+						(
+							(
+								(
+									ruleJvmFormalParameter
+								)
+							)
+							(
+								','
+								(
+									(
+										ruleJvmFormalParameter
+									)
+								)
+							)*
+						)?
+						(
+							(
+								'|'
+							)
+						)
+					)
+					)=>
+					(
+						{
+							newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0());
+						}
+						lv_arguments_9_0=ruleXShortClosure
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+							}
+							add(
+								$current,
+								"arguments",
+								lv_arguments_9_0,
+								"org.eclipse.xtext.xbase.Xbase.XShortClosure");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				    |
+				(
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0());
+							}
+							lv_arguments_10_0=ruleXExpression
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+								}
+								add(
+									$current,
+									"arguments",
+									lv_arguments_10_0,
+									"org.eclipse.xtext.xbase.Xbase.XExpression");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+					(
+						otherlv_11=','
+						{
+							newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
+						}
+						(
+							(
+								{
+									newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0());
+								}
+								lv_arguments_12_0=ruleXExpression
+								{
+									if ($current==null) {
+										$current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+									}
+									add(
+										$current,
+										"arguments",
+										lv_arguments_12_0,
+										"org.eclipse.xtext.xbase.Xbase.XExpression");
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+					)*
+				)
+			)?
+			otherlv_13=')'
+			{
+				newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
+			}
+		)?
+		(
+			((
+				(
+				)
+				'['
+			)
+			)=>
+			(
+				{
+					newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0());
+				}
+				lv_arguments_14_0=ruleXClosure
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+					}
+					add(
+						$current,
+						"arguments",
+						lv_arguments_14_0,
+						"org.eclipse.xtext.xbase.Xbase.XClosure");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)?
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXBooleanLiteral
-entryRuleXBooleanLiteral returns [EObject current=null] 
-	:
+entryRuleXBooleanLiteral returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXBooleanLiteralRule()); }
-	 iv_ruleXBooleanLiteral=ruleXBooleanLiteral 
-	 { $current=$iv_ruleXBooleanLiteral.current; } 
-	 EOF 
-;
+	iv_ruleXBooleanLiteral=ruleXBooleanLiteral
+	{ $current=$iv_ruleXBooleanLiteral.current; }
+	EOF;
 
 // Rule XBooleanLiteral
-ruleXBooleanLiteral returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0(),
-            $current);
-    }
-)(	otherlv_1='false' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
-    }
-
-    |(
-(
-		lv_isTrue_2_0=	'true' 
-    {
-        newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
-    }
- 
-	    {
-	        if ($current==null) {
-	            $current = createModelElement(grammarAccess.getXBooleanLiteralRule());
-	        }
-       		setWithLastConsumed($current, "isTrue", true, "true");
-	    }
-
-)
-)))
+ruleXBooleanLiteral returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0(),
+					$current);
+			}
+		)
+		(
+			otherlv_1='false'
+			{
+				newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
+			}
+			    |
+			(
+				(
+					lv_isTrue_2_0='true'
+					{
+						newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getXBooleanLiteralRule());
+						}
+						setWithLastConsumed($current, "isTrue", true, "true");
+					}
+				)
+			)
+		)
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXNullLiteral
-entryRuleXNullLiteral returns [EObject current=null] 
-	:
+entryRuleXNullLiteral returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXNullLiteralRule()); }
-	 iv_ruleXNullLiteral=ruleXNullLiteral 
-	 { $current=$iv_ruleXNullLiteral.current; } 
-	 EOF 
-;
+	iv_ruleXNullLiteral=ruleXNullLiteral
+	{ $current=$iv_ruleXNullLiteral.current; }
+	EOF;
 
 // Rule XNullLiteral
-ruleXNullLiteral returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0(),
-            $current);
-    }
-)	otherlv_1='null' 
-    {
-    	newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
-    }
-)
+ruleXNullLiteral returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='null'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
+		}
+	)
 ;
 
-
-
-
-
 // Entry rule entryRuleXNumberLiteral
-entryRuleXNumberLiteral returns [EObject current=null] 
-	:
+entryRuleXNumberLiteral returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getXNumberLiteralRule()); }
-	 iv_ruleXNumberLiteral=ruleXNumberLiteral 
-	 { $current=$iv_ruleXNumberLiteral.current; } 
-	 EOF 
-;
+	iv_ruleXNumberLiteral=ruleXNumberLiteral
+	{ $current=$iv_ruleXNumberLiteral.current; }
+	EOF;
 
 // Rule XNumberLiteral
-ruleXNumberLiteral returns [EObject current=null] 
-    @init { enterRule(); 
-    }
-    @after { leaveRule(); }:
-((
-    {
-        $current = forceCreateModelElement(
-            grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0(),
-            $current);
-    }
-)(
-(
-		{ 
-	        newCompositeNode(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
-	    }
-		lv_value_1_0=ruleNumber		{
-	        if ($current==null) {
-	            $current = createModelElementForParent(grammarAccess.getXNumberLiteralRule());
-	        }
-       		set(
-       			$current, 
-       			"value",
-        		lv_value_1_0, 
-        		"Number");
-	        afterParserOrEnumRuleCall();
+ruleXNumberLiteral returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0(),
+					$current);
+			}
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0());
+				}
+				lv_value_1_0=ruleNumber
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXNumberLiteralRule());
+					}
+					set(
+						$current,
+						"value",
+						lv_value_1_0,
+						"org.eclipse.xtext.xbase.Xbase.Number");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleXStringLiteral
+entryRuleXStringLiteral returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getXStringLiteralRule()); }
+	iv_ruleXStringLiteral=ruleXStringLiteral
+	{ $current=$iv_ruleXStringLiteral.current; }
+	EOF;
+
+// Rule XStringLiteral
+ruleXStringLiteral returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0(),
+					$current);
+			}
+		)
+		(
+			(
+				lv_value_1_0=RULE_STRING
+				{
+					newLeafNode(lv_value_1_0, grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getXStringLiteralRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"value",
+						lv_value_1_0,
+						"org.eclipse.xtext.xbase.Xtype.STRING");
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleXTypeLiteral
+entryRuleXTypeLiteral returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getXTypeLiteralRule()); }
+	iv_ruleXTypeLiteral=ruleXTypeLiteral
+	{ $current=$iv_ruleXTypeLiteral.current; }
+	EOF;
+
+// Rule XTypeLiteral
+ruleXTypeLiteral returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='typeof'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
+		}
+		otherlv_2='('
+		{
+			newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
+		}
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getXTypeLiteralRule());
+					}
+				}
+				{
+					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0());
+				}
+				ruleQualifiedName
+				{
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0());
+				}
+				lv_arrayDimensions_4_0=ruleArrayBrackets
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXTypeLiteralRule());
+					}
+					add(
+						$current,
+						"arrayDimensions",
+						lv_arrayDimensions_4_0,
+						"org.eclipse.xtext.xbase.Xtype.ArrayBrackets");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+		otherlv_5=')'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
+		}
+	)
+;
+
+// Entry rule entryRuleXThrowExpression
+entryRuleXThrowExpression returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getXThrowExpressionRule()); }
+	iv_ruleXThrowExpression=ruleXThrowExpression
+	{ $current=$iv_ruleXThrowExpression.current; }
+	EOF;
+
+// Rule XThrowExpression
+ruleXThrowExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='throw'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+				}
+				lv_expression_2_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXThrowExpressionRule());
+					}
+					set(
+						$current,
+						"expression",
+						lv_expression_2_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleXReturnExpression
+entryRuleXReturnExpression returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getXReturnExpressionRule()); }
+	iv_ruleXReturnExpression=ruleXReturnExpression
+	{ $current=$iv_ruleXReturnExpression.current; }
+	EOF;
+
+// Rule XReturnExpression
+ruleXReturnExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='return'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
+		}
+		(
+			('extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING)=>
+			(
+				{
+					newCompositeNode(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+				}
+				lv_expression_2_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXReturnExpressionRule());
+					}
+					set(
+						$current,
+						"expression",
+						lv_expression_2_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)?
+	)
+;
+
+// Entry rule entryRuleXTryCatchFinallyExpression
+entryRuleXTryCatchFinallyExpression returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule()); }
+	iv_ruleXTryCatchFinallyExpression=ruleXTryCatchFinallyExpression
+	{ $current=$iv_ruleXTryCatchFinallyExpression.current; }
+	EOF;
+
+// Rule XTryCatchFinallyExpression
+ruleXTryCatchFinallyExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='try'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+				}
+				lv_expression_2_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+					}
+					set(
+						$current,
+						"expression",
+						lv_expression_2_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				(
+					('catch')=>
+					(
+						{
+							newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0());
+						}
+						lv_catchClauses_3_0=ruleXCatchClause
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+							}
+							add(
+								$current,
+								"catchClauses",
+								lv_catchClauses_3_0,
+								"org.eclipse.xtext.xbase.Xbase.XCatchClause");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)+
+				(
+					(
+						('finally')=>
+						otherlv_4='finally'
+						{
+							newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
+						}
+					)
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0());
+							}
+							lv_finallyExpression_5_0=ruleXExpression
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+								}
+								set(
+									$current,
+									"finallyExpression",
+									lv_finallyExpression_5_0,
+									"org.eclipse.xtext.xbase.Xbase.XExpression");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)?
+			)
+			    |
+			(
+				otherlv_6='finally'
+				{
+					newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0());
+						}
+						lv_finallyExpression_7_0=ruleXExpression
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+							}
+							set(
+								$current,
+								"finallyExpression",
+								lv_finallyExpression_7_0,
+								"org.eclipse.xtext.xbase.Xbase.XExpression");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleXSynchronizedExpression
+entryRuleXSynchronizedExpression returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getXSynchronizedExpressionRule()); }
+	iv_ruleXSynchronizedExpression=ruleXSynchronizedExpression
+	{ $current=$iv_ruleXSynchronizedExpression.current; }
+	EOF;
+
+// Rule XSynchronizedExpression
+ruleXSynchronizedExpression returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			((
+				(
+				)
+				'synchronized'
+				'('
+			)
+			)=>
+			(
+				(
+					{
+						$current = forceCreateModelElement(
+							grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0(),
+							$current);
+					}
+				)
+				otherlv_1='synchronized'
+				{
+					newLeafNode(otherlv_1, grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1());
+				}
+				otherlv_2='('
+				{
+					newLeafNode(otherlv_2, grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2());
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0());
+				}
+				lv_param_3_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXSynchronizedExpressionRule());
+					}
+					set(
+						$current,
+						"param",
+						lv_param_3_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_4=')'
+		{
+			newLeafNode(otherlv_4, grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0());
+				}
+				lv_expression_5_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXSynchronizedExpressionRule());
+					}
+					set(
+						$current,
+						"expression",
+						lv_expression_5_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleXCatchClause
+entryRuleXCatchClause returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getXCatchClauseRule()); }
+	iv_ruleXCatchClause=ruleXCatchClause
+	{ $current=$iv_ruleXCatchClause.current; }
+	EOF;
+
+// Rule XCatchClause
+ruleXCatchClause returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			('catch')=>
+			otherlv_0='catch'
+			{
+				newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
+			}
+		)
+		otherlv_1='('
+		{
+			newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0());
+				}
+				lv_declaredParam_2_0=ruleFullJvmFormalParameter
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+					}
+					set(
+						$current,
+						"declaredParam",
+						lv_declaredParam_2_0,
+						"org.eclipse.xtext.xbase.Xbase.FullJvmFormalParameter");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_3=')'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0());
+				}
+				lv_expression_4_0=ruleXExpression
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+					}
+					set(
+						$current,
+						"expression",
+						lv_expression_4_0,
+						"org.eclipse.xtext.xbase.Xbase.XExpression");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleQualifiedName
+entryRuleQualifiedName returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getQualifiedNameRule()); }
+	iv_ruleQualifiedName=ruleQualifiedName
+	{ $current=$iv_ruleQualifiedName.current.getText(); }
+	EOF;
+
+// Rule QualifiedName
+ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0());
+		}
+		this_ValidID_0=ruleValidID
+		{
+			$current.merge(this_ValidID_0);
+		}
+		{
+			afterParserOrEnumRuleCall();
+		}
+		(
+			(
+				('.')=>
+				kw='.'
+				{
+					$current.merge(kw);
+					newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
+				}
+			)
+			{
+				newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1());
+			}
+			this_ValidID_2=ruleValidID
+			{
+				$current.merge(this_ValidID_2);
+			}
+			{
+				afterParserOrEnumRuleCall();
+			}
+		)*
+	)
+;
+
+// Entry rule entryRuleNumber
+entryRuleNumber returns [String current=null]@init {
+	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+}:
+	{ newCompositeNode(grammarAccess.getNumberRule()); }
+	iv_ruleNumber=ruleNumber
+	{ $current=$iv_ruleNumber.current.getText(); }
+	EOF;
+finally {
+	myHiddenTokenState.restore();
+}
+
+// Rule Number
+ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+}
+@after {
+	leaveRule();
+}:
+	(
+		this_HEX_0=RULE_HEX
+		{
+			$current.merge(this_HEX_0);
+		}
+		{
+			newLeafNode(this_HEX_0, grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0());
+		}
+		    |
+		(
+			(
+				this_INT_1=RULE_INT
+				{
+					$current.merge(this_INT_1);
+				}
+				{
+					newLeafNode(this_INT_1, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0());
+				}
+				    |
+				this_DECIMAL_2=RULE_DECIMAL
+				{
+					$current.merge(this_DECIMAL_2);
+				}
+				{
+					newLeafNode(this_DECIMAL_2, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1());
+				}
+			)
+			(
+				kw='.'
+				{
+					$current.merge(kw);
+					newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
+				}
+				(
+					this_INT_4=RULE_INT
+					{
+						$current.merge(this_INT_4);
+					}
+					{
+						newLeafNode(this_INT_4, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0());
+					}
+					    |
+					this_DECIMAL_5=RULE_DECIMAL
+					{
+						$current.merge(this_DECIMAL_5);
+					}
+					{
+						newLeafNode(this_DECIMAL_5, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1());
+					}
+				)
+			)?
+		)
+	)
+;
+finally {
+	myHiddenTokenState.restore();
+}
+
+// Entry rule entryRuleJvmTypeReference
+entryRuleJvmTypeReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); }
+	iv_ruleJvmTypeReference=ruleJvmTypeReference
+	{ $current=$iv_ruleJvmTypeReference.current; }
+	EOF;
+
+// Rule JvmTypeReference
+ruleJvmTypeReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0());
+			}
+			this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference
+			{
+				$current = $this_JvmParameterizedTypeReference_0.current;
+				afterParserOrEnumRuleCall();
+			}
+			(
+				((
+					(
+					)
+					ruleArrayBrackets
+				)
+				)=>
+				(
+					(
+						{
+							$current = forceCreateModelElementAndSet(
+								grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0(),
+								$current);
+						}
+					)
+					{
+						newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1());
+					}
+					ruleArrayBrackets
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)*
+		)
+		    |
+		{
+			newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1());
+		}
+		this_XFunctionTypeRef_3=ruleXFunctionTypeRef
+		{
+			$current = $this_XFunctionTypeRef_3.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleArrayBrackets
+entryRuleArrayBrackets returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getArrayBracketsRule()); }
+	iv_ruleArrayBrackets=ruleArrayBrackets
+	{ $current=$iv_ruleArrayBrackets.current.getText(); }
+	EOF;
+
+// Rule ArrayBrackets
+ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		kw='['
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
+		}
+		kw=']'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1());
+		}
+	)
+;
+
+// Entry rule entryRuleXFunctionTypeRef
+entryRuleXFunctionTypeRef returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); }
+	iv_ruleXFunctionTypeRef=ruleXFunctionTypeRef
+	{ $current=$iv_ruleXFunctionTypeRef.current; }
+	EOF;
+
+// Rule XFunctionTypeRef
+ruleXFunctionTypeRef returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			otherlv_0='('
+			{
+				newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
+			}
+			(
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0());
+						}
+						lv_paramTypes_1_0=ruleJvmTypeReference
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+							}
+							add(
+								$current,
+								"paramTypes",
+								lv_paramTypes_1_0,
+								"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					otherlv_2=','
+					{
+						newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
+					}
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0());
+							}
+							lv_paramTypes_3_0=ruleJvmTypeReference
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+								}
+								add(
+									$current,
+									"paramTypes",
+									lv_paramTypes_3_0,
+									"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)*
+			)?
+			otherlv_4=')'
+			{
+				newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
+			}
+		)?
+		otherlv_5='=>'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0());
+				}
+				lv_returnType_6_0=ruleJvmTypeReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+					}
+					set(
+						$current,
+						"returnType",
+						lv_returnType_6_0,
+						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleJvmParameterizedTypeReference
+entryRuleJvmParameterizedTypeReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); }
+	iv_ruleJvmParameterizedTypeReference=ruleJvmParameterizedTypeReference
+	{ $current=$iv_ruleJvmParameterizedTypeReference.current; }
+	EOF;
+
+// Rule JvmParameterizedTypeReference
+ruleJvmParameterizedTypeReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule());
+					}
+				}
+				{
+					newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0());
+				}
+				ruleQualifiedName
+				{
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				('<')=>
+				otherlv_1='<'
+				{
+					newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
+				}
+			)
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+					}
+					lv_arguments_2_0=ruleJvmArgumentTypeReference
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+						}
+						add(
+							$current,
+							"arguments",
+							lv_arguments_2_0,
+							"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				otherlv_3=','
+				{
+					newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+						}
+						lv_arguments_4_0=ruleJvmArgumentTypeReference
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+							}
+							add(
+								$current,
+								"arguments",
+								lv_arguments_4_0,
+								"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+			otherlv_5='>'
+			{
+				newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
+			}
+			(
+				(
+					((
+						(
+						)
+						'.'
+					)
+					)=>
+					(
+						(
+							{
+								$current = forceCreateModelElementAndSet(
+									grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0(),
+									$current);
+							}
+						)
+						otherlv_7='.'
+						{
+							newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1());
+						}
+					)
+				)
+				(
+					(
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule());
+							}
+						}
+						{
+							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0());
+						}
+						ruleValidID
+						{
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					(
+						('<')=>
+						otherlv_9='<'
+						{
+							newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0());
+						}
+					)
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0());
+							}
+							lv_arguments_10_0=ruleJvmArgumentTypeReference
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+								}
+								add(
+									$current,
+									"arguments",
+									lv_arguments_10_0,
+									"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+					(
+						otherlv_11=','
+						{
+							newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0());
+						}
+						(
+							(
+								{
+									newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0());
+								}
+								lv_arguments_12_0=ruleJvmArgumentTypeReference
+								{
+									if ($current==null) {
+										$current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+									}
+									add(
+										$current,
+										"arguments",
+										lv_arguments_12_0,
+										"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+									afterParserOrEnumRuleCall();
+								}
+							)
+						)
+					)*
+					otherlv_13='>'
+					{
+						newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3());
+					}
+				)?
+			)*
+		)?
+	)
+;
+
+// Entry rule entryRuleJvmArgumentTypeReference
+entryRuleJvmArgumentTypeReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); }
+	iv_ruleJvmArgumentTypeReference=ruleJvmArgumentTypeReference
+	{ $current=$iv_ruleJvmArgumentTypeReference.current; }
+	EOF;
+
+// Rule JvmArgumentTypeReference
+ruleJvmArgumentTypeReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0());
+		}
+		this_JvmTypeReference_0=ruleJvmTypeReference
+		{
+			$current = $this_JvmTypeReference_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1());
+		}
+		this_JvmWildcardTypeReference_1=ruleJvmWildcardTypeReference
+		{
+			$current = $this_JvmWildcardTypeReference_1.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleJvmWildcardTypeReference
+entryRuleJvmWildcardTypeReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); }
+	iv_ruleJvmWildcardTypeReference=ruleJvmWildcardTypeReference
+	{ $current=$iv_ruleJvmWildcardTypeReference.current; }
+	EOF;
+
+// Rule JvmWildcardTypeReference
+ruleJvmWildcardTypeReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				$current = forceCreateModelElement(
+					grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0(),
+					$current);
+			}
+		)
+		otherlv_1='?'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
+		}
+		(
+			(
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0());
+						}
+						lv_constraints_2_0=ruleJvmUpperBound
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+							}
+							add(
+								$current,
+								"constraints",
+								lv_constraints_2_0,
+								"org.eclipse.xtext.xbase.Xtype.JvmUpperBound");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0());
+						}
+						lv_constraints_3_0=ruleJvmUpperBoundAnded
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+							}
+							add(
+								$current,
+								"constraints",
+								lv_constraints_3_0,
+								"org.eclipse.xtext.xbase.Xtype.JvmUpperBoundAnded");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)*
+			)
+			    |
+			(
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0());
+						}
+						lv_constraints_4_0=ruleJvmLowerBound
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+							}
+							add(
+								$current,
+								"constraints",
+								lv_constraints_4_0,
+								"org.eclipse.xtext.xbase.Xtype.JvmLowerBound");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0());
+						}
+						lv_constraints_5_0=ruleJvmLowerBoundAnded
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+							}
+							add(
+								$current,
+								"constraints",
+								lv_constraints_5_0,
+								"org.eclipse.xtext.xbase.Xtype.JvmLowerBoundAnded");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)*
+			)
+		)?
+	)
+;
+
+// Entry rule entryRuleJvmUpperBound
+entryRuleJvmUpperBound returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getJvmUpperBoundRule()); }
+	iv_ruleJvmUpperBound=ruleJvmUpperBound
+	{ $current=$iv_ruleJvmUpperBound.current; }
+	EOF;
+
+// Rule JvmUpperBound
+ruleJvmUpperBound returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='extends'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+				}
+				lv_typeReference_1_0=ruleJvmTypeReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getJvmUpperBoundRule());
+					}
+					set(
+						$current,
+						"typeReference",
+						lv_typeReference_1_0,
+						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleJvmUpperBoundAnded
+entryRuleJvmUpperBoundAnded returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); }
+	iv_ruleJvmUpperBoundAnded=ruleJvmUpperBoundAnded
+	{ $current=$iv_ruleJvmUpperBoundAnded.current; }
+	EOF;
+
+// Rule JvmUpperBoundAnded
+ruleJvmUpperBoundAnded returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='&'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+				}
+				lv_typeReference_1_0=ruleJvmTypeReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getJvmUpperBoundAndedRule());
+					}
+					set(
+						$current,
+						"typeReference",
+						lv_typeReference_1_0,
+						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleJvmLowerBound
+entryRuleJvmLowerBound returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getJvmLowerBoundRule()); }
+	iv_ruleJvmLowerBound=ruleJvmLowerBound
+	{ $current=$iv_ruleJvmLowerBound.current; }
+	EOF;
+
+// Rule JvmLowerBound
+ruleJvmLowerBound returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='super'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+				}
+				lv_typeReference_1_0=ruleJvmTypeReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getJvmLowerBoundRule());
+					}
+					set(
+						$current,
+						"typeReference",
+						lv_typeReference_1_0,
+						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleJvmLowerBoundAnded
+entryRuleJvmLowerBoundAnded returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); }
+	iv_ruleJvmLowerBoundAnded=ruleJvmLowerBoundAnded
+	{ $current=$iv_ruleJvmLowerBoundAnded.current; }
+	EOF;
+
+// Rule JvmLowerBoundAnded
+ruleJvmLowerBoundAnded returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='&'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+				}
+				lv_typeReference_1_0=ruleJvmTypeReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getJvmLowerBoundAndedRule());
+					}
+					set(
+						$current,
+						"typeReference",
+						lv_typeReference_1_0,
+						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleQualifiedNameWithWildcard
+entryRuleQualifiedNameWithWildcard returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); }
+	iv_ruleQualifiedNameWithWildcard=ruleQualifiedNameWithWildcard
+	{ $current=$iv_ruleQualifiedNameWithWildcard.current.getText(); }
+	EOF;
+
+// Rule QualifiedNameWithWildcard
+ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
+		}
+		this_QualifiedName_0=ruleQualifiedName
+		{
+			$current.merge(this_QualifiedName_0);
+		}
+		{
+			afterParserOrEnumRuleCall();
+		}
+		kw='.'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
+		}
+		kw='*'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2());
+		}
+	)
+;
+
+// Entry rule entryRuleValidID
+entryRuleValidID returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getValidIDRule()); }
+	iv_ruleValidID=ruleValidID
+	{ $current=$iv_ruleValidID.current.getText(); }
+	EOF;
+
+// Rule ValidID
+ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	this_ID_0=RULE_ID
+	{
+		$current.merge(this_ID_0);
+	}
+	{
+		newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
+	}
+;
+
+// Entry rule entryRuleXImportSection
+entryRuleXImportSection returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getXImportSectionRule()); }
+	iv_ruleXImportSection=ruleXImportSection
+	{ $current=$iv_ruleXImportSection.current; }
+	EOF;
+
+// Rule XImportSection
+ruleXImportSection returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				newCompositeNode(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0());
+			}
+			lv_importDeclarations_0_0=ruleXImportDeclaration
+			{
+				if ($current==null) {
+					$current = createModelElementForParent(grammarAccess.getXImportSectionRule());
+				}
+				add(
+					$current,
+					"importDeclarations",
+					lv_importDeclarations_0_0,
+					"org.eclipse.osbp.xtext.oxtype.OXtype.XImportDeclaration");
+				afterParserOrEnumRuleCall();
+			}
+		)
+	)+
+;
+
+// Entry rule entryRuleQualifiedNameInStaticImport
+entryRuleQualifiedNameInStaticImport returns [String current=null]:
+	{ newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); }
+	iv_ruleQualifiedNameInStaticImport=ruleQualifiedNameInStaticImport
+	{ $current=$iv_ruleQualifiedNameInStaticImport.current.getText(); }
+	EOF;
+
+// Rule QualifiedNameInStaticImport
+ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0());
+		}
+		this_ValidID_0=ruleValidID
+		{
+			$current.merge(this_ValidID_0);
+		}
+		{
+			afterParserOrEnumRuleCall();
+		}
+		kw='.'
+		{
+			$current.merge(kw);
+			newLeafNode(kw, grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1());
+		}
+	)+
+;
+
+// Rule StyleCompare
+ruleStyleCompare returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='equal'
+			{
+				$current = grammarAccess.getStyleCompareAccess().getEqualEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getStyleCompareAccess().getEqualEnumLiteralDeclaration_0());
+			}
+		)
+		    |
+		(
+			enumLiteral_1='greater equal'
+			{
+				$current = grammarAccess.getStyleCompareAccess().getGreaterEqualEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getStyleCompareAccess().getGreaterEqualEnumLiteralDeclaration_1());
+			}
+		)
+		    |
+		(
+			enumLiteral_2='greater than'
+			{
+				$current = grammarAccess.getStyleCompareAccess().getGreaterThanEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_2, grammarAccess.getStyleCompareAccess().getGreaterThanEnumLiteralDeclaration_2());
+			}
+		)
+		    |
+		(
+			enumLiteral_3='lower equal'
+			{
+				$current = grammarAccess.getStyleCompareAccess().getLowerEqualEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_3, grammarAccess.getStyleCompareAccess().getLowerEqualEnumLiteralDeclaration_3());
+			}
+		)
+		    |
+		(
+			enumLiteral_4='lower than'
+			{
+				$current = grammarAccess.getStyleCompareAccess().getLowerThanEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_4, grammarAccess.getStyleCompareAccess().getLowerThanEnumLiteralDeclaration_4());
+			}
+		)
+		    |
+		(
+			enumLiteral_5='not equal'
+			{
+				$current = grammarAccess.getStyleCompareAccess().getNotEqualEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_5, grammarAccess.getStyleCompareAccess().getNotEqualEnumLiteralDeclaration_5());
+			}
+		)
+	)
+;
+
+// Rule TrendIconEnum
+ruleTrendIconEnum returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='rising'
+			{
+				$current = grammarAccess.getTrendIconEnumAccess().getRISINGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getTrendIconEnumAccess().getRISINGEnumLiteralDeclaration_0());
+			}
+		)
+		    |
+		(
+			enumLiteral_1='bad-rising'
+			{
+				$current = grammarAccess.getTrendIconEnumAccess().getBADRISINGEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getTrendIconEnumAccess().getBADRISINGEnumLiteralDeclaration_1());
+			}
+		)
+		    |
+		(
+			enumLiteral_2='sloping'
+			{
+				$current = grammarAccess.getTrendIconEnumAccess().getSLOPINGEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_2, grammarAccess.getTrendIconEnumAccess().getSLOPINGEnumLiteralDeclaration_2());
+			}
+		)
+		    |
+		(
+			enumLiteral_3='good-sloping'
+			{
+				$current = grammarAccess.getTrendIconEnumAccess().getGOODSLOPINGEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_3, grammarAccess.getTrendIconEnumAccess().getGOODSLOPINGEnumLiteralDeclaration_3());
+			}
+		)
+		    |
+		(
+			enumLiteral_4='stagnating'
+			{
+				$current = grammarAccess.getTrendIconEnumAccess().getSTAGNATINGEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_4, grammarAccess.getTrendIconEnumAccess().getSTAGNATINGEnumLiteralDeclaration_4());
+			}
+		)
+	)
+;
+
+// Rule RowHeaderMode
+ruleRowHeaderMode returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='hidden'
+			{
+				$current = grammarAccess.getRowHeaderModeAccess().getHIDDENEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getRowHeaderModeAccess().getHIDDENEnumLiteralDeclaration_0());
+			}
+		)
+		    |
+		(
+			enumLiteral_1='explicit'
+			{
+				$current = grammarAccess.getRowHeaderModeAccess().getEXPLICIT_DEFAULTS_IDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getRowHeaderModeAccess().getEXPLICIT_DEFAULTS_IDEnumLiteralDeclaration_1());
+			}
+		)
+		    |
+		(
+			enumLiteral_2='indexed'
+			{
+				$current = grammarAccess.getRowHeaderModeAccess().getINDEXEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_2, grammarAccess.getRowHeaderModeAccess().getINDEXEnumLiteralDeclaration_2());
+			}
+		)
+	)
+;
+
+// Rule AxisEnum
+ruleAxisEnum returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='default'
+			{
+				$current = grammarAccess.getAxisEnumAccess().getDEFAULTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getAxisEnumAccess().getDEFAULTEnumLiteralDeclaration_0());
+			}
+		)
+		    |
+		(
+			enumLiteral_1='columns'
+			{
+				$current = grammarAccess.getAxisEnumAccess().getCOLUMNSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getAxisEnumAccess().getCOLUMNSEnumLiteralDeclaration_1());
+			}
+		)
+		    |
+		(
+			enumLiteral_2='rows'
+			{
+				$current = grammarAccess.getAxisEnumAccess().getROWSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_2, grammarAccess.getAxisEnumAccess().getROWSEnumLiteralDeclaration_2());
+			}
+		)
+		    |
+		(
+			enumLiteral_3='pages'
+			{
+				$current = grammarAccess.getAxisEnumAccess().getPAGESEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_3, grammarAccess.getAxisEnumAccess().getPAGESEnumLiteralDeclaration_3());
+			}
+		)
+		    |
+		(
+			enumLiteral_4='sections'
+			{
+				$current = grammarAccess.getAxisEnumAccess().getSECTIONSEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_4, grammarAccess.getAxisEnumAccess().getSECTIONSEnumLiteralDeclaration_4());
+			}
+		)
+		    |
+		(
+			enumLiteral_5='chapters'
+			{
+				$current = grammarAccess.getAxisEnumAccess().getCHAPTERSEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_5, grammarAccess.getAxisEnumAccess().getCHAPTERSEnumLiteralDeclaration_5());
+			}
+		)
+	)
+;
+
+RULE_THEME_RESOURCE : 'theme:/' ('a'..'z'|'A'..'Z'|'$'|'_'|'.'|'/'|'0'..'9')*;
+
+RULE_EVENT_TOPIC : '\'' RULE_ID ('/' RULE_ID)* '/*'? '\'';
+
+RULE_HEX : ('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F'|'_')+ ('#' (('b'|'B') ('i'|'I')|('l'|'L')))?;
+
+RULE_INT : '0'..'9' ('0'..'9'|'_')*;
+
+RULE_DECIMAL : RULE_INT (('e'|'E') ('+'|'-')? RULE_INT)? (('b'|'B') ('i'|'I'|'d'|'D')|('l'|'L'|'d'|'D'|'f'|'F'))?;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'0'..'9')*;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'?|'\'' ('\\' .|~(('\\'|'\'')))* '\''?);
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.tokens b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.tokens
index f35a014..7ba4360 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.tokens
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.tokens
@@ -1,172 +1,176 @@
-'!'=131
-'!='=118
-'!=='=120
-'#'=104
-'%'=130
-'%='=111
-'&&'=116
-'&'=165
-'('=91
-')'=92
-'*'=101
-'**'=128
-'*='=109
-'+'=99
-'++'=132
-'+='=107
-','=103
-'-'=100
-'--'=133
-'-='=108
-'->'=122
-'.'=76
-'..'=124
-'..<'=123
-'/'=129
-'/='=110
-':'=141
-'::'=134
-';'=137
-'<'=112
-'<>'=126
-'='=90
-'=='=117
-'==='=119
-'=>'=125
-'>'=113
-'>='=114
-'?'=164
-'?.'=135
-'?:'=127
-'@'=102
-'['=105
-']'=106
-'aggregation'=52
-'allColumns'=45
+'!'=138
+'!='=125
+'!=='=127
+'#'=111
+'%'=137
+'%='=118
+'&&'=123
+'&'=169
+'('=93
+')'=94
+'*'=106
+'**'=135
+'*='=116
+'+'=101
+'++'=139
+'+='=114
+','=110
+'-'=102
+'--'=140
+'-='=115
+'->'=129
+'.'=78
+'..'=131
+'..<'=130
+'/'=136
+'/='=117
+':'=147
+'::'=141
+';'=108
+'<'=119
+'<>'=133
+'='=92
+'=='=124
+'==='=126
+'=>'=132
+'>'=120
+'>='=121
+'?'=168
+'?.'=142
+'?:'=134
+'@'=109
+'['=112
+']'=113
+'aggregation'=55
+'allColumns'=48
+'alwaysSelected'=24
 'as'=20
-'ascending'=31
-'axis'=62
-'bad-rising'=173
-'boolStyle'=80
-'broker'=58
-'buttonStyle'=77
-'case'=143
-'catch'=163
-'cellcolor'=67
-'chapters'=184
-'collapse'=33
-'column'=47
-'columns'=180
-'currency'=95
-'datamart'=57
-'dateStyle'=81
-'days in past'=54
-'default'=142
-'derived'=49
-'described by'=19
-'details'=64
-'do'=146
-'dto'=72
-'dynamic'=41
-'editable'=73
-'else'=139
-'embedded'=27
-'equal'=166
-'eventTopic'=78
-'events'=65
-'explicit'=178
-'extends'=149
-'extension'=151
-'false'=154
-'filter'=60
-'filtering'=26
-'finally'=161
-'for'=144
-'format'=82
-'formatter'=39
-'good-sloping'=175
-'greater equal'=167
-'greater than'=168
-'greenFrom'=87
+'ascending'=34
+'axis'=63
+'bad-rising'=177
+'bean'=32
+'boolStyle'=82
+'buttonStyle'=79
+'case'=149
+'catch'=167
+'cellcolor'=68
+'chapters'=188
+'collapse'=36
+'column'=50
+'columns'=184
+'currency'=97
+'datamart'=62
+'dateStyle'=83
+'daysInPast'=58
+'default'=148
+'derived'=52
+'describedBy'=19
+'details'=65
+'do'=152
+'dto'=77
+'dynamic'=44
+'editable'=74
+'else'=145
+'embedded'=28
+'equal'=170
+'eventTopic'=80
+'explicit'=182
+'extends'=155
+'extension'=105
+'false'=158
+'filtering'=27
+'finally'=165
+'for'=150
+'format'=84
+'formatter'=42
+'good-sloping'=179
+'greater equal'=171
+'greater than'=172
+'greenFrom'=89
 'grid'=71
-'hidden'=177
-'hidelabel'=37
-'htmlStyle'=79
-'icon'=34
-'if'=138
-'image'=35
-'imageStyle'=97
-'import'=70
-'indexed'=179
-'indicatorStyle'=86
-'instanceof'=121
-'intervals'=36
-'level'=50
-'lookups'=38
-'lower equal'=169
-'lower than'=170
-'max'=85
-'measure'=48
-'multiselection'=21
-'new'=153
-'not equal'=171
-'null'=156
-'number'=55
-'numberStyle'=83
-'ordinal'=46
+'hidden'=181
+'hidelabel'=40
+'htmlStyle'=81
+'icon'=37
+'if'=144
+'image'=38
+'imageStyle'=99
+'import'=103
+'indexed'=183
+'indicatorStyle'=88
+'instanceof'=128
+'integer'=59
+'intervals'=39
+'level'=53
+'lookups'=41
+'lower equal'=173
+'lower than'=174
+'max'=87
+'measure'=51
+'multiple'=22
+'new'=157
+'not equal'=175
+'notifyOnSelect'=66
+'ns'=107
+'null'=160
+'number'=60
+'numberStyle'=85
+'ordinal'=49
 'package'=15
-'pages'=182
-'path'=40
-'polling'=25
-'preorder'=30
-'priceStyle'=94
-'progressbarStyle'=84
-'prop'=74
-'property'=51
-'quantityStyle'=89
-'redUntil'=88
-'referenced'=61
-'resize'=42
-'return'=159
-'rising'=172
-'rowheader'=24
-'rowheight'=63
-'rows'=181
-'sections'=183
-'selectalways'=23
-'singleselection'=22
-'sloping'=174
-'stagnating'=176
-'static'=150
-'string'=56
-'style'=75
-'super'=152
-'switch'=140
-'synchronized'=162
+'pages'=186
+'path'=43
+'polling'=26
+'preorder'=33
+'priceStyle'=96
+'progressbarStyle'=86
+'prop'=75
+'property'=54
+'quantityStyle'=91
+'redUntil'=90
+'resize'=45
+'return'=163
+'rising'=176
+'rowHeader'=25
+'rowheader'=73
+'rowheight'=64
+'rows'=185
+'sections'=187
+'selectById'=31
+'selectalways'=72
+'selection'=21
+'single'=23
+'sloping'=178
+'stagnating'=180
+'static'=104
+'string'=61
+'style'=76
+'super'=156
+'switch'=146
+'synchronized'=166
 'table'=18
-'taskId'=44
-'textStyle'=96
-'textcolor'=66
-'then'=98
-'throw'=158
-'to'=59
-'toolbar'=28
-'tooltip'=69
-'tooltipPattern'=43
-'trend'=68
-'true'=155
-'try'=160
-'typeof'=157
-'uom'=93
-'up to'=53
-'using'=29
-'val'=148
-'value'=32
-'var'=147
-'while'=145
+'taskId'=47
+'textStyle'=98
+'textcolor'=67
+'then'=100
+'throw'=162
+'toolbar'=29
+'tooltip'=70
+'tooltipPattern'=46
+'trend'=69
+'true'=159
+'try'=164
+'typeof'=161
+'uom'=95
+'upToInteger'=57
+'upToNumber'=56
+'using'=30
+'val'=154
+'value'=35
+'var'=153
+'while'=151
 '{'=16
-'|'=136
-'||'=115
+'|'=143
+'||'=122
 '}'=17
 RULE_ANY_OTHER=14
 RULE_DECIMAL=9
@@ -267,6 +271,10 @@
 T__182=182
 T__183=183
 T__184=184
+T__185=185
+T__186=186
+T__187=187
+T__188=188
 T__18=18
 T__19=19
 T__20=20
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSLLexer.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSLLexer.java
index 8c3d5bb..2a17752 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSLLexer.java
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSLLexer.java
@@ -28,7 +28,6 @@
     public static final int T__144=144;
     public static final int T__143=143;
     public static final int T__146=146;
-    public static final int RULE_HEX=8;
     public static final int T__50=50;
     public static final int T__145=145;
     public static final int T__140=140;
@@ -59,7 +58,6 @@
     public static final int RULE_EVENT_TOPIC=10;
     public static final int RULE_INT=7;
     public static final int T__66=66;
-    public static final int RULE_ML_COMMENT=11;
     public static final int T__67=67;
     public static final int T__129=129;
     public static final int T__68=68;
@@ -107,7 +105,6 @@
     public static final int T__45=45;
     public static final int T__46=46;
     public static final int T__47=47;
-    public static final int RULE_THEME_RESOURCE=6;
     public static final int T__40=40;
     public static final int T__148=148;
     public static final int T__41=41;
@@ -115,24 +112,66 @@
     public static final int T__42=42;
     public static final int T__43=43;
     public static final int T__149=149;
-    public static final int T__91=91;
     public static final int T__100=100;
-    public static final int T__92=92;
-    public static final int T__93=93;
     public static final int T__102=102;
-    public static final int T__94=94;
     public static final int T__101=101;
-    public static final int T__184=184;
-    public static final int T__183=183;
-    public static final int T__90=90;
-    public static final int T__180=180;
-    public static final int T__182=182;
-    public static final int T__181=181;
     public static final int T__19=19;
     public static final int T__15=15;
     public static final int T__16=16;
     public static final int T__17=17;
     public static final int T__18=18;
+    public static final int RULE_DECIMAL=9;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__121=121;
+    public static final int T__124=124;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_SL_COMMENT=12;
+    public static final int T__119=119;
+    public static final int T__118=118;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__114=114;
+    public static final int T__117=117;
+    public static final int T__116=116;
+    public static final int T__111=111;
+    public static final int T__110=110;
+    public static final int T__113=113;
+    public static final int T__112=112;
+    public static final int T__108=108;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__104=104;
+    public static final int T__103=103;
+    public static final int T__106=106;
+    public static final int T__105=105;
+    public static final int RULE_HEX=8;
+    public static final int RULE_ML_COMMENT=11;
+    public static final int RULE_THEME_RESOURCE=6;
+    public static final int T__91=91;
+    public static final int T__188=188;
+    public static final int T__92=92;
+    public static final int T__187=187;
+    public static final int T__93=93;
+    public static final int T__94=94;
+    public static final int T__184=184;
+    public static final int T__183=183;
+    public static final int T__186=186;
+    public static final int T__90=90;
+    public static final int T__185=185;
+    public static final int T__180=180;
+    public static final int T__182=182;
+    public static final int T__181=181;
     public static final int T__99=99;
     public static final int T__95=95;
     public static final int T__96=96;
@@ -148,65 +187,30 @@
     public static final int T__174=174;
     public static final int T__171=171;
     public static final int T__170=170;
-    public static final int RULE_DECIMAL=9;
-    public static final int T__26=26;
-    public static final int T__27=27;
-    public static final int T__28=28;
-    public static final int T__29=29;
-    public static final int T__22=22;
-    public static final int T__23=23;
-    public static final int T__24=24;
-    public static final int T__25=25;
     public static final int T__169=169;
-    public static final int T__20=20;
-    public static final int T__21=21;
-    public static final int T__122=122;
     public static final int T__70=70;
-    public static final int T__121=121;
     public static final int T__71=71;
-    public static final int T__124=124;
     public static final int T__72=72;
-    public static final int T__123=123;
-    public static final int T__120=120;
     public static final int RULE_STRING=5;
-    public static final int RULE_SL_COMMENT=12;
     public static final int T__77=77;
-    public static final int T__119=119;
     public static final int T__78=78;
-    public static final int T__118=118;
     public static final int T__79=79;
     public static final int T__73=73;
-    public static final int T__115=115;
-    public static final int EOF=-1;
     public static final int T__74=74;
-    public static final int T__114=114;
     public static final int T__75=75;
-    public static final int T__117=117;
     public static final int T__76=76;
-    public static final int T__116=116;
     public static final int T__80=80;
-    public static final int T__111=111;
     public static final int T__81=81;
-    public static final int T__110=110;
     public static final int T__82=82;
-    public static final int T__113=113;
     public static final int T__83=83;
-    public static final int T__112=112;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
     public static final int T__88=88;
-    public static final int T__108=108;
     public static final int T__89=89;
-    public static final int T__107=107;
-    public static final int T__109=109;
     public static final int T__84=84;
-    public static final int T__104=104;
     public static final int T__85=85;
-    public static final int T__103=103;
     public static final int T__86=86;
-    public static final int T__106=106;
     public static final int T__87=87;
-    public static final int T__105=105;
 
     // delegates
     // delegators
@@ -219,15 +223,15 @@
         super(input,state);
 
     }
-    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g"; }
+    public String getGrammarFileName() { return "InternalTableDSL.g"; }
 
     // $ANTLR start "T__15"
     public final void mT__15() throws RecognitionException {
         try {
             int _type = T__15;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11:7: ( 'package' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11:9: 'package'
+            // InternalTableDSL.g:11:7: ( 'package' )
+            // InternalTableDSL.g:11:9: 'package'
             {
             match("package"); 
 
@@ -247,8 +251,8 @@
         try {
             int _type = T__16;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:12:7: ( '{' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:12:9: '{'
+            // InternalTableDSL.g:12:7: ( '{' )
+            // InternalTableDSL.g:12:9: '{'
             {
             match('{'); 
 
@@ -267,8 +271,8 @@
         try {
             int _type = T__17;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:13:7: ( '}' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:13:9: '}'
+            // InternalTableDSL.g:13:7: ( '}' )
+            // InternalTableDSL.g:13:9: '}'
             {
             match('}'); 
 
@@ -287,8 +291,8 @@
         try {
             int _type = T__18;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:14:7: ( 'table' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:14:9: 'table'
+            // InternalTableDSL.g:14:7: ( 'table' )
+            // InternalTableDSL.g:14:9: 'table'
             {
             match("table"); 
 
@@ -308,10 +312,10 @@
         try {
             int _type = T__19;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:15:7: ( 'described by' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:15:9: 'described by'
+            // InternalTableDSL.g:15:7: ( 'describedBy' )
+            // InternalTableDSL.g:15:9: 'describedBy'
             {
-            match("described by"); 
+            match("describedBy"); 
 
 
             }
@@ -329,8 +333,8 @@
         try {
             int _type = T__20;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:16:7: ( 'as' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:16:9: 'as'
+            // InternalTableDSL.g:16:7: ( 'as' )
+            // InternalTableDSL.g:16:9: 'as'
             {
             match("as"); 
 
@@ -350,10 +354,10 @@
         try {
             int _type = T__21;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:17:7: ( 'multiselection' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:17:9: 'multiselection'
+            // InternalTableDSL.g:17:7: ( 'selection' )
+            // InternalTableDSL.g:17:9: 'selection'
             {
-            match("multiselection"); 
+            match("selection"); 
 
 
             }
@@ -371,10 +375,10 @@
         try {
             int _type = T__22;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:18:7: ( 'singleselection' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:18:9: 'singleselection'
+            // InternalTableDSL.g:18:7: ( 'multiple' )
+            // InternalTableDSL.g:18:9: 'multiple'
             {
-            match("singleselection"); 
+            match("multiple"); 
 
 
             }
@@ -392,10 +396,10 @@
         try {
             int _type = T__23;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:19:7: ( 'selectalways' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:19:9: 'selectalways'
+            // InternalTableDSL.g:19:7: ( 'single' )
+            // InternalTableDSL.g:19:9: 'single'
             {
-            match("selectalways"); 
+            match("single"); 
 
 
             }
@@ -413,10 +417,10 @@
         try {
             int _type = T__24;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:20:7: ( 'rowheader' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:20:9: 'rowheader'
+            // InternalTableDSL.g:20:7: ( 'alwaysSelected' )
+            // InternalTableDSL.g:20:9: 'alwaysSelected'
             {
-            match("rowheader"); 
+            match("alwaysSelected"); 
 
 
             }
@@ -434,10 +438,10 @@
         try {
             int _type = T__25;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:21:7: ( 'polling' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:21:9: 'polling'
+            // InternalTableDSL.g:21:7: ( 'rowHeader' )
+            // InternalTableDSL.g:21:9: 'rowHeader'
             {
-            match("polling"); 
+            match("rowHeader"); 
 
 
             }
@@ -455,10 +459,10 @@
         try {
             int _type = T__26;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:22:7: ( 'filtering' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:22:9: 'filtering'
+            // InternalTableDSL.g:22:7: ( 'polling' )
+            // InternalTableDSL.g:22:9: 'polling'
             {
-            match("filtering"); 
+            match("polling"); 
 
 
             }
@@ -476,10 +480,10 @@
         try {
             int _type = T__27;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:23:7: ( 'embedded' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:23:9: 'embedded'
+            // InternalTableDSL.g:23:7: ( 'filtering' )
+            // InternalTableDSL.g:23:9: 'filtering'
             {
-            match("embedded"); 
+            match("filtering"); 
 
 
             }
@@ -497,10 +501,10 @@
         try {
             int _type = T__28;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:24:7: ( 'toolbar' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:24:9: 'toolbar'
+            // InternalTableDSL.g:24:7: ( 'embedded' )
+            // InternalTableDSL.g:24:9: 'embedded'
             {
-            match("toolbar"); 
+            match("embedded"); 
 
 
             }
@@ -518,10 +522,10 @@
         try {
             int _type = T__29;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:25:7: ( 'using' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:25:9: 'using'
+            // InternalTableDSL.g:25:7: ( 'toolbar' )
+            // InternalTableDSL.g:25:9: 'toolbar'
             {
-            match("using"); 
+            match("toolbar"); 
 
 
             }
@@ -539,10 +543,10 @@
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:26:7: ( 'preorder' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:26:9: 'preorder'
+            // InternalTableDSL.g:26:7: ( 'using' )
+            // InternalTableDSL.g:26:9: 'using'
             {
-            match("preorder"); 
+            match("using"); 
 
 
             }
@@ -560,10 +564,10 @@
         try {
             int _type = T__31;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:27:7: ( 'ascending' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:27:9: 'ascending'
+            // InternalTableDSL.g:27:7: ( 'selectById' )
+            // InternalTableDSL.g:27:9: 'selectById'
             {
-            match("ascending"); 
+            match("selectById"); 
 
 
             }
@@ -581,10 +585,10 @@
         try {
             int _type = T__32;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:28:7: ( 'value' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:28:9: 'value'
+            // InternalTableDSL.g:28:7: ( 'bean' )
+            // InternalTableDSL.g:28:9: 'bean'
             {
-            match("value"); 
+            match("bean"); 
 
 
             }
@@ -602,10 +606,10 @@
         try {
             int _type = T__33;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:29:7: ( 'collapse' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:29:9: 'collapse'
+            // InternalTableDSL.g:29:7: ( 'preorder' )
+            // InternalTableDSL.g:29:9: 'preorder'
             {
-            match("collapse"); 
+            match("preorder"); 
 
 
             }
@@ -623,10 +627,10 @@
         try {
             int _type = T__34;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:30:7: ( 'icon' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:30:9: 'icon'
+            // InternalTableDSL.g:30:7: ( 'ascending' )
+            // InternalTableDSL.g:30:9: 'ascending'
             {
-            match("icon"); 
+            match("ascending"); 
 
 
             }
@@ -644,10 +648,10 @@
         try {
             int _type = T__35;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:31:7: ( 'image' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:31:9: 'image'
+            // InternalTableDSL.g:31:7: ( 'value' )
+            // InternalTableDSL.g:31:9: 'value'
             {
-            match("image"); 
+            match("value"); 
 
 
             }
@@ -665,10 +669,10 @@
         try {
             int _type = T__36;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:32:7: ( 'intervals' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:32:9: 'intervals'
+            // InternalTableDSL.g:32:7: ( 'collapse' )
+            // InternalTableDSL.g:32:9: 'collapse'
             {
-            match("intervals"); 
+            match("collapse"); 
 
 
             }
@@ -686,10 +690,10 @@
         try {
             int _type = T__37;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:33:7: ( 'hidelabel' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:33:9: 'hidelabel'
+            // InternalTableDSL.g:33:7: ( 'icon' )
+            // InternalTableDSL.g:33:9: 'icon'
             {
-            match("hidelabel"); 
+            match("icon"); 
 
 
             }
@@ -707,10 +711,10 @@
         try {
             int _type = T__38;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:34:7: ( 'lookups' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:34:9: 'lookups'
+            // InternalTableDSL.g:34:7: ( 'image' )
+            // InternalTableDSL.g:34:9: 'image'
             {
-            match("lookups"); 
+            match("image"); 
 
 
             }
@@ -728,10 +732,10 @@
         try {
             int _type = T__39;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:35:7: ( 'formatter' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:35:9: 'formatter'
+            // InternalTableDSL.g:35:7: ( 'intervals' )
+            // InternalTableDSL.g:35:9: 'intervals'
             {
-            match("formatter"); 
+            match("intervals"); 
 
 
             }
@@ -749,10 +753,10 @@
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:36:7: ( 'path' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:36:9: 'path'
+            // InternalTableDSL.g:36:7: ( 'hidelabel' )
+            // InternalTableDSL.g:36:9: 'hidelabel'
             {
-            match("path"); 
+            match("hidelabel"); 
 
 
             }
@@ -770,10 +774,10 @@
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:37:7: ( 'dynamic' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:37:9: 'dynamic'
+            // InternalTableDSL.g:37:7: ( 'lookups' )
+            // InternalTableDSL.g:37:9: 'lookups'
             {
-            match("dynamic"); 
+            match("lookups"); 
 
 
             }
@@ -791,10 +795,10 @@
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:38:7: ( 'resize' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:38:9: 'resize'
+            // InternalTableDSL.g:38:7: ( 'formatter' )
+            // InternalTableDSL.g:38:9: 'formatter'
             {
-            match("resize"); 
+            match("formatter"); 
 
 
             }
@@ -812,10 +816,10 @@
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:39:7: ( 'tooltipPattern' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:39:9: 'tooltipPattern'
+            // InternalTableDSL.g:39:7: ( 'path' )
+            // InternalTableDSL.g:39:9: 'path'
             {
-            match("tooltipPattern"); 
+            match("path"); 
 
 
             }
@@ -833,10 +837,10 @@
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:40:7: ( 'taskId' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:40:9: 'taskId'
+            // InternalTableDSL.g:40:7: ( 'dynamic' )
+            // InternalTableDSL.g:40:9: 'dynamic'
             {
-            match("taskId"); 
+            match("dynamic"); 
 
 
             }
@@ -854,10 +858,10 @@
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:41:7: ( 'allColumns' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:41:9: 'allColumns'
+            // InternalTableDSL.g:41:7: ( 'resize' )
+            // InternalTableDSL.g:41:9: 'resize'
             {
-            match("allColumns"); 
+            match("resize"); 
 
 
             }
@@ -875,10 +879,10 @@
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:42:7: ( 'ordinal' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:42:9: 'ordinal'
+            // InternalTableDSL.g:42:7: ( 'tooltipPattern' )
+            // InternalTableDSL.g:42:9: 'tooltipPattern'
             {
-            match("ordinal"); 
+            match("tooltipPattern"); 
 
 
             }
@@ -896,10 +900,10 @@
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:43:7: ( 'column' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:43:9: 'column'
+            // InternalTableDSL.g:43:7: ( 'taskId' )
+            // InternalTableDSL.g:43:9: 'taskId'
             {
-            match("column"); 
+            match("taskId"); 
 
 
             }
@@ -917,10 +921,10 @@
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:44:7: ( 'measure' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:44:9: 'measure'
+            // InternalTableDSL.g:44:7: ( 'allColumns' )
+            // InternalTableDSL.g:44:9: 'allColumns'
             {
-            match("measure"); 
+            match("allColumns"); 
 
 
             }
@@ -938,10 +942,10 @@
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:45:7: ( 'derived' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:45:9: 'derived'
+            // InternalTableDSL.g:45:7: ( 'ordinal' )
+            // InternalTableDSL.g:45:9: 'ordinal'
             {
-            match("derived"); 
+            match("ordinal"); 
 
 
             }
@@ -959,10 +963,10 @@
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:46:7: ( 'level' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:46:9: 'level'
+            // InternalTableDSL.g:46:7: ( 'column' )
+            // InternalTableDSL.g:46:9: 'column'
             {
-            match("level"); 
+            match("column"); 
 
 
             }
@@ -980,10 +984,10 @@
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:47:7: ( 'property' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:47:9: 'property'
+            // InternalTableDSL.g:47:7: ( 'measure' )
+            // InternalTableDSL.g:47:9: 'measure'
             {
-            match("property"); 
+            match("measure"); 
 
 
             }
@@ -1001,10 +1005,10 @@
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:48:7: ( 'aggregation' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:48:9: 'aggregation'
+            // InternalTableDSL.g:48:7: ( 'derived' )
+            // InternalTableDSL.g:48:9: 'derived'
             {
-            match("aggregation"); 
+            match("derived"); 
 
 
             }
@@ -1022,10 +1026,10 @@
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:49:7: ( 'up to' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:49:9: 'up to'
+            // InternalTableDSL.g:49:7: ( 'level' )
+            // InternalTableDSL.g:49:9: 'level'
             {
-            match("up to"); 
+            match("level"); 
 
 
             }
@@ -1043,10 +1047,10 @@
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:50:7: ( 'days in past' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:50:9: 'days in past'
+            // InternalTableDSL.g:50:7: ( 'property' )
+            // InternalTableDSL.g:50:9: 'property'
             {
-            match("days in past"); 
+            match("property"); 
 
 
             }
@@ -1064,10 +1068,10 @@
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:51:7: ( 'number' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:51:9: 'number'
+            // InternalTableDSL.g:51:7: ( 'aggregation' )
+            // InternalTableDSL.g:51:9: 'aggregation'
             {
-            match("number"); 
+            match("aggregation"); 
 
 
             }
@@ -1085,10 +1089,10 @@
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:52:7: ( 'string' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:52:9: 'string'
+            // InternalTableDSL.g:52:7: ( 'upToNumber' )
+            // InternalTableDSL.g:52:9: 'upToNumber'
             {
-            match("string"); 
+            match("upToNumber"); 
 
 
             }
@@ -1106,10 +1110,10 @@
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:53:7: ( 'datamart' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:53:9: 'datamart'
+            // InternalTableDSL.g:53:7: ( 'upToInteger' )
+            // InternalTableDSL.g:53:9: 'upToInteger'
             {
-            match("datamart"); 
+            match("upToInteger"); 
 
 
             }
@@ -1127,10 +1131,10 @@
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:54:7: ( 'broker' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:54:9: 'broker'
+            // InternalTableDSL.g:54:7: ( 'daysInPast' )
+            // InternalTableDSL.g:54:9: 'daysInPast'
             {
-            match("broker"); 
+            match("daysInPast"); 
 
 
             }
@@ -1148,10 +1152,10 @@
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:55:7: ( 'to' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:55:9: 'to'
+            // InternalTableDSL.g:55:7: ( 'integer' )
+            // InternalTableDSL.g:55:9: 'integer'
             {
-            match("to"); 
+            match("integer"); 
 
 
             }
@@ -1169,10 +1173,10 @@
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:56:7: ( 'filter' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:56:9: 'filter'
+            // InternalTableDSL.g:56:7: ( 'number' )
+            // InternalTableDSL.g:56:9: 'number'
             {
-            match("filter"); 
+            match("number"); 
 
 
             }
@@ -1190,10 +1194,10 @@
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:57:7: ( 'referenced' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:57:9: 'referenced'
+            // InternalTableDSL.g:57:7: ( 'string' )
+            // InternalTableDSL.g:57:9: 'string'
             {
-            match("referenced"); 
+            match("string"); 
 
 
             }
@@ -1211,10 +1215,10 @@
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:58:7: ( 'axis' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:58:9: 'axis'
+            // InternalTableDSL.g:58:7: ( 'datamart' )
+            // InternalTableDSL.g:58:9: 'datamart'
             {
-            match("axis"); 
+            match("datamart"); 
 
 
             }
@@ -1232,10 +1236,10 @@
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:59:7: ( 'rowheight' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:59:9: 'rowheight'
+            // InternalTableDSL.g:59:7: ( 'axis' )
+            // InternalTableDSL.g:59:9: 'axis'
             {
-            match("rowheight"); 
+            match("axis"); 
 
 
             }
@@ -1253,10 +1257,10 @@
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:60:7: ( 'details' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:60:9: 'details'
+            // InternalTableDSL.g:60:7: ( 'rowheight' )
+            // InternalTableDSL.g:60:9: 'rowheight'
             {
-            match("details"); 
+            match("rowheight"); 
 
 
             }
@@ -1274,10 +1278,10 @@
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:61:7: ( 'events' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:61:9: 'events'
+            // InternalTableDSL.g:61:7: ( 'details' )
+            // InternalTableDSL.g:61:9: 'details'
             {
-            match("events"); 
+            match("details"); 
 
 
             }
@@ -1295,10 +1299,10 @@
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:62:7: ( 'textcolor' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:62:9: 'textcolor'
+            // InternalTableDSL.g:62:7: ( 'notifyOnSelect' )
+            // InternalTableDSL.g:62:9: 'notifyOnSelect'
             {
-            match("textcolor"); 
+            match("notifyOnSelect"); 
 
 
             }
@@ -1316,10 +1320,10 @@
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:63:7: ( 'cellcolor' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:63:9: 'cellcolor'
+            // InternalTableDSL.g:63:7: ( 'textcolor' )
+            // InternalTableDSL.g:63:9: 'textcolor'
             {
-            match("cellcolor"); 
+            match("textcolor"); 
 
 
             }
@@ -1337,10 +1341,10 @@
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:64:7: ( 'trend' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:64:9: 'trend'
+            // InternalTableDSL.g:64:7: ( 'cellcolor' )
+            // InternalTableDSL.g:64:9: 'cellcolor'
             {
-            match("trend"); 
+            match("cellcolor"); 
 
 
             }
@@ -1358,10 +1362,10 @@
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:65:7: ( 'tooltip' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:65:9: 'tooltip'
+            // InternalTableDSL.g:65:7: ( 'trend' )
+            // InternalTableDSL.g:65:9: 'trend'
             {
-            match("tooltip"); 
+            match("trend"); 
 
 
             }
@@ -1379,10 +1383,10 @@
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:66:7: ( 'import' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:66:9: 'import'
+            // InternalTableDSL.g:66:7: ( 'tooltip' )
+            // InternalTableDSL.g:66:9: 'tooltip'
             {
-            match("import"); 
+            match("tooltip"); 
 
 
             }
@@ -1400,8 +1404,8 @@
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:67:7: ( 'grid' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:67:9: 'grid'
+            // InternalTableDSL.g:67:7: ( 'grid' )
+            // InternalTableDSL.g:67:9: 'grid'
             {
             match("grid"); 
 
@@ -1421,10 +1425,10 @@
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:68:7: ( 'dto' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:68:9: 'dto'
+            // InternalTableDSL.g:68:7: ( 'selectalways' )
+            // InternalTableDSL.g:68:9: 'selectalways'
             {
-            match("dto"); 
+            match("selectalways"); 
 
 
             }
@@ -1442,10 +1446,10 @@
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:69:7: ( 'editable' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:69:9: 'editable'
+            // InternalTableDSL.g:69:7: ( 'rowheader' )
+            // InternalTableDSL.g:69:9: 'rowheader'
             {
-            match("editable"); 
+            match("rowheader"); 
 
 
             }
@@ -1463,10 +1467,10 @@
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:70:7: ( 'prop' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:70:9: 'prop'
+            // InternalTableDSL.g:70:7: ( 'editable' )
+            // InternalTableDSL.g:70:9: 'editable'
             {
-            match("prop"); 
+            match("editable"); 
 
 
             }
@@ -1484,10 +1488,10 @@
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:71:7: ( 'style' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:71:9: 'style'
+            // InternalTableDSL.g:71:7: ( 'prop' )
+            // InternalTableDSL.g:71:9: 'prop'
             {
-            match("style"); 
+            match("prop"); 
 
 
             }
@@ -1505,10 +1509,11 @@
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:72:7: ( '.' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:72:9: '.'
+            // InternalTableDSL.g:72:7: ( 'style' )
+            // InternalTableDSL.g:72:9: 'style'
             {
-            match('.'); 
+            match("style"); 
+
 
             }
 
@@ -1525,10 +1530,10 @@
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:73:7: ( 'buttonStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:73:9: 'buttonStyle'
+            // InternalTableDSL.g:73:7: ( 'dto' )
+            // InternalTableDSL.g:73:9: 'dto'
             {
-            match("buttonStyle"); 
+            match("dto"); 
 
 
             }
@@ -1546,11 +1551,10 @@
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:74:7: ( 'eventTopic' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:74:9: 'eventTopic'
+            // InternalTableDSL.g:74:7: ( '.' )
+            // InternalTableDSL.g:74:9: '.'
             {
-            match("eventTopic"); 
-
+            match('.'); 
 
             }
 
@@ -1567,10 +1571,10 @@
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:75:7: ( 'htmlStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:75:9: 'htmlStyle'
+            // InternalTableDSL.g:75:7: ( 'buttonStyle' )
+            // InternalTableDSL.g:75:9: 'buttonStyle'
             {
-            match("htmlStyle"); 
+            match("buttonStyle"); 
 
 
             }
@@ -1588,10 +1592,10 @@
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:76:7: ( 'boolStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:76:9: 'boolStyle'
+            // InternalTableDSL.g:76:7: ( 'eventTopic' )
+            // InternalTableDSL.g:76:9: 'eventTopic'
             {
-            match("boolStyle"); 
+            match("eventTopic"); 
 
 
             }
@@ -1609,10 +1613,10 @@
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:77:7: ( 'dateStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:77:9: 'dateStyle'
+            // InternalTableDSL.g:77:7: ( 'htmlStyle' )
+            // InternalTableDSL.g:77:9: 'htmlStyle'
             {
-            match("dateStyle"); 
+            match("htmlStyle"); 
 
 
             }
@@ -1630,10 +1634,10 @@
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:78:7: ( 'format' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:78:9: 'format'
+            // InternalTableDSL.g:78:7: ( 'boolStyle' )
+            // InternalTableDSL.g:78:9: 'boolStyle'
             {
-            match("format"); 
+            match("boolStyle"); 
 
 
             }
@@ -1651,10 +1655,10 @@
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:79:7: ( 'numberStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:79:9: 'numberStyle'
+            // InternalTableDSL.g:79:7: ( 'dateStyle' )
+            // InternalTableDSL.g:79:9: 'dateStyle'
             {
-            match("numberStyle"); 
+            match("dateStyle"); 
 
 
             }
@@ -1672,10 +1676,10 @@
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:80:7: ( 'progressbarStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:80:9: 'progressbarStyle'
+            // InternalTableDSL.g:80:7: ( 'format' )
+            // InternalTableDSL.g:80:9: 'format'
             {
-            match("progressbarStyle"); 
+            match("format"); 
 
 
             }
@@ -1693,10 +1697,10 @@
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:81:7: ( 'max' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:81:9: 'max'
+            // InternalTableDSL.g:81:7: ( 'numberStyle' )
+            // InternalTableDSL.g:81:9: 'numberStyle'
             {
-            match("max"); 
+            match("numberStyle"); 
 
 
             }
@@ -1714,10 +1718,10 @@
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:82:7: ( 'indicatorStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:82:9: 'indicatorStyle'
+            // InternalTableDSL.g:82:7: ( 'progressbarStyle' )
+            // InternalTableDSL.g:82:9: 'progressbarStyle'
             {
-            match("indicatorStyle"); 
+            match("progressbarStyle"); 
 
 
             }
@@ -1735,10 +1739,10 @@
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:83:7: ( 'greenFrom' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:83:9: 'greenFrom'
+            // InternalTableDSL.g:83:7: ( 'max' )
+            // InternalTableDSL.g:83:9: 'max'
             {
-            match("greenFrom"); 
+            match("max"); 
 
 
             }
@@ -1756,10 +1760,10 @@
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:84:7: ( 'redUntil' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:84:9: 'redUntil'
+            // InternalTableDSL.g:84:7: ( 'indicatorStyle' )
+            // InternalTableDSL.g:84:9: 'indicatorStyle'
             {
-            match("redUntil"); 
+            match("indicatorStyle"); 
 
 
             }
@@ -1777,10 +1781,10 @@
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:85:7: ( 'quantityStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:85:9: 'quantityStyle'
+            // InternalTableDSL.g:85:7: ( 'greenFrom' )
+            // InternalTableDSL.g:85:9: 'greenFrom'
             {
-            match("quantityStyle"); 
+            match("greenFrom"); 
 
 
             }
@@ -1798,10 +1802,11 @@
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:86:7: ( '=' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:86:9: '='
+            // InternalTableDSL.g:86:7: ( 'redUntil' )
+            // InternalTableDSL.g:86:9: 'redUntil'
             {
-            match('='); 
+            match("redUntil"); 
+
 
             }
 
@@ -1818,10 +1823,11 @@
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:87:7: ( '(' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:87:9: '('
+            // InternalTableDSL.g:87:7: ( 'quantityStyle' )
+            // InternalTableDSL.g:87:9: 'quantityStyle'
             {
-            match('('); 
+            match("quantityStyle"); 
+
 
             }
 
@@ -1838,10 +1844,10 @@
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:88:7: ( ')' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:88:9: ')'
+            // InternalTableDSL.g:88:7: ( '=' )
+            // InternalTableDSL.g:88:9: '='
             {
-            match(')'); 
+            match('='); 
 
             }
 
@@ -1858,11 +1864,10 @@
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:89:7: ( 'uom' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:89:9: 'uom'
+            // InternalTableDSL.g:89:7: ( '(' )
+            // InternalTableDSL.g:89:9: '('
             {
-            match("uom"); 
-
+            match('('); 
 
             }
 
@@ -1879,11 +1884,10 @@
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:90:7: ( 'priceStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:90:9: 'priceStyle'
+            // InternalTableDSL.g:90:7: ( ')' )
+            // InternalTableDSL.g:90:9: ')'
             {
-            match("priceStyle"); 
-
+            match(')'); 
 
             }
 
@@ -1900,10 +1904,10 @@
         try {
             int _type = T__95;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:91:7: ( 'currency' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:91:9: 'currency'
+            // InternalTableDSL.g:91:7: ( 'uom' )
+            // InternalTableDSL.g:91:9: 'uom'
             {
-            match("currency"); 
+            match("uom"); 
 
 
             }
@@ -1921,10 +1925,10 @@
         try {
             int _type = T__96;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:92:7: ( 'textStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:92:9: 'textStyle'
+            // InternalTableDSL.g:92:7: ( 'priceStyle' )
+            // InternalTableDSL.g:92:9: 'priceStyle'
             {
-            match("textStyle"); 
+            match("priceStyle"); 
 
 
             }
@@ -1942,10 +1946,10 @@
         try {
             int _type = T__97;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:93:7: ( 'imageStyle' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:93:9: 'imageStyle'
+            // InternalTableDSL.g:93:7: ( 'currency' )
+            // InternalTableDSL.g:93:9: 'currency'
             {
-            match("imageStyle"); 
+            match("currency"); 
 
 
             }
@@ -1963,10 +1967,10 @@
         try {
             int _type = T__98;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:94:7: ( 'then' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:94:9: 'then'
+            // InternalTableDSL.g:94:7: ( 'textStyle' )
+            // InternalTableDSL.g:94:9: 'textStyle'
             {
-            match("then"); 
+            match("textStyle"); 
 
 
             }
@@ -1984,10 +1988,11 @@
         try {
             int _type = T__99;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:95:7: ( '+' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:95:9: '+'
+            // InternalTableDSL.g:95:7: ( 'imageStyle' )
+            // InternalTableDSL.g:95:9: 'imageStyle'
             {
-            match('+'); 
+            match("imageStyle"); 
+
 
             }
 
@@ -2004,10 +2009,11 @@
         try {
             int _type = T__100;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:96:8: ( '-' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:96:10: '-'
+            // InternalTableDSL.g:96:8: ( 'then' )
+            // InternalTableDSL.g:96:10: 'then'
             {
-            match('-'); 
+            match("then"); 
+
 
             }
 
@@ -2024,10 +2030,10 @@
         try {
             int _type = T__101;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:97:8: ( '*' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:97:10: '*'
+            // InternalTableDSL.g:97:8: ( '+' )
+            // InternalTableDSL.g:97:10: '+'
             {
-            match('*'); 
+            match('+'); 
 
             }
 
@@ -2044,10 +2050,10 @@
         try {
             int _type = T__102;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:98:8: ( '@' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:98:10: '@'
+            // InternalTableDSL.g:98:8: ( '-' )
+            // InternalTableDSL.g:98:10: '-'
             {
-            match('@'); 
+            match('-'); 
 
             }
 
@@ -2064,10 +2070,11 @@
         try {
             int _type = T__103;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:99:8: ( ',' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:99:10: ','
+            // InternalTableDSL.g:99:8: ( 'import' )
+            // InternalTableDSL.g:99:10: 'import'
             {
-            match(','); 
+            match("import"); 
+
 
             }
 
@@ -2084,10 +2091,11 @@
         try {
             int _type = T__104;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:100:8: ( '#' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:100:10: '#'
+            // InternalTableDSL.g:100:8: ( 'static' )
+            // InternalTableDSL.g:100:10: 'static'
             {
-            match('#'); 
+            match("static"); 
+
 
             }
 
@@ -2104,10 +2112,11 @@
         try {
             int _type = T__105;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:101:8: ( '[' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:101:10: '['
+            // InternalTableDSL.g:101:8: ( 'extension' )
+            // InternalTableDSL.g:101:10: 'extension'
             {
-            match('['); 
+            match("extension"); 
+
 
             }
 
@@ -2124,10 +2133,10 @@
         try {
             int _type = T__106;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:102:8: ( ']' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:102:10: ']'
+            // InternalTableDSL.g:102:8: ( '*' )
+            // InternalTableDSL.g:102:10: '*'
             {
-            match(']'); 
+            match('*'); 
 
             }
 
@@ -2144,10 +2153,10 @@
         try {
             int _type = T__107;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:103:8: ( '+=' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:103:10: '+='
+            // InternalTableDSL.g:103:8: ( 'ns' )
+            // InternalTableDSL.g:103:10: 'ns'
             {
-            match("+="); 
+            match("ns"); 
 
 
             }
@@ -2165,11 +2174,10 @@
         try {
             int _type = T__108;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:104:8: ( '-=' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:104:10: '-='
+            // InternalTableDSL.g:104:8: ( ';' )
+            // InternalTableDSL.g:104:10: ';'
             {
-            match("-="); 
-
+            match(';'); 
 
             }
 
@@ -2186,11 +2194,10 @@
         try {
             int _type = T__109;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:105:8: ( '*=' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:105:10: '*='
+            // InternalTableDSL.g:105:8: ( '@' )
+            // InternalTableDSL.g:105:10: '@'
             {
-            match("*="); 
-
+            match('@'); 
 
             }
 
@@ -2207,11 +2214,10 @@
         try {
             int _type = T__110;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:106:8: ( '/=' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:106:10: '/='
+            // InternalTableDSL.g:106:8: ( ',' )
+            // InternalTableDSL.g:106:10: ','
             {
-            match("/="); 
-
+            match(','); 
 
             }
 
@@ -2228,11 +2234,10 @@
         try {
             int _type = T__111;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:107:8: ( '%=' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:107:10: '%='
+            // InternalTableDSL.g:107:8: ( '#' )
+            // InternalTableDSL.g:107:10: '#'
             {
-            match("%="); 
-
+            match('#'); 
 
             }
 
@@ -2249,10 +2254,10 @@
         try {
             int _type = T__112;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:108:8: ( '<' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:108:10: '<'
+            // InternalTableDSL.g:108:8: ( '[' )
+            // InternalTableDSL.g:108:10: '['
             {
-            match('<'); 
+            match('['); 
 
             }
 
@@ -2269,10 +2274,10 @@
         try {
             int _type = T__113;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:109:8: ( '>' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:109:10: '>'
+            // InternalTableDSL.g:109:8: ( ']' )
+            // InternalTableDSL.g:109:10: ']'
             {
-            match('>'); 
+            match(']'); 
 
             }
 
@@ -2289,10 +2294,10 @@
         try {
             int _type = T__114;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:110:8: ( '>=' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:110:10: '>='
+            // InternalTableDSL.g:110:8: ( '+=' )
+            // InternalTableDSL.g:110:10: '+='
             {
-            match(">="); 
+            match("+="); 
 
 
             }
@@ -2310,10 +2315,10 @@
         try {
             int _type = T__115;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:111:8: ( '||' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:111:10: '||'
+            // InternalTableDSL.g:111:8: ( '-=' )
+            // InternalTableDSL.g:111:10: '-='
             {
-            match("||"); 
+            match("-="); 
 
 
             }
@@ -2331,10 +2336,10 @@
         try {
             int _type = T__116;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:112:8: ( '&&' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:112:10: '&&'
+            // InternalTableDSL.g:112:8: ( '*=' )
+            // InternalTableDSL.g:112:10: '*='
             {
-            match("&&"); 
+            match("*="); 
 
 
             }
@@ -2352,10 +2357,10 @@
         try {
             int _type = T__117;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:113:8: ( '==' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:113:10: '=='
+            // InternalTableDSL.g:113:8: ( '/=' )
+            // InternalTableDSL.g:113:10: '/='
             {
-            match("=="); 
+            match("/="); 
 
 
             }
@@ -2373,10 +2378,10 @@
         try {
             int _type = T__118;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:114:8: ( '!=' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:114:10: '!='
+            // InternalTableDSL.g:114:8: ( '%=' )
+            // InternalTableDSL.g:114:10: '%='
             {
-            match("!="); 
+            match("%="); 
 
 
             }
@@ -2394,11 +2399,10 @@
         try {
             int _type = T__119;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:115:8: ( '===' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:115:10: '==='
+            // InternalTableDSL.g:115:8: ( '<' )
+            // InternalTableDSL.g:115:10: '<'
             {
-            match("==="); 
-
+            match('<'); 
 
             }
 
@@ -2415,11 +2419,10 @@
         try {
             int _type = T__120;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:116:8: ( '!==' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:116:10: '!=='
+            // InternalTableDSL.g:116:8: ( '>' )
+            // InternalTableDSL.g:116:10: '>'
             {
-            match("!=="); 
-
+            match('>'); 
 
             }
 
@@ -2436,10 +2439,10 @@
         try {
             int _type = T__121;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:117:8: ( 'instanceof' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:117:10: 'instanceof'
+            // InternalTableDSL.g:117:8: ( '>=' )
+            // InternalTableDSL.g:117:10: '>='
             {
-            match("instanceof"); 
+            match(">="); 
 
 
             }
@@ -2457,10 +2460,10 @@
         try {
             int _type = T__122;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:118:8: ( '->' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:118:10: '->'
+            // InternalTableDSL.g:118:8: ( '||' )
+            // InternalTableDSL.g:118:10: '||'
             {
-            match("->"); 
+            match("||"); 
 
 
             }
@@ -2478,10 +2481,10 @@
         try {
             int _type = T__123;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:119:8: ( '..<' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:119:10: '..<'
+            // InternalTableDSL.g:119:8: ( '&&' )
+            // InternalTableDSL.g:119:10: '&&'
             {
-            match("..<"); 
+            match("&&"); 
 
 
             }
@@ -2499,10 +2502,10 @@
         try {
             int _type = T__124;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:120:8: ( '..' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:120:10: '..'
+            // InternalTableDSL.g:120:8: ( '==' )
+            // InternalTableDSL.g:120:10: '=='
             {
-            match(".."); 
+            match("=="); 
 
 
             }
@@ -2520,10 +2523,10 @@
         try {
             int _type = T__125;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:121:8: ( '=>' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:121:10: '=>'
+            // InternalTableDSL.g:121:8: ( '!=' )
+            // InternalTableDSL.g:121:10: '!='
             {
-            match("=>"); 
+            match("!="); 
 
 
             }
@@ -2541,10 +2544,10 @@
         try {
             int _type = T__126;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:122:8: ( '<>' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:122:10: '<>'
+            // InternalTableDSL.g:122:8: ( '===' )
+            // InternalTableDSL.g:122:10: '==='
             {
-            match("<>"); 
+            match("==="); 
 
 
             }
@@ -2562,10 +2565,10 @@
         try {
             int _type = T__127;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:123:8: ( '?:' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:123:10: '?:'
+            // InternalTableDSL.g:123:8: ( '!==' )
+            // InternalTableDSL.g:123:10: '!=='
             {
-            match("?:"); 
+            match("!=="); 
 
 
             }
@@ -2583,10 +2586,10 @@
         try {
             int _type = T__128;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:124:8: ( '**' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:124:10: '**'
+            // InternalTableDSL.g:124:8: ( 'instanceof' )
+            // InternalTableDSL.g:124:10: 'instanceof'
             {
-            match("**"); 
+            match("instanceof"); 
 
 
             }
@@ -2604,10 +2607,11 @@
         try {
             int _type = T__129;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:125:8: ( '/' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:125:10: '/'
+            // InternalTableDSL.g:125:8: ( '->' )
+            // InternalTableDSL.g:125:10: '->'
             {
-            match('/'); 
+            match("->"); 
+
 
             }
 
@@ -2624,10 +2628,11 @@
         try {
             int _type = T__130;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:126:8: ( '%' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:126:10: '%'
+            // InternalTableDSL.g:126:8: ( '..<' )
+            // InternalTableDSL.g:126:10: '..<'
             {
-            match('%'); 
+            match("..<"); 
+
 
             }
 
@@ -2644,10 +2649,11 @@
         try {
             int _type = T__131;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:127:8: ( '!' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:127:10: '!'
+            // InternalTableDSL.g:127:8: ( '..' )
+            // InternalTableDSL.g:127:10: '..'
             {
-            match('!'); 
+            match(".."); 
+
 
             }
 
@@ -2664,10 +2670,10 @@
         try {
             int _type = T__132;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:128:8: ( '++' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:128:10: '++'
+            // InternalTableDSL.g:128:8: ( '=>' )
+            // InternalTableDSL.g:128:10: '=>'
             {
-            match("++"); 
+            match("=>"); 
 
 
             }
@@ -2685,10 +2691,10 @@
         try {
             int _type = T__133;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:129:8: ( '--' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:129:10: '--'
+            // InternalTableDSL.g:129:8: ( '<>' )
+            // InternalTableDSL.g:129:10: '<>'
             {
-            match("--"); 
+            match("<>"); 
 
 
             }
@@ -2706,10 +2712,10 @@
         try {
             int _type = T__134;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:130:8: ( '::' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:130:10: '::'
+            // InternalTableDSL.g:130:8: ( '?:' )
+            // InternalTableDSL.g:130:10: '?:'
             {
-            match("::"); 
+            match("?:"); 
 
 
             }
@@ -2727,10 +2733,10 @@
         try {
             int _type = T__135;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:131:8: ( '?.' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:131:10: '?.'
+            // InternalTableDSL.g:131:8: ( '**' )
+            // InternalTableDSL.g:131:10: '**'
             {
-            match("?."); 
+            match("**"); 
 
 
             }
@@ -2748,10 +2754,10 @@
         try {
             int _type = T__136;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:132:8: ( '|' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:132:10: '|'
+            // InternalTableDSL.g:132:8: ( '/' )
+            // InternalTableDSL.g:132:10: '/'
             {
-            match('|'); 
+            match('/'); 
 
             }
 
@@ -2768,10 +2774,10 @@
         try {
             int _type = T__137;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:133:8: ( ';' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:133:10: ';'
+            // InternalTableDSL.g:133:8: ( '%' )
+            // InternalTableDSL.g:133:10: '%'
             {
-            match(';'); 
+            match('%'); 
 
             }
 
@@ -2788,11 +2794,10 @@
         try {
             int _type = T__138;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:134:8: ( 'if' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:134:10: 'if'
+            // InternalTableDSL.g:134:8: ( '!' )
+            // InternalTableDSL.g:134:10: '!'
             {
-            match("if"); 
-
+            match('!'); 
 
             }
 
@@ -2809,10 +2814,10 @@
         try {
             int _type = T__139;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:135:8: ( 'else' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:135:10: 'else'
+            // InternalTableDSL.g:135:8: ( '++' )
+            // InternalTableDSL.g:135:10: '++'
             {
-            match("else"); 
+            match("++"); 
 
 
             }
@@ -2830,10 +2835,10 @@
         try {
             int _type = T__140;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:136:8: ( 'switch' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:136:10: 'switch'
+            // InternalTableDSL.g:136:8: ( '--' )
+            // InternalTableDSL.g:136:10: '--'
             {
-            match("switch"); 
+            match("--"); 
 
 
             }
@@ -2851,10 +2856,11 @@
         try {
             int _type = T__141;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:137:8: ( ':' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:137:10: ':'
+            // InternalTableDSL.g:137:8: ( '::' )
+            // InternalTableDSL.g:137:10: '::'
             {
-            match(':'); 
+            match("::"); 
+
 
             }
 
@@ -2871,10 +2877,10 @@
         try {
             int _type = T__142;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:138:8: ( 'default' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:138:10: 'default'
+            // InternalTableDSL.g:138:8: ( '?.' )
+            // InternalTableDSL.g:138:10: '?.'
             {
-            match("default"); 
+            match("?."); 
 
 
             }
@@ -2892,11 +2898,10 @@
         try {
             int _type = T__143;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:139:8: ( 'case' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:139:10: 'case'
+            // InternalTableDSL.g:139:8: ( '|' )
+            // InternalTableDSL.g:139:10: '|'
             {
-            match("case"); 
-
+            match('|'); 
 
             }
 
@@ -2913,10 +2918,10 @@
         try {
             int _type = T__144;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:140:8: ( 'for' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:140:10: 'for'
+            // InternalTableDSL.g:140:8: ( 'if' )
+            // InternalTableDSL.g:140:10: 'if'
             {
-            match("for"); 
+            match("if"); 
 
 
             }
@@ -2934,10 +2939,10 @@
         try {
             int _type = T__145;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:141:8: ( 'while' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:141:10: 'while'
+            // InternalTableDSL.g:141:8: ( 'else' )
+            // InternalTableDSL.g:141:10: 'else'
             {
-            match("while"); 
+            match("else"); 
 
 
             }
@@ -2955,10 +2960,10 @@
         try {
             int _type = T__146;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:142:8: ( 'do' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:142:10: 'do'
+            // InternalTableDSL.g:142:8: ( 'switch' )
+            // InternalTableDSL.g:142:10: 'switch'
             {
-            match("do"); 
+            match("switch"); 
 
 
             }
@@ -2976,11 +2981,10 @@
         try {
             int _type = T__147;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:143:8: ( 'var' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:143:10: 'var'
+            // InternalTableDSL.g:143:8: ( ':' )
+            // InternalTableDSL.g:143:10: ':'
             {
-            match("var"); 
-
+            match(':'); 
 
             }
 
@@ -2997,10 +3001,10 @@
         try {
             int _type = T__148;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:144:8: ( 'val' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:144:10: 'val'
+            // InternalTableDSL.g:144:8: ( 'default' )
+            // InternalTableDSL.g:144:10: 'default'
             {
-            match("val"); 
+            match("default"); 
 
 
             }
@@ -3018,10 +3022,10 @@
         try {
             int _type = T__149;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:145:8: ( 'extends' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:145:10: 'extends'
+            // InternalTableDSL.g:145:8: ( 'case' )
+            // InternalTableDSL.g:145:10: 'case'
             {
-            match("extends"); 
+            match("case"); 
 
 
             }
@@ -3039,10 +3043,10 @@
         try {
             int _type = T__150;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:146:8: ( 'static' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:146:10: 'static'
+            // InternalTableDSL.g:146:8: ( 'for' )
+            // InternalTableDSL.g:146:10: 'for'
             {
-            match("static"); 
+            match("for"); 
 
 
             }
@@ -3060,10 +3064,10 @@
         try {
             int _type = T__151;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:147:8: ( 'extension' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:147:10: 'extension'
+            // InternalTableDSL.g:147:8: ( 'while' )
+            // InternalTableDSL.g:147:10: 'while'
             {
-            match("extension"); 
+            match("while"); 
 
 
             }
@@ -3081,10 +3085,10 @@
         try {
             int _type = T__152;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:148:8: ( 'super' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:148:10: 'super'
+            // InternalTableDSL.g:148:8: ( 'do' )
+            // InternalTableDSL.g:148:10: 'do'
             {
-            match("super"); 
+            match("do"); 
 
 
             }
@@ -3102,10 +3106,10 @@
         try {
             int _type = T__153;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:149:8: ( 'new' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:149:10: 'new'
+            // InternalTableDSL.g:149:8: ( 'var' )
+            // InternalTableDSL.g:149:10: 'var'
             {
-            match("new"); 
+            match("var"); 
 
 
             }
@@ -3123,10 +3127,10 @@
         try {
             int _type = T__154;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:150:8: ( 'false' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:150:10: 'false'
+            // InternalTableDSL.g:150:8: ( 'val' )
+            // InternalTableDSL.g:150:10: 'val'
             {
-            match("false"); 
+            match("val"); 
 
 
             }
@@ -3144,10 +3148,10 @@
         try {
             int _type = T__155;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:151:8: ( 'true' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:151:10: 'true'
+            // InternalTableDSL.g:151:8: ( 'extends' )
+            // InternalTableDSL.g:151:10: 'extends'
             {
-            match("true"); 
+            match("extends"); 
 
 
             }
@@ -3165,10 +3169,10 @@
         try {
             int _type = T__156;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:152:8: ( 'null' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:152:10: 'null'
+            // InternalTableDSL.g:152:8: ( 'super' )
+            // InternalTableDSL.g:152:10: 'super'
             {
-            match("null"); 
+            match("super"); 
 
 
             }
@@ -3186,10 +3190,10 @@
         try {
             int _type = T__157;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:153:8: ( 'typeof' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:153:10: 'typeof'
+            // InternalTableDSL.g:153:8: ( 'new' )
+            // InternalTableDSL.g:153:10: 'new'
             {
-            match("typeof"); 
+            match("new"); 
 
 
             }
@@ -3207,10 +3211,10 @@
         try {
             int _type = T__158;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:154:8: ( 'throw' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:154:10: 'throw'
+            // InternalTableDSL.g:154:8: ( 'false' )
+            // InternalTableDSL.g:154:10: 'false'
             {
-            match("throw"); 
+            match("false"); 
 
 
             }
@@ -3228,10 +3232,10 @@
         try {
             int _type = T__159;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:155:8: ( 'return' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:155:10: 'return'
+            // InternalTableDSL.g:155:8: ( 'true' )
+            // InternalTableDSL.g:155:10: 'true'
             {
-            match("return"); 
+            match("true"); 
 
 
             }
@@ -3249,10 +3253,10 @@
         try {
             int _type = T__160;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:156:8: ( 'try' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:156:10: 'try'
+            // InternalTableDSL.g:156:8: ( 'null' )
+            // InternalTableDSL.g:156:10: 'null'
             {
-            match("try"); 
+            match("null"); 
 
 
             }
@@ -3270,10 +3274,10 @@
         try {
             int _type = T__161;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:157:8: ( 'finally' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:157:10: 'finally'
+            // InternalTableDSL.g:157:8: ( 'typeof' )
+            // InternalTableDSL.g:157:10: 'typeof'
             {
-            match("finally"); 
+            match("typeof"); 
 
 
             }
@@ -3291,10 +3295,10 @@
         try {
             int _type = T__162;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:158:8: ( 'synchronized' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:158:10: 'synchronized'
+            // InternalTableDSL.g:158:8: ( 'throw' )
+            // InternalTableDSL.g:158:10: 'throw'
             {
-            match("synchronized"); 
+            match("throw"); 
 
 
             }
@@ -3312,10 +3316,10 @@
         try {
             int _type = T__163;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:159:8: ( 'catch' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:159:10: 'catch'
+            // InternalTableDSL.g:159:8: ( 'return' )
+            // InternalTableDSL.g:159:10: 'return'
             {
-            match("catch"); 
+            match("return"); 
 
 
             }
@@ -3333,10 +3337,11 @@
         try {
             int _type = T__164;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:160:8: ( '?' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:160:10: '?'
+            // InternalTableDSL.g:160:8: ( 'try' )
+            // InternalTableDSL.g:160:10: 'try'
             {
-            match('?'); 
+            match("try"); 
+
 
             }
 
@@ -3353,10 +3358,11 @@
         try {
             int _type = T__165;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:161:8: ( '&' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:161:10: '&'
+            // InternalTableDSL.g:161:8: ( 'finally' )
+            // InternalTableDSL.g:161:10: 'finally'
             {
-            match('&'); 
+            match("finally"); 
+
 
             }
 
@@ -3373,10 +3379,10 @@
         try {
             int _type = T__166;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:162:8: ( 'equal' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:162:10: 'equal'
+            // InternalTableDSL.g:162:8: ( 'synchronized' )
+            // InternalTableDSL.g:162:10: 'synchronized'
             {
-            match("equal"); 
+            match("synchronized"); 
 
 
             }
@@ -3394,10 +3400,10 @@
         try {
             int _type = T__167;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:163:8: ( 'greater equal' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:163:10: 'greater equal'
+            // InternalTableDSL.g:163:8: ( 'catch' )
+            // InternalTableDSL.g:163:10: 'catch'
             {
-            match("greater equal"); 
+            match("catch"); 
 
 
             }
@@ -3415,11 +3421,10 @@
         try {
             int _type = T__168;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:164:8: ( 'greater than' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:164:10: 'greater than'
+            // InternalTableDSL.g:164:8: ( '?' )
+            // InternalTableDSL.g:164:10: '?'
             {
-            match("greater than"); 
-
+            match('?'); 
 
             }
 
@@ -3436,11 +3441,10 @@
         try {
             int _type = T__169;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:165:8: ( 'lower equal' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:165:10: 'lower equal'
+            // InternalTableDSL.g:165:8: ( '&' )
+            // InternalTableDSL.g:165:10: '&'
             {
-            match("lower equal"); 
-
+            match('&'); 
 
             }
 
@@ -3457,10 +3461,10 @@
         try {
             int _type = T__170;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:166:8: ( 'lower than' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:166:10: 'lower than'
+            // InternalTableDSL.g:166:8: ( 'equal' )
+            // InternalTableDSL.g:166:10: 'equal'
             {
-            match("lower than"); 
+            match("equal"); 
 
 
             }
@@ -3478,10 +3482,10 @@
         try {
             int _type = T__171;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:167:8: ( 'not equal' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:167:10: 'not equal'
+            // InternalTableDSL.g:167:8: ( 'greater equal' )
+            // InternalTableDSL.g:167:10: 'greater equal'
             {
-            match("not equal"); 
+            match("greater equal"); 
 
 
             }
@@ -3499,10 +3503,10 @@
         try {
             int _type = T__172;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:168:8: ( 'rising' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:168:10: 'rising'
+            // InternalTableDSL.g:168:8: ( 'greater than' )
+            // InternalTableDSL.g:168:10: 'greater than'
             {
-            match("rising"); 
+            match("greater than"); 
 
 
             }
@@ -3520,10 +3524,10 @@
         try {
             int _type = T__173;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:169:8: ( 'bad-rising' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:169:10: 'bad-rising'
+            // InternalTableDSL.g:169:8: ( 'lower equal' )
+            // InternalTableDSL.g:169:10: 'lower equal'
             {
-            match("bad-rising"); 
+            match("lower equal"); 
 
 
             }
@@ -3541,10 +3545,10 @@
         try {
             int _type = T__174;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:170:8: ( 'sloping' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:170:10: 'sloping'
+            // InternalTableDSL.g:170:8: ( 'lower than' )
+            // InternalTableDSL.g:170:10: 'lower than'
             {
-            match("sloping"); 
+            match("lower than"); 
 
 
             }
@@ -3562,10 +3566,10 @@
         try {
             int _type = T__175;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:171:8: ( 'good-sloping' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:171:10: 'good-sloping'
+            // InternalTableDSL.g:171:8: ( 'not equal' )
+            // InternalTableDSL.g:171:10: 'not equal'
             {
-            match("good-sloping"); 
+            match("not equal"); 
 
 
             }
@@ -3583,10 +3587,10 @@
         try {
             int _type = T__176;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:172:8: ( 'stagnating' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:172:10: 'stagnating'
+            // InternalTableDSL.g:172:8: ( 'rising' )
+            // InternalTableDSL.g:172:10: 'rising'
             {
-            match("stagnating"); 
+            match("rising"); 
 
 
             }
@@ -3604,10 +3608,10 @@
         try {
             int _type = T__177;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:173:8: ( 'hidden' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:173:10: 'hidden'
+            // InternalTableDSL.g:173:8: ( 'bad-rising' )
+            // InternalTableDSL.g:173:10: 'bad-rising'
             {
-            match("hidden"); 
+            match("bad-rising"); 
 
 
             }
@@ -3625,10 +3629,10 @@
         try {
             int _type = T__178;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:174:8: ( 'explicit' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:174:10: 'explicit'
+            // InternalTableDSL.g:174:8: ( 'sloping' )
+            // InternalTableDSL.g:174:10: 'sloping'
             {
-            match("explicit"); 
+            match("sloping"); 
 
 
             }
@@ -3646,10 +3650,10 @@
         try {
             int _type = T__179;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:175:8: ( 'indexed' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:175:10: 'indexed'
+            // InternalTableDSL.g:175:8: ( 'good-sloping' )
+            // InternalTableDSL.g:175:10: 'good-sloping'
             {
-            match("indexed"); 
+            match("good-sloping"); 
 
 
             }
@@ -3667,10 +3671,10 @@
         try {
             int _type = T__180;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:176:8: ( 'columns' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:176:10: 'columns'
+            // InternalTableDSL.g:176:8: ( 'stagnating' )
+            // InternalTableDSL.g:176:10: 'stagnating'
             {
-            match("columns"); 
+            match("stagnating"); 
 
 
             }
@@ -3688,10 +3692,10 @@
         try {
             int _type = T__181;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:177:8: ( 'rows' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:177:10: 'rows'
+            // InternalTableDSL.g:177:8: ( 'hidden' )
+            // InternalTableDSL.g:177:10: 'hidden'
             {
-            match("rows"); 
+            match("hidden"); 
 
 
             }
@@ -3709,10 +3713,10 @@
         try {
             int _type = T__182;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:178:8: ( 'pages' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:178:10: 'pages'
+            // InternalTableDSL.g:178:8: ( 'explicit' )
+            // InternalTableDSL.g:178:10: 'explicit'
             {
-            match("pages"); 
+            match("explicit"); 
 
 
             }
@@ -3730,10 +3734,10 @@
         try {
             int _type = T__183;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:179:8: ( 'sections' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:179:10: 'sections'
+            // InternalTableDSL.g:179:8: ( 'indexed' )
+            // InternalTableDSL.g:179:10: 'indexed'
             {
-            match("sections"); 
+            match("indexed"); 
 
 
             }
@@ -3751,10 +3755,10 @@
         try {
             int _type = T__184;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:180:8: ( 'chapters' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:180:10: 'chapters'
+            // InternalTableDSL.g:180:8: ( 'columns' )
+            // InternalTableDSL.g:180:10: 'columns'
             {
-            match("chapters"); 
+            match("columns"); 
 
 
             }
@@ -3767,73 +3771,15 @@
     }
     // $ANTLR end "T__184"
 
-    // $ANTLR start "RULE_ID"
-    public final void mRULE_ID() throws RecognitionException {
+    // $ANTLR start "T__185"
+    public final void mT__185() throws RecognitionException {
         try {
-            int _type = RULE_ID;
+            int _type = T__185;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11629:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11629:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            // InternalTableDSL.g:181:8: ( 'rows' )
+            // InternalTableDSL.g:181:10: 'rows'
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11629:11: ( '^' )?
-            int alt1=2;
-            int LA1_0 = input.LA(1);
-
-            if ( (LA1_0=='^') ) {
-                alt1=1;
-            }
-            switch (alt1) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11629:11: '^'
-                    {
-                    match('^'); 
-
-                    }
-                    break;
-
-            }
-
-            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
-                input.consume();
-
-            }
-            else {
-                MismatchedSetException mse = new MismatchedSetException(null,input);
-                recover(mse);
-                throw mse;}
-
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11629:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
-            loop2:
-            do {
-                int alt2=2;
-                int LA2_0 = input.LA(1);
-
-                if ( (LA2_0=='$'||(LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
-                    alt2=1;
-                }
-
-
-                switch (alt2) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:
-            	    {
-            	    if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop2;
-                }
-            } while (true);
+            match("rows"); 
 
 
             }
@@ -3844,49 +3790,17 @@
         finally {
         }
     }
-    // $ANTLR end "RULE_ID"
+    // $ANTLR end "T__185"
 
-    // $ANTLR start "RULE_INT"
-    public final void mRULE_INT() throws RecognitionException {
+    // $ANTLR start "T__186"
+    public final void mT__186() throws RecognitionException {
         try {
-            int _type = RULE_INT;
+            int _type = T__186;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11631:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11631:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            // InternalTableDSL.g:182:8: ( 'pages' )
+            // InternalTableDSL.g:182:10: 'pages'
             {
-            matchRange('0','9'); 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11631:21: ( '0' .. '9' | '_' )*
-            loop3:
-            do {
-                int alt3=2;
-                int LA3_0 = input.LA(1);
-
-                if ( ((LA3_0>='0' && LA3_0<='9')||LA3_0=='_') ) {
-                    alt3=1;
-                }
-
-
-                switch (alt3) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:
-            	    {
-            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||input.LA(1)=='_' ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop3;
-                }
-            } while (true);
+            match("pages"); 
 
 
             }
@@ -3897,32 +3811,74 @@
         finally {
         }
     }
-    // $ANTLR end "RULE_INT"
+    // $ANTLR end "T__186"
+
+    // $ANTLR start "T__187"
+    public final void mT__187() throws RecognitionException {
+        try {
+            int _type = T__187;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:183:8: ( 'sections' )
+            // InternalTableDSL.g:183:10: 'sections'
+            {
+            match("sections"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__187"
+
+    // $ANTLR start "T__188"
+    public final void mT__188() throws RecognitionException {
+        try {
+            int _type = T__188;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:184:8: ( 'chapters' )
+            // InternalTableDSL.g:184:10: 'chapters'
+            {
+            match("chapters"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__188"
 
     // $ANTLR start "RULE_THEME_RESOURCE"
     public final void mRULE_THEME_RESOURCE() throws RecognitionException {
         try {
             int _type = RULE_THEME_RESOURCE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11633:21: ( 'theme:/' ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '.' | '/' | '0' .. '9' )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11633:23: 'theme:/' ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '.' | '/' | '0' .. '9' )*
+            // InternalTableDSL.g:12226:21: ( 'theme:/' ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '.' | '/' | '0' .. '9' )* )
+            // InternalTableDSL.g:12226:23: 'theme:/' ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '.' | '/' | '0' .. '9' )*
             {
             match("theme:/"); 
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11633:33: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '.' | '/' | '0' .. '9' )*
-            loop4:
+            // InternalTableDSL.g:12226:33: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '.' | '/' | '0' .. '9' )*
+            loop1:
             do {
-                int alt4=2;
-                int LA4_0 = input.LA(1);
+                int alt1=2;
+                int LA1_0 = input.LA(1);
 
-                if ( (LA4_0=='$'||(LA4_0>='.' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) {
-                    alt4=1;
+                if ( (LA1_0=='$'||(LA1_0>='.' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')) ) {
+                    alt1=1;
                 }
 
 
-                switch (alt4) {
+                switch (alt1) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:
+            	    // InternalTableDSL.g:
             	    {
             	    if ( input.LA(1)=='$'||(input.LA(1)>='.' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
             	        input.consume();
@@ -3938,7 +3894,7 @@
             	    break;
 
             	default :
-            	    break loop4;
+            	    break loop1;
                 }
             } while (true);
 
@@ -3958,31 +3914,31 @@
         try {
             int _type = RULE_EVENT_TOPIC;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11635:18: ( '\\'' RULE_ID ( '/' RULE_ID )* ( '/*' )? '\\'' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11635:20: '\\'' RULE_ID ( '/' RULE_ID )* ( '/*' )? '\\''
+            // InternalTableDSL.g:12228:18: ( '\\'' RULE_ID ( '/' RULE_ID )* ( '/*' )? '\\'' )
+            // InternalTableDSL.g:12228:20: '\\'' RULE_ID ( '/' RULE_ID )* ( '/*' )? '\\''
             {
             match('\''); 
             mRULE_ID(); 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11635:33: ( '/' RULE_ID )*
-            loop5:
+            // InternalTableDSL.g:12228:33: ( '/' RULE_ID )*
+            loop2:
             do {
-                int alt5=2;
-                int LA5_0 = input.LA(1);
+                int alt2=2;
+                int LA2_0 = input.LA(1);
 
-                if ( (LA5_0=='/') ) {
-                    int LA5_1 = input.LA(2);
+                if ( (LA2_0=='/') ) {
+                    int LA2_1 = input.LA(2);
 
-                    if ( (LA5_1=='$'||(LA5_1>='A' && LA5_1<='Z')||(LA5_1>='^' && LA5_1<='_')||(LA5_1>='a' && LA5_1<='z')) ) {
-                        alt5=1;
+                    if ( (LA2_1=='$'||(LA2_1>='A' && LA2_1<='Z')||(LA2_1>='^' && LA2_1<='_')||(LA2_1>='a' && LA2_1<='z')) ) {
+                        alt2=1;
                     }
 
 
                 }
 
 
-                switch (alt5) {
+                switch (alt2) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11635:34: '/' RULE_ID
+            	    // InternalTableDSL.g:12228:34: '/' RULE_ID
             	    {
             	    match('/'); 
             	    mRULE_ID(); 
@@ -3991,20 +3947,20 @@
             	    break;
 
             	default :
-            	    break loop5;
+            	    break loop2;
                 }
             } while (true);
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11635:48: ( '/*' )?
-            int alt6=2;
-            int LA6_0 = input.LA(1);
+            // InternalTableDSL.g:12228:48: ( '/*' )?
+            int alt3=2;
+            int LA3_0 = input.LA(1);
 
-            if ( (LA6_0=='/') ) {
-                alt6=1;
+            if ( (LA3_0=='/') ) {
+                alt3=1;
             }
-            switch (alt6) {
+            switch (alt3) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11635:48: '/*'
+                    // InternalTableDSL.g:12228:48: '/*'
                     {
                     match("/*"); 
 
@@ -4031,38 +3987,38 @@
         try {
             int _type = RULE_HEX;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            // InternalTableDSL.g:12230:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // InternalTableDSL.g:12230:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:12: ( '0x' | '0X' )
-            int alt7=2;
-            int LA7_0 = input.LA(1);
+            // InternalTableDSL.g:12230:12: ( '0x' | '0X' )
+            int alt4=2;
+            int LA4_0 = input.LA(1);
 
-            if ( (LA7_0=='0') ) {
-                int LA7_1 = input.LA(2);
+            if ( (LA4_0=='0') ) {
+                int LA4_1 = input.LA(2);
 
-                if ( (LA7_1=='x') ) {
-                    alt7=1;
+                if ( (LA4_1=='x') ) {
+                    alt4=1;
                 }
-                else if ( (LA7_1=='X') ) {
-                    alt7=2;
+                else if ( (LA4_1=='X') ) {
+                    alt4=2;
                 }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 7, 1, input);
+                        new NoViableAltException("", 4, 1, input);
 
                     throw nvae;
                 }
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 7, 0, input);
+                    new NoViableAltException("", 4, 0, input);
 
                 throw nvae;
             }
-            switch (alt7) {
+            switch (alt4) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:13: '0x'
+                    // InternalTableDSL.g:12230:13: '0x'
                     {
                     match("0x"); 
 
@@ -4070,7 +4026,7 @@
                     }
                     break;
                 case 2 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:18: '0X'
+                    // InternalTableDSL.g:12230:18: '0X'
                     {
                     match("0X"); 
 
@@ -4080,21 +4036,21 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
-            int cnt8=0;
-            loop8:
+            // InternalTableDSL.g:12230:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            int cnt5=0;
+            loop5:
             do {
-                int alt8=2;
-                int LA8_0 = input.LA(1);
+                int alt5=2;
+                int LA5_0 = input.LA(1);
 
-                if ( ((LA8_0>='0' && LA8_0<='9')||(LA8_0>='A' && LA8_0<='F')||LA8_0=='_'||(LA8_0>='a' && LA8_0<='f')) ) {
-                    alt8=1;
+                if ( ((LA5_0>='0' && LA5_0<='9')||(LA5_0>='A' && LA5_0<='F')||LA5_0=='_'||(LA5_0>='a' && LA5_0<='f')) ) {
+                    alt5=1;
                 }
 
 
-                switch (alt8) {
+                switch (alt5) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:
+            	    // InternalTableDSL.g:
             	    {
             	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='f') ) {
             	        input.consume();
@@ -4110,45 +4066,45 @@
             	    break;
 
             	default :
-            	    if ( cnt8 >= 1 ) break loop8;
+            	    if ( cnt5 >= 1 ) break loop5;
                         EarlyExitException eee =
-                            new EarlyExitException(8, input);
+                            new EarlyExitException(5, input);
                         throw eee;
                 }
-                cnt8++;
+                cnt5++;
             } while (true);
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
-            int alt10=2;
-            int LA10_0 = input.LA(1);
+            // InternalTableDSL.g:12230:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            int alt7=2;
+            int LA7_0 = input.LA(1);
 
-            if ( (LA10_0=='#') ) {
-                alt10=1;
+            if ( (LA7_0=='#') ) {
+                alt7=1;
             }
-            switch (alt10) {
+            switch (alt7) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    // InternalTableDSL.g:12230:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
                     {
                     match('#'); 
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
-                    int alt9=2;
-                    int LA9_0 = input.LA(1);
+                    // InternalTableDSL.g:12230:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    int alt6=2;
+                    int LA6_0 = input.LA(1);
 
-                    if ( (LA9_0=='B'||LA9_0=='b') ) {
-                        alt9=1;
+                    if ( (LA6_0=='B'||LA6_0=='b') ) {
+                        alt6=1;
                     }
-                    else if ( (LA9_0=='L'||LA9_0=='l') ) {
-                        alt9=2;
+                    else if ( (LA6_0=='L'||LA6_0=='l') ) {
+                        alt6=2;
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 9, 0, input);
+                            new NoViableAltException("", 6, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt9) {
+                    switch (alt6) {
                         case 1 :
-                            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+                            // InternalTableDSL.g:12230:64: ( 'b' | 'B' ) ( 'i' | 'I' )
                             {
                             if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                                 input.consume();
@@ -4172,7 +4128,7 @@
                             }
                             break;
                         case 2 :
-                            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11637:84: ( 'l' | 'L' )
+                            // InternalTableDSL.g:12230:84: ( 'l' | 'L' )
                             {
                             if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                                 input.consume();
@@ -4206,25 +4162,78 @@
     }
     // $ANTLR end "RULE_HEX"
 
+    // $ANTLR start "RULE_INT"
+    public final void mRULE_INT() throws RecognitionException {
+        try {
+            int _type = RULE_INT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:12232:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // InternalTableDSL.g:12232:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            {
+            matchRange('0','9'); 
+            // InternalTableDSL.g:12232:21: ( '0' .. '9' | '_' )*
+            loop8:
+            do {
+                int alt8=2;
+                int LA8_0 = input.LA(1);
+
+                if ( ((LA8_0>='0' && LA8_0<='9')||LA8_0=='_') ) {
+                    alt8=1;
+                }
+
+
+                switch (alt8) {
+            	case 1 :
+            	    // InternalTableDSL.g:
+            	    {
+            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||input.LA(1)=='_' ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop8;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_INT"
+
     // $ANTLR start "RULE_DECIMAL"
     public final void mRULE_DECIMAL() throws RecognitionException {
         try {
             int _type = RULE_DECIMAL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11639:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11639:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            // InternalTableDSL.g:12234:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // InternalTableDSL.g:12234:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
             {
             mRULE_INT(); 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11639:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
-            int alt12=2;
-            int LA12_0 = input.LA(1);
+            // InternalTableDSL.g:12234:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            int alt10=2;
+            int LA10_0 = input.LA(1);
 
-            if ( (LA12_0=='E'||LA12_0=='e') ) {
-                alt12=1;
+            if ( (LA10_0=='E'||LA10_0=='e') ) {
+                alt10=1;
             }
-            switch (alt12) {
+            switch (alt10) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11639:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+                    // InternalTableDSL.g:12234:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
                     {
                     if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                         input.consume();
@@ -4235,16 +4244,16 @@
                         recover(mse);
                         throw mse;}
 
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11639:36: ( '+' | '-' )?
-                    int alt11=2;
-                    int LA11_0 = input.LA(1);
+                    // InternalTableDSL.g:12234:36: ( '+' | '-' )?
+                    int alt9=2;
+                    int LA9_0 = input.LA(1);
 
-                    if ( (LA11_0=='+'||LA11_0=='-') ) {
-                        alt11=1;
+                    if ( (LA9_0=='+'||LA9_0=='-') ) {
+                        alt9=1;
                     }
-                    switch (alt11) {
+                    switch (alt9) {
                         case 1 :
-                            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:
+                            // InternalTableDSL.g:
                             {
                             if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                                 input.consume();
@@ -4268,19 +4277,19 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11639:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
-            int alt13=3;
-            int LA13_0 = input.LA(1);
+            // InternalTableDSL.g:12234:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            int alt11=3;
+            int LA11_0 = input.LA(1);
 
-            if ( (LA13_0=='B'||LA13_0=='b') ) {
-                alt13=1;
+            if ( (LA11_0=='B'||LA11_0=='b') ) {
+                alt11=1;
             }
-            else if ( (LA13_0=='D'||LA13_0=='F'||LA13_0=='L'||LA13_0=='d'||LA13_0=='f'||LA13_0=='l') ) {
-                alt13=2;
+            else if ( (LA11_0=='D'||LA11_0=='F'||LA11_0=='L'||LA11_0=='d'||LA11_0=='f'||LA11_0=='l') ) {
+                alt11=2;
             }
-            switch (alt13) {
+            switch (alt11) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11639:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+                    // InternalTableDSL.g:12234:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
                     {
                     if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
                         input.consume();
@@ -4304,7 +4313,7 @@
                     }
                     break;
                 case 2 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11639:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+                    // InternalTableDSL.g:12234:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
                     {
                     if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='L'||input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='l' ) {
                         input.consume();
@@ -4332,15 +4341,94 @@
     }
     // $ANTLR end "RULE_DECIMAL"
 
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTableDSL.g:12236:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // InternalTableDSL.g:12236:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            {
+            // InternalTableDSL.g:12236:11: ( '^' )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0=='^') ) {
+                alt12=1;
+            }
+            switch (alt12) {
+                case 1 :
+                    // InternalTableDSL.g:12236:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // InternalTableDSL.g:12236:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            loop13:
+            do {
+                int alt13=2;
+                int LA13_0 = input.LA(1);
+
+                if ( (LA13_0=='$'||(LA13_0>='0' && LA13_0<='9')||(LA13_0>='A' && LA13_0<='Z')||LA13_0=='_'||(LA13_0>='a' && LA13_0<='z')) ) {
+                    alt13=1;
+                }
+
+
+                switch (alt13) {
+            	case 1 :
+            	    // InternalTableDSL.g:
+            	    {
+            	    if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop13;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ID"
+
     // $ANTLR start "RULE_STRING"
     public final void mRULE_STRING() throws RecognitionException {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalTableDSL.g:12238:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // InternalTableDSL.g:12238:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            // InternalTableDSL.g:12238:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
             int alt18=2;
             int LA18_0 = input.LA(1);
 
@@ -4358,10 +4446,10 @@
             }
             switch (alt18) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    // InternalTableDSL.g:12238:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
                     {
                     match('\"'); 
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // InternalTableDSL.g:12238:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop14:
                     do {
                         int alt14=3;
@@ -4377,7 +4465,7 @@
 
                         switch (alt14) {
                     	case 1 :
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:21: '\\\\' .
+                    	    // InternalTableDSL.g:12238:21: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -4385,7 +4473,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    // InternalTableDSL.g:12238:28: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -4405,7 +4493,7 @@
                         }
                     } while (true);
 
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:44: ( '\"' )?
+                    // InternalTableDSL.g:12238:44: ( '\"' )?
                     int alt15=2;
                     int LA15_0 = input.LA(1);
 
@@ -4414,7 +4502,7 @@
                     }
                     switch (alt15) {
                         case 1 :
-                            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:44: '\"'
+                            // InternalTableDSL.g:12238:44: '\"'
                             {
                             match('\"'); 
 
@@ -4427,10 +4515,10 @@
                     }
                     break;
                 case 2 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    // InternalTableDSL.g:12238:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
                     {
                     match('\''); 
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // InternalTableDSL.g:12238:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop16:
                     do {
                         int alt16=3;
@@ -4446,7 +4534,7 @@
 
                         switch (alt16) {
                     	case 1 :
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:55: '\\\\' .
+                    	    // InternalTableDSL.g:12238:55: '\\\\' .
                     	    {
                     	    match('\\'); 
                     	    matchAny(); 
@@ -4454,7 +4542,7 @@
                     	    }
                     	    break;
                     	case 2 :
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:62: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // InternalTableDSL.g:12238:62: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -4474,7 +4562,7 @@
                         }
                     } while (true);
 
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:79: ( '\\'' )?
+                    // InternalTableDSL.g:12238:79: ( '\\'' )?
                     int alt17=2;
                     int LA17_0 = input.LA(1);
 
@@ -4483,7 +4571,7 @@
                     }
                     switch (alt17) {
                         case 1 :
-                            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11641:79: '\\''
+                            // InternalTableDSL.g:12238:79: '\\''
                             {
                             match('\''); 
 
@@ -4514,12 +4602,12 @@
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11643:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11643:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalTableDSL.g:12240:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalTableDSL.g:12240:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11643:24: ( options {greedy=false; } : . )*
+            // InternalTableDSL.g:12240:24: ( options {greedy=false; } : . )*
             loop19:
             do {
                 int alt19=2;
@@ -4544,7 +4632,7 @@
 
                 switch (alt19) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11643:52: .
+            	    // InternalTableDSL.g:12240:52: .
             	    {
             	    matchAny(); 
 
@@ -4574,12 +4662,12 @@
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11645:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11645:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalTableDSL.g:12242:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalTableDSL.g:12242:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11645:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalTableDSL.g:12242:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop20:
             do {
                 int alt20=2;
@@ -4592,7 +4680,7 @@
 
                 switch (alt20) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11645:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalTableDSL.g:12242:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -4612,7 +4700,7 @@
                 }
             } while (true);
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11645:40: ( ( '\\r' )? '\\n' )?
+            // InternalTableDSL.g:12242:40: ( ( '\\r' )? '\\n' )?
             int alt22=2;
             int LA22_0 = input.LA(1);
 
@@ -4621,9 +4709,9 @@
             }
             switch (alt22) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11645:41: ( '\\r' )? '\\n'
+                    // InternalTableDSL.g:12242:41: ( '\\r' )? '\\n'
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11645:41: ( '\\r' )?
+                    // InternalTableDSL.g:12242:41: ( '\\r' )?
                     int alt21=2;
                     int LA21_0 = input.LA(1);
 
@@ -4632,7 +4720,7 @@
                     }
                     switch (alt21) {
                         case 1 :
-                            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11645:41: '\\r'
+                            // InternalTableDSL.g:12242:41: '\\r'
                             {
                             match('\r'); 
 
@@ -4664,10 +4752,10 @@
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11647:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11647:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalTableDSL.g:12244:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalTableDSL.g:12244:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11647:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalTableDSL.g:12244:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt23=0;
             loop23:
             do {
@@ -4681,7 +4769,7 @@
 
                 switch (alt23) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:
+            	    // InternalTableDSL.g:
             	    {
             	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
             	        input.consume();
@@ -4721,8 +4809,8 @@
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11649:16: ( . )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:11649:18: .
+            // InternalTableDSL.g:12246:16: ( . )
+            // InternalTableDSL.g:12246:18: .
             {
             matchAny(); 
 
@@ -4737,1272 +4825,1300 @@
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | T__172 | T__173 | T__174 | T__175 | T__176 | T__177 | T__178 | T__179 | T__180 | T__181 | T__182 | T__183 | T__184 | RULE_ID | RULE_INT | RULE_THEME_RESOURCE | RULE_EVENT_TOPIC | RULE_HEX | RULE_DECIMAL | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt24=181;
+        // InternalTableDSL.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | T__172 | T__173 | T__174 | T__175 | T__176 | T__177 | T__178 | T__179 | T__180 | T__181 | T__182 | T__183 | T__184 | T__185 | T__186 | T__187 | T__188 | RULE_THEME_RESOURCE | RULE_EVENT_TOPIC | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt24=185;
         alt24 = dfa24.predict(input);
         switch (alt24) {
             case 1 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:10: T__15
+                // InternalTableDSL.g:1:10: T__15
                 {
                 mT__15(); 
 
                 }
                 break;
             case 2 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:16: T__16
+                // InternalTableDSL.g:1:16: T__16
                 {
                 mT__16(); 
 
                 }
                 break;
             case 3 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:22: T__17
+                // InternalTableDSL.g:1:22: T__17
                 {
                 mT__17(); 
 
                 }
                 break;
             case 4 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:28: T__18
+                // InternalTableDSL.g:1:28: T__18
                 {
                 mT__18(); 
 
                 }
                 break;
             case 5 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:34: T__19
+                // InternalTableDSL.g:1:34: T__19
                 {
                 mT__19(); 
 
                 }
                 break;
             case 6 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:40: T__20
+                // InternalTableDSL.g:1:40: T__20
                 {
                 mT__20(); 
 
                 }
                 break;
             case 7 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:46: T__21
+                // InternalTableDSL.g:1:46: T__21
                 {
                 mT__21(); 
 
                 }
                 break;
             case 8 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:52: T__22
+                // InternalTableDSL.g:1:52: T__22
                 {
                 mT__22(); 
 
                 }
                 break;
             case 9 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:58: T__23
+                // InternalTableDSL.g:1:58: T__23
                 {
                 mT__23(); 
 
                 }
                 break;
             case 10 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:64: T__24
+                // InternalTableDSL.g:1:64: T__24
                 {
                 mT__24(); 
 
                 }
                 break;
             case 11 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:70: T__25
+                // InternalTableDSL.g:1:70: T__25
                 {
                 mT__25(); 
 
                 }
                 break;
             case 12 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:76: T__26
+                // InternalTableDSL.g:1:76: T__26
                 {
                 mT__26(); 
 
                 }
                 break;
             case 13 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:82: T__27
+                // InternalTableDSL.g:1:82: T__27
                 {
                 mT__27(); 
 
                 }
                 break;
             case 14 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:88: T__28
+                // InternalTableDSL.g:1:88: T__28
                 {
                 mT__28(); 
 
                 }
                 break;
             case 15 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:94: T__29
+                // InternalTableDSL.g:1:94: T__29
                 {
                 mT__29(); 
 
                 }
                 break;
             case 16 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:100: T__30
+                // InternalTableDSL.g:1:100: T__30
                 {
                 mT__30(); 
 
                 }
                 break;
             case 17 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:106: T__31
+                // InternalTableDSL.g:1:106: T__31
                 {
                 mT__31(); 
 
                 }
                 break;
             case 18 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:112: T__32
+                // InternalTableDSL.g:1:112: T__32
                 {
                 mT__32(); 
 
                 }
                 break;
             case 19 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:118: T__33
+                // InternalTableDSL.g:1:118: T__33
                 {
                 mT__33(); 
 
                 }
                 break;
             case 20 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:124: T__34
+                // InternalTableDSL.g:1:124: T__34
                 {
                 mT__34(); 
 
                 }
                 break;
             case 21 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:130: T__35
+                // InternalTableDSL.g:1:130: T__35
                 {
                 mT__35(); 
 
                 }
                 break;
             case 22 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:136: T__36
+                // InternalTableDSL.g:1:136: T__36
                 {
                 mT__36(); 
 
                 }
                 break;
             case 23 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:142: T__37
+                // InternalTableDSL.g:1:142: T__37
                 {
                 mT__37(); 
 
                 }
                 break;
             case 24 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:148: T__38
+                // InternalTableDSL.g:1:148: T__38
                 {
                 mT__38(); 
 
                 }
                 break;
             case 25 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:154: T__39
+                // InternalTableDSL.g:1:154: T__39
                 {
                 mT__39(); 
 
                 }
                 break;
             case 26 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:160: T__40
+                // InternalTableDSL.g:1:160: T__40
                 {
                 mT__40(); 
 
                 }
                 break;
             case 27 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:166: T__41
+                // InternalTableDSL.g:1:166: T__41
                 {
                 mT__41(); 
 
                 }
                 break;
             case 28 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:172: T__42
+                // InternalTableDSL.g:1:172: T__42
                 {
                 mT__42(); 
 
                 }
                 break;
             case 29 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:178: T__43
+                // InternalTableDSL.g:1:178: T__43
                 {
                 mT__43(); 
 
                 }
                 break;
             case 30 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:184: T__44
+                // InternalTableDSL.g:1:184: T__44
                 {
                 mT__44(); 
 
                 }
                 break;
             case 31 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:190: T__45
+                // InternalTableDSL.g:1:190: T__45
                 {
                 mT__45(); 
 
                 }
                 break;
             case 32 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:196: T__46
+                // InternalTableDSL.g:1:196: T__46
                 {
                 mT__46(); 
 
                 }
                 break;
             case 33 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:202: T__47
+                // InternalTableDSL.g:1:202: T__47
                 {
                 mT__47(); 
 
                 }
                 break;
             case 34 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:208: T__48
+                // InternalTableDSL.g:1:208: T__48
                 {
                 mT__48(); 
 
                 }
                 break;
             case 35 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:214: T__49
+                // InternalTableDSL.g:1:214: T__49
                 {
                 mT__49(); 
 
                 }
                 break;
             case 36 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:220: T__50
+                // InternalTableDSL.g:1:220: T__50
                 {
                 mT__50(); 
 
                 }
                 break;
             case 37 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:226: T__51
+                // InternalTableDSL.g:1:226: T__51
                 {
                 mT__51(); 
 
                 }
                 break;
             case 38 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:232: T__52
+                // InternalTableDSL.g:1:232: T__52
                 {
                 mT__52(); 
 
                 }
                 break;
             case 39 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:238: T__53
+                // InternalTableDSL.g:1:238: T__53
                 {
                 mT__53(); 
 
                 }
                 break;
             case 40 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:244: T__54
+                // InternalTableDSL.g:1:244: T__54
                 {
                 mT__54(); 
 
                 }
                 break;
             case 41 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:250: T__55
+                // InternalTableDSL.g:1:250: T__55
                 {
                 mT__55(); 
 
                 }
                 break;
             case 42 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:256: T__56
+                // InternalTableDSL.g:1:256: T__56
                 {
                 mT__56(); 
 
                 }
                 break;
             case 43 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:262: T__57
+                // InternalTableDSL.g:1:262: T__57
                 {
                 mT__57(); 
 
                 }
                 break;
             case 44 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:268: T__58
+                // InternalTableDSL.g:1:268: T__58
                 {
                 mT__58(); 
 
                 }
                 break;
             case 45 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:274: T__59
+                // InternalTableDSL.g:1:274: T__59
                 {
                 mT__59(); 
 
                 }
                 break;
             case 46 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:280: T__60
+                // InternalTableDSL.g:1:280: T__60
                 {
                 mT__60(); 
 
                 }
                 break;
             case 47 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:286: T__61
+                // InternalTableDSL.g:1:286: T__61
                 {
                 mT__61(); 
 
                 }
                 break;
             case 48 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:292: T__62
+                // InternalTableDSL.g:1:292: T__62
                 {
                 mT__62(); 
 
                 }
                 break;
             case 49 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:298: T__63
+                // InternalTableDSL.g:1:298: T__63
                 {
                 mT__63(); 
 
                 }
                 break;
             case 50 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:304: T__64
+                // InternalTableDSL.g:1:304: T__64
                 {
                 mT__64(); 
 
                 }
                 break;
             case 51 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:310: T__65
+                // InternalTableDSL.g:1:310: T__65
                 {
                 mT__65(); 
 
                 }
                 break;
             case 52 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:316: T__66
+                // InternalTableDSL.g:1:316: T__66
                 {
                 mT__66(); 
 
                 }
                 break;
             case 53 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:322: T__67
+                // InternalTableDSL.g:1:322: T__67
                 {
                 mT__67(); 
 
                 }
                 break;
             case 54 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:328: T__68
+                // InternalTableDSL.g:1:328: T__68
                 {
                 mT__68(); 
 
                 }
                 break;
             case 55 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:334: T__69
+                // InternalTableDSL.g:1:334: T__69
                 {
                 mT__69(); 
 
                 }
                 break;
             case 56 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:340: T__70
+                // InternalTableDSL.g:1:340: T__70
                 {
                 mT__70(); 
 
                 }
                 break;
             case 57 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:346: T__71
+                // InternalTableDSL.g:1:346: T__71
                 {
                 mT__71(); 
 
                 }
                 break;
             case 58 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:352: T__72
+                // InternalTableDSL.g:1:352: T__72
                 {
                 mT__72(); 
 
                 }
                 break;
             case 59 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:358: T__73
+                // InternalTableDSL.g:1:358: T__73
                 {
                 mT__73(); 
 
                 }
                 break;
             case 60 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:364: T__74
+                // InternalTableDSL.g:1:364: T__74
                 {
                 mT__74(); 
 
                 }
                 break;
             case 61 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:370: T__75
+                // InternalTableDSL.g:1:370: T__75
                 {
                 mT__75(); 
 
                 }
                 break;
             case 62 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:376: T__76
+                // InternalTableDSL.g:1:376: T__76
                 {
                 mT__76(); 
 
                 }
                 break;
             case 63 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:382: T__77
+                // InternalTableDSL.g:1:382: T__77
                 {
                 mT__77(); 
 
                 }
                 break;
             case 64 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:388: T__78
+                // InternalTableDSL.g:1:388: T__78
                 {
                 mT__78(); 
 
                 }
                 break;
             case 65 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:394: T__79
+                // InternalTableDSL.g:1:394: T__79
                 {
                 mT__79(); 
 
                 }
                 break;
             case 66 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:400: T__80
+                // InternalTableDSL.g:1:400: T__80
                 {
                 mT__80(); 
 
                 }
                 break;
             case 67 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:406: T__81
+                // InternalTableDSL.g:1:406: T__81
                 {
                 mT__81(); 
 
                 }
                 break;
             case 68 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:412: T__82
+                // InternalTableDSL.g:1:412: T__82
                 {
                 mT__82(); 
 
                 }
                 break;
             case 69 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:418: T__83
+                // InternalTableDSL.g:1:418: T__83
                 {
                 mT__83(); 
 
                 }
                 break;
             case 70 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:424: T__84
+                // InternalTableDSL.g:1:424: T__84
                 {
                 mT__84(); 
 
                 }
                 break;
             case 71 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:430: T__85
+                // InternalTableDSL.g:1:430: T__85
                 {
                 mT__85(); 
 
                 }
                 break;
             case 72 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:436: T__86
+                // InternalTableDSL.g:1:436: T__86
                 {
                 mT__86(); 
 
                 }
                 break;
             case 73 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:442: T__87
+                // InternalTableDSL.g:1:442: T__87
                 {
                 mT__87(); 
 
                 }
                 break;
             case 74 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:448: T__88
+                // InternalTableDSL.g:1:448: T__88
                 {
                 mT__88(); 
 
                 }
                 break;
             case 75 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:454: T__89
+                // InternalTableDSL.g:1:454: T__89
                 {
                 mT__89(); 
 
                 }
                 break;
             case 76 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:460: T__90
+                // InternalTableDSL.g:1:460: T__90
                 {
                 mT__90(); 
 
                 }
                 break;
             case 77 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:466: T__91
+                // InternalTableDSL.g:1:466: T__91
                 {
                 mT__91(); 
 
                 }
                 break;
             case 78 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:472: T__92
+                // InternalTableDSL.g:1:472: T__92
                 {
                 mT__92(); 
 
                 }
                 break;
             case 79 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:478: T__93
+                // InternalTableDSL.g:1:478: T__93
                 {
                 mT__93(); 
 
                 }
                 break;
             case 80 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:484: T__94
+                // InternalTableDSL.g:1:484: T__94
                 {
                 mT__94(); 
 
                 }
                 break;
             case 81 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:490: T__95
+                // InternalTableDSL.g:1:490: T__95
                 {
                 mT__95(); 
 
                 }
                 break;
             case 82 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:496: T__96
+                // InternalTableDSL.g:1:496: T__96
                 {
                 mT__96(); 
 
                 }
                 break;
             case 83 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:502: T__97
+                // InternalTableDSL.g:1:502: T__97
                 {
                 mT__97(); 
 
                 }
                 break;
             case 84 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:508: T__98
+                // InternalTableDSL.g:1:508: T__98
                 {
                 mT__98(); 
 
                 }
                 break;
             case 85 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:514: T__99
+                // InternalTableDSL.g:1:514: T__99
                 {
                 mT__99(); 
 
                 }
                 break;
             case 86 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:520: T__100
+                // InternalTableDSL.g:1:520: T__100
                 {
                 mT__100(); 
 
                 }
                 break;
             case 87 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:527: T__101
+                // InternalTableDSL.g:1:527: T__101
                 {
                 mT__101(); 
 
                 }
                 break;
             case 88 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:534: T__102
+                // InternalTableDSL.g:1:534: T__102
                 {
                 mT__102(); 
 
                 }
                 break;
             case 89 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:541: T__103
+                // InternalTableDSL.g:1:541: T__103
                 {
                 mT__103(); 
 
                 }
                 break;
             case 90 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:548: T__104
+                // InternalTableDSL.g:1:548: T__104
                 {
                 mT__104(); 
 
                 }
                 break;
             case 91 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:555: T__105
+                // InternalTableDSL.g:1:555: T__105
                 {
                 mT__105(); 
 
                 }
                 break;
             case 92 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:562: T__106
+                // InternalTableDSL.g:1:562: T__106
                 {
                 mT__106(); 
 
                 }
                 break;
             case 93 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:569: T__107
+                // InternalTableDSL.g:1:569: T__107
                 {
                 mT__107(); 
 
                 }
                 break;
             case 94 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:576: T__108
+                // InternalTableDSL.g:1:576: T__108
                 {
                 mT__108(); 
 
                 }
                 break;
             case 95 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:583: T__109
+                // InternalTableDSL.g:1:583: T__109
                 {
                 mT__109(); 
 
                 }
                 break;
             case 96 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:590: T__110
+                // InternalTableDSL.g:1:590: T__110
                 {
                 mT__110(); 
 
                 }
                 break;
             case 97 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:597: T__111
+                // InternalTableDSL.g:1:597: T__111
                 {
                 mT__111(); 
 
                 }
                 break;
             case 98 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:604: T__112
+                // InternalTableDSL.g:1:604: T__112
                 {
                 mT__112(); 
 
                 }
                 break;
             case 99 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:611: T__113
+                // InternalTableDSL.g:1:611: T__113
                 {
                 mT__113(); 
 
                 }
                 break;
             case 100 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:618: T__114
+                // InternalTableDSL.g:1:618: T__114
                 {
                 mT__114(); 
 
                 }
                 break;
             case 101 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:625: T__115
+                // InternalTableDSL.g:1:625: T__115
                 {
                 mT__115(); 
 
                 }
                 break;
             case 102 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:632: T__116
+                // InternalTableDSL.g:1:632: T__116
                 {
                 mT__116(); 
 
                 }
                 break;
             case 103 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:639: T__117
+                // InternalTableDSL.g:1:639: T__117
                 {
                 mT__117(); 
 
                 }
                 break;
             case 104 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:646: T__118
+                // InternalTableDSL.g:1:646: T__118
                 {
                 mT__118(); 
 
                 }
                 break;
             case 105 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:653: T__119
+                // InternalTableDSL.g:1:653: T__119
                 {
                 mT__119(); 
 
                 }
                 break;
             case 106 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:660: T__120
+                // InternalTableDSL.g:1:660: T__120
                 {
                 mT__120(); 
 
                 }
                 break;
             case 107 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:667: T__121
+                // InternalTableDSL.g:1:667: T__121
                 {
                 mT__121(); 
 
                 }
                 break;
             case 108 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:674: T__122
+                // InternalTableDSL.g:1:674: T__122
                 {
                 mT__122(); 
 
                 }
                 break;
             case 109 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:681: T__123
+                // InternalTableDSL.g:1:681: T__123
                 {
                 mT__123(); 
 
                 }
                 break;
             case 110 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:688: T__124
+                // InternalTableDSL.g:1:688: T__124
                 {
                 mT__124(); 
 
                 }
                 break;
             case 111 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:695: T__125
+                // InternalTableDSL.g:1:695: T__125
                 {
                 mT__125(); 
 
                 }
                 break;
             case 112 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:702: T__126
+                // InternalTableDSL.g:1:702: T__126
                 {
                 mT__126(); 
 
                 }
                 break;
             case 113 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:709: T__127
+                // InternalTableDSL.g:1:709: T__127
                 {
                 mT__127(); 
 
                 }
                 break;
             case 114 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:716: T__128
+                // InternalTableDSL.g:1:716: T__128
                 {
                 mT__128(); 
 
                 }
                 break;
             case 115 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:723: T__129
+                // InternalTableDSL.g:1:723: T__129
                 {
                 mT__129(); 
 
                 }
                 break;
             case 116 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:730: T__130
+                // InternalTableDSL.g:1:730: T__130
                 {
                 mT__130(); 
 
                 }
                 break;
             case 117 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:737: T__131
+                // InternalTableDSL.g:1:737: T__131
                 {
                 mT__131(); 
 
                 }
                 break;
             case 118 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:744: T__132
+                // InternalTableDSL.g:1:744: T__132
                 {
                 mT__132(); 
 
                 }
                 break;
             case 119 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:751: T__133
+                // InternalTableDSL.g:1:751: T__133
                 {
                 mT__133(); 
 
                 }
                 break;
             case 120 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:758: T__134
+                // InternalTableDSL.g:1:758: T__134
                 {
                 mT__134(); 
 
                 }
                 break;
             case 121 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:765: T__135
+                // InternalTableDSL.g:1:765: T__135
                 {
                 mT__135(); 
 
                 }
                 break;
             case 122 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:772: T__136
+                // InternalTableDSL.g:1:772: T__136
                 {
                 mT__136(); 
 
                 }
                 break;
             case 123 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:779: T__137
+                // InternalTableDSL.g:1:779: T__137
                 {
                 mT__137(); 
 
                 }
                 break;
             case 124 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:786: T__138
+                // InternalTableDSL.g:1:786: T__138
                 {
                 mT__138(); 
 
                 }
                 break;
             case 125 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:793: T__139
+                // InternalTableDSL.g:1:793: T__139
                 {
                 mT__139(); 
 
                 }
                 break;
             case 126 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:800: T__140
+                // InternalTableDSL.g:1:800: T__140
                 {
                 mT__140(); 
 
                 }
                 break;
             case 127 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:807: T__141
+                // InternalTableDSL.g:1:807: T__141
                 {
                 mT__141(); 
 
                 }
                 break;
             case 128 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:814: T__142
+                // InternalTableDSL.g:1:814: T__142
                 {
                 mT__142(); 
 
                 }
                 break;
             case 129 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:821: T__143
+                // InternalTableDSL.g:1:821: T__143
                 {
                 mT__143(); 
 
                 }
                 break;
             case 130 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:828: T__144
+                // InternalTableDSL.g:1:828: T__144
                 {
                 mT__144(); 
 
                 }
                 break;
             case 131 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:835: T__145
+                // InternalTableDSL.g:1:835: T__145
                 {
                 mT__145(); 
 
                 }
                 break;
             case 132 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:842: T__146
+                // InternalTableDSL.g:1:842: T__146
                 {
                 mT__146(); 
 
                 }
                 break;
             case 133 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:849: T__147
+                // InternalTableDSL.g:1:849: T__147
                 {
                 mT__147(); 
 
                 }
                 break;
             case 134 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:856: T__148
+                // InternalTableDSL.g:1:856: T__148
                 {
                 mT__148(); 
 
                 }
                 break;
             case 135 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:863: T__149
+                // InternalTableDSL.g:1:863: T__149
                 {
                 mT__149(); 
 
                 }
                 break;
             case 136 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:870: T__150
+                // InternalTableDSL.g:1:870: T__150
                 {
                 mT__150(); 
 
                 }
                 break;
             case 137 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:877: T__151
+                // InternalTableDSL.g:1:877: T__151
                 {
                 mT__151(); 
 
                 }
                 break;
             case 138 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:884: T__152
+                // InternalTableDSL.g:1:884: T__152
                 {
                 mT__152(); 
 
                 }
                 break;
             case 139 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:891: T__153
+                // InternalTableDSL.g:1:891: T__153
                 {
                 mT__153(); 
 
                 }
                 break;
             case 140 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:898: T__154
+                // InternalTableDSL.g:1:898: T__154
                 {
                 mT__154(); 
 
                 }
                 break;
             case 141 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:905: T__155
+                // InternalTableDSL.g:1:905: T__155
                 {
                 mT__155(); 
 
                 }
                 break;
             case 142 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:912: T__156
+                // InternalTableDSL.g:1:912: T__156
                 {
                 mT__156(); 
 
                 }
                 break;
             case 143 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:919: T__157
+                // InternalTableDSL.g:1:919: T__157
                 {
                 mT__157(); 
 
                 }
                 break;
             case 144 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:926: T__158
+                // InternalTableDSL.g:1:926: T__158
                 {
                 mT__158(); 
 
                 }
                 break;
             case 145 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:933: T__159
+                // InternalTableDSL.g:1:933: T__159
                 {
                 mT__159(); 
 
                 }
                 break;
             case 146 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:940: T__160
+                // InternalTableDSL.g:1:940: T__160
                 {
                 mT__160(); 
 
                 }
                 break;
             case 147 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:947: T__161
+                // InternalTableDSL.g:1:947: T__161
                 {
                 mT__161(); 
 
                 }
                 break;
             case 148 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:954: T__162
+                // InternalTableDSL.g:1:954: T__162
                 {
                 mT__162(); 
 
                 }
                 break;
             case 149 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:961: T__163
+                // InternalTableDSL.g:1:961: T__163
                 {
                 mT__163(); 
 
                 }
                 break;
             case 150 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:968: T__164
+                // InternalTableDSL.g:1:968: T__164
                 {
                 mT__164(); 
 
                 }
                 break;
             case 151 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:975: T__165
+                // InternalTableDSL.g:1:975: T__165
                 {
                 mT__165(); 
 
                 }
                 break;
             case 152 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:982: T__166
+                // InternalTableDSL.g:1:982: T__166
                 {
                 mT__166(); 
 
                 }
                 break;
             case 153 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:989: T__167
+                // InternalTableDSL.g:1:989: T__167
                 {
                 mT__167(); 
 
                 }
                 break;
             case 154 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:996: T__168
+                // InternalTableDSL.g:1:996: T__168
                 {
                 mT__168(); 
 
                 }
                 break;
             case 155 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1003: T__169
+                // InternalTableDSL.g:1:1003: T__169
                 {
                 mT__169(); 
 
                 }
                 break;
             case 156 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1010: T__170
+                // InternalTableDSL.g:1:1010: T__170
                 {
                 mT__170(); 
 
                 }
                 break;
             case 157 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1017: T__171
+                // InternalTableDSL.g:1:1017: T__171
                 {
                 mT__171(); 
 
                 }
                 break;
             case 158 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1024: T__172
+                // InternalTableDSL.g:1:1024: T__172
                 {
                 mT__172(); 
 
                 }
                 break;
             case 159 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1031: T__173
+                // InternalTableDSL.g:1:1031: T__173
                 {
                 mT__173(); 
 
                 }
                 break;
             case 160 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1038: T__174
+                // InternalTableDSL.g:1:1038: T__174
                 {
                 mT__174(); 
 
                 }
                 break;
             case 161 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1045: T__175
+                // InternalTableDSL.g:1:1045: T__175
                 {
                 mT__175(); 
 
                 }
                 break;
             case 162 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1052: T__176
+                // InternalTableDSL.g:1:1052: T__176
                 {
                 mT__176(); 
 
                 }
                 break;
             case 163 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1059: T__177
+                // InternalTableDSL.g:1:1059: T__177
                 {
                 mT__177(); 
 
                 }
                 break;
             case 164 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1066: T__178
+                // InternalTableDSL.g:1:1066: T__178
                 {
                 mT__178(); 
 
                 }
                 break;
             case 165 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1073: T__179
+                // InternalTableDSL.g:1:1073: T__179
                 {
                 mT__179(); 
 
                 }
                 break;
             case 166 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1080: T__180
+                // InternalTableDSL.g:1:1080: T__180
                 {
                 mT__180(); 
 
                 }
                 break;
             case 167 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1087: T__181
+                // InternalTableDSL.g:1:1087: T__181
                 {
                 mT__181(); 
 
                 }
                 break;
             case 168 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1094: T__182
+                // InternalTableDSL.g:1:1094: T__182
                 {
                 mT__182(); 
 
                 }
                 break;
             case 169 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1101: T__183
+                // InternalTableDSL.g:1:1101: T__183
                 {
                 mT__183(); 
 
                 }
                 break;
             case 170 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1108: T__184
+                // InternalTableDSL.g:1:1108: T__184
                 {
                 mT__184(); 
 
                 }
                 break;
             case 171 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1115: RULE_ID
+                // InternalTableDSL.g:1:1115: T__185
                 {
-                mRULE_ID(); 
+                mT__185(); 
 
                 }
                 break;
             case 172 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1123: RULE_INT
+                // InternalTableDSL.g:1:1122: T__186
                 {
-                mRULE_INT(); 
+                mT__186(); 
 
                 }
                 break;
             case 173 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1132: RULE_THEME_RESOURCE
+                // InternalTableDSL.g:1:1129: T__187
+                {
+                mT__187(); 
+
+                }
+                break;
+            case 174 :
+                // InternalTableDSL.g:1:1136: T__188
+                {
+                mT__188(); 
+
+                }
+                break;
+            case 175 :
+                // InternalTableDSL.g:1:1143: RULE_THEME_RESOURCE
                 {
                 mRULE_THEME_RESOURCE(); 
 
                 }
                 break;
-            case 174 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1152: RULE_EVENT_TOPIC
+            case 176 :
+                // InternalTableDSL.g:1:1163: RULE_EVENT_TOPIC
                 {
                 mRULE_EVENT_TOPIC(); 
 
                 }
                 break;
-            case 175 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1169: RULE_HEX
+            case 177 :
+                // InternalTableDSL.g:1:1180: RULE_HEX
                 {
                 mRULE_HEX(); 
 
                 }
                 break;
-            case 176 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1178: RULE_DECIMAL
+            case 178 :
+                // InternalTableDSL.g:1:1189: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 179 :
+                // InternalTableDSL.g:1:1198: RULE_DECIMAL
                 {
                 mRULE_DECIMAL(); 
 
                 }
                 break;
-            case 177 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1191: RULE_STRING
+            case 180 :
+                // InternalTableDSL.g:1:1211: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 181 :
+                // InternalTableDSL.g:1:1219: RULE_STRING
                 {
                 mRULE_STRING(); 
 
                 }
                 break;
-            case 178 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1203: RULE_ML_COMMENT
+            case 182 :
+                // InternalTableDSL.g:1:1231: RULE_ML_COMMENT
                 {
                 mRULE_ML_COMMENT(); 
 
                 }
                 break;
-            case 179 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1219: RULE_SL_COMMENT
+            case 183 :
+                // InternalTableDSL.g:1:1247: RULE_SL_COMMENT
                 {
                 mRULE_SL_COMMENT(); 
 
                 }
                 break;
-            case 180 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1235: RULE_WS
+            case 184 :
+                // InternalTableDSL.g:1:1263: RULE_WS
                 {
                 mRULE_WS(); 
 
                 }
                 break;
-            case 181 :
-                // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1:1243: RULE_ANY_OTHER
+            case 185 :
+                // InternalTableDSL.g:1:1271: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -6016,305 +6132,80 @@
 
     protected DFA24 dfa24 = new DFA24(this);
     static final String DFA24_eotS =
-        "\1\uffff\1\71\2\uffff\22\71\1\175\1\71\1\u0081\2\uffff\1\u0086"+
-        "\1\u008a\1\u008d\5\uffff\1\u0096\1\u0098\1\u009a\1\u009c\1\u009e"+
-        "\1\u00a0\1\u00a2\1\u00a5\1\u00a7\1\uffff\1\71\1\65\1\uffff\1\u00ac"+
-        "\1\u00b0\1\u00ac\3\uffff\3\71\3\uffff\1\71\1\u00bc\10\71\1\u00cc"+
-        "\1\u00ce\45\71\1\u0101\16\71\1\u0114\1\uffff\1\71\1\u0117\41\uffff"+
-        "\1\u0119\7\uffff\1\71\1\uffff\1\u00ac\2\uffff\2\u00b0\2\uffff\12"+
-        "\71\1\uffff\3\71\1\u012c\12\71\1\u0139\1\uffff\1\71\1\uffff\5\71"+
-        "\1\u0140\22\71\1\u0156\11\71\1\uffff\1\u0160\1\u0162\1\u0163\14"+
-        "\71\1\uffff\10\71\1\u017b\10\71\2\uffff\1\71\4\uffff\1\71\2\u00b0"+
-        "\1\uffff\1\71\1\u018c\3\71\1\u0191\7\71\1\u019b\1\uffff\1\u019c"+
-        "\13\71\1\uffff\3\71\1\u01ab\2\71\1\uffff\14\71\1\u01ba\10\71\1\uffff"+
-        "\4\71\1\u01c7\4\71\1\uffff\1\71\2\uffff\4\71\1\u01d1\2\71\1\u01d4"+
-        "\16\71\1\u01e3\2\uffff\3\71\1\uffff\1\u01e7\5\71\3\u00b0\1\uffff"+
-        "\1\71\1\uffff\1\u01ef\3\71\1\uffff\2\71\1\u01f5\5\71\1\u01fb\2\uffff"+
-        "\1\71\1\u01fd\6\71\1\uffff\5\71\1\uffff\6\71\1\u020f\3\71\1\u0213"+
-        "\3\71\1\uffff\10\71\1\u0220\3\71\1\uffff\2\71\1\u0228\1\u0229\1"+
-        "\u022a\4\71\1\uffff\1\u022f\1\71\1\uffff\1\u0232\12\71\1\u023d\2"+
-        "\71\1\uffff\3\71\1\uffff\2\71\1\uffff\1\71\1\u0246\1\u00b0\1\71"+
-        "\1\uffff\5\71\1\uffff\1\u024d\4\71\3\uffff\1\u0252\17\71\1\u0262"+
-        "\1\uffff\1\u0263\1\71\1\u0265\1\uffff\4\71\1\u026a\2\71\1\u026d"+
-        "\1\u026e\1\u0270\1\71\1\u0273\1\uffff\1\71\1\u0275\5\71\3\uffff"+
-        "\1\71\1\u027d\2\71\1\uffff\2\71\1\uffff\1\u0282\5\71\1\u0288\2\71"+
-        "\2\uffff\1\71\1\u028f\1\u0290\5\71\1\uffff\1\u0296\1\u0297\4\71"+
-        "\1\uffff\1\u029c\1\u029e\2\71\1\uffff\1\71\1\u02a2\1\u02a3\1\u02a4"+
-        "\1\u02a5\6\71\1\u02ac\3\71\2\uffff\1\71\1\uffff\1\71\1\u02b2\2\71"+
-        "\1\uffff\2\71\2\uffff\1\71\1\uffff\1\u02b8\1\71\1\uffff\1\71\1\uffff"+
-        "\2\71\1\u02bd\3\71\1\u02c1\1\uffff\4\71\1\uffff\2\71\1\u02c8\2\71"+
-        "\1\uffff\1\71\1\u02cc\2\uffff\1\u02cd\1\71\2\uffff\5\71\2\uffff"+
-        "\1\u02d4\1\u02d5\2\71\1\uffff\1\71\1\uffff\3\71\4\uffff\1\u02dc"+
-        "\5\71\1\uffff\2\71\1\u02e4\2\71\1\uffff\3\71\1\u02ea\1\71\1\uffff"+
-        "\1\71\1\u02ed\1\71\1\u02ef\1\uffff\1\71\1\u02f1\1\u02f2\1\uffff"+
-        "\1\71\1\u02f4\1\u02f5\3\71\1\uffff\3\71\2\uffff\4\71\1\uffff\1\71"+
-        "\2\uffff\3\71\1\u0306\1\u0307\1\71\1\uffff\1\u0309\1\u030a\5\71"+
-        "\1\uffff\2\71\1\u0312\1\u0313\1\71\1\uffff\1\u0315\1\u0316\1\uffff"+
-        "\1\71\1\uffff\1\u0318\2\uffff\1\u0319\2\uffff\1\71\1\u031b\2\71"+
-        "\1\u031e\1\u031f\2\71\1\u0322\1\u0323\2\uffff\2\71\1\u0326\1\71"+
-        "\5\uffff\1\u0328\4\71\1\u032d\1\71\2\uffff\1\u032f\2\uffff\1\u0330"+
-        "\2\uffff\1\u0331\1\uffff\1\71\1\u0333\2\uffff\2\71\2\uffff\2\71"+
-        "\1\uffff\1\71\1\uffff\1\u0339\3\71\1\uffff\1\71\3\uffff\1\71\1\uffff"+
-        "\1\u033f\1\u0340\3\71\1\uffff\2\71\1\u0346\1\u0347\1\71\2\uffff"+
-        "\5\71\2\uffff\1\71\1\u034f\1\71\1\u0351\1\u0352\1\71\1\u0354\1\uffff"+
-        "\1\71\2\uffff\1\u0356\1\uffff\1\u0357\2\uffff";
+        "\1\uffff\1\71\2\uffff\22\71\1\176\1\71\1\u0082\2\uffff\1\u0087\1\u008b\1\u008e\6\uffff\1\u0098\1\u009a\1\u009c\1\u009e\1\u00a0\1\u00a2\1\u00a4\1\u00a7\1\u00a9\1\71\1\u00ab\2\u00b0\1\65\4\uffff\3\71\3\uffff\12\71\1\u00cc\1\u00ce\51\71\1\u0105\7\71\1\u010f\3\71\1\u0115\1\uffff\1\71\1\u0118\42\uffff\1\u011a\6\uffff\1\71\1\uffff\2\u00ab\1\uffff\1\u00b0\3\uffff\15\71\1\u012d\12\71\1\u013a\1\uffff\1\71\1\uffff\20\71\1\u014d\7\71\1\u0158\12\71\1\u0163\4\71\1\u0169\1\u016a\14\71\1\uffff\11\71\1\uffff\1\u0184\3\71\2\uffff\1\71\4\uffff\1\71\2\u00ab\1\uffff\1\71\1\u0190\3\71\1\u0195\7\71\1\u019f\1\uffff\1\u01a0\13\71\1\uffff\4\71\1\u01b0\15\71\1\uffff\2\71\1\u01c0\7\71\1\uffff\6\71\1\u01ce\3\71\1\uffff\1\u01d3\2\71\1\uffff\1\71\2\uffff\4\71\1\u01db\2\71\1\u01de\16\71\1\u01ee\1\71\2\uffff\1\u01f0\5\71\3\u00ab\1\uffff\1\71\1\uffff\1\u01f8\3\71\1\uffff\2\71\1\u01fe\5\71\1\u0204\2\uffff\1\71\1\u0206\15\71\1\uffff\4\71\1\u0218\3\71\1\u021c\6\71\1\uffff\7\71\1\u022b\5\71\1\uffff\1\u0232\1\u0233\2\71\1\uffff\2\71\1\u0238\4\71\1\uffff\1\u023d\1\71\1\uffff\1\u0240\13\71\1\u024c\2\71\1\uffff\1\71\1\uffff\2\71\1\uffff\1\71\1\u0253\1\u00ab\1\71\1\uffff\5\71\1\uffff\1\u025a\4\71\3\uffff\1\u025f\16\71\1\u0270\1\u0271\1\uffff\1\u0272\1\71\1\u0274\1\uffff\7\71\1\u027c\1\71\1\u027e\1\u027f\2\71\1\u0283\1\uffff\6\71\2\uffff\4\71\1\uffff\1\71\1\u0290\2\71\1\uffff\2\71\1\uffff\1\u0295\6\71\1\u029c\2\71\2\uffff\1\71\1\u02a3\4\71\1\uffff\1\u02a8\1\u02a9\4\71\1\uffff\1\u02ae\1\u02b0\2\71\1\uffff\1\71\1\u02b4\1\u02b5\1\u02b6\1\u02b7\13\71\3\uffff\1\71\1\uffff\1\71\1\u02c5\1\71\1\u02c7\3\71\1\uffff\1\71\2\uffff\1\71\1\u02cd\1\71\1\uffff\4\71\1\u02d3\6\71\1\u02da\1\uffff\4\71\1\uffff\1\71\1\u02e0\1\71\1\u02e2\2\71\1\uffff\1\71\1\u02e6\2\uffff\1\u02e7\1\71\1\uffff\4\71\2\uffff\1\u02ed\1\u02ee\2\71\1\uffff\1\71\1\uffff\3\71\4\uffff\1\71\1\u02f6\10\71\1\u02ff\2\71\1\uffff\1\u0302\1\uffff\3\71\1\u0306\1\71\1\uffff\1\71\1\u0309\1\u030a\2\71\1\uffff\1\u030d\4\71\1\u0312\1\uffff\1\71\1\u0314\1\u0315\2\71\1\uffff\1\71\1\uffff\3\71\2\uffff\3\71\1\uffff\1\71\2\uffff\3\71\1\u0325\1\u0326\2\71\1\uffff\1\u0329\1\u032a\3\71\1\u032e\2\71\1\uffff\2\71\1\uffff\1\u0333\1\u0334\1\u0335\1\uffff\1\u0336\1\u0337\2\uffff\1\71\1\u0339\1\uffff\3\71\1\u033d\1\uffff\1\u033e\2\uffff\1\71\1\u0340\2\71\1\u0343\1\u0344\2\71\1\u0347\2\uffff\2\71\1\u034a\1\71\2\uffff\1\71\1\u034d\2\uffff\1\71\1\u034f\1\71\1\uffff\1\u0351\1\71\1\u0353\1\71\5\uffff\1\u0355\1\uffff\1\u0356\2\71\2\uffff\1\u0359\1\uffff\1\71\1\u035b\2\uffff\2\71\1\uffff\2\71\1\uffff\1\71\1\u0361\1\uffff\1\71\1\uffff\1\u0363\1\uffff\1\71\1\uffff\1\71\2\uffff\1\u0366\1\u0367\1\uffff\1\71\1\uffff\1\u0369\4\71\1\uffff\1\71\1\uffff\1\u036f\1\u0370\2\uffff\1\71\1\uffff\5\71\2\uffff\2\71\1\u0379\1\71\1\u037b\1\u037c\1\u037d\1\u037e\1\uffff\1\71\4\uffff\1\u0380\1\uffff";
     static final String DFA24_eofS =
-        "\u0358\uffff";
+        "\u0381\uffff";
     static final String DFA24_minS =
-        "\1\0\1\141\2\uffff\2\141\1\147\1\141\2\145\1\141\1\144\1\157\2"+
-        "\141\1\143\1\151\1\145\1\162\1\145\1\141\1\157\1\56\1\165\1\75\2"+
-        "\uffff\1\53\1\55\1\52\5\uffff\1\52\1\75\1\76\1\75\1\174\1\46\1\75"+
-        "\1\56\1\72\1\uffff\1\150\1\44\1\uffff\1\60\1\44\1\60\3\uffff\1\143"+
-        "\1\154\1\145\3\uffff\1\142\1\44\1\170\2\145\1\160\1\146\1\156\1"+
-        "\164\1\157\2\44\1\154\1\147\1\151\1\154\1\141\1\170\1\156\1\143"+
-        "\1\141\1\151\1\160\1\156\1\157\1\167\1\144\1\163\1\154\1\162\1\154"+
-        "\1\142\1\145\1\151\1\163\1\160\1\165\1\151\1\40\1\155\3\154\1\162"+
-        "\1\163\1\141\1\157\1\141\1\144\1\44\1\144\1\155\1\157\1\166\1\144"+
-        "\1\154\1\167\1\164\1\157\1\164\1\157\1\144\1\145\1\157\1\74\1\uffff"+
-        "\1\141\1\75\41\uffff\1\75\7\uffff\1\151\1\uffff\1\60\2\uffff\2\44"+
-        "\2\uffff\1\153\1\150\1\145\1\154\1\157\1\147\1\143\1\154\1\153\1"+
-        "\154\1\uffff\1\164\1\156\1\145\1\44\1\155\1\157\1\145\1\143\1\151"+
-        "\3\141\1\163\1\141\1\44\1\uffff\1\145\1\uffff\1\103\1\162\1\163"+
-        "\1\164\1\163\1\44\1\147\1\145\1\164\1\151\1\154\1\147\1\164\1\145"+
-        "\1\143\1\160\1\150\1\151\1\145\1\125\1\165\1\151\1\164\1\141\1\44"+
-        "\1\163\1\145\1\156\1\164\2\145\1\154\1\141\1\156\1\uffff\3\44\2"+
-        "\154\1\162\1\145\1\143\1\160\1\156\1\147\1\157\2\145\1\164\1\uffff"+
-        "\1\144\1\154\1\153\2\145\1\151\1\142\1\154\1\44\1\40\1\153\1\164"+
-        "\1\154\1\55\1\144\1\141\1\144\2\uffff\1\156\4\uffff\1\154\2\44\1"+
-        "\uffff\1\141\1\44\1\163\1\151\1\162\1\44\1\162\2\145\1\111\1\142"+
-        "\1\123\1\144\1\44\1\uffff\1\44\1\145\1\167\1\157\1\162\1\166\1\151"+
-        "\1\165\1\155\1\40\1\155\1\123\1\uffff\1\156\1\157\1\145\1\44\1\151"+
-        "\1\165\1\uffff\1\154\1\143\1\151\1\156\1\145\1\151\1\156\1\143\1"+
-        "\162\1\150\1\151\1\145\1\44\1\172\1\162\1\156\1\162\1\156\1\145"+
-        "\1\154\1\141\1\uffff\1\145\1\144\1\164\1\141\1\44\1\156\1\151\1"+
-        "\154\1\147\1\uffff\1\145\2\uffff\1\141\1\155\1\143\1\145\1\44\1"+
-        "\150\1\164\1\44\1\145\2\162\1\143\1\170\1\141\1\154\1\145\1\123"+
-        "\1\165\1\162\1\154\1\156\1\145\1\44\2\uffff\1\145\1\157\1\123\1"+
-        "\uffff\1\44\1\156\1\164\1\55\1\164\1\145\1\47\2\44\1\uffff\1\147"+
-        "\1\uffff\1\44\1\156\1\144\1\162\1\uffff\1\145\1\123\1\44\1\144\1"+
-        "\141\1\151\1\157\1\164\1\44\2\uffff\1\72\1\44\1\146\1\151\1\145"+
-        "\2\154\1\151\1\uffff\1\141\1\164\1\144\1\154\1\147\1\uffff\1\163"+
-        "\1\162\1\145\1\164\1\157\1\147\1\44\1\143\1\141\1\150\1\44\1\162"+
-        "\1\156\1\141\1\uffff\2\145\1\164\1\156\1\147\1\162\1\154\1\164\1"+
-        "\44\1\144\1\124\1\142\1\uffff\1\144\1\143\3\44\1\160\1\156\1\157"+
-        "\1\156\1\uffff\1\44\1\145\1\uffff\1\44\1\164\1\166\1\141\1\145\1"+
-        "\156\1\141\1\156\1\164\1\160\1\40\1\44\1\141\1\162\1\uffff\1\162"+
-        "\1\156\1\164\1\uffff\1\106\1\145\1\uffff\1\151\2\44\1\145\1\uffff"+
-        "\1\147\1\145\1\164\1\163\1\164\1\uffff\1\44\1\162\1\160\1\154\1"+
-        "\171\3\uffff\1\44\1\142\1\144\1\163\1\164\1\143\1\162\1\171\1\151"+
-        "\1\165\1\141\2\145\1\163\1\141\1\156\1\44\1\uffff\1\44\1\164\1\44"+
-        "\1\uffff\1\157\1\147\1\144\1\147\1\44\1\156\1\151\3\44\1\171\1\44"+
-        "\1\uffff\1\145\1\44\1\157\1\154\1\163\2\151\3\uffff\1\163\1\44\1"+
-        "\154\1\143\1\uffff\1\162\1\164\1\uffff\1\44\1\141\1\164\1\144\1"+
-        "\143\1\142\1\44\1\171\1\163\1\145\1\uffff\1\154\2\44\1\123\1\171"+
-        "\2\162\1\164\1\uffff\2\44\1\162\1\171\1\163\1\171\1\uffff\2\44\1"+
-        "\157\1\154\1\uffff\1\145\4\44\1\164\1\154\1\156\1\155\1\164\1\154"+
-        "\1\44\1\145\1\154\1\163\2\uffff\1\151\1\uffff\1\156\1\44\1\145\1"+
-        "\150\1\uffff\1\143\1\154\2\uffff\1\156\1\uffff\1\44\1\145\1\uffff"+
-        "\1\144\1\uffff\1\160\1\145\1\44\1\157\1\164\1\145\1\44\1\uffff\1"+
-        "\157\1\171\1\163\1\171\1\uffff\1\154\1\157\1\44\2\145\1\uffff\1"+
-        "\154\1\44\2\uffff\1\44\1\164\2\uffff\1\164\1\154\1\157\1\40\1\171"+
-        "\2\uffff\2\44\1\142\1\154\1\uffff\1\141\1\uffff\1\162\1\145\1\144"+
-        "\4\uffff\1\44\1\145\1\147\1\156\1\151\1\145\1\uffff\1\154\1\167"+
-        "\1\44\1\156\1\151\1\uffff\1\162\1\164\1\145\1\44\1\147\1\uffff\1"+
-        "\162\1\44\1\151\1\44\1\uffff\1\156\2\44\1\uffff\1\162\2\44\1\154"+
-        "\1\163\1\162\1\uffff\1\157\1\154\1\145\2\uffff\2\171\1\145\1\155"+
-        "\1\145\1\123\2\uffff\1\141\1\145\1\164\2\44\1\40\1\uffff\2\44\1"+
-        "\163\1\157\1\143\1\145\1\141\1\uffff\1\147\1\172\2\44\1\144\1\uffff"+
-        "\2\44\1\uffff\1\143\1\uffff\1\44\2\uffff\1\44\2\uffff\1\145\1\44"+
-        "\1\123\1\146\2\44\2\154\2\44\2\uffff\1\164\1\162\1\44\1\164\5\uffff"+
-        "\1\44\1\156\1\164\1\143\1\171\1\44\1\145\2\uffff\1\44\2\uffff\1"+
-        "\44\2\uffff\1\44\1\uffff\1\164\1\44\2\uffff\2\145\2\uffff\1\171"+
-        "\1\123\1\uffff\1\145\1\uffff\1\44\1\151\1\164\1\163\1\uffff\1\144"+
-        "\3\uffff\1\171\1\uffff\2\44\1\154\1\164\1\162\1\uffff\1\157\1\151"+
-        "\2\44\1\154\2\uffff\1\145\1\171\2\156\1\157\2\uffff\1\145\1\44\1"+
-        "\154\2\44\1\156\1\44\1\uffff\1\145\2\uffff\1\44\1\uffff\1\44\2\uffff";
+        "\1\0\1\141\2\uffff\2\141\1\147\1\145\1\141\1\145\1\141\1\144\1\157\3\141\1\143\1\151\1\145\1\162\1\145\1\157\1\56\1\165\1\75\2\uffff\1\53\1\55\1\52\6\uffff\1\52\1\75\1\76\1\75\1\174\1\46\1\75\1\56\1\72\1\150\1\44\2\60\1\44\4\uffff\1\143\1\154\1\145\3\uffff\1\142\1\157\1\170\2\145\1\160\1\146\1\156\1\164\1\157\2\44\1\154\1\147\1\151\1\143\1\156\1\141\1\151\1\160\1\156\1\157\1\154\1\141\1\170\1\167\1\144\1\163\1\154\1\162\1\154\1\142\1\151\1\145\1\160\1\163\1\165\1\151\1\124\1\155\1\141\1\164\1\157\1\144\3\154\1\162\1\163\1\141\1\157\1\141\1\144\1\44\1\144\1\155\1\157\1\166\1\144\1\154\1\164\1\44\1\167\1\145\1\157\1\74\1\uffff\1\141\1\75\42\uffff\1\75\6\uffff\1\151\1\uffff\2\44\1\uffff\1\60\3\uffff\1\153\1\150\1\145\1\154\1\157\1\147\1\143\1\154\1\153\1\154\1\164\1\156\1\145\1\44\1\155\1\157\1\145\1\143\1\151\3\141\1\163\1\141\1\44\1\uffff\1\145\1\uffff\1\141\1\103\1\162\1\163\1\145\1\164\1\147\1\151\1\154\1\147\1\164\1\145\1\143\1\160\1\164\1\163\1\44\1\110\1\151\1\125\1\165\1\151\1\164\1\141\1\44\1\163\1\145\1\164\1\156\1\145\1\154\1\145\1\141\1\156\1\157\1\44\1\156\1\164\1\154\1\55\2\44\2\154\1\162\1\145\1\143\1\160\1\156\1\147\1\157\2\145\1\164\1\uffff\1\144\1\154\1\153\2\145\1\151\1\142\1\154\1\40\1\uffff\1\44\1\144\1\141\1\144\2\uffff\1\156\4\uffff\1\154\2\44\1\uffff\1\141\1\44\1\163\1\151\1\162\1\44\1\162\2\145\1\111\1\142\1\123\1\144\1\44\1\uffff\1\44\1\145\1\167\1\157\1\162\1\166\1\151\1\165\1\155\1\111\1\155\1\123\1\uffff\1\156\1\171\1\157\1\145\1\44\1\143\1\151\1\154\1\156\1\145\1\151\1\156\1\143\1\162\1\150\2\151\1\165\1\uffff\2\145\1\44\1\172\1\156\1\162\1\156\1\145\1\154\1\141\1\uffff\1\145\1\144\1\141\1\164\1\156\1\151\1\44\1\154\1\147\1\111\1\uffff\1\44\1\157\1\123\1\uffff\1\145\2\uffff\1\141\1\155\1\143\1\145\1\44\1\150\1\164\1\44\1\145\1\162\1\147\1\143\1\170\1\141\1\154\1\145\1\123\1\165\1\162\1\154\1\156\1\145\1\44\1\146\2\uffff\1\44\1\156\1\164\1\55\1\164\1\145\1\47\2\44\1\uffff\1\147\1\uffff\1\44\1\156\1\144\1\162\1\uffff\1\145\1\123\1\44\1\144\1\141\1\151\1\157\1\164\1\44\2\uffff\1\72\1\44\1\146\1\151\1\145\2\154\1\151\1\156\1\141\1\164\1\144\1\163\1\154\1\147\1\uffff\1\164\1\157\1\145\1\147\1\44\1\143\1\141\1\150\1\44\1\162\1\156\1\160\1\162\2\141\1\uffff\1\145\1\164\1\156\1\147\1\162\1\154\1\164\1\44\1\144\1\142\1\124\1\144\1\143\1\uffff\2\44\1\165\1\156\1\uffff\1\156\1\164\1\44\1\160\1\156\1\157\1\156\1\uffff\1\44\1\145\1\uffff\1\44\1\164\1\166\1\145\1\141\1\145\1\156\1\141\1\156\1\164\1\160\1\40\1\44\1\141\1\162\1\uffff\1\171\1\uffff\1\106\1\145\1\uffff\1\151\2\44\1\145\1\uffff\1\147\1\145\1\164\1\163\1\164\1\uffff\1\44\1\162\1\160\1\154\1\171\3\uffff\1\44\1\142\1\144\1\163\1\164\1\143\1\120\1\162\1\171\1\151\1\123\1\165\1\141\1\102\1\156\2\44\1\uffff\1\44\1\164\1\44\1\uffff\1\157\1\147\1\154\1\145\1\144\1\147\1\144\1\44\1\151\2\44\1\151\1\171\1\44\1\uffff\1\145\1\154\1\157\1\151\1\163\1\151\2\uffff\1\155\1\164\1\123\1\171\1\uffff\1\163\1\44\1\154\1\143\1\uffff\1\162\1\164\1\uffff\1\44\1\141\1\162\1\164\1\144\1\143\1\142\1\44\1\171\1\163\1\145\1\uffff\1\154\1\44\1\117\2\162\1\164\1\uffff\2\44\1\162\1\171\1\163\1\171\1\uffff\2\44\1\157\1\154\1\uffff\1\145\4\44\1\141\1\164\1\154\1\156\1\145\1\155\1\164\1\157\1\171\1\154\1\163\3\uffff\1\151\1\uffff\1\156\1\44\1\145\1\44\1\145\1\150\1\145\1\uffff\1\154\2\uffff\1\156\1\44\1\145\1\uffff\1\144\1\145\1\160\1\157\1\44\1\164\1\142\1\145\1\164\1\154\1\145\1\44\1\uffff\1\157\1\171\1\163\1\171\1\uffff\1\154\1\44\1\157\1\44\2\145\1\uffff\1\154\1\44\2\uffff\1\44\1\164\1\uffff\1\156\1\157\1\40\1\171\2\uffff\2\44\1\142\1\154\1\uffff\1\141\1\uffff\1\162\1\145\1\144\4\uffff\1\163\1\44\1\145\1\147\1\154\1\156\1\151\1\156\1\111\1\167\1\44\1\156\1\151\1\uffff\1\44\1\uffff\1\162\1\164\1\162\1\44\1\147\1\uffff\1\162\2\44\1\151\1\156\1\uffff\1\44\1\145\1\147\1\171\1\145\1\44\1\uffff\1\162\2\44\1\154\1\163\1\uffff\1\162\1\uffff\1\157\1\154\1\145\2\uffff\1\171\1\123\1\155\1\145\1\123\2\uffff\1\141\1\145\1\164\2\44\1\102\1\164\1\uffff\2\44\1\145\1\163\1\157\1\44\1\144\1\141\1\uffff\1\147\1\172\1\uffff\3\44\1\uffff\2\44\2\uffff\1\143\1\44\1\uffff\1\162\1\145\1\154\1\44\1\uffff\1\44\2\uffff\1\145\1\44\1\123\1\146\2\44\1\154\1\145\1\44\2\uffff\1\164\1\162\1\44\1\164\2\uffff\1\171\1\44\2\uffff\1\143\1\44\1\156\1\uffff\1\44\1\171\1\44\1\145\5\uffff\1\44\1\uffff\1\44\1\162\1\145\2\uffff\1\44\1\uffff\1\164\1\44\2\uffff\1\145\1\154\1\uffff\1\171\1\123\1\uffff\1\145\1\44\1\uffff\1\164\1\uffff\1\44\1\uffff\1\163\1\uffff\1\144\2\uffff\2\44\1\uffff\1\171\1\uffff\1\44\1\145\1\154\1\164\1\162\1\uffff\1\145\1\uffff\2\44\2\uffff\1\154\1\uffff\1\143\1\145\1\171\1\156\1\144\2\uffff\1\145\1\164\1\44\1\154\4\44\1\uffff\1\145\4\uffff\1\44\1\uffff";
     static final String DFA24_maxS =
-        "\1\uffff\1\162\2\uffff\2\171\1\170\1\165\1\171\2\157\1\170\1\163"+
-        "\1\141\1\165\1\156\1\164\1\157\1\162\2\165\1\162\1\56\1\165\1\76"+
-        "\2\uffff\1\75\1\76\1\75\5\uffff\2\75\1\76\1\75\1\174\1\46\1\75\2"+
-        "\72\1\uffff\1\150\1\172\1\uffff\1\170\1\172\1\154\3\uffff\1\164"+
-        "\1\154\1\157\3\uffff\1\163\1\172\1\170\1\171\1\162\1\160\1\164\1"+
-        "\156\1\171\1\157\2\172\1\154\1\147\1\151\1\154\1\141\1\170\1\156"+
-        "\1\154\1\171\1\151\1\160\1\156\1\157\1\167\1\164\1\163\1\156\1\162"+
-        "\1\154\1\142\1\145\1\151\1\163\1\164\1\165\1\151\1\40\1\155\1\162"+
-        "\2\154\1\162\1\164\1\141\1\157\1\160\1\164\1\172\1\144\1\155\1\167"+
-        "\1\166\1\144\1\155\1\167\1\164\1\157\1\164\1\157\1\144\1\151\1\157"+
-        "\1\74\1\uffff\1\141\1\75\41\uffff\1\75\7\uffff\1\151\1\uffff\1\154"+
-        "\2\uffff\2\172\2\uffff\1\153\1\150\1\145\1\154\1\157\1\160\1\143"+
-        "\1\154\1\153\1\154\1\uffff\1\164\1\156\1\145\1\172\1\156\1\157\1"+
-        "\145\1\143\1\151\3\141\1\163\1\145\1\172\1\uffff\1\145\1\uffff\1"+
-        "\103\1\162\1\163\1\164\1\163\1\172\1\147\1\145\1\164\1\151\1\154"+
-        "\2\164\1\145\1\143\1\160\1\163\1\151\1\145\1\125\1\165\1\151\1\164"+
-        "\1\141\1\172\1\163\1\145\1\156\1\164\2\145\1\154\1\141\1\156\1\uffff"+
-        "\3\172\1\165\1\154\1\162\1\145\1\143\1\160\1\156\1\147\1\157\1\145"+
-        "\1\151\1\164\1\uffff\1\145\1\154\1\153\2\145\1\151\1\142\1\154\1"+
-        "\172\1\40\1\153\1\164\1\154\1\55\1\144\1\145\1\144\2\uffff\1\156"+
-        "\4\uffff\1\154\2\172\1\uffff\1\141\1\172\1\163\1\151\1\162\1\172"+
-        "\1\162\2\145\1\111\1\164\1\143\1\144\1\172\1\uffff\1\172\1\145\1"+
-        "\167\1\157\1\162\1\166\1\151\1\165\1\155\1\40\1\155\1\123\1\uffff"+
-        "\1\156\1\157\1\145\1\172\1\151\1\165\1\uffff\1\154\1\143\1\151\1"+
-        "\156\1\145\1\151\1\156\1\143\1\162\1\150\1\151\1\145\2\172\1\162"+
-        "\1\156\1\162\1\156\1\145\1\154\1\141\1\uffff\1\145\1\144\1\164\1"+
-        "\141\1\172\1\156\1\151\1\154\1\147\1\uffff\1\145\2\uffff\1\141\1"+
-        "\155\1\143\1\145\1\172\1\150\1\164\1\172\1\145\2\162\1\143\1\170"+
-        "\1\141\1\154\1\145\1\123\1\165\1\162\1\154\1\156\1\145\1\172\2\uffff"+
-        "\1\145\1\157\1\123\1\uffff\1\172\1\156\1\164\1\55\1\164\1\145\1"+
-        "\47\2\172\1\uffff\1\147\1\uffff\1\172\1\156\1\144\1\162\1\uffff"+
-        "\1\145\1\123\1\172\1\144\1\141\1\151\1\157\1\164\1\172\2\uffff\1"+
-        "\72\1\172\1\146\1\151\1\145\2\154\1\151\1\uffff\1\141\1\164\1\144"+
-        "\1\154\1\147\1\uffff\1\163\1\162\1\145\1\164\1\157\1\147\1\172\1"+
-        "\143\1\141\1\150\1\172\1\162\1\156\1\151\1\uffff\2\145\1\164\1\156"+
-        "\1\147\1\162\1\154\1\164\1\172\1\144\1\163\1\142\1\uffff\1\163\1"+
-        "\143\3\172\1\160\1\156\1\157\1\156\1\uffff\1\172\1\145\1\uffff\1"+
-        "\172\1\164\1\166\1\141\1\145\1\156\1\141\1\156\1\164\1\160\1\40"+
-        "\1\172\1\141\1\162\1\uffff\1\162\1\156\1\164\1\uffff\1\106\1\145"+
-        "\1\uffff\1\151\2\172\1\145\1\uffff\1\147\1\145\1\164\1\163\1\164"+
-        "\1\uffff\1\172\1\162\1\160\1\154\1\171\3\uffff\1\172\1\142\1\144"+
-        "\1\163\1\164\1\143\1\162\1\171\1\151\1\165\1\141\2\145\1\163\1\141"+
-        "\1\156\1\172\1\uffff\1\172\1\164\1\172\1\uffff\1\157\1\147\1\144"+
-        "\1\147\1\172\1\156\1\151\3\172\1\171\1\172\1\uffff\1\145\1\172\1"+
-        "\157\1\154\1\163\2\151\3\uffff\1\163\1\172\1\154\1\143\1\uffff\1"+
-        "\162\1\164\1\uffff\1\172\1\141\1\164\1\144\1\143\1\142\1\172\1\171"+
-        "\1\163\1\164\1\uffff\1\154\2\172\1\123\1\171\2\162\1\164\1\uffff"+
-        "\2\172\1\162\1\171\1\163\1\171\1\uffff\2\172\1\157\1\154\1\uffff"+
-        "\1\145\4\172\1\164\1\154\1\156\1\155\1\164\1\154\1\172\1\145\1\154"+
-        "\1\163\2\uffff\1\151\1\uffff\1\156\1\172\1\145\1\150\1\uffff\1\143"+
-        "\1\154\2\uffff\1\156\1\uffff\1\172\1\145\1\uffff\1\144\1\uffff\1"+
-        "\160\1\145\1\172\1\157\1\164\1\145\1\172\1\uffff\1\157\1\171\1\163"+
-        "\1\171\1\uffff\1\154\1\157\1\172\2\145\1\uffff\1\154\1\172\2\uffff"+
-        "\1\172\1\164\2\uffff\1\164\1\154\1\157\1\40\1\171\2\uffff\2\172"+
-        "\1\142\1\154\1\uffff\1\141\1\uffff\1\162\1\145\1\144\4\uffff\1\172"+
-        "\1\145\1\147\1\156\1\151\1\145\1\uffff\1\154\1\167\1\172\1\156\1"+
-        "\151\1\uffff\1\162\1\164\1\145\1\172\1\147\1\uffff\1\162\1\172\1"+
-        "\151\1\172\1\uffff\1\156\2\172\1\uffff\1\162\2\172\1\154\1\163\1"+
-        "\162\1\uffff\1\157\1\154\1\145\2\uffff\2\171\1\145\1\155\1\164\1"+
-        "\123\2\uffff\1\141\1\145\1\164\2\172\1\40\1\uffff\2\172\1\163\1"+
-        "\157\1\143\1\145\1\141\1\uffff\1\147\3\172\1\144\1\uffff\2\172\1"+
-        "\uffff\1\143\1\uffff\1\172\2\uffff\1\172\2\uffff\1\145\1\172\1\123"+
-        "\1\146\2\172\2\154\2\172\2\uffff\1\164\1\162\1\172\1\164\5\uffff"+
-        "\1\172\1\156\1\164\1\143\1\171\1\172\1\145\2\uffff\1\172\2\uffff"+
-        "\1\172\2\uffff\1\172\1\uffff\1\164\1\172\2\uffff\2\145\2\uffff\1"+
-        "\171\1\123\1\uffff\1\145\1\uffff\1\172\1\151\1\164\1\163\1\uffff"+
-        "\1\144\3\uffff\1\171\1\uffff\2\172\1\154\1\164\1\162\1\uffff\1\157"+
-        "\1\151\2\172\1\154\2\uffff\1\145\1\171\2\156\1\157\2\uffff\1\145"+
-        "\1\172\1\154\2\172\1\156\1\172\1\uffff\1\145\2\uffff\1\172\1\uffff"+
-        "\1\172\2\uffff";
+        "\1\uffff\1\162\2\uffff\2\171\1\170\1\171\1\165\2\157\1\170\1\163\1\165\1\141\1\165\1\156\1\164\1\157\1\162\1\165\1\162\1\56\1\165\1\76\2\uffff\1\75\1\76\1\75\6\uffff\2\75\1\76\1\75\1\174\1\46\1\75\2\72\1\150\1\172\1\170\1\154\1\172\4\uffff\1\164\1\154\1\157\3\uffff\1\163\1\157\1\170\1\171\1\162\1\160\1\164\1\156\1\171\1\157\2\172\1\167\1\147\1\151\1\154\1\156\1\171\1\151\1\160\1\156\1\157\1\154\1\141\1\170\1\167\1\164\1\163\1\156\1\162\1\154\1\142\1\151\1\145\1\164\1\163\1\165\1\151\1\124\1\155\1\141\1\164\1\157\1\144\1\162\2\154\1\162\1\164\1\141\1\157\1\160\1\164\1\172\1\144\1\155\1\167\1\166\1\144\1\155\1\164\1\172\1\167\1\151\1\157\1\74\1\uffff\1\141\1\75\42\uffff\1\75\6\uffff\1\151\1\uffff\2\172\1\uffff\1\154\3\uffff\1\153\1\150\1\145\1\154\1\157\1\160\1\143\1\154\1\153\1\154\1\164\1\156\1\145\1\172\1\156\1\157\1\145\1\143\1\151\3\141\1\163\1\145\1\172\1\uffff\1\145\1\uffff\1\141\1\103\1\162\1\163\1\145\1\164\1\147\1\151\1\154\2\164\1\145\1\143\1\160\1\164\1\163\1\172\1\163\1\151\1\125\1\165\1\151\1\164\1\141\1\172\1\163\1\145\1\164\1\156\1\145\1\154\1\145\1\141\1\156\1\157\1\172\1\156\1\164\1\154\1\55\2\172\1\165\1\154\1\162\1\145\1\143\1\160\1\156\1\147\1\157\1\145\1\151\1\164\1\uffff\1\145\1\154\1\153\2\145\1\151\1\142\1\154\1\151\1\uffff\1\172\1\144\1\145\1\144\2\uffff\1\156\4\uffff\1\154\2\172\1\uffff\1\141\1\172\1\163\1\151\1\162\1\172\1\162\2\145\1\111\1\164\1\143\1\144\1\172\1\uffff\1\172\1\145\1\167\1\157\1\162\1\166\1\151\1\165\1\155\1\111\1\155\1\123\1\uffff\1\156\1\171\1\157\1\145\1\172\1\143\1\151\1\154\1\156\1\145\1\151\1\156\1\143\1\162\1\150\2\151\1\165\1\uffff\2\145\2\172\1\156\1\162\1\156\1\145\1\154\1\141\1\uffff\1\145\1\144\1\141\1\164\1\156\1\151\1\172\1\154\1\147\1\116\1\uffff\1\172\1\157\1\123\1\uffff\1\145\2\uffff\1\141\1\155\1\143\1\145\1\172\1\150\1\164\1\172\1\145\2\162\1\143\1\170\1\141\1\154\1\145\1\123\1\165\1\162\1\154\1\156\1\145\1\172\1\146\2\uffff\1\172\1\156\1\164\1\55\1\164\1\145\1\47\2\172\1\uffff\1\147\1\uffff\1\172\1\156\1\144\1\162\1\uffff\1\145\1\123\1\172\1\144\1\141\1\151\1\157\1\164\1\172\2\uffff\1\72\1\172\1\146\1\151\1\145\2\154\1\151\1\156\1\141\1\164\1\144\1\163\1\154\1\147\1\uffff\1\164\1\157\1\145\1\147\1\172\1\143\1\141\1\150\1\172\1\162\1\156\1\160\1\162\1\141\1\151\1\uffff\1\145\1\164\1\156\1\147\1\162\1\154\1\164\1\172\1\144\1\142\1\124\1\163\1\143\1\uffff\2\172\1\165\1\156\1\uffff\1\156\1\164\1\172\1\160\1\156\1\157\1\156\1\uffff\1\172\1\145\1\uffff\1\172\1\164\1\166\1\145\1\141\1\145\1\156\1\141\1\156\1\164\1\160\1\40\1\172\1\141\1\162\1\uffff\1\171\1\uffff\1\106\1\145\1\uffff\1\151\2\172\1\145\1\uffff\1\147\1\145\1\164\1\163\1\164\1\uffff\1\172\1\162\1\160\1\154\1\171\3\uffff\1\172\1\142\1\144\1\163\1\164\1\143\1\120\1\162\1\171\1\151\1\123\1\165\1\141\1\151\1\156\2\172\1\uffff\1\172\1\164\1\172\1\uffff\1\157\1\147\1\154\1\145\1\144\1\147\1\144\1\172\1\151\2\172\1\151\1\171\1\172\1\uffff\1\145\1\154\1\157\1\151\1\163\1\151\2\uffff\1\155\1\164\1\123\1\171\1\uffff\1\163\1\172\1\154\1\143\1\uffff\1\162\1\164\1\uffff\1\172\1\141\1\162\1\164\1\144\1\143\1\142\1\172\1\171\1\163\1\164\1\uffff\1\154\1\172\1\117\2\162\1\164\1\uffff\2\172\1\162\1\171\1\163\1\171\1\uffff\2\172\1\157\1\154\1\uffff\1\145\4\172\1\141\1\164\1\154\1\156\1\145\1\155\1\164\1\157\1\171\1\154\1\163\3\uffff\1\151\1\uffff\1\156\1\172\1\145\1\172\1\145\1\150\1\145\1\uffff\1\154\2\uffff\1\156\1\172\1\145\1\uffff\1\144\1\145\1\160\1\157\1\172\1\164\1\142\1\145\1\164\1\154\1\145\1\172\1\uffff\1\157\1\171\1\163\1\171\1\uffff\1\154\1\172\1\157\1\172\2\145\1\uffff\1\154\1\172\2\uffff\1\172\1\164\1\uffff\1\156\1\157\1\40\1\171\2\uffff\2\172\1\142\1\154\1\uffff\1\141\1\uffff\1\162\1\145\1\144\4\uffff\1\163\1\172\1\145\1\147\1\154\1\156\1\151\1\156\1\111\1\167\1\172\1\156\1\151\1\uffff\1\172\1\uffff\1\162\1\164\1\162\1\172\1\147\1\uffff\1\162\2\172\1\151\1\156\1\uffff\1\172\1\145\1\147\1\171\1\145\1\172\1\uffff\1\162\2\172\1\154\1\163\1\uffff\1\162\1\uffff\1\157\1\154\1\145\2\uffff\1\171\1\123\1\155\1\164\1\123\2\uffff\1\141\1\145\1\164\2\172\1\102\1\164\1\uffff\2\172\1\145\1\163\1\157\1\172\1\144\1\141\1\uffff\1\147\1\172\1\uffff\3\172\1\uffff\2\172\2\uffff\1\143\1\172\1\uffff\1\162\1\145\1\154\1\172\1\uffff\1\172\2\uffff\1\145\1\172\1\123\1\146\2\172\1\154\1\145\1\172\2\uffff\1\164\1\162\1\172\1\164\2\uffff\1\171\1\172\2\uffff\1\143\1\172\1\156\1\uffff\1\172\1\171\1\172\1\145\5\uffff\1\172\1\uffff\1\172\1\162\1\145\2\uffff\1\172\1\uffff\1\164\1\172\2\uffff\1\145\1\154\1\uffff\1\171\1\123\1\uffff\1\145\1\172\1\uffff\1\164\1\uffff\1\172\1\uffff\1\163\1\uffff\1\144\2\uffff\2\172\1\uffff\1\171\1\uffff\1\172\1\145\1\154\1\164\1\162\1\uffff\1\145\1\uffff\2\172\2\uffff\1\154\1\uffff\1\143\1\145\1\171\1\156\1\144\2\uffff\1\145\1\164\1\172\1\154\4\172\1\uffff\1\145\4\uffff\1\172\1\uffff";
     static final String DFA24_acceptS =
-        "\2\uffff\1\2\1\3\25\uffff\1\115\1\116\3\uffff\1\130\1\131\1\132"+
-        "\1\133\1\134\11\uffff\1\173\2\uffff\1\u00ab\3\uffff\1\u00b1\1\u00b4"+
-        "\1\u00b5\3\uffff\1\u00ab\1\2\1\3\101\uffff\1\76\2\uffff\1\157\1"+
-        "\114\1\115\1\116\1\135\1\166\1\125\1\136\1\154\1\167\1\126\1\137"+
-        "\1\162\1\127\1\130\1\131\1\132\1\133\1\134\1\140\1\u00b2\1\u00b3"+
-        "\1\163\1\141\1\164\1\160\1\142\1\144\1\143\1\145\1\172\1\146\1\u0097"+
-        "\1\uffff\1\165\1\161\1\171\1\u0096\1\170\1\177\1\173\1\uffff\1\u00af"+
-        "\1\uffff\1\u00ac\1\u00b0\2\uffff\1\u00b1\1\u00b4\12\uffff\1\55\17"+
-        "\uffff\1\u0084\1\uffff\1\6\42\uffff\1\47\17\uffff\1\174\21\uffff"+
-        "\1\155\1\156\1\uffff\1\151\1\147\1\152\1\150\3\uffff\1\u00ae\16"+
-        "\uffff\1\u0092\14\uffff\1\72\6\uffff\1\107\25\uffff\1\u0082\11\uffff"+
-        "\1\117\1\uffff\1\u0086\1\u0085\27\uffff\1\u008b\1\u009d\3\uffff"+
-        "\1\u009f\11\uffff\1\u00ae\1\uffff\1\32\4\uffff\1\74\11\uffff\1\u008d"+
-        "\1\124\10\uffff\1\50\5\uffff\1\60\16\uffff\1\u00a7\14\uffff\1\175"+
-        "\11\uffff\1\u0081\2\uffff\1\24\16\uffff\1\u008e\3\uffff\1\71\2\uffff"+
-        "\1\u00a1\4\uffff\1\u00a8\5\uffff\1\4\5\uffff\1\66\1\u00ad\1\u0090"+
-        "\21\uffff\1\75\3\uffff\1\u008a\14\uffff\1\u008c\7\uffff\1\u0098"+
-        "\1\17\1\22\4\uffff\1\u0095\2\uffff\1\25\12\uffff\1\44\10\uffff\1"+
-        "\u0083\6\uffff\1\36\4\uffff\1\u008f\17\uffff\1\52\1\u0088\1\uffff"+
-        "\1\176\4\uffff\1\34\2\uffff\1\u0091\1\u009e\1\uffff\1\56\2\uffff"+
-        "\1\104\1\uffff\1\63\7\uffff\1\41\4\uffff\1\70\5\uffff\1\u00a3\2"+
-        "\uffff\1\u009b\1\u009c\2\uffff\1\51\1\54\5\uffff\1\1\1\13\4\uffff"+
-        "\1\16\1\uffff\1\67\3\uffff\1\43\1\62\1\u0080\1\33\6\uffff\1\42\5"+
-        "\uffff\1\u00a0\5\uffff\1\u0093\4\uffff\1\u0087\3\uffff\1\u00a6\6"+
-        "\uffff\1\u00a5\3\uffff\1\30\1\40\6\uffff\1\20\1\45\6\uffff\1\53"+
-        "\7\uffff\1\u00a9\5\uffff\1\112\2\uffff\1\15\1\uffff\1\73\1\uffff"+
-        "\1\u00a4\1\23\1\uffff\1\121\1\u00aa\12\uffff\1\u0099\1\u009a\4\uffff"+
-        "\1\64\1\122\1\5\1\103\1\21\7\uffff\1\12\1\61\1\uffff\1\14\1\31\1"+
-        "\uffff\1\u0089\1\65\1\uffff\1\26\2\uffff\1\27\1\101\2\uffff\1\102"+
-        "\1\111\2\uffff\1\120\1\uffff\1\37\4\uffff\1\u00a2\1\uffff\1\57\1"+
-        "\100\1\123\1\uffff\1\153\5\uffff\1\46\5\uffff\1\105\1\77\5\uffff"+
-        "\1\11\1\u0094\7\uffff\1\113\1\uffff\1\35\1\7\1\uffff\1\110\1\uffff"+
-        "\1\10\1\106";
+        "\2\uffff\1\2\1\3\25\uffff\1\117\1\120\3\uffff\1\136\1\137\1\140\1\141\1\142\1\143\16\uffff\1\u00b4\1\u00b5\1\u00b8\1\u00b9\3\uffff\1\u00b4\1\2\1\3\102\uffff\1\100\2\uffff\1\166\1\116\1\117\1\120\1\144\1\175\1\127\1\145\1\163\1\176\1\130\1\146\1\171\1\134\1\136\1\137\1\140\1\141\1\142\1\143\1\147\1\u00b6\1\u00b7\1\172\1\150\1\173\1\167\1\151\1\153\1\152\1\154\1\u0081\1\155\1\u009b\1\uffff\1\174\1\170\1\u0080\1\u009a\1\177\1\u0085\1\uffff\1\u00b5\2\uffff\1\u00b1\1\uffff\1\u00b2\1\u00b3\1\u00b8\31\uffff\1\u008a\1\uffff\1\6\66\uffff\1\u0082\11\uffff\1\135\4\uffff\1\164\1\165\1\uffff\1\160\1\156\1\161\1\157\3\uffff\1\u00b0\16\uffff\1\u0096\14\uffff\1\77\22\uffff\1\111\12\uffff\1\u0088\12\uffff\1\121\3\uffff\1\u00a3\1\uffff\1\u008c\1\u008b\30\uffff\1\u00a1\1\u008f\11\uffff\1\u00b0\1\uffff\1\35\4\uffff\1\75\11\uffff\1\u0091\1\126\17\uffff\1\61\17\uffff\1\u00ab\15\uffff\1\u0083\4\uffff\1\22\7\uffff\1\u0087\2\uffff\1\27\17\uffff\1\u0092\1\uffff\1\71\2\uffff\1\u00a5\4\uffff\1\u00ac\5\uffff\1\4\5\uffff\1\67\1\u00af\1\u0094\21\uffff\1\76\3\uffff\1\u008e\16\uffff\1\u0090\6\uffff\1\u009c\1\20\4\uffff\1\25\4\uffff\1\u0099\2\uffff\1\30\13\uffff\1\47\6\uffff\1\u0089\6\uffff\1\41\4\uffff\1\u0093\20\uffff\1\11\1\57\1\132\1\uffff\1\u0084\7\uffff\1\37\1\uffff\1\u0095\1\u00a2\3\uffff\1\106\14\uffff\1\44\4\uffff\1\131\6\uffff\1\u00a7\2\uffff\1\u009f\1\u00a0\2\uffff\1\56\4\uffff\1\1\1\14\4\uffff\1\17\1\uffff\1\70\3\uffff\1\46\1\63\1\u0086\1\36\15\uffff\1\u00a4\1\uffff\1\45\5\uffff\1\u0097\5\uffff\1\u008d\6\uffff\1\u00aa\5\uffff\1\55\1\uffff\1\u00a9\3\uffff\1\33\1\43\5\uffff\1\23\1\50\7\uffff\1\60\10\uffff\1\u00ad\2\uffff\1\10\3\uffff\1\114\2\uffff\1\16\1\74\2\uffff\1\u00a8\4\uffff\1\26\1\uffff\1\123\1\u00ae\11\uffff\1\u009d\1\u009e\4\uffff\1\65\1\124\2\uffff\1\105\1\24\3\uffff\1\7\4\uffff\1\13\1\62\1\73\1\15\1\34\1\uffff\1\133\3\uffff\1\104\1\66\1\uffff\1\31\2\uffff\1\32\1\103\2\uffff\1\113\2\uffff\1\122\2\uffff\1\54\1\uffff\1\42\1\uffff\1\21\1\uffff\1\u00a6\1\uffff\1\102\1\52\2\uffff\1\125\1\uffff\1\162\5\uffff\1\5\1\uffff\1\51\2\uffff\1\53\1\101\1\uffff\1\107\5\uffff\1\72\1\u0098\10\uffff\1\115\1\uffff\1\40\1\12\1\112\1\64\1\uffff\1\110";
     static final String DFA24_specialS =
-        "\1\0\u0357\uffff}>";
+        "\1\0\u0380\uffff}>";
     static final String[] DFA24_transitionS = {
-            "\11\65\2\64\2\65\1\64\22\65\1\64\1\51\1\63\1\40\1\57\1\44\1"+
-            "\50\1\61\1\31\1\32\1\35\1\33\1\37\1\34\1\26\1\43\1\60\11\62"+
-            "\1\53\1\54\1\45\1\30\1\46\1\52\1\36\32\57\1\41\1\65\1\42\1\56"+
-            "\1\57\1\65\1\6\1\24\1\16\1\5\1\13\1\12\1\25\1\20\1\17\2\57\1"+
-            "\21\1\7\1\23\1\22\1\1\1\27\1\11\1\10\1\4\1\14\1\15\1\55\3\57"+
-            "\1\2\1\47\1\3\uff82\65",
+            "\11\65\2\64\2\65\1\64\22\65\1\64\1\52\1\63\1\41\1\62\1\45\1\51\1\56\1\31\1\32\1\35\1\33\1\40\1\34\1\26\1\44\1\57\11\60\1\54\1\36\1\46\1\30\1\47\1\53\1\37\32\62\1\42\1\65\1\43\1\61\1\62\1\65\1\6\1\15\1\17\1\5\1\13\1\12\1\25\1\21\1\20\2\62\1\22\1\10\1\24\1\23\1\1\1\27\1\11\1\7\1\4\1\14\1\16\1\55\3\62\1\2\1\50\1\3\uff82\65",
             "\1\66\15\uffff\1\67\2\uffff\1\70",
             "",
             "",
-            "\1\74\3\uffff\1\76\2\uffff\1\100\6\uffff\1\75\2\uffff\1\77"+
-            "\6\uffff\1\101",
-            "\1\104\3\uffff\1\102\11\uffff\1\106\4\uffff\1\105\4\uffff"+
-            "\1\103",
+            "\1\74\3\uffff\1\76\2\uffff\1\100\6\uffff\1\75\2\uffff\1\77\6\uffff\1\101",
+            "\1\104\3\uffff\1\102\11\uffff\1\106\4\uffff\1\105\4\uffff\1\103",
             "\1\111\4\uffff\1\110\6\uffff\1\107\4\uffff\1\112",
-            "\1\115\3\uffff\1\114\17\uffff\1\113",
-            "\1\117\3\uffff\1\116\2\uffff\1\124\7\uffff\1\120\1\122\1\uffff"+
-            "\1\121\1\uffff\1\123",
+            "\1\113\3\uffff\1\114\2\uffff\1\121\7\uffff\1\115\1\117\1\uffff\1\116\1\uffff\1\120",
+            "\1\124\3\uffff\1\123\17\uffff\1\122",
             "\1\126\3\uffff\1\127\5\uffff\1\125",
             "\1\132\7\uffff\1\130\5\uffff\1\131",
-            "\1\135\7\uffff\1\136\1\133\3\uffff\1\140\4\uffff\1\134\1\uffff"+
-            "\1\137",
+            "\1\134\7\uffff\1\137\1\133\3\uffff\1\140\4\uffff\1\135\1\uffff\1\136",
             "\1\143\1\142\2\uffff\1\141",
-            "\1\144",
-            "\1\150\3\uffff\1\146\2\uffff\1\151\6\uffff\1\145\5\uffff\1"+
-            "\147",
-            "\1\152\2\uffff\1\155\6\uffff\1\153\1\154",
-            "\1\156\12\uffff\1\157",
-            "\1\161\11\uffff\1\160",
-            "\1\162",
-            "\1\164\11\uffff\1\165\5\uffff\1\163",
-            "\1\171\15\uffff\1\170\2\uffff\1\166\2\uffff\1\167",
-            "\1\173\2\uffff\1\172",
-            "\1\174",
-            "\1\176",
-            "\1\177\1\u0080",
+            "\1\147\3\uffff\1\144\11\uffff\1\146\5\uffff\1\145",
+            "\1\150",
+            "\1\154\3\uffff\1\152\2\uffff\1\155\6\uffff\1\151\5\uffff\1\153",
+            "\1\156\2\uffff\1\161\6\uffff\1\157\1\160",
+            "\1\162\12\uffff\1\163",
+            "\1\165\11\uffff\1\164",
+            "\1\166",
+            "\1\172\11\uffff\1\170\3\uffff\1\171\1\uffff\1\167",
+            "\1\174\2\uffff\1\173",
+            "\1\175",
+            "\1\177",
+            "\1\u0080\1\u0081",
             "",
             "",
-            "\1\u0085\21\uffff\1\u0084",
-            "\1\u0089\17\uffff\1\u0087\1\u0088",
-            "\1\u008c\22\uffff\1\u008b",
+            "\1\u0086\21\uffff\1\u0085",
+            "\1\u008a\17\uffff\1\u0088\1\u0089",
+            "\1\u008d\22\uffff\1\u008c",
             "",
             "",
             "",
             "",
             "",
-            "\1\u0094\4\uffff\1\u0095\15\uffff\1\u0093",
-            "\1\u0097",
+            "",
+            "\1\u0096\4\uffff\1\u0097\15\uffff\1\u0095",
             "\1\u0099",
             "\1\u009b",
             "\1\u009d",
             "\1\u009f",
             "\1\u00a1",
-            "\1\u00a4\13\uffff\1\u00a3",
-            "\1\u00a6",
-            "",
-            "\1\u00a9",
+            "\1\u00a3",
+            "\1\u00a6\13\uffff\1\u00a5",
+            "\1\u00a8",
+            "\1\u00aa",
+            "\1\u00ad\34\uffff\32\u00ad\3\uffff\1\u00ac\1\u00ad\1\uffff\32\u00ad",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\13\uffff\1\u00ae\6\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\13\uffff\1\u00ae",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\22\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1",
             "\1\71\34\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\12\u00ab\10\uffff\1\u00ad\1\uffff\3\u00ad\5\uffff\1\u00ad"+
-            "\13\uffff\1\u00aa\6\uffff\1\u00ab\2\uffff\1\u00ad\1\uffff\3"+
-            "\u00ad\5\uffff\1\u00ad\13\uffff\1\u00aa",
-            "\1\u00af\34\uffff\32\u00af\3\uffff\1\u00ae\1\u00af\1\uffff"+
-            "\32\u00af",
-            "\12\u00ab\10\uffff\1\u00ad\1\uffff\3\u00ad\5\uffff\1\u00ad"+
-            "\22\uffff\1\u00ab\2\uffff\1\u00ad\1\uffff\3\u00ad\5\uffff\1"+
-            "\u00ad",
             "",
             "",
             "",
-            "\1\u00b2\3\uffff\1\u00b4\14\uffff\1\u00b3",
-            "\1\u00b5",
-            "\1\u00b6\3\uffff\1\u00b8\5\uffff\1\u00b7",
+            "\1\u00b3\3\uffff\1\u00b5\14\uffff\1\u00b4",
+            "\1\u00b6",
+            "\1\u00b7\3\uffff\1\u00b9\5\uffff\1\u00b8",
             "",
             "",
             "",
-            "\1\u00b9\20\uffff\1\u00ba",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\16"+
-            "\71\1\u00bb\13\71",
+            "\1\u00ba\20\uffff\1\u00bb",
+            "\1\u00bc",
             "\1\u00bd",
             "\1\u00be\17\uffff\1\u00bf\3\uffff\1\u00c0",
             "\1\u00c1\14\uffff\1\u00c2",
@@ -6323,25 +6214,23 @@
             "\1\u00c8",
             "\1\u00ca\4\uffff\1\u00c9",
             "\1\u00cb",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\2"+
-            "\71\1\u00cd\27\71",
-            "\1\u00cf",
-            "\1\u00d0",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\2\71\1\u00cd\27\71",
+            "\1\u00d0\12\uffff\1\u00cf",
             "\1\u00d1",
             "\1\u00d2",
-            "\1\u00d3",
-            "\1\u00d4",
+            "\1\u00d4\10\uffff\1\u00d3",
             "\1\u00d5",
-            "\1\u00d7\10\uffff\1\u00d6",
-            "\1\u00da\20\uffff\1\u00d8\6\uffff\1\u00d9",
+            "\1\u00d8\20\uffff\1\u00d6\6\uffff\1\u00d7",
+            "\1\u00d9",
+            "\1\u00da",
             "\1\u00db",
             "\1\u00dc",
             "\1\u00dd",
             "\1\u00de",
             "\1\u00df",
-            "\1\u00e2\1\uffff\1\u00e1\14\uffff\1\u00e0\1\u00e3",
+            "\1\u00e0",
+            "\1\u00e2\16\uffff\1\u00e1\1\u00e3",
             "\1\u00e4",
             "\1\u00e5\1\uffff\1\u00e6",
             "\1\u00e7",
@@ -6349,41 +6238,41 @@
             "\1\u00e9",
             "\1\u00ea",
             "\1\u00eb",
-            "\1\u00ec",
-            "\1\u00ee\3\uffff\1\u00ed",
+            "\1\u00ed\3\uffff\1\u00ec",
+            "\1\u00ee",
             "\1\u00ef",
             "\1\u00f0",
             "\1\u00f1",
             "\1\u00f2",
-            "\1\u00f3\5\uffff\1\u00f4",
+            "\1\u00f3",
+            "\1\u00f4",
             "\1\u00f5",
             "\1\u00f6",
-            "\1\u00f7",
-            "\1\u00f8\1\u00f9",
+            "\1\u00f7\5\uffff\1\u00f8",
+            "\1\u00f9",
             "\1\u00fa",
             "\1\u00fb",
-            "\1\u00fc\16\uffff\1\u00fd",
-            "\1\u00ff\16\uffff\1\u0100\1\u00fe",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u0102",
-            "\1\u0103",
-            "\1\u0104\7\uffff\1\u0105",
+            "\1\u00fc\1\u00fd",
+            "\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100\16\uffff\1\u0101",
+            "\1\u0103\16\uffff\1\u0104\1\u0102",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0106",
             "\1\u0107",
-            "\1\u0109\1\u0108",
+            "\1\u0108\7\uffff\1\u0109",
             "\1\u010a",
             "\1\u010b",
-            "\1\u010c",
-            "\1\u010d",
+            "\1\u010d\1\u010c",
             "\1\u010e",
-            "\1\u010f",
-            "\1\u0111\3\uffff\1\u0110",
-            "\1\u0112",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0110",
+            "\1\u0112\3\uffff\1\u0111",
             "\1\u0113",
+            "\1\u0114",
             "",
-            "\1\u0115",
             "\1\u0116",
+            "\1\u0117",
             "",
             "",
             "",
@@ -6417,44 +6306,38 @@
             "",
             "",
             "",
-            "\1\u0118",
+            "",
+            "\1\u0119",
             "",
             "",
             "",
             "",
             "",
             "",
+            "\1\u011b",
             "",
-            "\1\u011a",
+            "\1\u00ad\34\uffff\32\u00ad\4\uffff\1\u00ad\1\uffff\32\u00ad",
+            "\1\u011c\2\uffff\1\u011e\7\uffff\1\u011d\12\u011c\7\uffff\32\u011c\4\uffff\1\u011c\1\uffff\32\u011c",
             "",
-            "\12\u00ab\10\uffff\1\u00ad\1\uffff\3\u00ad\5\uffff\1\u00ad"+
-            "\22\uffff\1\u00ab\2\uffff\1\u00ad\1\uffff\3\u00ad\5\uffff\1"+
-            "\u00ad",
+            "\12\u00af\10\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1\22\uffff\1\u00af\2\uffff\1\u00b1\1\uffff\3\u00b1\5\uffff\1\u00b1",
             "",
             "",
-            "\1\u00af\34\uffff\32\u00af\4\uffff\1\u00af\1\uffff\32\u00af",
-            "\1\u011b\2\uffff\1\u011d\7\uffff\1\u011c\12\u011b\7\uffff"+
-            "\32\u011b\4\uffff\1\u011b\1\uffff\32\u011b",
             "",
-            "",
-            "\1\u011e",
             "\1\u011f",
             "\1\u0120",
             "\1\u0121",
             "\1\u0122",
-            "\1\u0124\10\uffff\1\u0123",
-            "\1\u0125",
+            "\1\u0123",
+            "\1\u0125\10\uffff\1\u0124",
             "\1\u0126",
             "\1\u0127",
             "\1\u0128",
-            "",
             "\1\u0129",
             "\1\u012a",
             "\1\u012b",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u012e\1\u012d",
-            "\1\u012f",
+            "\1\u012c",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u012f\1\u012e",
             "\1\u0130",
             "\1\u0131",
             "\1\u0132",
@@ -6462,41 +6345,37 @@
             "\1\u0134",
             "\1\u0135",
             "\1\u0136",
-            "\1\u0137\3\uffff\1\u0138",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
-            "\1\u013a",
+            "\1\u0137",
+            "\1\u0138\3\uffff\1\u0139",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
             "\1\u013b",
+            "",
             "\1\u013c",
             "\1\u013d",
             "\1\u013e",
             "\1\u013f",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u0140",
             "\1\u0141",
             "\1\u0142",
             "\1\u0143",
             "\1\u0144",
-            "\1\u0145",
-            "\1\u0147\14\uffff\1\u0146",
+            "\1\u0146\14\uffff\1\u0145",
+            "\1\u0147",
             "\1\u0148",
             "\1\u0149",
             "\1\u014a",
             "\1\u014b",
-            "\1\u014c\12\uffff\1\u014d",
-            "\1\u014e",
-            "\1\u014f",
-            "\1\u0150",
+            "\1\u014c",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u014e\37\uffff\1\u014f\12\uffff\1\u0150",
             "\1\u0151",
             "\1\u0152",
             "\1\u0153",
             "\1\u0154",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\14"+
-            "\71\1\u0155\15\71",
-            "\1\u0157",
-            "\1\u0158",
+            "\1\u0155",
+            "\1\u0156",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\14\71\1\u0157\15\71",
             "\1\u0159",
             "\1\u015a",
             "\1\u015b",
@@ -6504,81 +6383,70 @@
             "\1\u015d",
             "\1\u015e",
             "\1\u015f",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\24"+
-            "\71\1\u0161\5\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u0164\10\uffff\1\u0165",
+            "\1\u0160",
+            "\1\u0161",
+            "\1\u0162",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0164",
+            "\1\u0165",
             "\1\u0166",
             "\1\u0167",
-            "\1\u0168",
-            "\1\u0169",
-            "\1\u016a",
-            "\1\u016b",
-            "\1\u016c",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\24\71\1\u0168\5\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u016b\10\uffff\1\u016c",
             "\1\u016d",
             "\1\u016e",
-            "\1\u0170\3\uffff\1\u016f",
+            "\1\u016f",
+            "\1\u0170",
             "\1\u0171",
-            "",
-            "\1\u0173\1\u0172",
+            "\1\u0172",
+            "\1\u0173",
             "\1\u0174",
             "\1\u0175",
-            "\1\u0176",
-            "\1\u0177",
+            "\1\u0177\3\uffff\1\u0176",
             "\1\u0178",
-            "\1\u0179",
-            "\1\u017a",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "",
+            "\1\u017a\1\u0179",
+            "\1\u017b",
             "\1\u017c",
             "\1\u017d",
             "\1\u017e",
             "\1\u017f",
             "\1\u0180",
             "\1\u0181",
-            "\1\u0183\3\uffff\1\u0182",
-            "\1\u0184",
+            "\1\u0183\110\uffff\1\u0182",
             "",
-            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0185",
+            "\1\u0187\3\uffff\1\u0186",
+            "\1\u0188",
+            "",
+            "",
+            "\1\u0189",
             "",
             "",
             "",
             "",
-            "\1\u0186",
-            "\1\u011b\2\uffff\1\u011d\7\uffff\1\u011c\12\u011b\7\uffff"+
-            "\32\u011b\4\uffff\1\u011b\1\uffff\32\u011b",
-            "\1\u0189\5\uffff\1\u0187\26\uffff\32\u0189\3\uffff\1\u0188"+
-            "\1\u0189\1\uffff\32\u0189",
+            "\1\u018a",
+            "\1\u011c\2\uffff\1\u011e\7\uffff\1\u011d\12\u011c\7\uffff\32\u011c\4\uffff\1\u011c\1\uffff\32\u011c",
+            "\1\u018d\5\uffff\1\u018b\26\uffff\32\u018d\3\uffff\1\u018c\1\u018d\1\uffff\32\u018d",
             "",
-            "\1\u018b",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u018d",
-            "\1\u018e",
             "\1\u018f",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\4"+
-            "\71\1\u0190\25\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0191",
             "\1\u0192",
             "\1\u0193",
-            "\1\u0194",
-            "\1\u0195",
-            "\1\u0196\21\uffff\1\u0197",
-            "\1\u0199\17\uffff\1\u0198",
-            "\1\u019a",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u019d",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\4\71\1\u0194\25\71",
+            "\1\u0196",
+            "\1\u0197",
+            "\1\u0198",
+            "\1\u0199",
+            "\1\u019a\21\uffff\1\u019b",
+            "\1\u019d\17\uffff\1\u019c",
             "\1\u019e",
-            "\1\u019f",
-            "\1\u01a0",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u01a1",
             "\1\u01a2",
             "\1\u01a3",
@@ -6586,18 +6454,16 @@
             "\1\u01a5",
             "\1\u01a6",
             "\1\u01a7",
-            "",
             "\1\u01a8",
             "\1\u01a9",
             "\1\u01aa",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u01ab",
+            "",
             "\1\u01ac",
             "\1\u01ad",
-            "",
             "\1\u01ae",
             "\1\u01af",
-            "\1\u01b0",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u01b1",
             "\1\u01b2",
             "\1\u01b3",
@@ -6607,626 +6473,573 @@
             "\1\u01b7",
             "\1\u01b8",
             "\1\u01b9",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u01ba",
             "\1\u01bb",
             "\1\u01bc",
             "\1\u01bd",
+            "",
             "\1\u01be",
             "\1\u01bf",
-            "\1\u01c0",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u01c1",
             "\1\u01c2",
-            "",
             "\1\u01c3",
             "\1\u01c4",
             "\1\u01c5",
             "\1\u01c6",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u01c7",
+            "",
             "\1\u01c8",
             "\1\u01c9",
             "\1\u01ca",
             "\1\u01cb",
-            "",
             "\1\u01cc",
-            "",
-            "",
             "\1\u01cd",
-            "\1\u01ce",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u01cf",
             "\1\u01d0",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u01d2",
-            "\1\u01d3",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u01d2\4\uffff\1\u01d1",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01d4",
             "\1\u01d5",
+            "",
             "\1\u01d6",
+            "",
+            "",
             "\1\u01d7",
             "\1\u01d8",
             "\1\u01d9",
             "\1\u01da",
-            "\1\u01db",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u01dc",
             "\1\u01dd",
-            "\1\u01de",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u01df",
             "\1\u01e0",
-            "\1\u01e1",
-            "\1\u01e2",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
-            "",
+            "\1\u01e2\12\uffff\1\u01e1",
+            "\1\u01e3",
             "\1\u01e4",
             "\1\u01e5",
             "\1\u01e6",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u01e7",
             "\1\u01e8",
             "\1\u01e9",
             "\1\u01ea",
             "\1\u01eb",
             "\1\u01ec",
-            "\1\u011d",
-            "\1\u0189\34\uffff\32\u0189\4\uffff\1\u0189\1\uffff\32\u0189",
-            "\1\u01ed\2\uffff\1\u011d\7\uffff\1\u011c\12\u01ed\7\uffff"+
-            "\32\u01ed\4\uffff\1\u01ed\1\uffff\32\u01ed",
+            "\1\u01ed",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01ef",
             "",
-            "\1\u01ee",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u01f0",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u01f1",
             "\1\u01f2",
-            "",
             "\1\u01f3",
             "\1\u01f4",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u01f6",
+            "\1\u01f5",
+            "\1\u011e",
+            "\1\u018d\34\uffff\32\u018d\4\uffff\1\u018d\1\uffff\32\u018d",
+            "\1\u01f6\2\uffff\1\u011e\7\uffff\1\u011d\12\u01f6\7\uffff\32\u01f6\4\uffff\1\u01f6\1\uffff\32\u01f6",
+            "",
             "\1\u01f7",
-            "\1\u01f8",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u01f9",
             "\1\u01fa",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
+            "\1\u01fb",
             "",
             "\1\u01fc",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u01fe",
+            "\1\u01fd",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u01ff",
             "\1\u0200",
             "\1\u0201",
             "\1\u0202",
             "\1\u0203",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\1\u0204",
+            "",
             "\1\u0205",
-            "\1\u0206",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0207",
             "\1\u0208",
-            "",
             "\1\u0209",
             "\1\u020a",
             "\1\u020b",
             "\1\u020c",
             "\1\u020d",
             "\1\u020e",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u020f",
             "\1\u0210",
             "\1\u0211",
             "\1\u0212",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u0213",
+            "",
             "\1\u0214",
             "\1\u0215",
-            "\1\u0216\7\uffff\1\u0217",
-            "",
-            "\1\u0218",
+            "\1\u0216",
+            "\1\u0217",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0219",
             "\1\u021a",
             "\1\u021b",
-            "\1\u021c",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u021d",
             "\1\u021e",
             "\1\u021f",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u0220",
             "\1\u0221",
-            "\1\u0223\36\uffff\1\u0222",
-            "\1\u0224",
+            "\1\u0223\7\uffff\1\u0222",
             "",
-            "\1\u0225\16\uffff\1\u0226",
+            "\1\u0224",
+            "\1\u0225",
+            "\1\u0226",
             "\1\u0227",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u022b",
+            "\1\u0228",
+            "\1\u0229",
+            "\1\u022a",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u022c",
             "\1\u022d",
             "\1\u022e",
+            "\1\u0230\16\uffff\1\u022f",
+            "\1\u0231",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u0230",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\22\71\1\u0231\7\71\4\uffff\1"+
-            "\71\1\uffff\32\71",
-            "\1\u0233",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0234",
             "\1\u0235",
+            "",
             "\1\u0236",
             "\1\u0237",
-            "\1\u0238",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0239",
             "\1\u023a",
             "\1\u023b",
             "\1\u023c",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u023e",
-            "\1\u023f",
             "",
-            "\1\u0240",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u023e",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\22\71\1\u023f\7\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0241",
             "\1\u0242",
-            "",
             "\1\u0243",
             "\1\u0244",
-            "",
             "\1\u0245",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u01ed\2\uffff\1\u011d\7\uffff\1\u011c\12\u01ed\7\uffff"+
-            "\32\u01ed\4\uffff\1\u01ed\1\uffff\32\u01ed",
+            "\1\u0246",
             "\1\u0247",
-            "",
             "\1\u0248",
             "\1\u0249",
             "\1\u024a",
             "\1\u024b",
-            "\1\u024c",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u024d",
             "\1\u024e",
+            "",
             "\1\u024f",
+            "",
             "\1\u0250",
             "\1\u0251",
             "",
-            "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u0253",
+            "\1\u0252",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01f6\2\uffff\1\u011e\7\uffff\1\u011d\12\u01f6\7\uffff\32\u01f6\4\uffff\1\u01f6\1\uffff\32\u01f6",
             "\1\u0254",
+            "",
             "\1\u0255",
             "\1\u0256",
             "\1\u0257",
             "\1\u0258",
             "\1\u0259",
-            "\1\u025a",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u025b",
             "\1\u025c",
             "\1\u025d",
             "\1\u025e",
-            "\1\u025f",
+            "",
+            "",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0260",
             "\1\u0261",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u0262",
+            "\1\u0263",
             "\1\u0264",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
+            "\1\u0265",
             "\1\u0266",
             "\1\u0267",
             "\1\u0268",
             "\1\u0269",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u026a",
             "\1\u026b",
-            "\1\u026c",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\10"+
-            "\71\1\u026f\21\71",
-            "\1\u0271",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\23"+
-            "\71\1\u0272\6\71",
+            "\1\u026d\36\uffff\1\u026e\7\uffff\1\u026c",
+            "\1\u026f",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\1\u0274",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0273",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0275",
             "\1\u0276",
             "\1\u0277",
             "\1\u0278",
             "\1\u0279",
             "\1\u027a",
-            "",
-            "",
-            "",
             "\1\u027b",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\22"+
-            "\71\1\u027c\7\71",
-            "\1\u027e",
-            "\1\u027f",
-            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u027d",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0280",
             "\1\u0281",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\23\71\1\u0282\6\71",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u0283",
             "\1\u0284",
             "\1\u0285",
             "\1\u0286",
             "\1\u0287",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u0288",
             "\1\u0289",
-            "\1\u028a",
-            "\1\u028b\16\uffff\1\u028c",
             "",
+            "",
+            "\1\u028a",
+            "\1\u028b",
+            "\1\u028c",
             "\1\u028d",
-            "\1\71\13\uffff\12\71\7\uffff\22\71\1\u028e\7\71\4\uffff\1"+
-            "\71\1\uffff\32\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "",
+            "\1\u028e",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\22\71\1\u028f\7\71",
             "\1\u0291",
             "\1\u0292",
+            "",
             "\1\u0293",
             "\1\u0294",
-            "\1\u0295",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0296",
+            "\1\u0297",
             "\1\u0298",
             "\1\u0299",
             "\1\u029a",
             "\1\u029b",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\17\71\1\u029d\12\71\4\uffff\1"+
-            "\71\1\uffff\32\71",
-            "\1\u029f",
-            "\1\u02a0",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u029d",
+            "\1\u029e",
+            "\1\u029f\16\uffff\1\u02a0",
             "",
             "\1\u02a1",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\71\13\uffff\12\71\7\uffff\22\71\1\u02a2\7\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02a4",
+            "\1\u02a5",
             "\1\u02a6",
             "\1\u02a7",
-            "\1\u02a8",
-            "\1\u02a9",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u02aa",
             "\1\u02ab",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u02ac",
             "\1\u02ad",
-            "\1\u02ae",
-            "\1\u02af",
             "",
-            "",
-            "\1\u02b0",
-            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\17\71\1\u02af\12\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u02b1",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u02b2",
+            "",
             "\1\u02b3",
-            "\1\u02b4",
-            "",
-            "\1\u02b5",
-            "\1\u02b6",
-            "",
-            "",
-            "\1\u02b7",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02b8",
             "\1\u02b9",
-            "",
             "\1\u02ba",
-            "",
             "\1\u02bb",
             "\1\u02bc",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u02bd",
             "\1\u02be",
             "\1\u02bf",
             "\1\u02c0",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
+            "\1\u02c1",
             "\1\u02c2",
-            "\1\u02c3",
-            "\1\u02c4",
-            "\1\u02c5",
             "",
+            "",
+            "",
+            "\1\u02c3",
+            "",
+            "\1\u02c4",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u02c6",
-            "\1\u02c7",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02c8",
             "\1\u02c9",
             "\1\u02ca",
             "",
             "\1\u02cb",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
             "",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u02cc",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u02ce",
             "",
-            "",
             "\1\u02cf",
             "\1\u02d0",
             "\1\u02d1",
             "\1\u02d2",
-            "\1\u02d3",
-            "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02d4",
+            "\1\u02d5",
             "\1\u02d6",
             "\1\u02d7",
-            "",
             "\1\u02d8",
-            "",
             "\1\u02d9",
-            "\1\u02da",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
             "\1\u02db",
-            "",
-            "",
-            "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u02dc",
             "\1\u02dd",
             "\1\u02de",
+            "",
             "\1\u02df",
-            "\1\u02e0",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u02e1",
-            "",
-            "\1\u02e2",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u02e3",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u02e4",
+            "",
             "\1\u02e5",
-            "\1\u02e6",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\1\u02e7",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u02e8",
+            "",
             "\1\u02e9",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u02ea",
             "\1\u02eb",
-            "",
             "\1\u02ec",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u02ee",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
             "",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02ef",
             "\1\u02f0",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
             "",
+            "\1\u02f1",
+            "",
+            "\1\u02f2",
             "\1\u02f3",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u02f6",
+            "\1\u02f4",
+            "",
+            "",
+            "",
+            "",
+            "\1\u02f5",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u02f7",
             "\1\u02f8",
-            "",
             "\1\u02f9",
             "\1\u02fa",
             "\1\u02fb",
-            "",
-            "",
             "\1\u02fc",
             "\1\u02fd",
             "\1\u02fe",
-            "\1\u02ff",
-            "\1\u0300\16\uffff\1\u0301",
-            "\1\u0302",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0300",
+            "\1\u0301",
             "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
             "\1\u0303",
             "\1\u0304",
             "\1\u0305",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u0308",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0307",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u0308",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u030b",
             "\1\u030c",
-            "\1\u030d",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u030e",
             "\1\u030f",
-            "",
             "\1\u0310",
             "\1\u0311",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u0314",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
+            "\1\u0313",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0316",
             "\1\u0317",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u0318",
             "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
-            "",
+            "\1\u0319",
             "\1\u031a",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u031b",
+            "",
+            "",
             "\1\u031c",
             "\1\u031d",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u0320",
+            "\1\u031e",
+            "\1\u031f\16\uffff\1\u0320",
             "\1\u0321",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
             "",
             "",
+            "\1\u0322",
+            "\1\u0323",
             "\1\u0324",
-            "\1\u0325",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0327",
+            "\1\u0328",
             "",
-            "",
-            "",
-            "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u0329",
-            "\1\u032a",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u032b",
             "\1\u032c",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u032e",
+            "\1\u032d",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u032f",
+            "\1\u0330",
             "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "",
+            "\1\u0331",
             "\1\u0332",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
             "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\1\u0334",
-            "\1\u0335",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
             "",
-            "\1\u0336",
-            "\1\u0337",
-            "",
             "\1\u0338",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
             "\1\u033a",
             "\1\u033b",
             "\1\u033c",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\1\u033d",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
             "",
-            "",
-            "\1\u033e",
-            "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u033f",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0341",
             "\1\u0342",
-            "\1\u0343",
-            "",
-            "\1\u0344",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0345",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\u0346",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
             "\1\u0348",
-            "",
-            "",
             "\1\u0349",
-            "\1\u034a",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u034b",
+            "",
+            "",
             "\1\u034c",
-            "\1\u034d",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
             "",
             "\1\u034e",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0350",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
-            "\1\u0353",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
             "",
-            "\1\u0355",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0352",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0354",
             "",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
             "",
-            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32"+
-            "\71",
             "",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0357",
+            "\1\u0358",
+            "",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u035a",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u035c",
+            "\1\u035d",
+            "",
+            "\1\u035e",
+            "\1\u035f",
+            "",
+            "\1\u0360",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0362",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0364",
+            "",
+            "\1\u0365",
+            "",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0368",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u036a",
+            "\1\u036b",
+            "\1\u036c",
+            "\1\u036d",
+            "",
+            "\1\u036e",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u0371",
+            "",
+            "\1\u0372",
+            "\1\u0373",
+            "\1\u0374",
+            "\1\u0375",
+            "\1\u0376",
+            "",
+            "",
+            "\1\u0377",
+            "\1\u0378",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u037a",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u037f",
+            "",
+            "",
+            "",
+            "",
+            "\1\71\13\uffff\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             ""
     };
 
@@ -7260,7 +7073,7 @@
             this.transition = DFA24_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | T__172 | T__173 | T__174 | T__175 | T__176 | T__177 | T__178 | T__179 | T__180 | T__181 | T__182 | T__183 | T__184 | RULE_ID | RULE_INT | RULE_THEME_RESOURCE | RULE_EVENT_TOPIC | RULE_HEX | RULE_DECIMAL | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | T__172 | T__173 | T__174 | T__175 | T__176 | T__177 | T__178 | T__179 | T__180 | T__181 | T__182 | T__183 | T__184 | T__185 | T__186 | T__187 | T__188 | RULE_THEME_RESOURCE | RULE_EVENT_TOPIC | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
@@ -7282,9 +7095,9 @@
 
                         else if ( (LA24_0=='a') ) {s = 6;}
 
-                        else if ( (LA24_0=='m') ) {s = 7;}
+                        else if ( (LA24_0=='s') ) {s = 7;}
 
-                        else if ( (LA24_0=='s') ) {s = 8;}
+                        else if ( (LA24_0=='m') ) {s = 8;}
 
                         else if ( (LA24_0=='r') ) {s = 9;}
 
@@ -7294,21 +7107,21 @@
 
                         else if ( (LA24_0=='u') ) {s = 12;}
 
-                        else if ( (LA24_0=='v') ) {s = 13;}
+                        else if ( (LA24_0=='b') ) {s = 13;}
 
-                        else if ( (LA24_0=='c') ) {s = 14;}
+                        else if ( (LA24_0=='v') ) {s = 14;}
 
-                        else if ( (LA24_0=='i') ) {s = 15;}
+                        else if ( (LA24_0=='c') ) {s = 15;}
 
-                        else if ( (LA24_0=='h') ) {s = 16;}
+                        else if ( (LA24_0=='i') ) {s = 16;}
 
-                        else if ( (LA24_0=='l') ) {s = 17;}
+                        else if ( (LA24_0=='h') ) {s = 17;}
 
-                        else if ( (LA24_0=='o') ) {s = 18;}
+                        else if ( (LA24_0=='l') ) {s = 18;}
 
-                        else if ( (LA24_0=='n') ) {s = 19;}
+                        else if ( (LA24_0=='o') ) {s = 19;}
 
-                        else if ( (LA24_0=='b') ) {s = 20;}
+                        else if ( (LA24_0=='n') ) {s = 20;}
 
                         else if ( (LA24_0=='g') ) {s = 21;}
 
@@ -7328,47 +7141,47 @@
 
                         else if ( (LA24_0=='*') ) {s = 29;}
 
-                        else if ( (LA24_0=='@') ) {s = 30;}
+                        else if ( (LA24_0==';') ) {s = 30;}
 
-                        else if ( (LA24_0==',') ) {s = 31;}
+                        else if ( (LA24_0=='@') ) {s = 31;}
 
-                        else if ( (LA24_0=='#') ) {s = 32;}
+                        else if ( (LA24_0==',') ) {s = 32;}
 
-                        else if ( (LA24_0=='[') ) {s = 33;}
+                        else if ( (LA24_0=='#') ) {s = 33;}
 
-                        else if ( (LA24_0==']') ) {s = 34;}
+                        else if ( (LA24_0=='[') ) {s = 34;}
 
-                        else if ( (LA24_0=='/') ) {s = 35;}
+                        else if ( (LA24_0==']') ) {s = 35;}
 
-                        else if ( (LA24_0=='%') ) {s = 36;}
+                        else if ( (LA24_0=='/') ) {s = 36;}
 
-                        else if ( (LA24_0=='<') ) {s = 37;}
+                        else if ( (LA24_0=='%') ) {s = 37;}
 
-                        else if ( (LA24_0=='>') ) {s = 38;}
+                        else if ( (LA24_0=='<') ) {s = 38;}
 
-                        else if ( (LA24_0=='|') ) {s = 39;}
+                        else if ( (LA24_0=='>') ) {s = 39;}
 
-                        else if ( (LA24_0=='&') ) {s = 40;}
+                        else if ( (LA24_0=='|') ) {s = 40;}
 
-                        else if ( (LA24_0=='!') ) {s = 41;}
+                        else if ( (LA24_0=='&') ) {s = 41;}
 
-                        else if ( (LA24_0=='?') ) {s = 42;}
+                        else if ( (LA24_0=='!') ) {s = 42;}
 
-                        else if ( (LA24_0==':') ) {s = 43;}
+                        else if ( (LA24_0=='?') ) {s = 43;}
 
-                        else if ( (LA24_0==';') ) {s = 44;}
+                        else if ( (LA24_0==':') ) {s = 44;}
 
                         else if ( (LA24_0=='w') ) {s = 45;}
 
-                        else if ( (LA24_0=='^') ) {s = 46;}
+                        else if ( (LA24_0=='\'') ) {s = 46;}
 
-                        else if ( (LA24_0=='$'||(LA24_0>='A' && LA24_0<='Z')||LA24_0=='_'||(LA24_0>='j' && LA24_0<='k')||(LA24_0>='x' && LA24_0<='z')) ) {s = 47;}
+                        else if ( (LA24_0=='0') ) {s = 47;}
 
-                        else if ( (LA24_0=='0') ) {s = 48;}
+                        else if ( ((LA24_0>='1' && LA24_0<='9')) ) {s = 48;}
 
-                        else if ( (LA24_0=='\'') ) {s = 49;}
+                        else if ( (LA24_0=='^') ) {s = 49;}
 
-                        else if ( ((LA24_0>='1' && LA24_0<='9')) ) {s = 50;}
+                        else if ( (LA24_0=='$'||(LA24_0>='A' && LA24_0<='Z')||LA24_0=='_'||(LA24_0>='j' && LA24_0<='k')||(LA24_0>='x' && LA24_0<='z')) ) {s = 50;}
 
                         else if ( (LA24_0=='\"') ) {s = 51;}
 
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSLParser.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSLParser.java
index f3ae60a..18b5019 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSLParser.java
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSLParser.java
@@ -1,17 +1,4 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
- */
-package org.eclipse.osbp.xtext.table.parser.antlr.internal; 
+package org.eclipse.osbp.xtext.table.parser.antlr.internal;
 
 import org.eclipse.xtext.*;
 import org.eclipse.xtext.parser.*;
@@ -36,12 +23,11 @@
 @SuppressWarnings("all")
 public class InternalTableDSLParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_THEME_RESOURCE", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_EVENT_TOPIC", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'table'", "'described by'", "'as'", "'multiselection'", "'singleselection'", "'selectalways'", "'rowheader'", "'polling'", "'filtering'", "'embedded'", "'toolbar'", "'using'", "'preorder'", "'ascending'", "'value'", "'collapse'", "'icon'", "'image'", "'intervals'", "'hidelabel'", "'lookups'", "'formatter'", "'path'", "'dynamic'", "'resize'", "'tooltipPattern'", "'taskId'", "'allColumns'", "'ordinal'", "'column'", "'measure'", "'derived'", "'level'", "'property'", "'aggregation'", "'up to'", "'days in past'", "'number'", "'string'", "'datamart'", "'broker'", "'to'", "'filter'", "'referenced'", "'axis'", "'rowheight'", "'details'", "'events'", "'textcolor'", "'cellcolor'", "'trend'", "'tooltip'", "'import'", "'grid'", "'dto'", "'editable'", "'prop'", "'style'", "'.'", "'buttonStyle'", "'eventTopic'", "'htmlStyle'", "'boolStyle'", "'dateStyle'", "'format'", "'numberStyle'", "'progressbarStyle'", "'max'", "'indicatorStyle'", "'greenFrom'", "'redUntil'", "'quantityStyle'", "'='", "'('", "')'", "'uom'", "'priceStyle'", "'currency'", "'textStyle'", "'imageStyle'", "'then'", "'+'", "'-'", "'*'", "'@'", "','", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'::'", "'?.'", "'|'", "';'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'static'", "'extension'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'equal'", "'greater equal'", "'greater than'", "'lower equal'", "'lower than'", "'not equal'", "'rising'", "'bad-rising'", "'sloping'", "'good-sloping'", "'stagnating'", "'hidden'", "'explicit'", "'indexed'", "'columns'", "'rows'", "'pages'", "'sections'", "'chapters'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_THEME_RESOURCE", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_EVENT_TOPIC", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'table'", "'describedBy'", "'as'", "'selection'", "'multiple'", "'single'", "'alwaysSelected'", "'rowHeader'", "'polling'", "'filtering'", "'embedded'", "'toolbar'", "'using'", "'selectById'", "'bean'", "'preorder'", "'ascending'", "'value'", "'collapse'", "'icon'", "'image'", "'intervals'", "'hidelabel'", "'lookups'", "'formatter'", "'path'", "'dynamic'", "'resize'", "'tooltipPattern'", "'taskId'", "'allColumns'", "'ordinal'", "'column'", "'measure'", "'derived'", "'level'", "'property'", "'aggregation'", "'upToNumber'", "'upToInteger'", "'daysInPast'", "'integer'", "'number'", "'string'", "'datamart'", "'axis'", "'rowheight'", "'details'", "'notifyOnSelect'", "'textcolor'", "'cellcolor'", "'trend'", "'tooltip'", "'grid'", "'selectalways'", "'rowheader'", "'editable'", "'prop'", "'style'", "'dto'", "'.'", "'buttonStyle'", "'eventTopic'", "'htmlStyle'", "'boolStyle'", "'dateStyle'", "'format'", "'numberStyle'", "'progressbarStyle'", "'max'", "'indicatorStyle'", "'greenFrom'", "'redUntil'", "'quantityStyle'", "'='", "'('", "')'", "'uom'", "'priceStyle'", "'currency'", "'textStyle'", "'imageStyle'", "'then'", "'+'", "'-'", "'import'", "'static'", "'extension'", "'*'", "'ns'", "';'", "'@'", "','", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'::'", "'?.'", "'|'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'equal'", "'greater equal'", "'greater than'", "'lower equal'", "'lower than'", "'not equal'", "'rising'", "'bad-rising'", "'sloping'", "'good-sloping'", "'stagnating'", "'hidden'", "'explicit'", "'indexed'", "'columns'", "'rows'", "'pages'", "'sections'", "'chapters'"
     };
     public static final int T__144=144;
     public static final int T__143=143;
     public static final int T__146=146;
-    public static final int RULE_HEX=8;
     public static final int T__50=50;
     public static final int T__145=145;
     public static final int T__140=140;
@@ -72,7 +58,6 @@
     public static final int RULE_EVENT_TOPIC=10;
     public static final int RULE_INT=7;
     public static final int T__66=66;
-    public static final int RULE_ML_COMMENT=11;
     public static final int T__67=67;
     public static final int T__129=129;
     public static final int T__68=68;
@@ -120,7 +105,6 @@
     public static final int T__45=45;
     public static final int T__46=46;
     public static final int T__47=47;
-    public static final int RULE_THEME_RESOURCE=6;
     public static final int T__40=40;
     public static final int T__148=148;
     public static final int T__41=41;
@@ -128,24 +112,66 @@
     public static final int T__42=42;
     public static final int T__43=43;
     public static final int T__149=149;
-    public static final int T__91=91;
     public static final int T__100=100;
-    public static final int T__92=92;
-    public static final int T__93=93;
     public static final int T__102=102;
-    public static final int T__94=94;
     public static final int T__101=101;
-    public static final int T__184=184;
-    public static final int T__183=183;
-    public static final int T__90=90;
-    public static final int T__180=180;
-    public static final int T__182=182;
-    public static final int T__181=181;
     public static final int T__19=19;
     public static final int T__15=15;
     public static final int T__16=16;
     public static final int T__17=17;
     public static final int T__18=18;
+    public static final int RULE_DECIMAL=9;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__121=121;
+    public static final int T__124=124;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_SL_COMMENT=12;
+    public static final int T__119=119;
+    public static final int T__118=118;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__114=114;
+    public static final int T__117=117;
+    public static final int T__116=116;
+    public static final int T__111=111;
+    public static final int T__110=110;
+    public static final int T__113=113;
+    public static final int T__112=112;
+    public static final int T__108=108;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__104=104;
+    public static final int T__103=103;
+    public static final int T__106=106;
+    public static final int T__105=105;
+    public static final int RULE_HEX=8;
+    public static final int RULE_ML_COMMENT=11;
+    public static final int RULE_THEME_RESOURCE=6;
+    public static final int T__91=91;
+    public static final int T__188=188;
+    public static final int T__92=92;
+    public static final int T__187=187;
+    public static final int T__93=93;
+    public static final int T__94=94;
+    public static final int T__184=184;
+    public static final int T__183=183;
+    public static final int T__186=186;
+    public static final int T__90=90;
+    public static final int T__185=185;
+    public static final int T__180=180;
+    public static final int T__182=182;
+    public static final int T__181=181;
     public static final int T__99=99;
     public static final int T__95=95;
     public static final int T__96=96;
@@ -161,65 +187,30 @@
     public static final int T__174=174;
     public static final int T__171=171;
     public static final int T__170=170;
-    public static final int RULE_DECIMAL=9;
-    public static final int T__26=26;
-    public static final int T__27=27;
-    public static final int T__28=28;
-    public static final int T__29=29;
-    public static final int T__22=22;
-    public static final int T__23=23;
-    public static final int T__24=24;
-    public static final int T__25=25;
     public static final int T__169=169;
-    public static final int T__20=20;
-    public static final int T__21=21;
-    public static final int T__122=122;
     public static final int T__70=70;
-    public static final int T__121=121;
     public static final int T__71=71;
-    public static final int T__124=124;
     public static final int T__72=72;
-    public static final int T__123=123;
-    public static final int T__120=120;
     public static final int RULE_STRING=5;
-    public static final int RULE_SL_COMMENT=12;
     public static final int T__77=77;
-    public static final int T__119=119;
     public static final int T__78=78;
-    public static final int T__118=118;
     public static final int T__79=79;
     public static final int T__73=73;
-    public static final int T__115=115;
-    public static final int EOF=-1;
     public static final int T__74=74;
-    public static final int T__114=114;
     public static final int T__75=75;
-    public static final int T__117=117;
     public static final int T__76=76;
-    public static final int T__116=116;
     public static final int T__80=80;
-    public static final int T__111=111;
     public static final int T__81=81;
-    public static final int T__110=110;
     public static final int T__82=82;
-    public static final int T__113=113;
     public static final int T__83=83;
-    public static final int T__112=112;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
     public static final int T__88=88;
-    public static final int T__108=108;
     public static final int T__89=89;
-    public static final int T__107=107;
-    public static final int T__109=109;
     public static final int T__84=84;
-    public static final int T__104=104;
     public static final int T__85=85;
-    public static final int T__103=103;
     public static final int T__86=86;
-    public static final int T__106=106;
     public static final int T__87=87;
-    public static final int T__105=105;
 
     // delegates
     // delegators
@@ -235,23 +226,23 @@
         
 
     public String[] getTokenNames() { return InternalTableDSLParser.tokenNames; }
-    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g"; }
+    public String getGrammarFileName() { return "InternalTableDSL.g"; }
 
 
 
      	private TableDSLGrammarAccess grammarAccess;
-     	
+
         public InternalTableDSLParser(TokenStream input, TableDSLGrammarAccess grammarAccess) {
             this(input);
             this.grammarAccess = grammarAccess;
             registerRules(grammarAccess.getGrammar());
         }
-        
+
         @Override
         protected String getFirstRuleName() {
-        	return "TableModel";	
+        	return "TableModel";
        	}
-       	
+
        	@Override
        	protected TableDSLGrammarAccess getGrammarAccess() {
        		return grammarAccess;
@@ -259,8 +250,9 @@
 
 
 
+
     // $ANTLR start "entryRuleTableModel"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:68:1: entryRuleTableModel returns [EObject current=null] : iv_ruleTableModel= ruleTableModel EOF ;
+    // InternalTableDSL.g:65:1: entryRuleTableModel returns [EObject current=null] : iv_ruleTableModel= ruleTableModel EOF ;
     public final EObject entryRuleTableModel() throws RecognitionException {
         EObject current = null;
 
@@ -268,13 +260,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:69:2: (iv_ruleTableModel= ruleTableModel EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:70:2: iv_ruleTableModel= ruleTableModel EOF
+            // InternalTableDSL.g:65:51: (iv_ruleTableModel= ruleTableModel EOF )
+            // InternalTableDSL.g:66:2: iv_ruleTableModel= ruleTableModel EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableModelRule()); 
             }
-            pushFollow(FOLLOW_ruleTableModel_in_entryRuleTableModel75);
+            pushFollow(FOLLOW_1);
             iv_ruleTableModel=ruleTableModel();
 
             state._fsp--;
@@ -282,16 +274,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableModel; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableModel85); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -300,59 +292,111 @@
 
 
     // $ANTLR start "ruleTableModel"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:77:1: ruleTableModel returns [EObject current=null] : ( (lv_packages_0_0= ruleTablePackage ) )* ;
+    // InternalTableDSL.g:72:1: ruleTableModel returns [EObject current=null] : ( ( (lv_importSection_0_0= ruleXImportSection ) )? ( (lv_packages_1_0= ruleTablePackage ) )* ) ;
     public final EObject ruleTableModel() throws RecognitionException {
         EObject current = null;
 
-        EObject lv_packages_0_0 = null;
+        EObject lv_importSection_0_0 = null;
+
+        EObject lv_packages_1_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:80:28: ( ( (lv_packages_0_0= ruleTablePackage ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:81:1: ( (lv_packages_0_0= ruleTablePackage ) )*
+            // InternalTableDSL.g:78:2: ( ( ( (lv_importSection_0_0= ruleXImportSection ) )? ( (lv_packages_1_0= ruleTablePackage ) )* ) )
+            // InternalTableDSL.g:79:2: ( ( (lv_importSection_0_0= ruleXImportSection ) )? ( (lv_packages_1_0= ruleTablePackage ) )* )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:81:1: ( (lv_packages_0_0= ruleTablePackage ) )*
-            loop1:
-            do {
-                int alt1=2;
-                int LA1_0 = input.LA(1);
+            // InternalTableDSL.g:79:2: ( ( (lv_importSection_0_0= ruleXImportSection ) )? ( (lv_packages_1_0= ruleTablePackage ) )* )
+            // InternalTableDSL.g:80:3: ( (lv_importSection_0_0= ruleXImportSection ) )? ( (lv_packages_1_0= ruleTablePackage ) )*
+            {
+            // InternalTableDSL.g:80:3: ( (lv_importSection_0_0= ruleXImportSection ) )?
+            int alt1=2;
+            int LA1_0 = input.LA(1);
 
-                if ( (LA1_0==15) ) {
-                    alt1=1;
+            if ( (LA1_0==103) ) {
+                alt1=1;
+            }
+            switch (alt1) {
+                case 1 :
+                    // InternalTableDSL.g:81:4: (lv_importSection_0_0= ruleXImportSection )
+                    {
+                    // InternalTableDSL.g:81:4: (lv_importSection_0_0= ruleXImportSection )
+                    // InternalTableDSL.g:82:5: lv_importSection_0_0= ruleXImportSection
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					newCompositeNode(grammarAccess.getTableModelAccess().getImportSectionXImportSectionParserRuleCall_0_0());
+                      				
+                    }
+                    pushFollow(FOLLOW_3);
+                    lv_importSection_0_0=ruleXImportSection();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElementForParent(grammarAccess.getTableModelRule());
+                      					}
+                      					set(
+                      						current,
+                      						"importSection",
+                      						lv_importSection_0_0,
+                      						"org.eclipse.xtext.xbase.Xtype.XImportSection");
+                      					afterParserOrEnumRuleCall();
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:99:3: ( (lv_packages_1_0= ruleTablePackage ) )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0==15) ) {
+                    alt2=1;
                 }
 
 
-                switch (alt1) {
+                switch (alt2) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:82:1: (lv_packages_0_0= ruleTablePackage )
+            	    // InternalTableDSL.g:100:4: (lv_packages_1_0= ruleTablePackage )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:82:1: (lv_packages_0_0= ruleTablePackage )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:83:3: lv_packages_0_0= ruleTablePackage
+            	    // InternalTableDSL.g:100:4: (lv_packages_1_0= ruleTablePackage )
+            	    // InternalTableDSL.g:101:5: lv_packages_1_0= ruleTablePackage
             	    {
             	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableModelAccess().getPackagesTablePackageParserRuleCall_0()); 
-            	      	    
+
+            	      					newCompositeNode(grammarAccess.getTableModelAccess().getPackagesTablePackageParserRuleCall_1_0());
+            	      				
             	    }
-            	    pushFollow(FOLLOW_ruleTablePackage_in_ruleTableModel130);
-            	    lv_packages_0_0=ruleTablePackage();
+            	    pushFollow(FOLLOW_3);
+            	    lv_packages_1_0=ruleTablePackage();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableModelRule());
-            	      	        }
-            	             		add(
-            	             			current, 
-            	             			"packages",
-            	              		lv_packages_0_0, 
-            	              		"TablePackage");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      					if (current==null) {
+            	      						current = createModelElementForParent(grammarAccess.getTableModelRule());
+            	      					}
+            	      					add(
+            	      						current,
+            	      						"packages",
+            	      						lv_packages_1_0,
+            	      						"org.eclipse.osbp.xtext.table.TableDSL.TablePackage");
+            	      					afterParserOrEnumRuleCall();
+            	      				
             	    }
 
             	    }
@@ -362,22 +406,27 @@
             	    break;
 
             	default :
-            	    break loop1;
+            	    break loop2;
                 }
             } while (true);
 
 
             }
 
+
+            }
+
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -386,7 +435,7 @@
 
 
     // $ANTLR start "entryRuleTablePackage"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:107:1: entryRuleTablePackage returns [EObject current=null] : iv_ruleTablePackage= ruleTablePackage EOF ;
+    // InternalTableDSL.g:122:1: entryRuleTablePackage returns [EObject current=null] : iv_ruleTablePackage= ruleTablePackage EOF ;
     public final EObject entryRuleTablePackage() throws RecognitionException {
         EObject current = null;
 
@@ -394,13 +443,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:108:2: (iv_ruleTablePackage= ruleTablePackage EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:109:2: iv_ruleTablePackage= ruleTablePackage EOF
+            // InternalTableDSL.g:122:53: (iv_ruleTablePackage= ruleTablePackage EOF )
+            // InternalTableDSL.g:123:2: iv_ruleTablePackage= ruleTablePackage EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTablePackageRule()); 
             }
-            pushFollow(FOLLOW_ruleTablePackage_in_entryRuleTablePackage166);
+            pushFollow(FOLLOW_1);
             iv_ruleTablePackage=ruleTablePackage();
 
             state._fsp--;
@@ -408,16 +457,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTablePackage; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTablePackage176); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -426,76 +475,75 @@
 
 
     // $ANTLR start "ruleTablePackage"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:116:1: ruleTablePackage returns [EObject current=null] : ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_imports_4_0= ruleTableImport ) )* ( (lv_tables_5_0= ruleTable ) )* otherlv_6= '}' )? ) ;
+    // InternalTableDSL.g:129:1: ruleTablePackage returns [EObject current=null] : ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_tables_4_0= ruleTable ) )* otherlv_5= '}' )? ) ;
     public final EObject ruleTablePackage() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
         Token otherlv_3=null;
-        Token otherlv_6=null;
+        Token otherlv_5=null;
         AntlrDatatypeRuleToken lv_name_2_0 = null;
 
-        EObject lv_imports_4_0 = null;
-
-        EObject lv_tables_5_0 = null;
+        EObject lv_tables_4_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:119:28: ( ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_imports_4_0= ruleTableImport ) )* ( (lv_tables_5_0= ruleTable ) )* otherlv_6= '}' )? ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:120:1: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_imports_4_0= ruleTableImport ) )* ( (lv_tables_5_0= ruleTable ) )* otherlv_6= '}' )? )
+            // InternalTableDSL.g:135:2: ( ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_tables_4_0= ruleTable ) )* otherlv_5= '}' )? ) )
+            // InternalTableDSL.g:136:2: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_tables_4_0= ruleTable ) )* otherlv_5= '}' )? )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:120:1: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_imports_4_0= ruleTableImport ) )* ( (lv_tables_5_0= ruleTable ) )* otherlv_6= '}' )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:120:2: () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_imports_4_0= ruleTableImport ) )* ( (lv_tables_5_0= ruleTable ) )* otherlv_6= '}' )?
+            // InternalTableDSL.g:136:2: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_tables_4_0= ruleTable ) )* otherlv_5= '}' )? )
+            // InternalTableDSL.g:137:3: () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_tables_4_0= ruleTable ) )* otherlv_5= '}' )?
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:120:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:121:5: 
+            // InternalTableDSL.g:137:3: ()
+            // InternalTableDSL.g:138:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTablePackageAccess().getTablePackageAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTablePackageAccess().getTablePackageAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,15,FOLLOW_15_in_ruleTablePackage222); if (state.failed) return current;
+            otherlv_1=(Token)match(input,15,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTablePackageAccess().getPackageKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTablePackageAccess().getPackageKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:130:1: ( (lv_name_2_0= ruleQualifiedName ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:131:1: (lv_name_2_0= ruleQualifiedName )
+            // InternalTableDSL.g:148:3: ( (lv_name_2_0= ruleQualifiedName ) )
+            // InternalTableDSL.g:149:4: (lv_name_2_0= ruleQualifiedName )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:131:1: (lv_name_2_0= ruleQualifiedName )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:132:3: lv_name_2_0= ruleQualifiedName
+            // InternalTableDSL.g:149:4: (lv_name_2_0= ruleQualifiedName )
+            // InternalTableDSL.g:150:5: lv_name_2_0= ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTablePackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTablePackageAccess().getNameQualifiedNameParserRuleCall_2_0());
+              				
             }
-            pushFollow(FOLLOW_ruleQualifiedName_in_ruleTablePackage243);
+            pushFollow(FOLLOW_5);
             lv_name_2_0=ruleQualifiedName();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTablePackageRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"name",
-                      		lv_name_2_0, 
-                      		"QualifiedName");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTablePackageRule());
+              					}
+              					set(
+              						current,
+              						"name",
+              						lv_name_2_0,
+              						"org.eclipse.xtext.xbase.Xbase.QualifiedName");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -503,7 +551,7 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:148:2: (otherlv_3= '{' ( (lv_imports_4_0= ruleTableImport ) )* ( (lv_tables_5_0= ruleTable ) )* otherlv_6= '}' )?
+            // InternalTableDSL.g:167:3: (otherlv_3= '{' ( (lv_tables_4_0= ruleTable ) )* otherlv_5= '}' )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -512,68 +560,15 @@
             }
             switch (alt4) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:148:4: otherlv_3= '{' ( (lv_imports_4_0= ruleTableImport ) )* ( (lv_tables_5_0= ruleTable ) )* otherlv_6= '}'
+                    // InternalTableDSL.g:168:4: otherlv_3= '{' ( (lv_tables_4_0= ruleTable ) )* otherlv_5= '}'
                     {
-                    otherlv_3=(Token)match(input,16,FOLLOW_16_in_ruleTablePackage256); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,16,FOLLOW_6); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_3, grammarAccess.getTablePackageAccess().getLeftCurlyBracketKeyword_3_0());
-                          
+                      				newLeafNode(otherlv_3, grammarAccess.getTablePackageAccess().getLeftCurlyBracketKeyword_3_0());
+                      			
                     }
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:152:1: ( (lv_imports_4_0= ruleTableImport ) )*
-                    loop2:
-                    do {
-                        int alt2=2;
-                        int LA2_0 = input.LA(1);
-
-                        if ( (LA2_0==70) ) {
-                            alt2=1;
-                        }
-
-
-                        switch (alt2) {
-                    	case 1 :
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:153:1: (lv_imports_4_0= ruleTableImport )
-                    	    {
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:153:1: (lv_imports_4_0= ruleTableImport )
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:154:3: lv_imports_4_0= ruleTableImport
-                    	    {
-                    	    if ( state.backtracking==0 ) {
-                    	       
-                    	      	        newCompositeNode(grammarAccess.getTablePackageAccess().getImportsTableImportParserRuleCall_3_1_0()); 
-                    	      	    
-                    	    }
-                    	    pushFollow(FOLLOW_ruleTableImport_in_ruleTablePackage277);
-                    	    lv_imports_4_0=ruleTableImport();
-
-                    	    state._fsp--;
-                    	    if (state.failed) return current;
-                    	    if ( state.backtracking==0 ) {
-
-                    	      	        if (current==null) {
-                    	      	            current = createModelElementForParent(grammarAccess.getTablePackageRule());
-                    	      	        }
-                    	             		add(
-                    	             			current, 
-                    	             			"imports",
-                    	              		lv_imports_4_0, 
-                    	              		"TableImport");
-                    	      	        afterParserOrEnumRuleCall();
-                    	      	    
-                    	    }
-
-                    	    }
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop2;
-                        }
-                    } while (true);
-
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:170:3: ( (lv_tables_5_0= ruleTable ) )*
+                    // InternalTableDSL.g:172:4: ( (lv_tables_4_0= ruleTable ) )*
                     loop3:
                     do {
                         int alt3=2;
@@ -586,33 +581,33 @@
 
                         switch (alt3) {
                     	case 1 :
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:171:1: (lv_tables_5_0= ruleTable )
+                    	    // InternalTableDSL.g:173:5: (lv_tables_4_0= ruleTable )
                     	    {
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:171:1: (lv_tables_5_0= ruleTable )
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:172:3: lv_tables_5_0= ruleTable
+                    	    // InternalTableDSL.g:173:5: (lv_tables_4_0= ruleTable )
+                    	    // InternalTableDSL.g:174:6: lv_tables_4_0= ruleTable
                     	    {
                     	    if ( state.backtracking==0 ) {
-                    	       
-                    	      	        newCompositeNode(grammarAccess.getTablePackageAccess().getTablesTableParserRuleCall_3_2_0()); 
-                    	      	    
+
+                    	      						newCompositeNode(grammarAccess.getTablePackageAccess().getTablesTableParserRuleCall_3_1_0());
+                    	      					
                     	    }
-                    	    pushFollow(FOLLOW_ruleTable_in_ruleTablePackage299);
-                    	    lv_tables_5_0=ruleTable();
+                    	    pushFollow(FOLLOW_6);
+                    	    lv_tables_4_0=ruleTable();
 
                     	    state._fsp--;
                     	    if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
-                    	      	        if (current==null) {
-                    	      	            current = createModelElementForParent(grammarAccess.getTablePackageRule());
-                    	      	        }
-                    	             		add(
-                    	             			current, 
-                    	             			"tables",
-                    	              		lv_tables_5_0, 
-                    	              		"Table");
-                    	      	        afterParserOrEnumRuleCall();
-                    	      	    
+                    	      						if (current==null) {
+                    	      							current = createModelElementForParent(grammarAccess.getTablePackageRule());
+                    	      						}
+                    	      						add(
+                    	      							current,
+                    	      							"tables",
+                    	      							lv_tables_4_0,
+                    	      							"org.eclipse.osbp.xtext.table.TableDSL.Table");
+                    	      						afterParserOrEnumRuleCall();
+                    	      					
                     	    }
 
                     	    }
@@ -626,11 +621,11 @@
                         }
                     } while (true);
 
-                    otherlv_6=(Token)match(input,17,FOLLOW_17_in_ruleTablePackage312); if (state.failed) return current;
+                    otherlv_5=(Token)match(input,17,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_6, grammarAccess.getTablePackageAccess().getRightCurlyBracketKeyword_3_3());
-                          
+                      				newLeafNode(otherlv_5, grammarAccess.getTablePackageAccess().getRightCurlyBracketKeyword_3_2());
+                      			
                     }
 
                     }
@@ -645,14 +640,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -661,7 +658,7 @@
 
 
     // $ANTLR start "entryRuleTable"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:200:1: entryRuleTable returns [EObject current=null] : iv_ruleTable= ruleTable EOF ;
+    // InternalTableDSL.g:200:1: entryRuleTable returns [EObject current=null] : iv_ruleTable= ruleTable EOF ;
     public final EObject entryRuleTable() throws RecognitionException {
         EObject current = null;
 
@@ -669,13 +666,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:201:2: (iv_ruleTable= ruleTable EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:202:2: iv_ruleTable= ruleTable EOF
+            // InternalTableDSL.g:200:46: (iv_ruleTable= ruleTable EOF )
+            // InternalTableDSL.g:201:2: iv_ruleTable= ruleTable EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableRule()); 
             }
-            pushFollow(FOLLOW_ruleTable_in_entryRuleTable350);
+            pushFollow(FOLLOW_1);
             iv_ruleTable=ruleTable();
 
             state._fsp--;
@@ -683,16 +680,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTable; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTable360); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -701,76 +698,71 @@
 
 
     // $ANTLR start "ruleTable"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:209:1: ruleTable returns [EObject current=null] : ( () otherlv_1= 'table' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_tabletype_6_0= ruleTableOption ) ) ) ;
+    // InternalTableDSL.g:207:1: ruleTable returns [EObject current=null] : ( () otherlv_1= 'table' ( (lv_name_2_0= RULE_ID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_tabletype_6_0= ruleTableOption ) ) ) ;
     public final EObject ruleTable() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
+        Token lv_name_2_0=null;
         Token lv_description_3_0=null;
         Token otherlv_5=null;
-        AntlrDatatypeRuleToken lv_name_2_0 = null;
-
         AntlrDatatypeRuleToken lv_descriptionValue_4_0 = null;
 
         EObject lv_tabletype_6_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:212:28: ( ( () otherlv_1= 'table' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_tabletype_6_0= ruleTableOption ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:213:1: ( () otherlv_1= 'table' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_tabletype_6_0= ruleTableOption ) ) )
+            // InternalTableDSL.g:213:2: ( ( () otherlv_1= 'table' ( (lv_name_2_0= RULE_ID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_tabletype_6_0= ruleTableOption ) ) ) )
+            // InternalTableDSL.g:214:2: ( () otherlv_1= 'table' ( (lv_name_2_0= RULE_ID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_tabletype_6_0= ruleTableOption ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:213:1: ( () otherlv_1= 'table' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_tabletype_6_0= ruleTableOption ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:213:2: () otherlv_1= 'table' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_tabletype_6_0= ruleTableOption ) )
+            // InternalTableDSL.g:214:2: ( () otherlv_1= 'table' ( (lv_name_2_0= RULE_ID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_tabletype_6_0= ruleTableOption ) ) )
+            // InternalTableDSL.g:215:3: () otherlv_1= 'table' ( (lv_name_2_0= RULE_ID ) ) ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? otherlv_5= 'as' ( (lv_tabletype_6_0= ruleTableOption ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:213:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:214:5: 
+            // InternalTableDSL.g:215:3: ()
+            // InternalTableDSL.g:216:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableAccess().getTableAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableAccess().getTableAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleTable406); if (state.failed) return current;
+            otherlv_1=(Token)match(input,18,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableAccess().getTableKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableAccess().getTableKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:223:1: ( (lv_name_2_0= ruleTRANSLATABLEID ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:224:1: (lv_name_2_0= ruleTRANSLATABLEID )
+            // InternalTableDSL.g:226:3: ( (lv_name_2_0= RULE_ID ) )
+            // InternalTableDSL.g:227:4: (lv_name_2_0= RULE_ID )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:224:1: (lv_name_2_0= ruleTRANSLATABLEID )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:225:3: lv_name_2_0= ruleTRANSLATABLEID
+            // InternalTableDSL.g:227:4: (lv_name_2_0= RULE_ID )
+            // InternalTableDSL.g:228:5: lv_name_2_0= RULE_ID
             {
-            if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
-              	    
-            }
-            pushFollow(FOLLOW_ruleTRANSLATABLEID_in_ruleTable427);
-            lv_name_2_0=ruleTRANSLATABLEID();
-
-            state._fsp--;
-            if (state.failed) return current;
+            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_7); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"name",
-                      		lv_name_2_0, 
-                      		"TRANSLATABLEID");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					newLeafNode(lv_name_2_0, grammarAccess.getTableAccess().getNameIDTerminalRuleCall_2_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"name",
+              						lv_name_2_0,
+              						"org.eclipse.xtext.xbase.Xtype.ID");
+              				
             }
 
             }
@@ -778,7 +770,7 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:241:2: ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )?
+            // InternalTableDSL.g:244:3: ( ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )?
             int alt5=2;
             int LA5_0 = input.LA(1);
 
@@ -787,27 +779,27 @@
             }
             switch (alt5) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:241:3: ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
+                    // InternalTableDSL.g:245:4: ( (lv_description_3_0= 'describedBy' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:241:3: ( (lv_description_3_0= 'described by' ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:242:1: (lv_description_3_0= 'described by' )
+                    // InternalTableDSL.g:245:4: ( (lv_description_3_0= 'describedBy' ) )
+                    // InternalTableDSL.g:246:5: (lv_description_3_0= 'describedBy' )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:242:1: (lv_description_3_0= 'described by' )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:243:3: lv_description_3_0= 'described by'
+                    // InternalTableDSL.g:246:5: (lv_description_3_0= 'describedBy' )
+                    // InternalTableDSL.g:247:6: lv_description_3_0= 'describedBy'
                     {
-                    lv_description_3_0=(Token)match(input,19,FOLLOW_19_in_ruleTable446); if (state.failed) return current;
+                    lv_description_3_0=(Token)match(input,19,FOLLOW_8); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                              newLeafNode(lv_description_3_0, grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0());
-                          
+                      						newLeafNode(lv_description_3_0, grammarAccess.getTableAccess().getDescriptionDescribedByKeyword_3_0_0());
+                      					
                     }
                     if ( state.backtracking==0 ) {
 
-                      	        if (current==null) {
-                      	            current = createModelElement(grammarAccess.getTableRule());
-                      	        }
-                             		setWithLastConsumed(current, "description", true, "described by");
-                      	    
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getTableRule());
+                      						}
+                      						setWithLastConsumed(current, "description", true, "describedBy");
+                      					
                     }
 
                     }
@@ -815,34 +807,34 @@
 
                     }
 
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:256:2: ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:257:1: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
+                    // InternalTableDSL.g:259:4: ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
+                    // InternalTableDSL.g:260:5: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:257:1: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:258:3: lv_descriptionValue_4_0= ruleTRANSLATABLESTRING
+                    // InternalTableDSL.g:260:5: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
+                    // InternalTableDSL.g:261:6: lv_descriptionValue_4_0= ruleTRANSLATABLESTRING
                     {
                     if ( state.backtracking==0 ) {
-                       
-                      	        newCompositeNode(grammarAccess.getTableAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
-                      	    
+
+                      						newCompositeNode(grammarAccess.getTableAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0());
+                      					
                     }
-                    pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_ruleTable480);
+                    pushFollow(FOLLOW_9);
                     lv_descriptionValue_4_0=ruleTRANSLATABLESTRING();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      	        if (current==null) {
-                      	            current = createModelElementForParent(grammarAccess.getTableRule());
-                      	        }
-                             		set(
-                             			current, 
-                             			"descriptionValue",
-                              		lv_descriptionValue_4_0, 
-                              		"TRANSLATABLESTRING");
-                      	        afterParserOrEnumRuleCall();
-                      	    
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getTableRule());
+                      						}
+                      						set(
+                      							current,
+                      							"descriptionValue",
+                      							lv_descriptionValue_4_0,
+                      							"org.eclipse.osbp.xtext.table.TableDSL.TRANSLATABLESTRING");
+                      						afterParserOrEnumRuleCall();
+                      					
                     }
 
                     }
@@ -856,40 +848,40 @@
 
             }
 
-            otherlv_5=(Token)match(input,20,FOLLOW_20_in_ruleTable494); if (state.failed) return current;
+            otherlv_5=(Token)match(input,20,FOLLOW_10); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_5, grammarAccess.getTableAccess().getAsKeyword_4());
-                  
+              			newLeafNode(otherlv_5, grammarAccess.getTableAccess().getAsKeyword_4());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:278:1: ( (lv_tabletype_6_0= ruleTableOption ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:279:1: (lv_tabletype_6_0= ruleTableOption )
+            // InternalTableDSL.g:283:3: ( (lv_tabletype_6_0= ruleTableOption ) )
+            // InternalTableDSL.g:284:4: (lv_tabletype_6_0= ruleTableOption )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:279:1: (lv_tabletype_6_0= ruleTableOption )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:280:3: lv_tabletype_6_0= ruleTableOption
+            // InternalTableDSL.g:284:4: (lv_tabletype_6_0= ruleTableOption )
+            // InternalTableDSL.g:285:5: lv_tabletype_6_0= ruleTableOption
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableAccess().getTabletypeTableOptionParserRuleCall_5_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableAccess().getTabletypeTableOptionParserRuleCall_5_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTableOption_in_ruleTable515);
+            pushFollow(FOLLOW_2);
             lv_tabletype_6_0=ruleTableOption();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"tabletype",
-                      		lv_tabletype_6_0, 
-                      		"TableOption");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableRule());
+              					}
+              					set(
+              						current,
+              						"tabletype",
+              						lv_tabletype_6_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TableOption");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -904,14 +896,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -920,7 +914,7 @@
 
 
     // $ANTLR start "entryRuleTableOption"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:304:1: entryRuleTableOption returns [EObject current=null] : iv_ruleTableOption= ruleTableOption EOF ;
+    // InternalTableDSL.g:306:1: entryRuleTableOption returns [EObject current=null] : iv_ruleTableOption= ruleTableOption EOF ;
     public final EObject entryRuleTableOption() throws RecognitionException {
         EObject current = null;
 
@@ -928,13 +922,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:305:2: (iv_ruleTableOption= ruleTableOption EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:306:2: iv_ruleTableOption= ruleTableOption EOF
+            // InternalTableDSL.g:306:52: (iv_ruleTableOption= ruleTableOption EOF )
+            // InternalTableDSL.g:307:2: iv_ruleTableOption= ruleTableOption EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableOptionRule()); 
             }
-            pushFollow(FOLLOW_ruleTableOption_in_entryRuleTableOption551);
+            pushFollow(FOLLOW_1);
             iv_ruleTableOption=ruleTableOption();
 
             state._fsp--;
@@ -942,16 +936,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableOption; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableOption561); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -960,7 +954,7 @@
 
 
     // $ANTLR start "ruleTableOption"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:313:1: ruleTableOption returns [EObject current=null] : (this_TableSelection_0= ruleTableSelection | this_TableTable_1= ruleTableTable | this_TableGrid_2= ruleTableGrid ) ;
+    // InternalTableDSL.g:313:1: ruleTableOption returns [EObject current=null] : (this_TableSelection_0= ruleTableSelection | this_TableTable_1= ruleTableTable | this_TableGrid_2= ruleTableGrid | this_TableBean_3= ruleTableBean ) ;
     public final EObject ruleTableOption() throws RecognitionException {
         EObject current = null;
 
@@ -970,18 +964,20 @@
 
         EObject this_TableGrid_2 = null;
 
+        EObject this_TableBean_3 = null;
 
-         enterRule(); 
-            
+
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:316:28: ( (this_TableSelection_0= ruleTableSelection | this_TableTable_1= ruleTableTable | this_TableGrid_2= ruleTableGrid ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:317:1: (this_TableSelection_0= ruleTableSelection | this_TableTable_1= ruleTableTable | this_TableGrid_2= ruleTableGrid )
+            // InternalTableDSL.g:319:2: ( (this_TableSelection_0= ruleTableSelection | this_TableTable_1= ruleTableTable | this_TableGrid_2= ruleTableGrid | this_TableBean_3= ruleTableBean ) )
+            // InternalTableDSL.g:320:2: (this_TableSelection_0= ruleTableSelection | this_TableTable_1= ruleTableTable | this_TableGrid_2= ruleTableGrid | this_TableBean_3= ruleTableBean )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:317:1: (this_TableSelection_0= ruleTableSelection | this_TableTable_1= ruleTableTable | this_TableGrid_2= ruleTableGrid )
-            int alt6=3;
+            // InternalTableDSL.g:320:2: (this_TableSelection_0= ruleTableSelection | this_TableTable_1= ruleTableTable | this_TableGrid_2= ruleTableGrid | this_TableBean_3= ruleTableBean )
+            int alt6=4;
             switch ( input.LA(1) ) {
             case 21:
-            case 22:
                 {
                 alt6=1;
                 }
@@ -996,6 +992,11 @@
                 alt6=3;
                 }
                 break;
+            case 32:
+                {
+                alt6=4;
+                }
+                break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
@@ -1006,67 +1007,89 @@
 
             switch (alt6) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:318:5: this_TableSelection_0= ruleTableSelection
+                    // InternalTableDSL.g:321:3: this_TableSelection_0= ruleTableSelection
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableOptionAccess().getTableSelectionParserRuleCall_0()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableOptionAccess().getTableSelectionParserRuleCall_0());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableSelection_in_ruleTableOption608);
+                    pushFollow(FOLLOW_2);
                     this_TableSelection_0=ruleTableSelection();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableSelection_0; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableSelection_0;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 2 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:328:5: this_TableTable_1= ruleTableTable
+                    // InternalTableDSL.g:330:3: this_TableTable_1= ruleTableTable
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableOptionAccess().getTableTableParserRuleCall_1()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableOptionAccess().getTableTableParserRuleCall_1());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableTable_in_ruleTableOption635);
+                    pushFollow(FOLLOW_2);
                     this_TableTable_1=ruleTableTable();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableTable_1; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableTable_1;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 3 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:338:5: this_TableGrid_2= ruleTableGrid
+                    // InternalTableDSL.g:339:3: this_TableGrid_2= ruleTableGrid
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableOptionAccess().getTableGridParserRuleCall_2()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableOptionAccess().getTableGridParserRuleCall_2());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableGrid_in_ruleTableOption662);
+                    pushFollow(FOLLOW_2);
                     this_TableGrid_2=ruleTableGrid();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableGrid_2; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableGrid_2;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:348:3: this_TableBean_3= ruleTableBean
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getTableOptionAccess().getTableBeanParserRuleCall_3());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_TableBean_3=ruleTableBean();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_TableBean_3;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
@@ -1078,14 +1101,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -1094,7 +1119,7 @@
 
 
     // $ANTLR start "entryRuleTableSelection"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:354:1: entryRuleTableSelection returns [EObject current=null] : iv_ruleTableSelection= ruleTableSelection EOF ;
+    // InternalTableDSL.g:360:1: entryRuleTableSelection returns [EObject current=null] : iv_ruleTableSelection= ruleTableSelection EOF ;
     public final EObject entryRuleTableSelection() throws RecognitionException {
         EObject current = null;
 
@@ -1102,13 +1127,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:355:2: (iv_ruleTableSelection= ruleTableSelection EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:356:2: iv_ruleTableSelection= ruleTableSelection EOF
+            // InternalTableDSL.g:360:55: (iv_ruleTableSelection= ruleTableSelection EOF )
+            // InternalTableDSL.g:361:2: iv_ruleTableSelection= ruleTableSelection EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableSelectionRule()); 
             }
-            pushFollow(FOLLOW_ruleTableSelection_in_entryRuleTableSelection697);
+            pushFollow(FOLLOW_1);
             iv_ruleTableSelection=ruleTableSelection();
 
             state._fsp--;
@@ -1116,16 +1141,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableSelection; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableSelection707); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -1134,57 +1159,65 @@
 
 
     // $ANTLR start "ruleTableSelection"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:363:1: ruleTableSelection returns [EObject current=null] : ( () ( ( (lv_multiSelection_1_0= 'multiselection' ) ) | otherlv_2= 'singleselection' ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )? ) ;
+    // InternalTableDSL.g:367:1: ruleTableSelection returns [EObject current=null] : ( () otherlv_1= 'selection' ( ( (lv_multiSelection_2_0= 'multiple' ) ) | otherlv_3= 'single' ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )? ) ;
     public final EObject ruleTableSelection() throws RecognitionException {
         EObject current = null;
 
-        Token lv_multiSelection_1_0=null;
-        Token otherlv_2=null;
-        Token lv_selectalways_4_0=null;
-        Token otherlv_5=null;
+        Token otherlv_1=null;
+        Token lv_multiSelection_2_0=null;
+        Token otherlv_3=null;
+        Token lv_selectalways_5_0=null;
+        Token otherlv_6=null;
         Token lv_polling_8_0=null;
         Token lv_filtering_10_0=null;
         Token lv_embedded_11_0=null;
         Token otherlv_12=null;
         Token otherlv_13=null;
         Token otherlv_14=null;
-        Enumerator lv_headerMode_6_0 = null;
+        Enumerator lv_headerMode_7_0 = null;
 
         AntlrDatatypeRuleToken lv_pollingTime_9_0 = null;
 
         EObject lv_source_15_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:366:28: ( ( () ( ( (lv_multiSelection_1_0= 'multiselection' ) ) | otherlv_2= 'singleselection' ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )? ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:367:1: ( () ( ( (lv_multiSelection_1_0= 'multiselection' ) ) | otherlv_2= 'singleselection' ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )? )
+            // InternalTableDSL.g:373:2: ( ( () otherlv_1= 'selection' ( ( (lv_multiSelection_2_0= 'multiple' ) ) | otherlv_3= 'single' ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )? ) )
+            // InternalTableDSL.g:374:2: ( () otherlv_1= 'selection' ( ( (lv_multiSelection_2_0= 'multiple' ) ) | otherlv_3= 'single' ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )? )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:367:1: ( () ( ( (lv_multiSelection_1_0= 'multiselection' ) ) | otherlv_2= 'singleselection' ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:367:2: () ( ( (lv_multiSelection_1_0= 'multiselection' ) ) | otherlv_2= 'singleselection' ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )?
+            // InternalTableDSL.g:374:2: ( () otherlv_1= 'selection' ( ( (lv_multiSelection_2_0= 'multiple' ) ) | otherlv_3= 'single' ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )? )
+            // InternalTableDSL.g:375:3: () otherlv_1= 'selection' ( ( (lv_multiSelection_2_0= 'multiple' ) ) | otherlv_3= 'single' ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )?
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:367:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:368:5: 
+            // InternalTableDSL.g:375:3: ()
+            // InternalTableDSL.g:376:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableSelectionAccess().getTableSelectionAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableSelectionAccess().getTableSelectionAction_0(),
+              					current);
+              			
             }
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:373:2: ( ( (lv_multiSelection_1_0= 'multiselection' ) ) | otherlv_2= 'singleselection' )
+            otherlv_1=(Token)match(input,21,FOLLOW_11); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getTableSelectionAccess().getSelectionKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:386:3: ( ( (lv_multiSelection_2_0= 'multiple' ) ) | otherlv_3= 'single' )
             int alt7=2;
             int LA7_0 = input.LA(1);
 
-            if ( (LA7_0==21) ) {
+            if ( (LA7_0==22) ) {
                 alt7=1;
             }
-            else if ( (LA7_0==22) ) {
+            else if ( (LA7_0==23) ) {
                 alt7=2;
             }
             else {
@@ -1196,27 +1229,27 @@
             }
             switch (alt7) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:373:3: ( (lv_multiSelection_1_0= 'multiselection' ) )
+                    // InternalTableDSL.g:387:4: ( (lv_multiSelection_2_0= 'multiple' ) )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:373:3: ( (lv_multiSelection_1_0= 'multiselection' ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:374:1: (lv_multiSelection_1_0= 'multiselection' )
+                    // InternalTableDSL.g:387:4: ( (lv_multiSelection_2_0= 'multiple' ) )
+                    // InternalTableDSL.g:388:5: (lv_multiSelection_2_0= 'multiple' )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:374:1: (lv_multiSelection_1_0= 'multiselection' )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:375:3: lv_multiSelection_1_0= 'multiselection'
+                    // InternalTableDSL.g:388:5: (lv_multiSelection_2_0= 'multiple' )
+                    // InternalTableDSL.g:389:6: lv_multiSelection_2_0= 'multiple'
                     {
-                    lv_multiSelection_1_0=(Token)match(input,21,FOLLOW_21_in_ruleTableSelection760); if (state.failed) return current;
+                    lv_multiSelection_2_0=(Token)match(input,22,FOLLOW_12); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                              newLeafNode(lv_multiSelection_1_0, grammarAccess.getTableSelectionAccess().getMultiSelectionMultiselectionKeyword_1_0_0());
-                          
+                      						newLeafNode(lv_multiSelection_2_0, grammarAccess.getTableSelectionAccess().getMultiSelectionMultipleKeyword_2_0_0());
+                      					
                     }
                     if ( state.backtracking==0 ) {
 
-                      	        if (current==null) {
-                      	            current = createModelElement(grammarAccess.getTableSelectionRule());
-                      	        }
-                             		setWithLastConsumed(current, "multiSelection", true, "multiselection");
-                      	    
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getTableSelectionRule());
+                      						}
+                      						setWithLastConsumed(current, "multiSelection", true, "multiple");
+                      					
                     }
 
                     }
@@ -1228,13 +1261,13 @@
                     }
                     break;
                 case 2 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:389:7: otherlv_2= 'singleselection'
+                    // InternalTableDSL.g:402:4: otherlv_3= 'single'
                     {
-                    otherlv_2=(Token)match(input,22,FOLLOW_22_in_ruleTableSelection791); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,23,FOLLOW_12); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_2, grammarAccess.getTableSelectionAccess().getSingleselectionKeyword_1_1());
-                          
+                      				newLeafNode(otherlv_3, grammarAccess.getTableSelectionAccess().getSingleKeyword_2_1());
+                      			
                     }
 
                     }
@@ -1242,71 +1275,83 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:393:2: ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:395:1: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:407:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:408:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:395:1: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:396:2: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:408:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:409:5: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* )
             {
-            getUnorderedGroupHelper().enter(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2());
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:399:2: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:400:3: ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )*
+            getUnorderedGroupHelper().enter(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+            // InternalTableDSL.g:412:5: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:413:6: ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )*
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:400:3: ( ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) )*
+            // InternalTableDSL.g:413:6: ( ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )*
             loop8:
             do {
-                int alt8=3;
+                int alt8=7;
                 int LA8_0 = input.LA(1);
 
-                if ( LA8_0 ==23 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 0) ) {
+                if ( LA8_0 == 24 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
                     alt8=1;
                 }
-                else if ( LA8_0 ==24 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 1) ) {
+                else if ( LA8_0 == 25 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
                     alt8=2;
                 }
+                else if ( LA8_0 == 26 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+                    alt8=3;
+                }
+                else if ( LA8_0 == 27 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+                    alt8=4;
+                }
+                else if ( LA8_0 == 28 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+                    alt8=5;
+                }
+                else if ( LA8_0 == 29 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5) ) {
+                    alt8=6;
+                }
 
 
                 switch (alt8) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:402:4: ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) )
+            	    // InternalTableDSL.g:414:4: ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:402:4: ({...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:403:5: {...}? => ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) )
+            	    // InternalTableDSL.g:414:4: ({...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) ) )
+            	    // InternalTableDSL.g:415:5: {...}? => ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) )
             	    {
-            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 0) ) {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 0)");
+            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:403:111: ( ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:404:6: ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) )
+            	    // InternalTableDSL.g:415:111: ( ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) ) )
+            	    // InternalTableDSL.g:416:6: ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) )
             	    {
-            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 0);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:407:6: ({...}? => ( (lv_selectalways_4_0= 'selectalways' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:407:7: {...}? => ( (lv_selectalways_4_0= 'selectalways' ) )
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0);
+            	    // InternalTableDSL.g:419:9: ({...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) ) )
+            	    // InternalTableDSL.g:419:10: {...}? => ( (lv_selectalways_5_0= 'alwaysSelected' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableSelection", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:407:16: ( (lv_selectalways_4_0= 'selectalways' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:408:1: (lv_selectalways_4_0= 'selectalways' )
+            	    // InternalTableDSL.g:419:19: ( (lv_selectalways_5_0= 'alwaysSelected' ) )
+            	    // InternalTableDSL.g:419:20: (lv_selectalways_5_0= 'alwaysSelected' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:408:1: (lv_selectalways_4_0= 'selectalways' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:409:3: lv_selectalways_4_0= 'selectalways'
+            	    // InternalTableDSL.g:419:20: (lv_selectalways_5_0= 'alwaysSelected' )
+            	    // InternalTableDSL.g:420:10: lv_selectalways_5_0= 'alwaysSelected'
             	    {
-            	    lv_selectalways_4_0=(Token)match(input,23,FOLLOW_23_in_ruleTableSelection855); if (state.failed) return current;
+            	    lv_selectalways_5_0=(Token)match(input,24,FOLLOW_12); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_selectalways_4_0, grammarAccess.getTableSelectionAccess().getSelectalwaysSelectalwaysKeyword_2_0_0());
-            	          
+            	      										newLeafNode(lv_selectalways_5_0, grammarAccess.getTableSelectionAccess().getSelectalwaysAlwaysSelectedKeyword_3_0_0());
+            	      									
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableSelectionRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "selectalways", true, "selectalways");
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableSelectionRule());
+            	      										}
+            	      										setWithLastConsumed(current, "selectalways", true, "alwaysSelected");
+            	      									
             	    }
 
             	    }
@@ -1317,7 +1362,7 @@
 
             	    }
 
-            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2());
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
 
             	    }
 
@@ -1328,63 +1373,63 @@
             	    }
             	    break;
             	case 2 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:429:4: ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) )
+            	    // InternalTableDSL.g:437:4: ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:429:4: ({...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:430:5: {...}? => ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) )
+            	    // InternalTableDSL.g:437:4: ({...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) ) )
+            	    // InternalTableDSL.g:438:5: {...}? => ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) )
             	    {
-            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 1) ) {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 1)");
+            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:430:111: ( ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:431:6: ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) )
+            	    // InternalTableDSL.g:438:111: ( ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) ) )
+            	    // InternalTableDSL.g:439:6: ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) )
             	    {
-            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2(), 1);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:434:6: ({...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:434:7: {...}? => (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) )
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1);
+            	    // InternalTableDSL.g:442:9: ({...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) ) )
+            	    // InternalTableDSL.g:442:10: {...}? => (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableSelection", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:434:16: (otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:434:18: otherlv_5= 'rowheader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) )
+            	    // InternalTableDSL.g:442:19: (otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) ) )
+            	    // InternalTableDSL.g:442:20: otherlv_6= 'rowHeader' ( (lv_headerMode_7_0= ruleRowHeaderMode ) )
             	    {
-            	    otherlv_5=(Token)match(input,24,FOLLOW_24_in_ruleTableSelection935); if (state.failed) return current;
+            	    otherlv_6=(Token)match(input,25,FOLLOW_13); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_5, grammarAccess.getTableSelectionAccess().getRowheaderKeyword_2_1_0());
-            	          
+            	      									newLeafNode(otherlv_6, grammarAccess.getTableSelectionAccess().getRowHeaderKeyword_3_1_0());
+            	      								
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:438:1: ( (lv_headerMode_6_0= ruleRowHeaderMode ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:439:1: (lv_headerMode_6_0= ruleRowHeaderMode )
+            	    // InternalTableDSL.g:446:9: ( (lv_headerMode_7_0= ruleRowHeaderMode ) )
+            	    // InternalTableDSL.g:447:10: (lv_headerMode_7_0= ruleRowHeaderMode )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:439:1: (lv_headerMode_6_0= ruleRowHeaderMode )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:440:3: lv_headerMode_6_0= ruleRowHeaderMode
+            	    // InternalTableDSL.g:447:10: (lv_headerMode_7_0= ruleRowHeaderMode )
+            	    // InternalTableDSL.g:448:11: lv_headerMode_7_0= ruleRowHeaderMode
             	    {
             	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableSelectionAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0()); 
-            	      	    
+
+            	      											newCompositeNode(grammarAccess.getTableSelectionAccess().getHeaderModeRowHeaderModeEnumRuleCall_3_1_1_0());
+            	      										
             	    }
-            	    pushFollow(FOLLOW_ruleRowHeaderMode_in_ruleTableSelection956);
-            	    lv_headerMode_6_0=ruleRowHeaderMode();
+            	    pushFollow(FOLLOW_12);
+            	    lv_headerMode_7_0=ruleRowHeaderMode();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableSelectionRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"headerMode",
-            	              		lv_headerMode_6_0, 
-            	              		"RowHeaderMode");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElementForParent(grammarAccess.getTableSelectionRule());
+            	      											}
+            	      											set(
+            	      												current,
+            	      												"headerMode",
+            	      												lv_headerMode_7_0,
+            	      												"org.eclipse.osbp.xtext.table.TableDSL.RowHeaderMode");
+            	      											afterParserOrEnumRuleCall();
+            	      										
             	    }
 
             	    }
@@ -1398,7 +1443,299 @@
 
             	    }
 
-            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2());
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 3 :
+            	    // InternalTableDSL.g:471:4: ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:471:4: ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) )
+            	    // InternalTableDSL.g:472:5: {...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2)");
+            	    }
+            	    // InternalTableDSL.g:472:111: ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) )
+            	    // InternalTableDSL.g:473:6: ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2);
+            	    // InternalTableDSL.g:476:9: ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) )
+            	    // InternalTableDSL.g:476:10: {...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableSelection", "true");
+            	    }
+            	    // InternalTableDSL.g:476:19: ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) )
+            	    // InternalTableDSL.g:476:20: ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) )
+            	    {
+            	    // InternalTableDSL.g:476:20: ( (lv_polling_8_0= 'polling' ) )
+            	    // InternalTableDSL.g:477:10: (lv_polling_8_0= 'polling' )
+            	    {
+            	    // InternalTableDSL.g:477:10: (lv_polling_8_0= 'polling' )
+            	    // InternalTableDSL.g:478:11: lv_polling_8_0= 'polling'
+            	    {
+            	    lv_polling_8_0=(Token)match(input,26,FOLLOW_14); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      											newLeafNode(lv_polling_8_0, grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_2_0_0());
+            	      										
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableSelectionRule());
+            	      											}
+            	      											setWithLastConsumed(current, "polling", true, "polling");
+            	      										
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:490:9: ( (lv_pollingTime_9_0= ruleNumber ) )
+            	    // InternalTableDSL.g:491:10: (lv_pollingTime_9_0= ruleNumber )
+            	    {
+            	    // InternalTableDSL.g:491:10: (lv_pollingTime_9_0= ruleNumber )
+            	    // InternalTableDSL.g:492:11: lv_pollingTime_9_0= ruleNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      											newCompositeNode(grammarAccess.getTableSelectionAccess().getPollingTimeNumberParserRuleCall_3_2_1_0());
+            	      										
+            	    }
+            	    pushFollow(FOLLOW_12);
+            	    lv_pollingTime_9_0=ruleNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      											if (current==null) {
+            	      												current = createModelElementForParent(grammarAccess.getTableSelectionRule());
+            	      											}
+            	      											set(
+            	      												current,
+            	      												"pollingTime",
+            	      												lv_pollingTime_9_0,
+            	      												"org.eclipse.xtext.xbase.Xbase.Number");
+            	      											afterParserOrEnumRuleCall();
+            	      										
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 4 :
+            	    // InternalTableDSL.g:515:4: ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:515:4: ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) )
+            	    // InternalTableDSL.g:516:5: {...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3)");
+            	    }
+            	    // InternalTableDSL.g:516:111: ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) )
+            	    // InternalTableDSL.g:517:6: ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3);
+            	    // InternalTableDSL.g:520:9: ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) )
+            	    // InternalTableDSL.g:520:10: {...}? => ( (lv_filtering_10_0= 'filtering' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableSelection", "true");
+            	    }
+            	    // InternalTableDSL.g:520:19: ( (lv_filtering_10_0= 'filtering' ) )
+            	    // InternalTableDSL.g:520:20: (lv_filtering_10_0= 'filtering' )
+            	    {
+            	    // InternalTableDSL.g:520:20: (lv_filtering_10_0= 'filtering' )
+            	    // InternalTableDSL.g:521:10: lv_filtering_10_0= 'filtering'
+            	    {
+            	    lv_filtering_10_0=(Token)match(input,27,FOLLOW_12); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      										newLeafNode(lv_filtering_10_0, grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_3_0());
+            	      									
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableSelectionRule());
+            	      										}
+            	      										setWithLastConsumed(current, "filtering", true, "filtering");
+            	      									
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 5 :
+            	    // InternalTableDSL.g:538:4: ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:538:4: ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) )
+            	    // InternalTableDSL.g:539:5: {...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4)");
+            	    }
+            	    // InternalTableDSL.g:539:111: ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) )
+            	    // InternalTableDSL.g:540:6: ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 4);
+            	    // InternalTableDSL.g:543:9: ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) )
+            	    // InternalTableDSL.g:543:10: {...}? => ( (lv_embedded_11_0= 'embedded' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableSelection", "true");
+            	    }
+            	    // InternalTableDSL.g:543:19: ( (lv_embedded_11_0= 'embedded' ) )
+            	    // InternalTableDSL.g:543:20: (lv_embedded_11_0= 'embedded' )
+            	    {
+            	    // InternalTableDSL.g:543:20: (lv_embedded_11_0= 'embedded' )
+            	    // InternalTableDSL.g:544:10: lv_embedded_11_0= 'embedded'
+            	    {
+            	    lv_embedded_11_0=(Token)match(input,28,FOLLOW_12); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      										newLeafNode(lv_embedded_11_0, grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_4_0());
+            	      									
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableSelectionRule());
+            	      										}
+            	      										setWithLastConsumed(current, "embedded", true, "embedded");
+            	      									
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 6 :
+            	    // InternalTableDSL.g:561:4: ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:561:4: ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) )
+            	    // InternalTableDSL.g:562:5: {...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5)");
+            	    }
+            	    // InternalTableDSL.g:562:111: ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) )
+            	    // InternalTableDSL.g:563:6: ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 5);
+            	    // InternalTableDSL.g:566:9: ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) )
+            	    // InternalTableDSL.g:566:10: {...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableSelection", "true");
+            	    }
+            	    // InternalTableDSL.g:566:19: (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) )
+            	    // InternalTableDSL.g:566:20: otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) )
+            	    {
+            	    otherlv_12=(Token)match(input,29,FOLLOW_4); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      									newLeafNode(otherlv_12, grammarAccess.getTableSelectionAccess().getToolbarKeyword_3_5_0());
+            	      								
+            	    }
+            	    // InternalTableDSL.g:570:9: ( (otherlv_13= RULE_ID ) )
+            	    // InternalTableDSL.g:571:10: (otherlv_13= RULE_ID )
+            	    {
+            	    // InternalTableDSL.g:571:10: (otherlv_13= RULE_ID )
+            	    // InternalTableDSL.g:572:11: otherlv_13= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableSelectionRule());
+            	      											}
+            	      										
+            	    }
+            	    otherlv_13=(Token)match(input,RULE_ID,FOLLOW_12); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      											newLeafNode(otherlv_13, grammarAccess.getTableSelectionAccess().getToolbarActionToolbarCrossReference_3_5_1_0());
+            	      										
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
 
             	    }
 
@@ -1420,394 +1757,55 @@
 
             }
 
-            getUnorderedGroupHelper().leave(grammarAccess.getTableSelectionAccess().getUnorderedGroup_2());
-
-            }
-
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:470:2: ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:472:1: ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:472:1: ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:473:2: ( ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* )
-            {
-            getUnorderedGroupHelper().enter(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:476:2: ( ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:477:3: ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )*
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:477:3: ( ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )*
-            loop9:
-            do {
-                int alt9=5;
-                int LA9_0 = input.LA(1);
-
-                if ( LA9_0 ==25 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
-                    alt9=1;
-                }
-                else if ( LA9_0 ==26 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
-                    alt9=2;
-                }
-                else if ( LA9_0 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
-                    alt9=3;
-                }
-                else if ( LA9_0 ==28 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
-                    alt9=4;
-                }
-
-
-                switch (alt9) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:479:4: ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:479:4: ({...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:480:5: {...}? => ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) )
-            	    {
-            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0) ) {
-            	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0)");
-            	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:480:111: ( ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:481:6: ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) )
-            	    {
-            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 0);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:484:6: ({...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:484:7: {...}? => ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) )
-            	    {
-            	    if ( !((true)) ) {
-            	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableSelection", "true");
-            	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:484:16: ( ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:484:17: ( (lv_polling_8_0= 'polling' ) ) ( (lv_pollingTime_9_0= ruleNumber ) )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:484:17: ( (lv_polling_8_0= 'polling' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:485:1: (lv_polling_8_0= 'polling' )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:485:1: (lv_polling_8_0= 'polling' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:486:3: lv_polling_8_0= 'polling'
-            	    {
-            	    lv_polling_8_0=(Token)match(input,25,FOLLOW_25_in_ruleTableSelection1061); if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	              newLeafNode(lv_polling_8_0, grammarAccess.getTableSelectionAccess().getPollingPollingKeyword_3_0_0_0());
-            	          
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableSelectionRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "polling", true, "polling");
-            	      	    
-            	    }
-
-            	    }
-
-
-            	    }
-
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:499:2: ( (lv_pollingTime_9_0= ruleNumber ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:500:1: (lv_pollingTime_9_0= ruleNumber )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:500:1: (lv_pollingTime_9_0= ruleNumber )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:501:3: lv_pollingTime_9_0= ruleNumber
-            	    {
-            	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableSelectionAccess().getPollingTimeNumberParserRuleCall_3_0_1_0()); 
-            	      	    
-            	    }
-            	    pushFollow(FOLLOW_ruleNumber_in_ruleTableSelection1095);
-            	    lv_pollingTime_9_0=ruleNumber();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableSelectionRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"pollingTime",
-            	              		lv_pollingTime_9_0, 
-            	              		"Number");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-            	case 2 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:524:4: ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:524:4: ({...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:525:5: {...}? => ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) )
-            	    {
-            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1) ) {
-            	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1)");
-            	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:525:111: ( ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:526:6: ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) )
-            	    {
-            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 1);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:529:6: ({...}? => ( (lv_filtering_10_0= 'filtering' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:529:7: {...}? => ( (lv_filtering_10_0= 'filtering' ) )
-            	    {
-            	    if ( !((true)) ) {
-            	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableSelection", "true");
-            	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:529:16: ( (lv_filtering_10_0= 'filtering' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:530:1: (lv_filtering_10_0= 'filtering' )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:530:1: (lv_filtering_10_0= 'filtering' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:531:3: lv_filtering_10_0= 'filtering'
-            	    {
-            	    lv_filtering_10_0=(Token)match(input,26,FOLLOW_26_in_ruleTableSelection1168); if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	              newLeafNode(lv_filtering_10_0, grammarAccess.getTableSelectionAccess().getFilteringFilteringKeyword_3_1_0());
-            	          
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableSelectionRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "filtering", true, "filtering");
-            	      	    
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-            	case 3 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:551:4: ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:551:4: ({...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:552:5: {...}? => ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) )
-            	    {
-            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2) ) {
-            	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2)");
-            	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:552:111: ( ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:553:6: ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) )
-            	    {
-            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 2);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:556:6: ({...}? => ( (lv_embedded_11_0= 'embedded' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:556:7: {...}? => ( (lv_embedded_11_0= 'embedded' ) )
-            	    {
-            	    if ( !((true)) ) {
-            	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableSelection", "true");
-            	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:556:16: ( (lv_embedded_11_0= 'embedded' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:557:1: (lv_embedded_11_0= 'embedded' )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:557:1: (lv_embedded_11_0= 'embedded' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:558:3: lv_embedded_11_0= 'embedded'
-            	    {
-            	    lv_embedded_11_0=(Token)match(input,27,FOLLOW_27_in_ruleTableSelection1253); if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	              newLeafNode(lv_embedded_11_0, grammarAccess.getTableSelectionAccess().getEmbeddedEmbeddedKeyword_3_2_0());
-            	          
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableSelectionRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "embedded", true, "embedded");
-            	      	    
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-            	case 4 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:578:4: ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:578:4: ({...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:579:5: {...}? => ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) )
-            	    {
-            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3) ) {
-            	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableSelection", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3)");
-            	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:579:111: ( ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:580:6: ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) )
-            	    {
-            	    getUnorderedGroupHelper().select(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3(), 3);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:583:6: ({...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:583:7: {...}? => (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) )
-            	    {
-            	    if ( !((true)) ) {
-            	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableSelection", "true");
-            	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:583:16: (otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:583:18: otherlv_12= 'toolbar' ( (otherlv_13= RULE_ID ) )
-            	    {
-            	    otherlv_12=(Token)match(input,28,FOLLOW_28_in_ruleTableSelection1333); if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	          	newLeafNode(otherlv_12, grammarAccess.getTableSelectionAccess().getToolbarKeyword_3_3_0());
-            	          
-            	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:587:1: ( (otherlv_13= RULE_ID ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:588:1: (otherlv_13= RULE_ID )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:588:1: (otherlv_13= RULE_ID )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:589:3: otherlv_13= RULE_ID
-            	    {
-            	    if ( state.backtracking==0 ) {
-
-            	      			if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableSelectionRule());
-            	      	        }
-            	              
-            	    }
-            	    otherlv_13=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableSelection1353); if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      		newLeafNode(otherlv_13, grammarAccess.getTableSelectionAccess().getToolbarActionToolbarCrossReference_3_3_1_0()); 
-            	      	
-            	    }
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-
-            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
-
-            	    }
-
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop9;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
             getUnorderedGroupHelper().leave(grammarAccess.getTableSelectionAccess().getUnorderedGroup_3());
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:614:2: (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )?
-            int alt10=2;
-            int LA10_0 = input.LA(1);
+            // InternalTableDSL.g:596:3: (otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) ) )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
 
-            if ( (LA10_0==29) ) {
-                alt10=1;
+            if ( (LA9_0==30) ) {
+                alt9=1;
             }
-            switch (alt10) {
+            switch (alt9) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:614:4: otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) )
+                    // InternalTableDSL.g:597:4: otherlv_14= 'using' ( (lv_source_15_0= ruleTableDatamart ) )
                     {
-                    otherlv_14=(Token)match(input,29,FOLLOW_29_in_ruleTableSelection1407); if (state.failed) return current;
+                    otherlv_14=(Token)match(input,30,FOLLOW_15); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_14, grammarAccess.getTableSelectionAccess().getUsingKeyword_4_0());
-                          
+                      				newLeafNode(otherlv_14, grammarAccess.getTableSelectionAccess().getUsingKeyword_4_0());
+                      			
                     }
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:618:1: ( (lv_source_15_0= ruleTableDatamart ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:619:1: (lv_source_15_0= ruleTableDatamart )
+                    // InternalTableDSL.g:601:4: ( (lv_source_15_0= ruleTableDatamart ) )
+                    // InternalTableDSL.g:602:5: (lv_source_15_0= ruleTableDatamart )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:619:1: (lv_source_15_0= ruleTableDatamart )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:620:3: lv_source_15_0= ruleTableDatamart
+                    // InternalTableDSL.g:602:5: (lv_source_15_0= ruleTableDatamart )
+                    // InternalTableDSL.g:603:6: lv_source_15_0= ruleTableDatamart
                     {
                     if ( state.backtracking==0 ) {
-                       
-                      	        newCompositeNode(grammarAccess.getTableSelectionAccess().getSourceTableDatamartParserRuleCall_4_1_0()); 
-                      	    
+
+                      						newCompositeNode(grammarAccess.getTableSelectionAccess().getSourceTableDatamartParserRuleCall_4_1_0());
+                      					
                     }
-                    pushFollow(FOLLOW_ruleTableDatamart_in_ruleTableSelection1428);
+                    pushFollow(FOLLOW_2);
                     lv_source_15_0=ruleTableDatamart();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      	        if (current==null) {
-                      	            current = createModelElementForParent(grammarAccess.getTableSelectionRule());
-                      	        }
-                             		set(
-                             			current, 
-                             			"source",
-                              		lv_source_15_0, 
-                              		"TableDatamart");
-                      	        afterParserOrEnumRuleCall();
-                      	    
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getTableSelectionRule());
+                      						}
+                      						set(
+                      							current,
+                      							"source",
+                      							lv_source_15_0,
+                      							"org.eclipse.osbp.xtext.table.TableDSL.TableDatamart");
+                      						afterParserOrEnumRuleCall();
+                      					
                     }
 
                     }
@@ -1828,14 +1826,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -1844,7 +1844,7 @@
 
 
     // $ANTLR start "entryRuleTableTable"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:644:1: entryRuleTableTable returns [EObject current=null] : iv_ruleTableTable= ruleTableTable EOF ;
+    // InternalTableDSL.g:625:1: entryRuleTableTable returns [EObject current=null] : iv_ruleTableTable= ruleTableTable EOF ;
     public final EObject entryRuleTableTable() throws RecognitionException {
         EObject current = null;
 
@@ -1852,13 +1852,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:645:2: (iv_ruleTableTable= ruleTableTable EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:646:2: iv_ruleTableTable= ruleTableTable EOF
+            // InternalTableDSL.g:625:51: (iv_ruleTableTable= ruleTableTable EOF )
+            // InternalTableDSL.g:626:2: iv_ruleTableTable= ruleTableTable EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableTableRule()); 
             }
-            pushFollow(FOLLOW_ruleTableTable_in_entryRuleTableTable1466);
+            pushFollow(FOLLOW_1);
             iv_ruleTableTable=ruleTableTable();
 
             state._fsp--;
@@ -1866,16 +1866,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableTable; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableTable1476); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -1884,119 +1884,136 @@
 
 
     // $ANTLR start "ruleTableTable"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:653:1: ruleTableTable returns [EObject current=null] : ( () otherlv_1= 'table' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? ) ;
+    // InternalTableDSL.g:632:1: ruleTableTable returns [EObject current=null] : ( () otherlv_1= 'table' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? ) ;
     public final EObject ruleTableTable() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
         Token lv_selectalways_3_0=null;
-        Token otherlv_4=null;
+        Token lv_selectById_4_0=null;
+        Token otherlv_5=null;
         Token lv_polling_7_0=null;
         Token lv_filtering_9_0=null;
         Token lv_embedded_10_0=null;
         Token otherlv_11=null;
         Token otherlv_12=null;
         Token otherlv_13=null;
-        Enumerator lv_headerMode_5_0 = null;
+        Enumerator lv_headerMode_6_0 = null;
 
         AntlrDatatypeRuleToken lv_pollingTime_8_0 = null;
 
         EObject lv_source_14_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:656:28: ( ( () otherlv_1= 'table' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:657:1: ( () otherlv_1= 'table' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? )
+            // InternalTableDSL.g:638:2: ( ( () otherlv_1= 'table' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? ) )
+            // InternalTableDSL.g:639:2: ( () otherlv_1= 'table' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:657:1: ( () otherlv_1= 'table' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:657:2: () otherlv_1= 'table' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )?
+            // InternalTableDSL.g:639:2: ( () otherlv_1= 'table' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? )
+            // InternalTableDSL.g:640:3: () otherlv_1= 'table' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )?
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:657:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:658:5: 
+            // InternalTableDSL.g:640:3: ()
+            // InternalTableDSL.g:641:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableTableAccess().getTableTableAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableTableAccess().getTableTableAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleTableTable1522); if (state.failed) return current;
+            otherlv_1=(Token)match(input,18,FOLLOW_16); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableTableAccess().getTableKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableTableAccess().getTableKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:667:1: ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:669:1: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:651:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:652:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:669:1: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:670:2: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:652:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:653:5: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:673:2: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:674:3: ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )*
+            // InternalTableDSL.g:656:5: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:657:6: ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )*
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:674:3: ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )*
-            loop11:
+            // InternalTableDSL.g:657:6: ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )*
+            loop10:
             do {
-                int alt11=3;
-                int LA11_0 = input.LA(1);
+                int alt10=8;
+                int LA10_0 = input.LA(1);
 
-                if ( LA11_0 ==23 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
-                    alt11=1;
+                if ( LA10_0 == 24 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
+                    alt10=1;
                 }
-                else if ( LA11_0 ==24 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
-                    alt11=2;
+                else if ( LA10_0 == 31 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
+                    alt10=2;
+                }
+                else if ( LA10_0 == 25 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+                    alt10=3;
+                }
+                else if ( LA10_0 == 26 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+                    alt10=4;
+                }
+                else if ( LA10_0 == 27 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+                    alt10=5;
+                }
+                else if ( LA10_0 == 28 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+                    alt10=6;
+                }
+                else if ( LA10_0 == 29 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+                    alt10=7;
                 }
 
 
-                switch (alt11) {
+                switch (alt10) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:676:4: ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) )
+            	    // InternalTableDSL.g:658:4: ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:676:4: ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:677:5: {...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) )
+            	    // InternalTableDSL.g:658:4: ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) )
+            	    // InternalTableDSL.g:659:5: {...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:677:107: ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:678:6: ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) )
+            	    // InternalTableDSL.g:659:107: ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) )
+            	    // InternalTableDSL.g:660:6: ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 0);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:681:6: ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:681:7: {...}? => ( (lv_selectalways_3_0= 'selectalways' ) )
+            	    // InternalTableDSL.g:663:9: ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) )
+            	    // InternalTableDSL.g:663:10: {...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableTable", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:681:16: ( (lv_selectalways_3_0= 'selectalways' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:682:1: (lv_selectalways_3_0= 'selectalways' )
+            	    // InternalTableDSL.g:663:19: ( (lv_selectalways_3_0= 'alwaysSelected' ) )
+            	    // InternalTableDSL.g:663:20: (lv_selectalways_3_0= 'alwaysSelected' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:682:1: (lv_selectalways_3_0= 'selectalways' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:683:3: lv_selectalways_3_0= 'selectalways'
+            	    // InternalTableDSL.g:663:20: (lv_selectalways_3_0= 'alwaysSelected' )
+            	    // InternalTableDSL.g:664:10: lv_selectalways_3_0= 'alwaysSelected'
             	    {
-            	    lv_selectalways_3_0=(Token)match(input,23,FOLLOW_23_in_ruleTableTable1585); if (state.failed) return current;
+            	    lv_selectalways_3_0=(Token)match(input,24,FOLLOW_16); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_selectalways_3_0, grammarAccess.getTableTableAccess().getSelectalwaysSelectalwaysKeyword_2_0_0());
-            	          
+            	      										newLeafNode(lv_selectalways_3_0, grammarAccess.getTableTableAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0());
+            	      									
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableTableRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "selectalways", true, "selectalways");
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableTableRule());
+            	      										}
+            	      										setWithLastConsumed(current, "selectalways", true, "alwaysSelected");
+            	      									
             	    }
 
             	    }
@@ -2018,63 +2035,415 @@
             	    }
             	    break;
             	case 2 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:703:4: ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) )
+            	    // InternalTableDSL.g:681:4: ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:703:4: ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:704:5: {...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) )
+            	    // InternalTableDSL.g:681:4: ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) )
+            	    // InternalTableDSL.g:682:5: {...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:704:107: ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:705:6: ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) )
+            	    // InternalTableDSL.g:682:107: ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) )
+            	    // InternalTableDSL.g:683:6: ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 1);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:708:6: ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:708:7: {...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) )
+            	    // InternalTableDSL.g:686:9: ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) )
+            	    // InternalTableDSL.g:686:10: {...}? => ( (lv_selectById_4_0= 'selectById' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableTable", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:708:16: (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:708:18: otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) )
+            	    // InternalTableDSL.g:686:19: ( (lv_selectById_4_0= 'selectById' ) )
+            	    // InternalTableDSL.g:686:20: (lv_selectById_4_0= 'selectById' )
             	    {
-            	    otherlv_4=(Token)match(input,24,FOLLOW_24_in_ruleTableTable1665); if (state.failed) return current;
+            	    // InternalTableDSL.g:686:20: (lv_selectById_4_0= 'selectById' )
+            	    // InternalTableDSL.g:687:10: lv_selectById_4_0= 'selectById'
+            	    {
+            	    lv_selectById_4_0=(Token)match(input,31,FOLLOW_16); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_4, grammarAccess.getTableTableAccess().getRowheaderKeyword_2_1_0());
-            	          
+            	      										newLeafNode(lv_selectById_4_0, grammarAccess.getTableTableAccess().getSelectByIdSelectByIdKeyword_2_1_0());
+            	      									
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:712:1: ( (lv_headerMode_5_0= ruleRowHeaderMode ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:713:1: (lv_headerMode_5_0= ruleRowHeaderMode )
+            	    if ( state.backtracking==0 ) {
+
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableTableRule());
+            	      										}
+            	      										setWithLastConsumed(current, "selectById", true, "selectById");
+            	      									
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 3 :
+            	    // InternalTableDSL.g:704:4: ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:713:1: (lv_headerMode_5_0= ruleRowHeaderMode )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:714:3: lv_headerMode_5_0= ruleRowHeaderMode
+            	    // InternalTableDSL.g:704:4: ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) )
+            	    // InternalTableDSL.g:705:5: {...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2)");
+            	    }
+            	    // InternalTableDSL.g:705:107: ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) )
+            	    // InternalTableDSL.g:706:6: ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 2);
+            	    // InternalTableDSL.g:709:9: ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) )
+            	    // InternalTableDSL.g:709:10: {...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableTable", "true");
+            	    }
+            	    // InternalTableDSL.g:709:19: (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) )
+            	    // InternalTableDSL.g:709:20: otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) )
+            	    {
+            	    otherlv_5=(Token)match(input,25,FOLLOW_13); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      									newLeafNode(otherlv_5, grammarAccess.getTableTableAccess().getRowHeaderKeyword_2_2_0());
+            	      								
+            	    }
+            	    // InternalTableDSL.g:713:9: ( (lv_headerMode_6_0= ruleRowHeaderMode ) )
+            	    // InternalTableDSL.g:714:10: (lv_headerMode_6_0= ruleRowHeaderMode )
+            	    {
+            	    // InternalTableDSL.g:714:10: (lv_headerMode_6_0= ruleRowHeaderMode )
+            	    // InternalTableDSL.g:715:11: lv_headerMode_6_0= ruleRowHeaderMode
             	    {
             	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableTableAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0()); 
-            	      	    
+
+            	      											newCompositeNode(grammarAccess.getTableTableAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0());
+            	      										
             	    }
-            	    pushFollow(FOLLOW_ruleRowHeaderMode_in_ruleTableTable1686);
-            	    lv_headerMode_5_0=ruleRowHeaderMode();
+            	    pushFollow(FOLLOW_16);
+            	    lv_headerMode_6_0=ruleRowHeaderMode();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableTableRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"headerMode",
-            	              		lv_headerMode_5_0, 
-            	              		"RowHeaderMode");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElementForParent(grammarAccess.getTableTableRule());
+            	      											}
+            	      											set(
+            	      												current,
+            	      												"headerMode",
+            	      												lv_headerMode_6_0,
+            	      												"org.eclipse.osbp.xtext.table.TableDSL.RowHeaderMode");
+            	      											afterParserOrEnumRuleCall();
+            	      										
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 4 :
+            	    // InternalTableDSL.g:738:4: ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:738:4: ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) )
+            	    // InternalTableDSL.g:739:5: {...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3)");
+            	    }
+            	    // InternalTableDSL.g:739:107: ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) )
+            	    // InternalTableDSL.g:740:6: ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 3);
+            	    // InternalTableDSL.g:743:9: ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) )
+            	    // InternalTableDSL.g:743:10: {...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableTable", "true");
+            	    }
+            	    // InternalTableDSL.g:743:19: ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) )
+            	    // InternalTableDSL.g:743:20: ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) )
+            	    {
+            	    // InternalTableDSL.g:743:20: ( (lv_polling_7_0= 'polling' ) )
+            	    // InternalTableDSL.g:744:10: (lv_polling_7_0= 'polling' )
+            	    {
+            	    // InternalTableDSL.g:744:10: (lv_polling_7_0= 'polling' )
+            	    // InternalTableDSL.g:745:11: lv_polling_7_0= 'polling'
+            	    {
+            	    lv_polling_7_0=(Token)match(input,26,FOLLOW_14); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      											newLeafNode(lv_polling_7_0, grammarAccess.getTableTableAccess().getPollingPollingKeyword_2_3_0_0());
+            	      										
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableTableRule());
+            	      											}
+            	      											setWithLastConsumed(current, "polling", true, "polling");
+            	      										
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:757:9: ( (lv_pollingTime_8_0= ruleNumber ) )
+            	    // InternalTableDSL.g:758:10: (lv_pollingTime_8_0= ruleNumber )
+            	    {
+            	    // InternalTableDSL.g:758:10: (lv_pollingTime_8_0= ruleNumber )
+            	    // InternalTableDSL.g:759:11: lv_pollingTime_8_0= ruleNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      											newCompositeNode(grammarAccess.getTableTableAccess().getPollingTimeNumberParserRuleCall_2_3_1_0());
+            	      										
+            	    }
+            	    pushFollow(FOLLOW_16);
+            	    lv_pollingTime_8_0=ruleNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      											if (current==null) {
+            	      												current = createModelElementForParent(grammarAccess.getTableTableRule());
+            	      											}
+            	      											set(
+            	      												current,
+            	      												"pollingTime",
+            	      												lv_pollingTime_8_0,
+            	      												"org.eclipse.xtext.xbase.Xbase.Number");
+            	      											afterParserOrEnumRuleCall();
+            	      										
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 5 :
+            	    // InternalTableDSL.g:782:4: ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:782:4: ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) )
+            	    // InternalTableDSL.g:783:5: {...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4)");
+            	    }
+            	    // InternalTableDSL.g:783:107: ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) )
+            	    // InternalTableDSL.g:784:6: ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 4);
+            	    // InternalTableDSL.g:787:9: ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) )
+            	    // InternalTableDSL.g:787:10: {...}? => ( (lv_filtering_9_0= 'filtering' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableTable", "true");
+            	    }
+            	    // InternalTableDSL.g:787:19: ( (lv_filtering_9_0= 'filtering' ) )
+            	    // InternalTableDSL.g:787:20: (lv_filtering_9_0= 'filtering' )
+            	    {
+            	    // InternalTableDSL.g:787:20: (lv_filtering_9_0= 'filtering' )
+            	    // InternalTableDSL.g:788:10: lv_filtering_9_0= 'filtering'
+            	    {
+            	    lv_filtering_9_0=(Token)match(input,27,FOLLOW_16); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      										newLeafNode(lv_filtering_9_0, grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_2_4_0());
+            	      									
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableTableRule());
+            	      										}
+            	      										setWithLastConsumed(current, "filtering", true, "filtering");
+            	      									
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 6 :
+            	    // InternalTableDSL.g:805:4: ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:805:4: ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) )
+            	    // InternalTableDSL.g:806:5: {...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5)");
+            	    }
+            	    // InternalTableDSL.g:806:107: ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) )
+            	    // InternalTableDSL.g:807:6: ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 5);
+            	    // InternalTableDSL.g:810:9: ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) )
+            	    // InternalTableDSL.g:810:10: {...}? => ( (lv_embedded_10_0= 'embedded' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableTable", "true");
+            	    }
+            	    // InternalTableDSL.g:810:19: ( (lv_embedded_10_0= 'embedded' ) )
+            	    // InternalTableDSL.g:810:20: (lv_embedded_10_0= 'embedded' )
+            	    {
+            	    // InternalTableDSL.g:810:20: (lv_embedded_10_0= 'embedded' )
+            	    // InternalTableDSL.g:811:10: lv_embedded_10_0= 'embedded'
+            	    {
+            	    lv_embedded_10_0=(Token)match(input,28,FOLLOW_16); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      										newLeafNode(lv_embedded_10_0, grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_2_5_0());
+            	      									
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableTableRule());
+            	      										}
+            	      										setWithLastConsumed(current, "embedded", true, "embedded");
+            	      									
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_2());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 7 :
+            	    // InternalTableDSL.g:828:4: ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:828:4: ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) )
+            	    // InternalTableDSL.g:829:5: {...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6)");
+            	    }
+            	    // InternalTableDSL.g:829:107: ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) )
+            	    // InternalTableDSL.g:830:6: ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_2(), 6);
+            	    // InternalTableDSL.g:833:9: ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) )
+            	    // InternalTableDSL.g:833:10: {...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableTable", "true");
+            	    }
+            	    // InternalTableDSL.g:833:19: (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) )
+            	    // InternalTableDSL.g:833:20: otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) )
+            	    {
+            	    otherlv_11=(Token)match(input,29,FOLLOW_4); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      									newLeafNode(otherlv_11, grammarAccess.getTableTableAccess().getToolbarKeyword_2_6_0());
+            	      								
+            	    }
+            	    // InternalTableDSL.g:837:9: ( (otherlv_12= RULE_ID ) )
+            	    // InternalTableDSL.g:838:10: (otherlv_12= RULE_ID )
+            	    {
+            	    // InternalTableDSL.g:838:10: (otherlv_12= RULE_ID )
+            	    // InternalTableDSL.g:839:11: otherlv_12= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableTableRule());
+            	      											}
+            	      										
+            	    }
+            	    otherlv_12=(Token)match(input,RULE_ID,FOLLOW_16); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      											newLeafNode(otherlv_12, grammarAccess.getTableTableAccess().getToolbarActionToolbarCrossReference_2_6_1_0());
+            	      										
             	    }
 
             	    }
@@ -2100,7 +2469,7 @@
             	    break;
 
             	default :
-            	    break loop11;
+            	    break loop10;
                 }
             } while (true);
 
@@ -2114,115 +2483,259 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:744:2: ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:746:1: ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:863:3: (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )?
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==30) ) {
+                alt11=1;
+            }
+            switch (alt11) {
+                case 1 :
+                    // InternalTableDSL.g:864:4: otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) )
+                    {
+                    otherlv_13=(Token)match(input,30,FOLLOW_15); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_13, grammarAccess.getTableTableAccess().getUsingKeyword_3_0());
+                      			
+                    }
+                    // InternalTableDSL.g:868:4: ( (lv_source_14_0= ruleTableDatamart ) )
+                    // InternalTableDSL.g:869:5: (lv_source_14_0= ruleTableDatamart )
+                    {
+                    // InternalTableDSL.g:869:5: (lv_source_14_0= ruleTableDatamart )
+                    // InternalTableDSL.g:870:6: lv_source_14_0= ruleTableDatamart
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getTableTableAccess().getSourceTableDatamartParserRuleCall_3_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_source_14_0=ruleTableDatamart();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getTableTableRule());
+                      						}
+                      						set(
+                      							current,
+                      							"source",
+                      							lv_source_14_0,
+                      							"org.eclipse.osbp.xtext.table.TableDSL.TableDatamart");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTableTable"
+
+
+    // $ANTLR start "entryRuleTableBean"
+    // InternalTableDSL.g:892:1: entryRuleTableBean returns [EObject current=null] : iv_ruleTableBean= ruleTableBean EOF ;
+    public final EObject entryRuleTableBean() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTableBean = null;
+
+
+        try {
+            // InternalTableDSL.g:892:50: (iv_ruleTableBean= ruleTableBean EOF )
+            // InternalTableDSL.g:893:2: iv_ruleTableBean= ruleTableBean EOF
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:746:1: ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:747:2: ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* )
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getTableBeanRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleTableBean=ruleTableBean();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleTableBean; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTableBean"
+
+
+    // $ANTLR start "ruleTableBean"
+    // InternalTableDSL.g:899:1: ruleTableBean returns [EObject current=null] : ( () otherlv_1= 'bean' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? ) ;
+    public final EObject ruleTableBean() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_selectalways_3_0=null;
+        Token lv_selectById_4_0=null;
+        Token otherlv_5=null;
+        Token lv_polling_7_0=null;
+        Token lv_filtering_9_0=null;
+        Token lv_embedded_10_0=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Enumerator lv_headerMode_6_0 = null;
+
+        AntlrDatatypeRuleToken lv_pollingTime_8_0 = null;
+
+        EObject lv_source_14_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:905:2: ( ( () otherlv_1= 'bean' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? ) )
+            // InternalTableDSL.g:906:2: ( () otherlv_1= 'bean' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? )
             {
-            getUnorderedGroupHelper().enter(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:750:2: ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:751:3: ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )*
+            // InternalTableDSL.g:906:2: ( () otherlv_1= 'bean' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )? )
+            // InternalTableDSL.g:907:3: () otherlv_1= 'bean' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )?
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:751:3: ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )*
+            // InternalTableDSL.g:907:3: ()
+            // InternalTableDSL.g:908:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableBeanAccess().getTableBeanAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,32,FOLLOW_16); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getTableBeanAccess().getBeanKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:918:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:919:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) )
+            {
+            // InternalTableDSL.g:919:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:920:5: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* )
+            {
+            getUnorderedGroupHelper().enter(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+            // InternalTableDSL.g:923:5: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:924:6: ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )*
+            {
+            // InternalTableDSL.g:924:6: ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )*
             loop12:
             do {
-                int alt12=5;
+                int alt12=8;
                 int LA12_0 = input.LA(1);
 
-                if ( LA12_0 ==25 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 0) ) {
+                if ( LA12_0 == 24 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
                     alt12=1;
                 }
-                else if ( LA12_0 ==26 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 1) ) {
+                else if ( LA12_0 == 31 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
                     alt12=2;
                 }
-                else if ( LA12_0 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 2) ) {
+                else if ( LA12_0 == 25 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
                     alt12=3;
                 }
-                else if ( LA12_0 ==28 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 3) ) {
+                else if ( LA12_0 == 26 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
                     alt12=4;
                 }
+                else if ( LA12_0 == 27 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+                    alt12=5;
+                }
+                else if ( LA12_0 == 28 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+                    alt12=6;
+                }
+                else if ( LA12_0 == 29 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+                    alt12=7;
+                }
 
 
                 switch (alt12) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:753:4: ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) )
+            	    // InternalTableDSL.g:925:4: ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:753:4: ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:754:5: {...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) )
+            	    // InternalTableDSL.g:925:4: ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) ) )
+            	    // InternalTableDSL.g:926:5: {...}? => ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) )
             	    {
-            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 0) ) {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 0)");
+            	        throw new FailedPredicateException(input, "ruleTableBean", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:754:107: ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:755:6: ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) )
+            	    // InternalTableDSL.g:926:106: ( ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) ) )
+            	    // InternalTableDSL.g:927:6: ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) )
             	    {
-            	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 0);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:758:6: ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:758:7: {...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) )
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 0);
+            	    // InternalTableDSL.g:930:9: ({...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) ) )
+            	    // InternalTableDSL.g:930:10: {...}? => ( (lv_selectalways_3_0= 'alwaysSelected' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableTable", "true");
+            	        throw new FailedPredicateException(input, "ruleTableBean", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:758:16: ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:758:17: ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) )
+            	    // InternalTableDSL.g:930:19: ( (lv_selectalways_3_0= 'alwaysSelected' ) )
+            	    // InternalTableDSL.g:930:20: (lv_selectalways_3_0= 'alwaysSelected' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:758:17: ( (lv_polling_7_0= 'polling' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:759:1: (lv_polling_7_0= 'polling' )
+            	    // InternalTableDSL.g:930:20: (lv_selectalways_3_0= 'alwaysSelected' )
+            	    // InternalTableDSL.g:931:10: lv_selectalways_3_0= 'alwaysSelected'
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:759:1: (lv_polling_7_0= 'polling' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:760:3: lv_polling_7_0= 'polling'
-            	    {
-            	    lv_polling_7_0=(Token)match(input,25,FOLLOW_25_in_ruleTableTable1791); if (state.failed) return current;
+            	    lv_selectalways_3_0=(Token)match(input,24,FOLLOW_16); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_polling_7_0, grammarAccess.getTableTableAccess().getPollingPollingKeyword_3_0_0_0());
-            	          
+            	      										newLeafNode(lv_selectalways_3_0, grammarAccess.getTableBeanAccess().getSelectalwaysAlwaysSelectedKeyword_2_0_0());
+            	      									
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableTableRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "polling", true, "polling");
-            	      	    
-            	    }
-
-            	    }
-
-
-            	    }
-
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:773:2: ( (lv_pollingTime_8_0= ruleNumber ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:774:1: (lv_pollingTime_8_0= ruleNumber )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:774:1: (lv_pollingTime_8_0= ruleNumber )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:775:3: lv_pollingTime_8_0= ruleNumber
-            	    {
-            	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableTableAccess().getPollingTimeNumberParserRuleCall_3_0_1_0()); 
-            	      	    
-            	    }
-            	    pushFollow(FOLLOW_ruleNumber_in_ruleTableTable1825);
-            	    lv_pollingTime_8_0=ruleNumber();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableTableRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"pollingTime",
-            	              		lv_pollingTime_8_0, 
-            	              		"Number");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableBeanRule());
+            	      										}
+            	      										setWithLastConsumed(current, "selectalways", true, "alwaysSelected");
+            	      									
             	    }
 
             	    }
@@ -2233,10 +2746,7 @@
 
             	    }
 
-
-            	    }
-
-            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
 
             	    }
 
@@ -2247,45 +2757,45 @@
             	    }
             	    break;
             	case 2 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:798:4: ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) )
+            	    // InternalTableDSL.g:948:4: ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:798:4: ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:799:5: {...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) )
+            	    // InternalTableDSL.g:948:4: ({...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) ) )
+            	    // InternalTableDSL.g:949:5: {...}? => ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) )
             	    {
-            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 1) ) {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 1)");
+            	        throw new FailedPredicateException(input, "ruleTableBean", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:799:107: ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:800:6: ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) )
+            	    // InternalTableDSL.g:949:106: ( ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) ) )
+            	    // InternalTableDSL.g:950:6: ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) )
             	    {
-            	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 1);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:803:6: ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:803:7: {...}? => ( (lv_filtering_9_0= 'filtering' ) )
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 1);
+            	    // InternalTableDSL.g:953:9: ({...}? => ( (lv_selectById_4_0= 'selectById' ) ) )
+            	    // InternalTableDSL.g:953:10: {...}? => ( (lv_selectById_4_0= 'selectById' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableTable", "true");
+            	        throw new FailedPredicateException(input, "ruleTableBean", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:803:16: ( (lv_filtering_9_0= 'filtering' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:804:1: (lv_filtering_9_0= 'filtering' )
+            	    // InternalTableDSL.g:953:19: ( (lv_selectById_4_0= 'selectById' ) )
+            	    // InternalTableDSL.g:953:20: (lv_selectById_4_0= 'selectById' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:804:1: (lv_filtering_9_0= 'filtering' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:805:3: lv_filtering_9_0= 'filtering'
+            	    // InternalTableDSL.g:953:20: (lv_selectById_4_0= 'selectById' )
+            	    // InternalTableDSL.g:954:10: lv_selectById_4_0= 'selectById'
             	    {
-            	    lv_filtering_9_0=(Token)match(input,26,FOLLOW_26_in_ruleTableTable1898); if (state.failed) return current;
+            	    lv_selectById_4_0=(Token)match(input,31,FOLLOW_16); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_filtering_9_0, grammarAccess.getTableTableAccess().getFilteringFilteringKeyword_3_1_0());
-            	          
+            	      										newLeafNode(lv_selectById_4_0, grammarAccess.getTableBeanAccess().getSelectByIdSelectByIdKeyword_2_1_0());
+            	      									
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableTableRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "filtering", true, "filtering");
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableBeanRule());
+            	      										}
+            	      										setWithLastConsumed(current, "selectById", true, "selectById");
+            	      									
             	    }
 
             	    }
@@ -2296,7 +2806,7 @@
 
             	    }
 
-            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
 
             	    }
 
@@ -2307,45 +2817,63 @@
             	    }
             	    break;
             	case 3 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:825:4: ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) )
+            	    // InternalTableDSL.g:971:4: ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:825:4: ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:826:5: {...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) )
+            	    // InternalTableDSL.g:971:4: ({...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) ) )
+            	    // InternalTableDSL.g:972:5: {...}? => ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) )
             	    {
-            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 2) ) {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 2)");
+            	        throw new FailedPredicateException(input, "ruleTableBean", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:826:107: ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:827:6: ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) )
+            	    // InternalTableDSL.g:972:106: ( ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) ) )
+            	    // InternalTableDSL.g:973:6: ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) )
             	    {
-            	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 2);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:830:6: ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:830:7: {...}? => ( (lv_embedded_10_0= 'embedded' ) )
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 2);
+            	    // InternalTableDSL.g:976:9: ({...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) ) )
+            	    // InternalTableDSL.g:976:10: {...}? => (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableTable", "true");
+            	        throw new FailedPredicateException(input, "ruleTableBean", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:830:16: ( (lv_embedded_10_0= 'embedded' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:831:1: (lv_embedded_10_0= 'embedded' )
+            	    // InternalTableDSL.g:976:19: (otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) ) )
+            	    // InternalTableDSL.g:976:20: otherlv_5= 'rowHeader' ( (lv_headerMode_6_0= ruleRowHeaderMode ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:831:1: (lv_embedded_10_0= 'embedded' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:832:3: lv_embedded_10_0= 'embedded'
-            	    {
-            	    lv_embedded_10_0=(Token)match(input,27,FOLLOW_27_in_ruleTableTable1983); if (state.failed) return current;
+            	    otherlv_5=(Token)match(input,25,FOLLOW_13); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_embedded_10_0, grammarAccess.getTableTableAccess().getEmbeddedEmbeddedKeyword_3_2_0());
-            	          
+            	      									newLeafNode(otherlv_5, grammarAccess.getTableBeanAccess().getRowHeaderKeyword_2_2_0());
+            	      								
             	    }
+            	    // InternalTableDSL.g:980:9: ( (lv_headerMode_6_0= ruleRowHeaderMode ) )
+            	    // InternalTableDSL.g:981:10: (lv_headerMode_6_0= ruleRowHeaderMode )
+            	    {
+            	    // InternalTableDSL.g:981:10: (lv_headerMode_6_0= ruleRowHeaderMode )
+            	    // InternalTableDSL.g:982:11: lv_headerMode_6_0= ruleRowHeaderMode
+            	    {
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableTableRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "embedded", true, "embedded");
-            	      	    
+            	      											newCompositeNode(grammarAccess.getTableBeanAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0());
+            	      										
+            	    }
+            	    pushFollow(FOLLOW_16);
+            	    lv_headerMode_6_0=ruleRowHeaderMode();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      											if (current==null) {
+            	      												current = createModelElementForParent(grammarAccess.getTableBeanRule());
+            	      											}
+            	      											set(
+            	      												current,
+            	      												"headerMode",
+            	      												lv_headerMode_6_0,
+            	      												"org.eclipse.osbp.xtext.table.TableDSL.RowHeaderMode");
+            	      											afterParserOrEnumRuleCall();
+            	      										
             	    }
 
             	    }
@@ -2356,7 +2884,10 @@
 
             	    }
 
-            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
 
             	    }
 
@@ -2367,53 +2898,83 @@
             	    }
             	    break;
             	case 4 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:852:4: ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) )
+            	    // InternalTableDSL.g:1005:4: ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:852:4: ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:853:5: {...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) )
+            	    // InternalTableDSL.g:1005:4: ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) )
+            	    // InternalTableDSL.g:1006:5: {...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) )
             	    {
-            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 3) ) {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableTable", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 3)");
+            	        throw new FailedPredicateException(input, "ruleTableBean", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:853:107: ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:854:6: ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) )
+            	    // InternalTableDSL.g:1006:106: ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) )
+            	    // InternalTableDSL.g:1007:6: ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) )
             	    {
-            	    getUnorderedGroupHelper().select(grammarAccess.getTableTableAccess().getUnorderedGroup_3(), 3);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:857:6: ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:857:7: {...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) )
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 3);
+            	    // InternalTableDSL.g:1010:9: ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) )
+            	    // InternalTableDSL.g:1010:10: {...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
-            	        throw new FailedPredicateException(input, "ruleTableTable", "true");
+            	        throw new FailedPredicateException(input, "ruleTableBean", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:857:16: (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:857:18: otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) )
+            	    // InternalTableDSL.g:1010:19: ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) )
+            	    // InternalTableDSL.g:1010:20: ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) )
             	    {
-            	    otherlv_11=(Token)match(input,28,FOLLOW_28_in_ruleTableTable2063); if (state.failed) return current;
+            	    // InternalTableDSL.g:1010:20: ( (lv_polling_7_0= 'polling' ) )
+            	    // InternalTableDSL.g:1011:10: (lv_polling_7_0= 'polling' )
+            	    {
+            	    // InternalTableDSL.g:1011:10: (lv_polling_7_0= 'polling' )
+            	    // InternalTableDSL.g:1012:11: lv_polling_7_0= 'polling'
+            	    {
+            	    lv_polling_7_0=(Token)match(input,26,FOLLOW_14); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_11, grammarAccess.getTableTableAccess().getToolbarKeyword_3_3_0());
-            	          
+            	      											newLeafNode(lv_polling_7_0, grammarAccess.getTableBeanAccess().getPollingPollingKeyword_2_3_0_0());
+            	      										
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:861:1: ( (otherlv_12= RULE_ID ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:862:1: (otherlv_12= RULE_ID )
+            	    if ( state.backtracking==0 ) {
+
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableBeanRule());
+            	      											}
+            	      											setWithLastConsumed(current, "polling", true, "polling");
+            	      										
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:1024:9: ( (lv_pollingTime_8_0= ruleNumber ) )
+            	    // InternalTableDSL.g:1025:10: (lv_pollingTime_8_0= ruleNumber )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:862:1: (otherlv_12= RULE_ID )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:863:3: otherlv_12= RULE_ID
+            	    // InternalTableDSL.g:1025:10: (lv_pollingTime_8_0= ruleNumber )
+            	    // InternalTableDSL.g:1026:11: lv_pollingTime_8_0= ruleNumber
             	    {
             	    if ( state.backtracking==0 ) {
 
-            	      			if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableTableRule());
-            	      	        }
-            	              
+            	      											newCompositeNode(grammarAccess.getTableBeanAccess().getPollingTimeNumberParserRuleCall_2_3_1_0());
+            	      										
             	    }
-            	    otherlv_12=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableTable2083); if (state.failed) return current;
+            	    pushFollow(FOLLOW_16);
+            	    lv_pollingTime_8_0=ruleNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      		newLeafNode(otherlv_12, grammarAccess.getTableTableAccess().getToolbarActionToolbarCrossReference_3_3_1_0()); 
-            	      	
+            	      											if (current==null) {
+            	      												current = createModelElementForParent(grammarAccess.getTableBeanRule());
+            	      											}
+            	      											set(
+            	      												current,
+            	      												"pollingTime",
+            	      												lv_pollingTime_8_0,
+            	      												"org.eclipse.xtext.xbase.Xbase.Number");
+            	      											afterParserOrEnumRuleCall();
+            	      										
             	    }
 
             	    }
@@ -2427,7 +2988,198 @@
 
             	    }
 
-            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 5 :
+            	    // InternalTableDSL.g:1049:4: ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:1049:4: ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) )
+            	    // InternalTableDSL.g:1050:5: {...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableBean", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4)");
+            	    }
+            	    // InternalTableDSL.g:1050:106: ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) )
+            	    // InternalTableDSL.g:1051:6: ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 4);
+            	    // InternalTableDSL.g:1054:9: ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) )
+            	    // InternalTableDSL.g:1054:10: {...}? => ( (lv_filtering_9_0= 'filtering' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableBean", "true");
+            	    }
+            	    // InternalTableDSL.g:1054:19: ( (lv_filtering_9_0= 'filtering' ) )
+            	    // InternalTableDSL.g:1054:20: (lv_filtering_9_0= 'filtering' )
+            	    {
+            	    // InternalTableDSL.g:1054:20: (lv_filtering_9_0= 'filtering' )
+            	    // InternalTableDSL.g:1055:10: lv_filtering_9_0= 'filtering'
+            	    {
+            	    lv_filtering_9_0=(Token)match(input,27,FOLLOW_16); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      										newLeafNode(lv_filtering_9_0, grammarAccess.getTableBeanAccess().getFilteringFilteringKeyword_2_4_0());
+            	      									
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableBeanRule());
+            	      										}
+            	      										setWithLastConsumed(current, "filtering", true, "filtering");
+            	      									
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 6 :
+            	    // InternalTableDSL.g:1072:4: ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:1072:4: ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) )
+            	    // InternalTableDSL.g:1073:5: {...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableBean", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5)");
+            	    }
+            	    // InternalTableDSL.g:1073:106: ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) )
+            	    // InternalTableDSL.g:1074:6: ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 5);
+            	    // InternalTableDSL.g:1077:9: ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) )
+            	    // InternalTableDSL.g:1077:10: {...}? => ( (lv_embedded_10_0= 'embedded' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableBean", "true");
+            	    }
+            	    // InternalTableDSL.g:1077:19: ( (lv_embedded_10_0= 'embedded' ) )
+            	    // InternalTableDSL.g:1077:20: (lv_embedded_10_0= 'embedded' )
+            	    {
+            	    // InternalTableDSL.g:1077:20: (lv_embedded_10_0= 'embedded' )
+            	    // InternalTableDSL.g:1078:10: lv_embedded_10_0= 'embedded'
+            	    {
+            	    lv_embedded_10_0=(Token)match(input,28,FOLLOW_16); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      										newLeafNode(lv_embedded_10_0, grammarAccess.getTableBeanAccess().getEmbeddedEmbeddedKeyword_2_5_0());
+            	      									
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableBeanRule());
+            	      										}
+            	      										setWithLastConsumed(current, "embedded", true, "embedded");
+            	      									
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 7 :
+            	    // InternalTableDSL.g:1095:4: ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:1095:4: ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) )
+            	    // InternalTableDSL.g:1096:5: {...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableBean", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6)");
+            	    }
+            	    // InternalTableDSL.g:1096:106: ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) )
+            	    // InternalTableDSL.g:1097:6: ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getTableBeanAccess().getUnorderedGroup_2(), 6);
+            	    // InternalTableDSL.g:1100:9: ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) )
+            	    // InternalTableDSL.g:1100:10: {...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleTableBean", "true");
+            	    }
+            	    // InternalTableDSL.g:1100:19: (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) )
+            	    // InternalTableDSL.g:1100:20: otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) )
+            	    {
+            	    otherlv_11=(Token)match(input,29,FOLLOW_4); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      									newLeafNode(otherlv_11, grammarAccess.getTableBeanAccess().getToolbarKeyword_2_6_0());
+            	      								
+            	    }
+            	    // InternalTableDSL.g:1104:9: ( (otherlv_12= RULE_ID ) )
+            	    // InternalTableDSL.g:1105:10: (otherlv_12= RULE_ID )
+            	    {
+            	    // InternalTableDSL.g:1105:10: (otherlv_12= RULE_ID )
+            	    // InternalTableDSL.g:1106:11: otherlv_12= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableBeanRule());
+            	      											}
+            	      										
+            	    }
+            	    otherlv_12=(Token)match(input,RULE_ID,FOLLOW_16); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      											newLeafNode(otherlv_12, grammarAccess.getTableBeanAccess().getToolbarActionToolbarCrossReference_2_6_1_0());
+            	      										
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
 
             	    }
 
@@ -2449,55 +3201,55 @@
 
             }
 
-            getUnorderedGroupHelper().leave(grammarAccess.getTableTableAccess().getUnorderedGroup_3());
+            getUnorderedGroupHelper().leave(grammarAccess.getTableBeanAccess().getUnorderedGroup_2());
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:888:2: (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )?
+            // InternalTableDSL.g:1130:3: (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) ) )?
             int alt13=2;
             int LA13_0 = input.LA(1);
 
-            if ( (LA13_0==29) ) {
+            if ( (LA13_0==30) ) {
                 alt13=1;
             }
             switch (alt13) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:888:4: otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) )
+                    // InternalTableDSL.g:1131:4: otherlv_13= 'using' ( (lv_source_14_0= ruleTableDatamart ) )
                     {
-                    otherlv_13=(Token)match(input,29,FOLLOW_29_in_ruleTableTable2137); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,30,FOLLOW_15); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_13, grammarAccess.getTableTableAccess().getUsingKeyword_4_0());
-                          
+                      				newLeafNode(otherlv_13, grammarAccess.getTableBeanAccess().getUsingKeyword_3_0());
+                      			
                     }
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:892:1: ( (lv_source_14_0= ruleTableDatamart ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:893:1: (lv_source_14_0= ruleTableDatamart )
+                    // InternalTableDSL.g:1135:4: ( (lv_source_14_0= ruleTableDatamart ) )
+                    // InternalTableDSL.g:1136:5: (lv_source_14_0= ruleTableDatamart )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:893:1: (lv_source_14_0= ruleTableDatamart )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:894:3: lv_source_14_0= ruleTableDatamart
+                    // InternalTableDSL.g:1136:5: (lv_source_14_0= ruleTableDatamart )
+                    // InternalTableDSL.g:1137:6: lv_source_14_0= ruleTableDatamart
                     {
                     if ( state.backtracking==0 ) {
-                       
-                      	        newCompositeNode(grammarAccess.getTableTableAccess().getSourceTableDatamartParserRuleCall_4_1_0()); 
-                      	    
+
+                      						newCompositeNode(grammarAccess.getTableBeanAccess().getSourceTableDatamartParserRuleCall_3_1_0());
+                      					
                     }
-                    pushFollow(FOLLOW_ruleTableDatamart_in_ruleTableTable2158);
+                    pushFollow(FOLLOW_2);
                     lv_source_14_0=ruleTableDatamart();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      	        if (current==null) {
-                      	            current = createModelElementForParent(grammarAccess.getTableTableRule());
-                      	        }
-                             		set(
-                             			current, 
-                             			"source",
-                              		lv_source_14_0, 
-                              		"TableDatamart");
-                      	        afterParserOrEnumRuleCall();
-                      	    
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getTableBeanRule());
+                      						}
+                      						set(
+                      							current,
+                      							"source",
+                      							lv_source_14_0,
+                      							"org.eclipse.osbp.xtext.table.TableDSL.TableDatamart");
+                      						afterParserOrEnumRuleCall();
+                      					
                     }
 
                     }
@@ -2518,23 +3270,25 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
     }
-    // $ANTLR end "ruleTableTable"
+    // $ANTLR end "ruleTableBean"
 
 
     // $ANTLR start "entryRuleTablePreorder"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:918:1: entryRuleTablePreorder returns [EObject current=null] : iv_ruleTablePreorder= ruleTablePreorder EOF ;
+    // InternalTableDSL.g:1159:1: entryRuleTablePreorder returns [EObject current=null] : iv_ruleTablePreorder= ruleTablePreorder EOF ;
     public final EObject entryRuleTablePreorder() throws RecognitionException {
         EObject current = null;
 
@@ -2542,13 +3296,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:919:2: (iv_ruleTablePreorder= ruleTablePreorder EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:920:2: iv_ruleTablePreorder= ruleTablePreorder EOF
+            // InternalTableDSL.g:1159:54: (iv_ruleTablePreorder= ruleTablePreorder EOF )
+            // InternalTableDSL.g:1160:2: iv_ruleTablePreorder= ruleTablePreorder EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTablePreorderRule()); 
             }
-            pushFollow(FOLLOW_ruleTablePreorder_in_entryRuleTablePreorder2196);
+            pushFollow(FOLLOW_1);
             iv_ruleTablePreorder=ruleTablePreorder();
 
             state._fsp--;
@@ -2556,16 +3310,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTablePreorder; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTablePreorder2206); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -2574,7 +3328,7 @@
 
 
     // $ANTLR start "ruleTablePreorder"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:927:1: ruleTablePreorder returns [EObject current=null] : ( () otherlv_1= 'preorder' ( (lv_column_2_0= ruleTableValueElement ) ) ( (lv_ascending_3_0= 'ascending' ) )? ) ;
+    // InternalTableDSL.g:1166:1: ruleTablePreorder returns [EObject current=null] : ( () otherlv_1= 'preorder' ( (lv_column_2_0= ruleTableValueElement ) ) ( (lv_ascending_3_0= 'ascending' ) )? ) ;
     public final EObject ruleTablePreorder() throws RecognitionException {
         EObject current = null;
 
@@ -2583,62 +3337,63 @@
         EObject lv_column_2_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:930:28: ( ( () otherlv_1= 'preorder' ( (lv_column_2_0= ruleTableValueElement ) ) ( (lv_ascending_3_0= 'ascending' ) )? ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:931:1: ( () otherlv_1= 'preorder' ( (lv_column_2_0= ruleTableValueElement ) ) ( (lv_ascending_3_0= 'ascending' ) )? )
+            // InternalTableDSL.g:1172:2: ( ( () otherlv_1= 'preorder' ( (lv_column_2_0= ruleTableValueElement ) ) ( (lv_ascending_3_0= 'ascending' ) )? ) )
+            // InternalTableDSL.g:1173:2: ( () otherlv_1= 'preorder' ( (lv_column_2_0= ruleTableValueElement ) ) ( (lv_ascending_3_0= 'ascending' ) )? )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:931:1: ( () otherlv_1= 'preorder' ( (lv_column_2_0= ruleTableValueElement ) ) ( (lv_ascending_3_0= 'ascending' ) )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:931:2: () otherlv_1= 'preorder' ( (lv_column_2_0= ruleTableValueElement ) ) ( (lv_ascending_3_0= 'ascending' ) )?
+            // InternalTableDSL.g:1173:2: ( () otherlv_1= 'preorder' ( (lv_column_2_0= ruleTableValueElement ) ) ( (lv_ascending_3_0= 'ascending' ) )? )
+            // InternalTableDSL.g:1174:3: () otherlv_1= 'preorder' ( (lv_column_2_0= ruleTableValueElement ) ) ( (lv_ascending_3_0= 'ascending' ) )?
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:931:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:932:5: 
+            // InternalTableDSL.g:1174:3: ()
+            // InternalTableDSL.g:1175:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTablePreorderAccess().getTablePreorderAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTablePreorderAccess().getTablePreorderAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,30,FOLLOW_30_in_ruleTablePreorder2252); if (state.failed) return current;
+            otherlv_1=(Token)match(input,33,FOLLOW_17); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTablePreorderAccess().getPreorderKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTablePreorderAccess().getPreorderKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:941:1: ( (lv_column_2_0= ruleTableValueElement ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:942:1: (lv_column_2_0= ruleTableValueElement )
+            // InternalTableDSL.g:1185:3: ( (lv_column_2_0= ruleTableValueElement ) )
+            // InternalTableDSL.g:1186:4: (lv_column_2_0= ruleTableValueElement )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:942:1: (lv_column_2_0= ruleTableValueElement )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:943:3: lv_column_2_0= ruleTableValueElement
+            // InternalTableDSL.g:1186:4: (lv_column_2_0= ruleTableValueElement )
+            // InternalTableDSL.g:1187:5: lv_column_2_0= ruleTableValueElement
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTablePreorderAccess().getColumnTableValueElementParserRuleCall_2_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTablePreorderAccess().getColumnTableValueElementParserRuleCall_2_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTableValueElement_in_ruleTablePreorder2273);
+            pushFollow(FOLLOW_18);
             lv_column_2_0=ruleTableValueElement();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTablePreorderRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"column",
-                      		lv_column_2_0, 
-                      		"TableValueElement");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTablePreorderRule());
+              					}
+              					set(
+              						current,
+              						"column",
+              						lv_column_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TableValueElement");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -2646,33 +3401,33 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:959:2: ( (lv_ascending_3_0= 'ascending' ) )?
+            // InternalTableDSL.g:1204:3: ( (lv_ascending_3_0= 'ascending' ) )?
             int alt14=2;
             int LA14_0 = input.LA(1);
 
-            if ( (LA14_0==31) ) {
+            if ( (LA14_0==34) ) {
                 alt14=1;
             }
             switch (alt14) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:960:1: (lv_ascending_3_0= 'ascending' )
+                    // InternalTableDSL.g:1205:4: (lv_ascending_3_0= 'ascending' )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:960:1: (lv_ascending_3_0= 'ascending' )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:961:3: lv_ascending_3_0= 'ascending'
+                    // InternalTableDSL.g:1205:4: (lv_ascending_3_0= 'ascending' )
+                    // InternalTableDSL.g:1206:5: lv_ascending_3_0= 'ascending'
                     {
-                    lv_ascending_3_0=(Token)match(input,31,FOLLOW_31_in_ruleTablePreorder2291); if (state.failed) return current;
+                    lv_ascending_3_0=(Token)match(input,34,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                              newLeafNode(lv_ascending_3_0, grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0());
-                          
+                      					newLeafNode(lv_ascending_3_0, grammarAccess.getTablePreorderAccess().getAscendingAscendingKeyword_3_0());
+                      				
                     }
                     if ( state.backtracking==0 ) {
 
-                      	        if (current==null) {
-                      	            current = createModelElement(grammarAccess.getTablePreorderRule());
-                      	        }
-                             		setWithLastConsumed(current, "ascending", true, "ascending");
-                      	    
+                      					if (current==null) {
+                      						current = createModelElement(grammarAccess.getTablePreorderRule());
+                      					}
+                      					setWithLastConsumed(current, "ascending", true, "ascending");
+                      				
                     }
 
                     }
@@ -2690,14 +3445,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -2706,7 +3463,7 @@
 
 
     // $ANTLR start "entryRuleTableValue"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:982:1: entryRuleTableValue returns [EObject current=null] : iv_ruleTableValue= ruleTableValue EOF ;
+    // InternalTableDSL.g:1222:1: entryRuleTableValue returns [EObject current=null] : iv_ruleTableValue= ruleTableValue EOF ;
     public final EObject entryRuleTableValue() throws RecognitionException {
         EObject current = null;
 
@@ -2714,13 +3471,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:983:2: (iv_ruleTableValue= ruleTableValue EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:984:2: iv_ruleTableValue= ruleTableValue EOF
+            // InternalTableDSL.g:1222:51: (iv_ruleTableValue= ruleTableValue EOF )
+            // InternalTableDSL.g:1223:2: iv_ruleTableValue= ruleTableValue EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableValueRule()); 
             }
-            pushFollow(FOLLOW_ruleTableValue_in_entryRuleTableValue2341);
+            pushFollow(FOLLOW_1);
             iv_ruleTableValue=ruleTableValue();
 
             state._fsp--;
@@ -2728,16 +3485,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableValue; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableValue2351); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -2746,7 +3503,7 @@
 
 
     // $ANTLR start "ruleTableValue"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:991:1: ruleTableValue returns [EObject current=null] : ( () otherlv_1= 'value' ( (lv_column_2_0= ruleTableValueElement ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) ) ) ;
+    // InternalTableDSL.g:1229:1: ruleTableValue returns [EObject current=null] : ( () otherlv_1= 'value' ( (lv_column_2_0= ruleTableValueElement ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) ) ) ;
     public final EObject ruleTableValue() throws RecognitionException {
         EObject current = null;
 
@@ -2776,62 +3533,63 @@
         EObject lv_lookups_20_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:994:28: ( ( () otherlv_1= 'value' ( (lv_column_2_0= ruleTableValueElement ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:995:1: ( () otherlv_1= 'value' ( (lv_column_2_0= ruleTableValueElement ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) ) )
+            // InternalTableDSL.g:1235:2: ( ( () otherlv_1= 'value' ( (lv_column_2_0= ruleTableValueElement ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) ) ) )
+            // InternalTableDSL.g:1236:2: ( () otherlv_1= 'value' ( (lv_column_2_0= ruleTableValueElement ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:995:1: ( () otherlv_1= 'value' ( (lv_column_2_0= ruleTableValueElement ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:995:2: () otherlv_1= 'value' ( (lv_column_2_0= ruleTableValueElement ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:1236:2: ( () otherlv_1= 'value' ( (lv_column_2_0= ruleTableValueElement ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) ) )
+            // InternalTableDSL.g:1237:3: () otherlv_1= 'value' ( (lv_column_2_0= ruleTableValueElement ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:995:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:996:5: 
+            // InternalTableDSL.g:1237:3: ()
+            // InternalTableDSL.g:1238:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableValueAccess().getTableValueAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableValueAccess().getTableValueAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,32,FOLLOW_32_in_ruleTableValue2397); if (state.failed) return current;
+            otherlv_1=(Token)match(input,35,FOLLOW_17); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableValueAccess().getValueKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableValueAccess().getValueKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1005:1: ( (lv_column_2_0= ruleTableValueElement ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1006:1: (lv_column_2_0= ruleTableValueElement )
+            // InternalTableDSL.g:1248:3: ( (lv_column_2_0= ruleTableValueElement ) )
+            // InternalTableDSL.g:1249:4: (lv_column_2_0= ruleTableValueElement )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1006:1: (lv_column_2_0= ruleTableValueElement )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1007:3: lv_column_2_0= ruleTableValueElement
+            // InternalTableDSL.g:1249:4: (lv_column_2_0= ruleTableValueElement )
+            // InternalTableDSL.g:1250:5: lv_column_2_0= ruleTableValueElement
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableValueAccess().getColumnTableValueElementParserRuleCall_2_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableValueAccess().getColumnTableValueElementParserRuleCall_2_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTableValueElement_in_ruleTableValue2418);
+            pushFollow(FOLLOW_19);
             lv_column_2_0=ruleTableValueElement();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableValueRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"column",
-                      		lv_column_2_0, 
-                      		"TableValueElement");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableValueRule());
+              					}
+              					set(
+              						current,
+              						"column",
+              						lv_column_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TableValueElement");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -2839,80 +3597,80 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1023:2: ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1025:1: ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:1267:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:1268:4: ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1025:1: ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1026:2: ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* )
+            // InternalTableDSL.g:1268:4: ( ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:1269:5: ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getTableValueAccess().getUnorderedGroup_3());
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1029:2: ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1030:3: ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )*
+            // InternalTableDSL.g:1272:5: ( ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )* )
+            // InternalTableDSL.g:1273:6: ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )*
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1030:3: ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )*
+            // InternalTableDSL.g:1273:6: ( ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) ) )*
             loop15:
             do {
                 int alt15=6;
                 int LA15_0 = input.LA(1);
 
-                if ( LA15_0 ==33 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
+                if ( LA15_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
                     alt15=1;
                 }
-                else if ( LA15_0 ==34 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
+                else if ( LA15_0 == 37 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
                     alt15=2;
                 }
-                else if ( LA15_0 ==39 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
+                else if ( LA15_0 == 42 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
                     alt15=3;
                 }
-                else if ( LA15_0 ==35 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
+                else if ( LA15_0 == 38 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
                     alt15=4;
                 }
-                else if ( LA15_0 ==43 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4) ) {
+                else if ( LA15_0 == 46 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4) ) {
                     alt15=5;
                 }
 
 
                 switch (alt15) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1032:4: ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) )
+            	    // InternalTableDSL.g:1274:4: ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1032:4: ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1033:5: {...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) )
+            	    // InternalTableDSL.g:1274:4: ({...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) ) )
+            	    // InternalTableDSL.g:1275:5: {...}? => ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1033:107: ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1034:6: ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) )
+            	    // InternalTableDSL.g:1275:107: ( ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) ) )
+            	    // InternalTableDSL.g:1276:6: ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 0);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1037:6: ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1037:7: {...}? => ( (lv_collapsed_4_0= 'collapse' ) )
+            	    // InternalTableDSL.g:1279:9: ({...}? => ( (lv_collapsed_4_0= 'collapse' ) ) )
+            	    // InternalTableDSL.g:1279:10: {...}? => ( (lv_collapsed_4_0= 'collapse' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1037:16: ( (lv_collapsed_4_0= 'collapse' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1038:1: (lv_collapsed_4_0= 'collapse' )
+            	    // InternalTableDSL.g:1279:19: ( (lv_collapsed_4_0= 'collapse' ) )
+            	    // InternalTableDSL.g:1279:20: (lv_collapsed_4_0= 'collapse' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1038:1: (lv_collapsed_4_0= 'collapse' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1039:3: lv_collapsed_4_0= 'collapse'
+            	    // InternalTableDSL.g:1279:20: (lv_collapsed_4_0= 'collapse' )
+            	    // InternalTableDSL.g:1280:10: lv_collapsed_4_0= 'collapse'
             	    {
-            	    lv_collapsed_4_0=(Token)match(input,33,FOLLOW_33_in_ruleTableValue2481); if (state.failed) return current;
+            	    lv_collapsed_4_0=(Token)match(input,36,FOLLOW_19); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_collapsed_4_0, grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0());
-            	          
+            	      										newLeafNode(lv_collapsed_4_0, grammarAccess.getTableValueAccess().getCollapsedCollapseKeyword_3_0_0());
+            	      									
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableValueRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "collapsed", true, "collapse");
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableValueRule());
+            	      										}
+            	      										setWithLastConsumed(current, "collapsed", true, "collapse");
+            	      									
             	    }
 
             	    }
@@ -2934,58 +3692,58 @@
             	    }
             	    break;
             	case 2 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1059:4: ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) )
+            	    // InternalTableDSL.g:1297:4: ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1059:4: ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1060:5: {...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) )
+            	    // InternalTableDSL.g:1297:4: ({...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) ) )
+            	    // InternalTableDSL.g:1298:5: {...}? => ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1060:107: ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1061:6: ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) )
+            	    // InternalTableDSL.g:1298:107: ( ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) ) )
+            	    // InternalTableDSL.g:1299:6: ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 1);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1064:6: ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1064:7: {...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) )
+            	    // InternalTableDSL.g:1302:9: ({...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) ) )
+            	    // InternalTableDSL.g:1302:10: {...}? => (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1064:16: (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1064:18: otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) )
+            	    // InternalTableDSL.g:1302:19: (otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) ) )
+            	    // InternalTableDSL.g:1302:20: otherlv_5= 'icon' ( (lv_iconName_6_0= RULE_STRING ) )
             	    {
-            	    otherlv_5=(Token)match(input,34,FOLLOW_34_in_ruleTableValue2561); if (state.failed) return current;
+            	    otherlv_5=(Token)match(input,37,FOLLOW_8); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_5, grammarAccess.getTableValueAccess().getIconKeyword_3_1_0());
-            	          
+            	      									newLeafNode(otherlv_5, grammarAccess.getTableValueAccess().getIconKeyword_3_1_0());
+            	      								
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1068:1: ( (lv_iconName_6_0= RULE_STRING ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1069:1: (lv_iconName_6_0= RULE_STRING )
+            	    // InternalTableDSL.g:1306:9: ( (lv_iconName_6_0= RULE_STRING ) )
+            	    // InternalTableDSL.g:1307:10: (lv_iconName_6_0= RULE_STRING )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1069:1: (lv_iconName_6_0= RULE_STRING )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1070:3: lv_iconName_6_0= RULE_STRING
+            	    // InternalTableDSL.g:1307:10: (lv_iconName_6_0= RULE_STRING )
+            	    // InternalTableDSL.g:1308:11: lv_iconName_6_0= RULE_STRING
             	    {
-            	    lv_iconName_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTableValue2578); if (state.failed) return current;
+            	    lv_iconName_6_0=(Token)match(input,RULE_STRING,FOLLOW_19); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      			newLeafNode(lv_iconName_6_0, grammarAccess.getTableValueAccess().getIconNameSTRINGTerminalRuleCall_3_1_1_0()); 
-            	      		
+            	      											newLeafNode(lv_iconName_6_0, grammarAccess.getTableValueAccess().getIconNameSTRINGTerminalRuleCall_3_1_1_0());
+            	      										
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableValueRule());
-            	      	        }
-            	             		setWithLastConsumed(
-            	             			current, 
-            	             			"iconName",
-            	              		lv_iconName_6_0, 
-            	              		"STRING");
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableValueRule());
+            	      											}
+            	      											setWithLastConsumed(
+            	      												current,
+            	      												"iconName",
+            	      												lv_iconName_6_0,
+            	      												"org.eclipse.xtext.xbase.Xtype.STRING");
+            	      										
             	    }
 
             	    }
@@ -3010,54 +3768,54 @@
             	    }
             	    break;
             	case 3 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1093:4: ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) )
+            	    // InternalTableDSL.g:1330:4: ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1093:4: ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1094:5: {...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) )
+            	    // InternalTableDSL.g:1330:4: ({...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) ) )
+            	    // InternalTableDSL.g:1331:5: {...}? => ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1094:107: ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1095:6: ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) )
+            	    // InternalTableDSL.g:1331:107: ( ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) ) )
+            	    // InternalTableDSL.g:1332:6: ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 2);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1098:6: ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1098:7: {...}? => ( (lv_formatter_7_0= ruleTableFormatter ) )
+            	    // InternalTableDSL.g:1335:9: ({...}? => ( (lv_formatter_7_0= ruleTableFormatter ) ) )
+            	    // InternalTableDSL.g:1335:10: {...}? => ( (lv_formatter_7_0= ruleTableFormatter ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1098:16: ( (lv_formatter_7_0= ruleTableFormatter ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1099:1: (lv_formatter_7_0= ruleTableFormatter )
+            	    // InternalTableDSL.g:1335:19: ( (lv_formatter_7_0= ruleTableFormatter ) )
+            	    // InternalTableDSL.g:1335:20: (lv_formatter_7_0= ruleTableFormatter )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1099:1: (lv_formatter_7_0= ruleTableFormatter )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1100:3: lv_formatter_7_0= ruleTableFormatter
+            	    // InternalTableDSL.g:1335:20: (lv_formatter_7_0= ruleTableFormatter )
+            	    // InternalTableDSL.g:1336:10: lv_formatter_7_0= ruleTableFormatter
             	    {
             	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableValueAccess().getFormatterTableFormatterParserRuleCall_3_2_0()); 
-            	      	    
+
+            	      										newCompositeNode(grammarAccess.getTableValueAccess().getFormatterTableFormatterParserRuleCall_3_2_0());
+            	      									
             	    }
-            	    pushFollow(FOLLOW_ruleTableFormatter_in_ruleTableValue2659);
+            	    pushFollow(FOLLOW_19);
             	    lv_formatter_7_0=ruleTableFormatter();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableValueRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"formatter",
-            	              		lv_formatter_7_0, 
-            	              		"TableFormatter");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElementForParent(grammarAccess.getTableValueRule());
+            	      										}
+            	      										set(
+            	      											current,
+            	      											"formatter",
+            	      											lv_formatter_7_0,
+            	      											"org.eclipse.osbp.xtext.table.TableDSL.TableFormatter");
+            	      										afterParserOrEnumRuleCall();
+            	      									
             	    }
 
             	    }
@@ -3079,48 +3837,48 @@
             	    }
             	    break;
             	case 4 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1123:4: ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) )
+            	    // InternalTableDSL.g:1358:4: ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1123:4: ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1124:5: {...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) )
+            	    // InternalTableDSL.g:1358:4: ({...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) ) )
+            	    // InternalTableDSL.g:1359:5: {...}? => ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1124:107: ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1125:6: ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) )
+            	    // InternalTableDSL.g:1359:107: ( ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) ) )
+            	    // InternalTableDSL.g:1360:6: ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 3);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1128:6: ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1128:7: {...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) )
+            	    // InternalTableDSL.g:1363:9: ({...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) ) )
+            	    // InternalTableDSL.g:1363:10: {...}? => ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1128:16: ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1128:17: ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) )
+            	    // InternalTableDSL.g:1363:19: ( ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) ) )
+            	    // InternalTableDSL.g:1363:20: ( (lv_hasImage_8_0= 'image' ) ) ( (lv_image_9_0= ruleTableImage ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1128:17: ( (lv_hasImage_8_0= 'image' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1129:1: (lv_hasImage_8_0= 'image' )
+            	    // InternalTableDSL.g:1363:20: ( (lv_hasImage_8_0= 'image' ) )
+            	    // InternalTableDSL.g:1364:10: (lv_hasImage_8_0= 'image' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1129:1: (lv_hasImage_8_0= 'image' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1130:3: lv_hasImage_8_0= 'image'
+            	    // InternalTableDSL.g:1364:10: (lv_hasImage_8_0= 'image' )
+            	    // InternalTableDSL.g:1365:11: lv_hasImage_8_0= 'image'
             	    {
-            	    lv_hasImage_8_0=(Token)match(input,35,FOLLOW_35_in_ruleTableValue2732); if (state.failed) return current;
+            	    lv_hasImage_8_0=(Token)match(input,38,FOLLOW_20); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_hasImage_8_0, grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0());
-            	          
+            	      											newLeafNode(lv_hasImage_8_0, grammarAccess.getTableValueAccess().getHasImageImageKeyword_3_3_0_0());
+            	      										
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableValueRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "hasImage", true, "image");
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableValueRule());
+            	      											}
+            	      											setWithLastConsumed(current, "hasImage", true, "image");
+            	      										
             	    }
 
             	    }
@@ -3128,34 +3886,34 @@
 
             	    }
 
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1143:2: ( (lv_image_9_0= ruleTableImage ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1144:1: (lv_image_9_0= ruleTableImage )
+            	    // InternalTableDSL.g:1377:9: ( (lv_image_9_0= ruleTableImage ) )
+            	    // InternalTableDSL.g:1378:10: (lv_image_9_0= ruleTableImage )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1144:1: (lv_image_9_0= ruleTableImage )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1145:3: lv_image_9_0= ruleTableImage
+            	    // InternalTableDSL.g:1378:10: (lv_image_9_0= ruleTableImage )
+            	    // InternalTableDSL.g:1379:11: lv_image_9_0= ruleTableImage
             	    {
             	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableValueAccess().getImageTableImageParserRuleCall_3_3_1_0()); 
-            	      	    
+
+            	      											newCompositeNode(grammarAccess.getTableValueAccess().getImageTableImageParserRuleCall_3_3_1_0());
+            	      										
             	    }
-            	    pushFollow(FOLLOW_ruleTableImage_in_ruleTableValue2766);
+            	    pushFollow(FOLLOW_19);
             	    lv_image_9_0=ruleTableImage();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableValueRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"image",
-            	              		lv_image_9_0, 
-            	              		"TableImage");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElementForParent(grammarAccess.getTableValueRule());
+            	      											}
+            	      											set(
+            	      												current,
+            	      												"image",
+            	      												lv_image_9_0,
+            	      												"org.eclipse.osbp.xtext.table.TableDSL.TableImage");
+            	      											afterParserOrEnumRuleCall();
+            	      										
             	    }
 
             	    }
@@ -3180,54 +3938,54 @@
             	    }
             	    break;
             	case 5 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1168:4: ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) )
+            	    // InternalTableDSL.g:1402:4: ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1168:4: ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1169:5: {...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) )
+            	    // InternalTableDSL.g:1402:4: ({...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) ) )
+            	    // InternalTableDSL.g:1403:5: {...}? => ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1169:107: ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1170:6: ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) )
+            	    // InternalTableDSL.g:1403:107: ( ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) ) )
+            	    // InternalTableDSL.g:1404:6: ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_3(), 4);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1173:6: ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1173:7: {...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) )
+            	    // InternalTableDSL.g:1407:9: ({...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) ) )
+            	    // InternalTableDSL.g:1407:10: {...}? => ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1173:16: ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1174:1: (lv_tooltipPattern_10_0= ruleTableTooltipPattern )
+            	    // InternalTableDSL.g:1407:19: ( (lv_tooltipPattern_10_0= ruleTableTooltipPattern ) )
+            	    // InternalTableDSL.g:1407:20: (lv_tooltipPattern_10_0= ruleTableTooltipPattern )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1174:1: (lv_tooltipPattern_10_0= ruleTableTooltipPattern )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1175:3: lv_tooltipPattern_10_0= ruleTableTooltipPattern
+            	    // InternalTableDSL.g:1407:20: (lv_tooltipPattern_10_0= ruleTableTooltipPattern )
+            	    // InternalTableDSL.g:1408:10: lv_tooltipPattern_10_0= ruleTableTooltipPattern
             	    {
             	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableValueAccess().getTooltipPatternTableTooltipPatternParserRuleCall_3_4_0()); 
-            	      	    
+
+            	      										newCompositeNode(grammarAccess.getTableValueAccess().getTooltipPatternTableTooltipPatternParserRuleCall_3_4_0());
+            	      									
             	    }
-            	    pushFollow(FOLLOW_ruleTableTooltipPattern_in_ruleTableValue2842);
+            	    pushFollow(FOLLOW_19);
             	    lv_tooltipPattern_10_0=ruleTableTooltipPattern();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableValueRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"tooltipPattern",
-            	              		lv_tooltipPattern_10_0, 
-            	              		"TableTooltipPattern");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElementForParent(grammarAccess.getTableValueRule());
+            	      										}
+            	      										set(
+            	      											current,
+            	      											"tooltipPattern",
+            	      											lv_tooltipPattern_10_0,
+            	      											"org.eclipse.osbp.xtext.table.TableDSL.TableTooltipPattern");
+            	      										afterParserOrEnumRuleCall();
+            	      									
             	    }
 
             	    }
@@ -3264,88 +4022,88 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1205:2: ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1207:1: ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) )
+            // InternalTableDSL.g:1437:3: ( ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:1438:4: ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1207:1: ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1208:2: ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* )
+            // InternalTableDSL.g:1438:4: ( ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* ) )
+            // InternalTableDSL.g:1439:5: ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getTableValueAccess().getUnorderedGroup_4());
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1211:2: ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1212:3: ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )*
+            // InternalTableDSL.g:1442:5: ( ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )* )
+            // InternalTableDSL.g:1443:6: ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )*
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1212:3: ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )*
+            // InternalTableDSL.g:1443:6: ( ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) ) )*
             loop20:
             do {
                 int alt20=3;
                 int LA20_0 = input.LA(1);
 
-                if ( LA20_0 ==36 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0) ) {
+                if ( LA20_0 == 39 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0) ) {
                     alt20=1;
                 }
-                else if ( LA20_0 ==38 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1) ) {
+                else if ( LA20_0 == 41 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1) ) {
                     alt20=2;
                 }
 
 
                 switch (alt20) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1214:4: ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) )
+            	    // InternalTableDSL.g:1444:4: ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1214:4: ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1215:5: {...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) )
+            	    // InternalTableDSL.g:1444:4: ({...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) ) )
+            	    // InternalTableDSL.g:1445:5: {...}? => ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1215:107: ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1216:6: ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) )
+            	    // InternalTableDSL.g:1445:107: ( ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) ) )
+            	    // InternalTableDSL.g:1446:6: ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 0);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1219:6: ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1219:7: {...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' )
+            	    // InternalTableDSL.g:1449:9: ({...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' ) )
+            	    // InternalTableDSL.g:1449:10: {...}? => (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1219:16: (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1219:18: otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}'
+            	    // InternalTableDSL.g:1449:19: (otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}' )
+            	    // InternalTableDSL.g:1449:20: otherlv_12= 'intervals' ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )? otherlv_14= '{' ( (lv_intervals_15_0= ruleTableInterval ) )* otherlv_16= '}'
             	    {
-            	    otherlv_12=(Token)match(input,36,FOLLOW_36_in_ruleTableValue2940); if (state.failed) return current;
+            	    otherlv_12=(Token)match(input,39,FOLLOW_21); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_12, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0());
-            	          
+            	      									newLeafNode(otherlv_12, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0());
+            	      								
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1223:1: ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )?
+            	    // InternalTableDSL.g:1453:9: ( (lv_hideLabelInterval_13_0= 'hidelabel' ) )?
             	    int alt16=2;
             	    int LA16_0 = input.LA(1);
 
-            	    if ( (LA16_0==37) ) {
+            	    if ( (LA16_0==40) ) {
             	        alt16=1;
             	    }
             	    switch (alt16) {
             	        case 1 :
-            	            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1224:1: (lv_hideLabelInterval_13_0= 'hidelabel' )
+            	            // InternalTableDSL.g:1454:10: (lv_hideLabelInterval_13_0= 'hidelabel' )
             	            {
-            	            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1224:1: (lv_hideLabelInterval_13_0= 'hidelabel' )
-            	            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1225:3: lv_hideLabelInterval_13_0= 'hidelabel'
+            	            // InternalTableDSL.g:1454:10: (lv_hideLabelInterval_13_0= 'hidelabel' )
+            	            // InternalTableDSL.g:1455:11: lv_hideLabelInterval_13_0= 'hidelabel'
             	            {
-            	            lv_hideLabelInterval_13_0=(Token)match(input,37,FOLLOW_37_in_ruleTableValue2958); if (state.failed) return current;
+            	            lv_hideLabelInterval_13_0=(Token)match(input,40,FOLLOW_22); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
-            	                      newLeafNode(lv_hideLabelInterval_13_0, grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0());
-            	                  
+            	              											newLeafNode(lv_hideLabelInterval_13_0, grammarAccess.getTableValueAccess().getHideLabelIntervalHidelabelKeyword_4_0_1_0());
+            	              										
             	            }
             	            if ( state.backtracking==0 ) {
 
-            	              	        if (current==null) {
-            	              	            current = createModelElement(grammarAccess.getTableValueRule());
-            	              	        }
-            	                     		setWithLastConsumed(current, "hideLabelInterval", true, "hidelabel");
-            	              	    
+            	              											if (current==null) {
+            	              												current = createModelElement(grammarAccess.getTableValueRule());
+            	              											}
+            	              											setWithLastConsumed(current, "hideLabelInterval", true, "hidelabel");
+            	              										
             	            }
 
             	            }
@@ -3356,52 +4114,52 @@
 
             	    }
 
-            	    otherlv_14=(Token)match(input,16,FOLLOW_16_in_ruleTableValue2984); if (state.failed) return current;
+            	    otherlv_14=(Token)match(input,16,FOLLOW_23); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_14, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2());
-            	          
+            	      									newLeafNode(otherlv_14, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2());
+            	      								
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1242:1: ( (lv_intervals_15_0= ruleTableInterval ) )*
+            	    // InternalTableDSL.g:1471:9: ( (lv_intervals_15_0= ruleTableInterval ) )*
             	    loop17:
             	    do {
             	        int alt17=2;
             	        int LA17_0 = input.LA(1);
 
-            	        if ( ((LA17_0>=53 && LA17_0<=54)) ) {
+            	        if ( ((LA17_0>=56 && LA17_0<=58)) ) {
             	            alt17=1;
             	        }
 
 
             	        switch (alt17) {
             	    	case 1 :
-            	    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1243:1: (lv_intervals_15_0= ruleTableInterval )
+            	    	    // InternalTableDSL.g:1472:10: (lv_intervals_15_0= ruleTableInterval )
             	    	    {
-            	    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1243:1: (lv_intervals_15_0= ruleTableInterval )
-            	    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1244:3: lv_intervals_15_0= ruleTableInterval
+            	    	    // InternalTableDSL.g:1472:10: (lv_intervals_15_0= ruleTableInterval )
+            	    	    // InternalTableDSL.g:1473:11: lv_intervals_15_0= ruleTableInterval
             	    	    {
             	    	    if ( state.backtracking==0 ) {
-            	    	       
-            	    	      	        newCompositeNode(grammarAccess.getTableValueAccess().getIntervalsTableIntervalParserRuleCall_4_0_3_0()); 
-            	    	      	    
+
+            	    	      											newCompositeNode(grammarAccess.getTableValueAccess().getIntervalsTableIntervalParserRuleCall_4_0_3_0());
+            	    	      										
             	    	    }
-            	    	    pushFollow(FOLLOW_ruleTableInterval_in_ruleTableValue3005);
+            	    	    pushFollow(FOLLOW_23);
             	    	    lv_intervals_15_0=ruleTableInterval();
 
             	    	    state._fsp--;
             	    	    if (state.failed) return current;
             	    	    if ( state.backtracking==0 ) {
 
-            	    	      	        if (current==null) {
-            	    	      	            current = createModelElementForParent(grammarAccess.getTableValueRule());
-            	    	      	        }
-            	    	             		add(
-            	    	             			current, 
-            	    	             			"intervals",
-            	    	              		lv_intervals_15_0, 
-            	    	              		"TableInterval");
-            	    	      	        afterParserOrEnumRuleCall();
-            	    	      	    
+            	    	      											if (current==null) {
+            	    	      												current = createModelElementForParent(grammarAccess.getTableValueRule());
+            	    	      											}
+            	    	      											add(
+            	    	      												current,
+            	    	      												"intervals",
+            	    	      												lv_intervals_15_0,
+            	    	      												"org.eclipse.osbp.xtext.table.TableDSL.TableInterval");
+            	    	      											afterParserOrEnumRuleCall();
+            	    	      										
             	    	    }
 
             	    	    }
@@ -3415,11 +4173,11 @@
             	        }
             	    } while (true);
 
-            	    otherlv_16=(Token)match(input,17,FOLLOW_17_in_ruleTableValue3018); if (state.failed) return current;
+            	    otherlv_16=(Token)match(input,17,FOLLOW_24); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_16, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4());
-            	          
+            	      									newLeafNode(otherlv_16, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4());
+            	      								
             	    }
 
             	    }
@@ -3438,62 +4196,62 @@
             	    }
             	    break;
             	case 2 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1271:4: ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) )
+            	    // InternalTableDSL.g:1500:4: ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1271:4: ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1272:5: {...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) )
+            	    // InternalTableDSL.g:1500:4: ({...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) ) )
+            	    // InternalTableDSL.g:1501:5: {...}? => ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1272:107: ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1273:6: ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) )
+            	    // InternalTableDSL.g:1501:107: ( ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) ) )
+            	    // InternalTableDSL.g:1502:6: ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableValueAccess().getUnorderedGroup_4(), 1);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1276:6: ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1276:7: {...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' )
+            	    // InternalTableDSL.g:1505:9: ({...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' ) )
+            	    // InternalTableDSL.g:1505:10: {...}? => (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableValue", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1276:16: (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1276:18: otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}'
+            	    // InternalTableDSL.g:1505:19: (otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}' )
+            	    // InternalTableDSL.g:1505:20: otherlv_17= 'lookups' ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )? otherlv_19= '{' ( (lv_lookups_20_0= ruleTableLookup ) )* otherlv_21= '}'
             	    {
-            	    otherlv_17=(Token)match(input,38,FOLLOW_38_in_ruleTableValue3086); if (state.failed) return current;
+            	    otherlv_17=(Token)match(input,41,FOLLOW_21); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_17, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0());
-            	          
+            	      									newLeafNode(otherlv_17, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0());
+            	      								
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1280:1: ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )?
+            	    // InternalTableDSL.g:1509:9: ( (lv_hideLabelLookup_18_0= 'hidelabel' ) )?
             	    int alt18=2;
             	    int LA18_0 = input.LA(1);
 
-            	    if ( (LA18_0==37) ) {
+            	    if ( (LA18_0==40) ) {
             	        alt18=1;
             	    }
             	    switch (alt18) {
             	        case 1 :
-            	            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1281:1: (lv_hideLabelLookup_18_0= 'hidelabel' )
+            	            // InternalTableDSL.g:1510:10: (lv_hideLabelLookup_18_0= 'hidelabel' )
             	            {
-            	            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1281:1: (lv_hideLabelLookup_18_0= 'hidelabel' )
-            	            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1282:3: lv_hideLabelLookup_18_0= 'hidelabel'
+            	            // InternalTableDSL.g:1510:10: (lv_hideLabelLookup_18_0= 'hidelabel' )
+            	            // InternalTableDSL.g:1511:11: lv_hideLabelLookup_18_0= 'hidelabel'
             	            {
-            	            lv_hideLabelLookup_18_0=(Token)match(input,37,FOLLOW_37_in_ruleTableValue3104); if (state.failed) return current;
+            	            lv_hideLabelLookup_18_0=(Token)match(input,40,FOLLOW_22); if (state.failed) return current;
             	            if ( state.backtracking==0 ) {
 
-            	                      newLeafNode(lv_hideLabelLookup_18_0, grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0());
-            	                  
+            	              											newLeafNode(lv_hideLabelLookup_18_0, grammarAccess.getTableValueAccess().getHideLabelLookupHidelabelKeyword_4_1_1_0());
+            	              										
             	            }
             	            if ( state.backtracking==0 ) {
 
-            	              	        if (current==null) {
-            	              	            current = createModelElement(grammarAccess.getTableValueRule());
-            	              	        }
-            	                     		setWithLastConsumed(current, "hideLabelLookup", true, "hidelabel");
-            	              	    
+            	              											if (current==null) {
+            	              												current = createModelElement(grammarAccess.getTableValueRule());
+            	              											}
+            	              											setWithLastConsumed(current, "hideLabelLookup", true, "hidelabel");
+            	              										
             	            }
 
             	            }
@@ -3504,52 +4262,52 @@
 
             	    }
 
-            	    otherlv_19=(Token)match(input,16,FOLLOW_16_in_ruleTableValue3130); if (state.failed) return current;
+            	    otherlv_19=(Token)match(input,16,FOLLOW_25); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_19, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2());
-            	          
+            	      									newLeafNode(otherlv_19, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2());
+            	      								
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1299:1: ( (lv_lookups_20_0= ruleTableLookup ) )*
+            	    // InternalTableDSL.g:1527:9: ( (lv_lookups_20_0= ruleTableLookup ) )*
             	    loop19:
             	    do {
             	        int alt19=2;
             	        int LA19_0 = input.LA(1);
 
-            	        if ( ((LA19_0>=54 && LA19_0<=56)) ) {
+            	        if ( ((LA19_0>=58 && LA19_0<=61)) ) {
             	            alt19=1;
             	        }
 
 
             	        switch (alt19) {
             	    	case 1 :
-            	    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1300:1: (lv_lookups_20_0= ruleTableLookup )
+            	    	    // InternalTableDSL.g:1528:10: (lv_lookups_20_0= ruleTableLookup )
             	    	    {
-            	    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1300:1: (lv_lookups_20_0= ruleTableLookup )
-            	    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1301:3: lv_lookups_20_0= ruleTableLookup
+            	    	    // InternalTableDSL.g:1528:10: (lv_lookups_20_0= ruleTableLookup )
+            	    	    // InternalTableDSL.g:1529:11: lv_lookups_20_0= ruleTableLookup
             	    	    {
             	    	    if ( state.backtracking==0 ) {
-            	    	       
-            	    	      	        newCompositeNode(grammarAccess.getTableValueAccess().getLookupsTableLookupParserRuleCall_4_1_3_0()); 
-            	    	      	    
+
+            	    	      											newCompositeNode(grammarAccess.getTableValueAccess().getLookupsTableLookupParserRuleCall_4_1_3_0());
+            	    	      										
             	    	    }
-            	    	    pushFollow(FOLLOW_ruleTableLookup_in_ruleTableValue3151);
+            	    	    pushFollow(FOLLOW_25);
             	    	    lv_lookups_20_0=ruleTableLookup();
 
             	    	    state._fsp--;
             	    	    if (state.failed) return current;
             	    	    if ( state.backtracking==0 ) {
 
-            	    	      	        if (current==null) {
-            	    	      	            current = createModelElementForParent(grammarAccess.getTableValueRule());
-            	    	      	        }
-            	    	             		add(
-            	    	             			current, 
-            	    	             			"lookups",
-            	    	              		lv_lookups_20_0, 
-            	    	              		"TableLookup");
-            	    	      	        afterParserOrEnumRuleCall();
-            	    	      	    
+            	    	      											if (current==null) {
+            	    	      												current = createModelElementForParent(grammarAccess.getTableValueRule());
+            	    	      											}
+            	    	      											add(
+            	    	      												current,
+            	    	      												"lookups",
+            	    	      												lv_lookups_20_0,
+            	    	      												"org.eclipse.osbp.xtext.table.TableDSL.TableLookup");
+            	    	      											afterParserOrEnumRuleCall();
+            	    	      										
             	    	    }
 
             	    	    }
@@ -3563,11 +4321,11 @@
             	        }
             	    } while (true);
 
-            	    otherlv_21=(Token)match(input,17,FOLLOW_17_in_ruleTableValue3164); if (state.failed) return current;
+            	    otherlv_21=(Token)match(input,17,FOLLOW_24); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_21, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4());
-            	          
+            	      									newLeafNode(otherlv_21, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4());
+            	      								
             	    }
 
             	    }
@@ -3608,14 +4366,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -3624,7 +4384,7 @@
 
 
     // $ANTLR start "entryRuleTableFormatter"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1343:1: entryRuleTableFormatter returns [EObject current=null] : iv_ruleTableFormatter= ruleTableFormatter EOF ;
+    // InternalTableDSL.g:1567:1: entryRuleTableFormatter returns [EObject current=null] : iv_ruleTableFormatter= ruleTableFormatter EOF ;
     public final EObject entryRuleTableFormatter() throws RecognitionException {
         EObject current = null;
 
@@ -3632,13 +4392,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1344:2: (iv_ruleTableFormatter= ruleTableFormatter EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1345:2: iv_ruleTableFormatter= ruleTableFormatter EOF
+            // InternalTableDSL.g:1567:55: (iv_ruleTableFormatter= ruleTableFormatter EOF )
+            // InternalTableDSL.g:1568:2: iv_ruleTableFormatter= ruleTableFormatter EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableFormatterRule()); 
             }
-            pushFollow(FOLLOW_ruleTableFormatter_in_entryRuleTableFormatter3241);
+            pushFollow(FOLLOW_1);
             iv_ruleTableFormatter=ruleTableFormatter();
 
             state._fsp--;
@@ -3646,16 +4406,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableFormatter; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableFormatter3251); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -3664,64 +4424,65 @@
 
 
     // $ANTLR start "ruleTableFormatter"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1352:1: ruleTableFormatter returns [EObject current=null] : ( () otherlv_1= 'formatter' ( (lv_format_2_0= RULE_STRING ) ) ) ;
+    // InternalTableDSL.g:1574:1: ruleTableFormatter returns [EObject current=null] : ( () otherlv_1= 'formatter' ( (lv_format_2_0= RULE_STRING ) ) ) ;
     public final EObject ruleTableFormatter() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
         Token lv_format_2_0=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1355:28: ( ( () otherlv_1= 'formatter' ( (lv_format_2_0= RULE_STRING ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1356:1: ( () otherlv_1= 'formatter' ( (lv_format_2_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:1580:2: ( ( () otherlv_1= 'formatter' ( (lv_format_2_0= RULE_STRING ) ) ) )
+            // InternalTableDSL.g:1581:2: ( () otherlv_1= 'formatter' ( (lv_format_2_0= RULE_STRING ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1356:1: ( () otherlv_1= 'formatter' ( (lv_format_2_0= RULE_STRING ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1356:2: () otherlv_1= 'formatter' ( (lv_format_2_0= RULE_STRING ) )
+            // InternalTableDSL.g:1581:2: ( () otherlv_1= 'formatter' ( (lv_format_2_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:1582:3: () otherlv_1= 'formatter' ( (lv_format_2_0= RULE_STRING ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1356:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1357:5: 
+            // InternalTableDSL.g:1582:3: ()
+            // InternalTableDSL.g:1583:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableFormatterAccess().getTableFormatterAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableFormatterAccess().getTableFormatterAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,39,FOLLOW_39_in_ruleTableFormatter3297); if (state.failed) return current;
+            otherlv_1=(Token)match(input,42,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableFormatterAccess().getFormatterKeyword_1());
-                  
-            }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1366:1: ( (lv_format_2_0= RULE_STRING ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1367:1: (lv_format_2_0= RULE_STRING )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1367:1: (lv_format_2_0= RULE_STRING )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1368:3: lv_format_2_0= RULE_STRING
-            {
-            lv_format_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTableFormatter3314); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(lv_format_2_0, grammarAccess.getTableFormatterAccess().getFormatSTRINGTerminalRuleCall_2_0()); 
+              			newLeafNode(otherlv_1, grammarAccess.getTableFormatterAccess().getFormatterKeyword_1());
               		
             }
+            // InternalTableDSL.g:1593:3: ( (lv_format_2_0= RULE_STRING ) )
+            // InternalTableDSL.g:1594:4: (lv_format_2_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:1594:4: (lv_format_2_0= RULE_STRING )
+            // InternalTableDSL.g:1595:5: lv_format_2_0= RULE_STRING
+            {
+            lv_format_2_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableFormatterRule());
-              	        }
-                     		setWithLastConsumed(
-                     			current, 
-                     			"format",
-                      		lv_format_2_0, 
-                      		"STRING");
-              	    
+              					newLeafNode(lv_format_2_0, grammarAccess.getTableFormatterAccess().getFormatSTRINGTerminalRuleCall_2_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableFormatterRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"format",
+              						lv_format_2_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
             }
 
             }
@@ -3736,14 +4497,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -3752,7 +4515,7 @@
 
 
     // $ANTLR start "entryRuleTableImage"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1392:1: entryRuleTableImage returns [EObject current=null] : iv_ruleTableImage= ruleTableImage EOF ;
+    // InternalTableDSL.g:1615:1: entryRuleTableImage returns [EObject current=null] : iv_ruleTableImage= ruleTableImage EOF ;
     public final EObject entryRuleTableImage() throws RecognitionException {
         EObject current = null;
 
@@ -3760,13 +4523,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1393:2: (iv_ruleTableImage= ruleTableImage EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1394:2: iv_ruleTableImage= ruleTableImage EOF
+            // InternalTableDSL.g:1615:51: (iv_ruleTableImage= ruleTableImage EOF )
+            // InternalTableDSL.g:1616:2: iv_ruleTableImage= ruleTableImage EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableImageRule()); 
             }
-            pushFollow(FOLLOW_ruleTableImage_in_entryRuleTableImage3355);
+            pushFollow(FOLLOW_1);
             iv_ruleTableImage=ruleTableImage();
 
             state._fsp--;
@@ -3774,16 +4537,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableImage; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableImage3365); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -3792,7 +4555,7 @@
 
 
     // $ANTLR start "ruleTableImage"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1401:1: ruleTableImage returns [EObject current=null] : ( () otherlv_1= 'path' ( (lv_imagePathPattern_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) ) ;
+    // InternalTableDSL.g:1622:1: ruleTableImage returns [EObject current=null] : ( () otherlv_1= 'path' ( (lv_imagePathPattern_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) ) ;
     public final EObject ruleTableImage() throws RecognitionException {
         EObject current = null;
 
@@ -3803,57 +4566,58 @@
         Token lv_resize_6_0=null;
         Token lv_resizeString_7_0=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1404:28: ( ( () otherlv_1= 'path' ( (lv_imagePathPattern_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1405:1: ( () otherlv_1= 'path' ( (lv_imagePathPattern_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) )
+            // InternalTableDSL.g:1628:2: ( ( () otherlv_1= 'path' ( (lv_imagePathPattern_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) ) )
+            // InternalTableDSL.g:1629:2: ( () otherlv_1= 'path' ( (lv_imagePathPattern_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1405:1: ( () otherlv_1= 'path' ( (lv_imagePathPattern_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1405:2: () otherlv_1= 'path' ( (lv_imagePathPattern_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:1629:2: ( () otherlv_1= 'path' ( (lv_imagePathPattern_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) ) )
+            // InternalTableDSL.g:1630:3: () otherlv_1= 'path' ( (lv_imagePathPattern_2_0= RULE_STRING ) ) ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1405:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1406:5: 
+            // InternalTableDSL.g:1630:3: ()
+            // InternalTableDSL.g:1631:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableImageAccess().getTableImageAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableImageAccess().getTableImageAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,40,FOLLOW_40_in_ruleTableImage3411); if (state.failed) return current;
+            otherlv_1=(Token)match(input,43,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableImageAccess().getPathKeyword_1());
-                  
-            }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1415:1: ( (lv_imagePathPattern_2_0= RULE_STRING ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1416:1: (lv_imagePathPattern_2_0= RULE_STRING )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1416:1: (lv_imagePathPattern_2_0= RULE_STRING )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1417:3: lv_imagePathPattern_2_0= RULE_STRING
-            {
-            lv_imagePathPattern_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTableImage3428); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(lv_imagePathPattern_2_0, grammarAccess.getTableImageAccess().getImagePathPatternSTRINGTerminalRuleCall_2_0()); 
+              			newLeafNode(otherlv_1, grammarAccess.getTableImageAccess().getPathKeyword_1());
               		
             }
+            // InternalTableDSL.g:1641:3: ( (lv_imagePathPattern_2_0= RULE_STRING ) )
+            // InternalTableDSL.g:1642:4: (lv_imagePathPattern_2_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:1642:4: (lv_imagePathPattern_2_0= RULE_STRING )
+            // InternalTableDSL.g:1643:5: lv_imagePathPattern_2_0= RULE_STRING
+            {
+            lv_imagePathPattern_2_0=(Token)match(input,RULE_STRING,FOLLOW_26); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableImageRule());
-              	        }
-                     		setWithLastConsumed(
-                     			current, 
-                     			"imagePathPattern",
-                      		lv_imagePathPattern_2_0, 
-                      		"STRING");
-              	    
+              					newLeafNode(lv_imagePathPattern_2_0, grammarAccess.getTableImageAccess().getImagePathPatternSTRINGTerminalRuleCall_2_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableImageRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"imagePathPattern",
+              						lv_imagePathPattern_2_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
             }
 
             }
@@ -3861,74 +4625,74 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1433:2: ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1435:1: ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:1659:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:1660:4: ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1435:1: ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1436:2: ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:1660:4: ( ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:1661:5: ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1439:2: ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1440:3: ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )*
+            // InternalTableDSL.g:1664:5: ( ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:1665:6: ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )*
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1440:3: ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )*
+            // InternalTableDSL.g:1665:6: ( ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) ) | ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) ) )*
             loop21:
             do {
                 int alt21=4;
                 int LA21_0 = input.LA(1);
 
-                if ( LA21_0 ==41 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0) ) {
+                if ( LA21_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0) ) {
                     alt21=1;
                 }
-                else if ( LA21_0 ==37 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1) ) {
+                else if ( LA21_0 == 40 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1) ) {
                     alt21=2;
                 }
-                else if ( LA21_0 ==42 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2) ) {
+                else if ( LA21_0 == 45 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2) ) {
                     alt21=3;
                 }
 
 
                 switch (alt21) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1442:4: ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) )
+            	    // InternalTableDSL.g:1666:4: ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1442:4: ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1443:5: {...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) )
+            	    // InternalTableDSL.g:1666:4: ({...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) ) )
+            	    // InternalTableDSL.g:1667:5: {...}? => ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableImage", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1443:107: ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1444:6: ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) )
+            	    // InternalTableDSL.g:1667:107: ( ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) ) )
+            	    // InternalTableDSL.g:1668:6: ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 0);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1447:6: ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1447:7: {...}? => ( (lv_hasParameter_4_0= 'dynamic' ) )
+            	    // InternalTableDSL.g:1671:9: ({...}? => ( (lv_hasParameter_4_0= 'dynamic' ) ) )
+            	    // InternalTableDSL.g:1671:10: {...}? => ( (lv_hasParameter_4_0= 'dynamic' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableImage", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1447:16: ( (lv_hasParameter_4_0= 'dynamic' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1448:1: (lv_hasParameter_4_0= 'dynamic' )
+            	    // InternalTableDSL.g:1671:19: ( (lv_hasParameter_4_0= 'dynamic' ) )
+            	    // InternalTableDSL.g:1671:20: (lv_hasParameter_4_0= 'dynamic' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1448:1: (lv_hasParameter_4_0= 'dynamic' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1449:3: lv_hasParameter_4_0= 'dynamic'
+            	    // InternalTableDSL.g:1671:20: (lv_hasParameter_4_0= 'dynamic' )
+            	    // InternalTableDSL.g:1672:10: lv_hasParameter_4_0= 'dynamic'
             	    {
-            	    lv_hasParameter_4_0=(Token)match(input,41,FOLLOW_41_in_ruleTableImage3496); if (state.failed) return current;
+            	    lv_hasParameter_4_0=(Token)match(input,44,FOLLOW_26); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_hasParameter_4_0, grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0());
-            	          
+            	      										newLeafNode(lv_hasParameter_4_0, grammarAccess.getTableImageAccess().getHasParameterDynamicKeyword_3_0_0());
+            	      									
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableImageRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "hasParameter", true, "dynamic");
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableImageRule());
+            	      										}
+            	      										setWithLastConsumed(current, "hasParameter", true, "dynamic");
+            	      									
             	    }
 
             	    }
@@ -3950,45 +4714,45 @@
             	    }
             	    break;
             	case 2 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1469:4: ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) )
+            	    // InternalTableDSL.g:1689:4: ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1469:4: ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1470:5: {...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) )
+            	    // InternalTableDSL.g:1689:4: ({...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) ) )
+            	    // InternalTableDSL.g:1690:5: {...}? => ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableImage", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1470:107: ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1471:6: ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) )
+            	    // InternalTableDSL.g:1690:107: ( ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) ) )
+            	    // InternalTableDSL.g:1691:6: ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 1);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1474:6: ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1474:7: {...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) )
+            	    // InternalTableDSL.g:1694:9: ({...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) ) )
+            	    // InternalTableDSL.g:1694:10: {...}? => ( (lv_hideImageLabel_5_0= 'hidelabel' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableImage", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1474:16: ( (lv_hideImageLabel_5_0= 'hidelabel' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1475:1: (lv_hideImageLabel_5_0= 'hidelabel' )
+            	    // InternalTableDSL.g:1694:19: ( (lv_hideImageLabel_5_0= 'hidelabel' ) )
+            	    // InternalTableDSL.g:1694:20: (lv_hideImageLabel_5_0= 'hidelabel' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1475:1: (lv_hideImageLabel_5_0= 'hidelabel' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1476:3: lv_hideImageLabel_5_0= 'hidelabel'
+            	    // InternalTableDSL.g:1694:20: (lv_hideImageLabel_5_0= 'hidelabel' )
+            	    // InternalTableDSL.g:1695:10: lv_hideImageLabel_5_0= 'hidelabel'
             	    {
-            	    lv_hideImageLabel_5_0=(Token)match(input,37,FOLLOW_37_in_ruleTableImage3581); if (state.failed) return current;
+            	    lv_hideImageLabel_5_0=(Token)match(input,40,FOLLOW_26); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_hideImageLabel_5_0, grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0());
-            	          
+            	      										newLeafNode(lv_hideImageLabel_5_0, grammarAccess.getTableImageAccess().getHideImageLabelHidelabelKeyword_3_1_0());
+            	      									
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableImageRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "hideImageLabel", true, "hidelabel");
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableImageRule());
+            	      										}
+            	      										setWithLastConsumed(current, "hideImageLabel", true, "hidelabel");
+            	      									
             	    }
 
             	    }
@@ -4010,48 +4774,48 @@
             	    }
             	    break;
             	case 3 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1496:4: ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) )
+            	    // InternalTableDSL.g:1712:4: ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1496:4: ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1497:5: {...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) )
+            	    // InternalTableDSL.g:1712:4: ({...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) ) )
+            	    // InternalTableDSL.g:1713:5: {...}? => ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableImage", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1497:107: ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1498:6: ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) )
+            	    // InternalTableDSL.g:1713:107: ( ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) ) )
+            	    // InternalTableDSL.g:1714:6: ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), 2);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1501:6: ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1501:7: {...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) )
+            	    // InternalTableDSL.g:1717:9: ({...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) ) )
+            	    // InternalTableDSL.g:1717:10: {...}? => ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableImage", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1501:16: ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1501:17: ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) )
+            	    // InternalTableDSL.g:1717:19: ( ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) ) )
+            	    // InternalTableDSL.g:1717:20: ( (lv_resize_6_0= 'resize' ) ) ( (lv_resizeString_7_0= RULE_STRING ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1501:17: ( (lv_resize_6_0= 'resize' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1502:1: (lv_resize_6_0= 'resize' )
+            	    // InternalTableDSL.g:1717:20: ( (lv_resize_6_0= 'resize' ) )
+            	    // InternalTableDSL.g:1718:10: (lv_resize_6_0= 'resize' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1502:1: (lv_resize_6_0= 'resize' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1503:3: lv_resize_6_0= 'resize'
+            	    // InternalTableDSL.g:1718:10: (lv_resize_6_0= 'resize' )
+            	    // InternalTableDSL.g:1719:11: lv_resize_6_0= 'resize'
             	    {
-            	    lv_resize_6_0=(Token)match(input,42,FOLLOW_42_in_ruleTableImage3667); if (state.failed) return current;
+            	    lv_resize_6_0=(Token)match(input,45,FOLLOW_8); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_resize_6_0, grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0());
-            	          
+            	      											newLeafNode(lv_resize_6_0, grammarAccess.getTableImageAccess().getResizeResizeKeyword_3_2_0_0());
+            	      										
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableImageRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "resize", true, "resize");
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableImageRule());
+            	      											}
+            	      											setWithLastConsumed(current, "resize", true, "resize");
+            	      										
             	    }
 
             	    }
@@ -4059,29 +4823,29 @@
 
             	    }
 
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1516:2: ( (lv_resizeString_7_0= RULE_STRING ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1517:1: (lv_resizeString_7_0= RULE_STRING )
+            	    // InternalTableDSL.g:1731:9: ( (lv_resizeString_7_0= RULE_STRING ) )
+            	    // InternalTableDSL.g:1732:10: (lv_resizeString_7_0= RULE_STRING )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1517:1: (lv_resizeString_7_0= RULE_STRING )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1518:3: lv_resizeString_7_0= RULE_STRING
+            	    // InternalTableDSL.g:1732:10: (lv_resizeString_7_0= RULE_STRING )
+            	    // InternalTableDSL.g:1733:11: lv_resizeString_7_0= RULE_STRING
             	    {
-            	    lv_resizeString_7_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTableImage3697); if (state.failed) return current;
+            	    lv_resizeString_7_0=(Token)match(input,RULE_STRING,FOLLOW_26); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      			newLeafNode(lv_resizeString_7_0, grammarAccess.getTableImageAccess().getResizeStringSTRINGTerminalRuleCall_3_2_1_0()); 
-            	      		
+            	      											newLeafNode(lv_resizeString_7_0, grammarAccess.getTableImageAccess().getResizeStringSTRINGTerminalRuleCall_3_2_1_0());
+            	      										
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableImageRule());
-            	      	        }
-            	             		setWithLastConsumed(
-            	             			current, 
-            	             			"resizeString",
-            	              		lv_resizeString_7_0, 
-            	              		"STRING");
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableImageRule());
+            	      											}
+            	      											setWithLastConsumed(
+            	      												current,
+            	      												"resizeString",
+            	      												lv_resizeString_7_0,
+            	      												"org.eclipse.xtext.xbase.Xtype.STRING");
+            	      										
             	    }
 
             	    }
@@ -4128,14 +4892,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4144,7 +4910,7 @@
 
 
     // $ANTLR start "entryRuleTableTooltipPattern"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1556:1: entryRuleTableTooltipPattern returns [EObject current=null] : iv_ruleTableTooltipPattern= ruleTableTooltipPattern EOF ;
+    // InternalTableDSL.g:1766:1: entryRuleTableTooltipPattern returns [EObject current=null] : iv_ruleTableTooltipPattern= ruleTableTooltipPattern EOF ;
     public final EObject entryRuleTableTooltipPattern() throws RecognitionException {
         EObject current = null;
 
@@ -4152,13 +4918,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1557:2: (iv_ruleTableTooltipPattern= ruleTableTooltipPattern EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1558:2: iv_ruleTableTooltipPattern= ruleTableTooltipPattern EOF
+            // InternalTableDSL.g:1766:60: (iv_ruleTableTooltipPattern= ruleTableTooltipPattern EOF )
+            // InternalTableDSL.g:1767:2: iv_ruleTableTooltipPattern= ruleTableTooltipPattern EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableTooltipPatternRule()); 
             }
-            pushFollow(FOLLOW_ruleTableTooltipPattern_in_entryRuleTableTooltipPattern3779);
+            pushFollow(FOLLOW_1);
             iv_ruleTableTooltipPattern=ruleTableTooltipPattern();
 
             state._fsp--;
@@ -4166,16 +4932,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableTooltipPattern; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableTooltipPattern3789); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4184,7 +4950,7 @@
 
 
     // $ANTLR start "ruleTableTooltipPattern"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1565:1: ruleTableTooltipPattern returns [EObject current=null] : ( () otherlv_1= 'tooltipPattern' ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) ) ) ;
+    // InternalTableDSL.g:1773:1: ruleTableTooltipPattern returns [EObject current=null] : ( () otherlv_1= 'tooltipPattern' ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) ) ) ;
     public final EObject ruleTableTooltipPattern() throws RecognitionException {
         EObject current = null;
 
@@ -4192,62 +4958,63 @@
         AntlrDatatypeRuleToken lv_tooltipPattern_2_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1568:28: ( ( () otherlv_1= 'tooltipPattern' ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1569:1: ( () otherlv_1= 'tooltipPattern' ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) ) )
+            // InternalTableDSL.g:1779:2: ( ( () otherlv_1= 'tooltipPattern' ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) ) ) )
+            // InternalTableDSL.g:1780:2: ( () otherlv_1= 'tooltipPattern' ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1569:1: ( () otherlv_1= 'tooltipPattern' ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1569:2: () otherlv_1= 'tooltipPattern' ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) )
+            // InternalTableDSL.g:1780:2: ( () otherlv_1= 'tooltipPattern' ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) ) )
+            // InternalTableDSL.g:1781:3: () otherlv_1= 'tooltipPattern' ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1569:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1570:5: 
+            // InternalTableDSL.g:1781:3: ()
+            // InternalTableDSL.g:1782:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableTooltipPatternAccess().getTableTooltipPatternAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableTooltipPatternAccess().getTableTooltipPatternAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,43,FOLLOW_43_in_ruleTableTooltipPattern3835); if (state.failed) return current;
+            otherlv_1=(Token)match(input,46,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableTooltipPatternAccess().getTooltipPatternKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableTooltipPatternAccess().getTooltipPatternKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1579:1: ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1580:1: (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING )
+            // InternalTableDSL.g:1792:3: ( (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING ) )
+            // InternalTableDSL.g:1793:4: (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1580:1: (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1581:3: lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING
+            // InternalTableDSL.g:1793:4: (lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING )
+            // InternalTableDSL.g:1794:5: lv_tooltipPattern_2_0= ruleTRANSLATABLESTRING
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_ruleTableTooltipPattern3856);
+            pushFollow(FOLLOW_2);
             lv_tooltipPattern_2_0=ruleTRANSLATABLESTRING();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableTooltipPatternRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"tooltipPattern",
-                      		lv_tooltipPattern_2_0, 
-                      		"TRANSLATABLESTRING");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableTooltipPatternRule());
+              					}
+              					set(
+              						current,
+              						"tooltipPattern",
+              						lv_tooltipPattern_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TRANSLATABLESTRING");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -4262,14 +5029,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4278,7 +5047,7 @@
 
 
     // $ANTLR start "entryRuleTableValueElement"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1605:1: entryRuleTableValueElement returns [EObject current=null] : iv_ruleTableValueElement= ruleTableValueElement EOF ;
+    // InternalTableDSL.g:1815:1: entryRuleTableValueElement returns [EObject current=null] : iv_ruleTableValueElement= ruleTableValueElement EOF ;
     public final EObject entryRuleTableValueElement() throws RecognitionException {
         EObject current = null;
 
@@ -4286,13 +5055,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1606:2: (iv_ruleTableValueElement= ruleTableValueElement EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1607:2: iv_ruleTableValueElement= ruleTableValueElement EOF
+            // InternalTableDSL.g:1815:58: (iv_ruleTableValueElement= ruleTableValueElement EOF )
+            // InternalTableDSL.g:1816:2: iv_ruleTableValueElement= ruleTableValueElement EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableValueElementRule()); 
             }
-            pushFollow(FOLLOW_ruleTableValueElement_in_entryRuleTableValueElement3892);
+            pushFollow(FOLLOW_1);
             iv_ruleTableValueElement=ruleTableValueElement();
 
             state._fsp--;
@@ -4300,16 +5069,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableValueElement; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableValueElement3902); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4318,7 +5087,7 @@
 
 
     // $ANTLR start "ruleTableValueElement"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1614:1: ruleTableValueElement returns [EObject current=null] : (this_TableMeasure_0= ruleTableMeasure | this_TableDerived_1= ruleTableDerived | this_TableHierarchy_2= ruleTableHierarchy | this_TableProperty_3= ruleTableProperty | this_TableAggregation_4= ruleTableAggregation | this_TableOrdinal_5= ruleTableOrdinal | this_TableColumn_6= ruleTableColumn | this_TableTask_7= ruleTableTask | this_TableAllColumns_8= ruleTableAllColumns ) ;
+    // InternalTableDSL.g:1822:1: ruleTableValueElement returns [EObject current=null] : (this_TableMeasure_0= ruleTableMeasure | this_TableDerived_1= ruleTableDerived | this_TableHierarchy_2= ruleTableHierarchy | this_TableAttribute_3= ruleTableAttribute | this_TableAggregation_4= ruleTableAggregation | this_TableOrdinal_5= ruleTableOrdinal | this_TableColumn_6= ruleTableColumn | this_TableTask_7= ruleTableTask | this_TableAllColumns_8= ruleTableAllColumns ) ;
     public final EObject ruleTableValueElement() throws RecognitionException {
         EObject current = null;
 
@@ -4328,7 +5097,7 @@
 
         EObject this_TableHierarchy_2 = null;
 
-        EObject this_TableProperty_3 = null;
+        EObject this_TableAttribute_3 = null;
 
         EObject this_TableAggregation_4 = null;
 
@@ -4341,56 +5110,57 @@
         EObject this_TableAllColumns_8 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1617:28: ( (this_TableMeasure_0= ruleTableMeasure | this_TableDerived_1= ruleTableDerived | this_TableHierarchy_2= ruleTableHierarchy | this_TableProperty_3= ruleTableProperty | this_TableAggregation_4= ruleTableAggregation | this_TableOrdinal_5= ruleTableOrdinal | this_TableColumn_6= ruleTableColumn | this_TableTask_7= ruleTableTask | this_TableAllColumns_8= ruleTableAllColumns ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1618:1: (this_TableMeasure_0= ruleTableMeasure | this_TableDerived_1= ruleTableDerived | this_TableHierarchy_2= ruleTableHierarchy | this_TableProperty_3= ruleTableProperty | this_TableAggregation_4= ruleTableAggregation | this_TableOrdinal_5= ruleTableOrdinal | this_TableColumn_6= ruleTableColumn | this_TableTask_7= ruleTableTask | this_TableAllColumns_8= ruleTableAllColumns )
+            // InternalTableDSL.g:1828:2: ( (this_TableMeasure_0= ruleTableMeasure | this_TableDerived_1= ruleTableDerived | this_TableHierarchy_2= ruleTableHierarchy | this_TableAttribute_3= ruleTableAttribute | this_TableAggregation_4= ruleTableAggregation | this_TableOrdinal_5= ruleTableOrdinal | this_TableColumn_6= ruleTableColumn | this_TableTask_7= ruleTableTask | this_TableAllColumns_8= ruleTableAllColumns ) )
+            // InternalTableDSL.g:1829:2: (this_TableMeasure_0= ruleTableMeasure | this_TableDerived_1= ruleTableDerived | this_TableHierarchy_2= ruleTableHierarchy | this_TableAttribute_3= ruleTableAttribute | this_TableAggregation_4= ruleTableAggregation | this_TableOrdinal_5= ruleTableOrdinal | this_TableColumn_6= ruleTableColumn | this_TableTask_7= ruleTableTask | this_TableAllColumns_8= ruleTableAllColumns )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1618:1: (this_TableMeasure_0= ruleTableMeasure | this_TableDerived_1= ruleTableDerived | this_TableHierarchy_2= ruleTableHierarchy | this_TableProperty_3= ruleTableProperty | this_TableAggregation_4= ruleTableAggregation | this_TableOrdinal_5= ruleTableOrdinal | this_TableColumn_6= ruleTableColumn | this_TableTask_7= ruleTableTask | this_TableAllColumns_8= ruleTableAllColumns )
+            // InternalTableDSL.g:1829:2: (this_TableMeasure_0= ruleTableMeasure | this_TableDerived_1= ruleTableDerived | this_TableHierarchy_2= ruleTableHierarchy | this_TableAttribute_3= ruleTableAttribute | this_TableAggregation_4= ruleTableAggregation | this_TableOrdinal_5= ruleTableOrdinal | this_TableColumn_6= ruleTableColumn | this_TableTask_7= ruleTableTask | this_TableAllColumns_8= ruleTableAllColumns )
             int alt22=9;
             switch ( input.LA(1) ) {
-            case 48:
+            case 51:
                 {
                 alt22=1;
                 }
                 break;
-            case 49:
+            case 52:
                 {
                 alt22=2;
                 }
                 break;
-            case 50:
+            case 53:
                 {
                 alt22=3;
                 }
                 break;
-            case 51:
+            case 54:
                 {
                 alt22=4;
                 }
                 break;
-            case 52:
+            case 55:
                 {
                 alt22=5;
                 }
                 break;
-            case 46:
+            case 49:
                 {
                 alt22=6;
                 }
                 break;
-            case 47:
+            case 50:
                 {
                 alt22=7;
                 }
                 break;
-            case 44:
+            case 47:
                 {
                 alt22=8;
                 }
                 break;
-            case 45:
+            case 48:
                 {
                 alt22=9;
                 }
@@ -4405,199 +5175,199 @@
 
             switch (alt22) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1619:5: this_TableMeasure_0= ruleTableMeasure
+                    // InternalTableDSL.g:1830:3: this_TableMeasure_0= ruleTableMeasure
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableValueElementAccess().getTableMeasureParserRuleCall_0()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableMeasureParserRuleCall_0());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableMeasure_in_ruleTableValueElement3949);
+                    pushFollow(FOLLOW_2);
                     this_TableMeasure_0=ruleTableMeasure();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableMeasure_0; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableMeasure_0;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 2 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1629:5: this_TableDerived_1= ruleTableDerived
+                    // InternalTableDSL.g:1839:3: this_TableDerived_1= ruleTableDerived
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableValueElementAccess().getTableDerivedParserRuleCall_1()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableDerivedParserRuleCall_1());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableDerived_in_ruleTableValueElement3976);
+                    pushFollow(FOLLOW_2);
                     this_TableDerived_1=ruleTableDerived();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableDerived_1; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableDerived_1;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 3 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1639:5: this_TableHierarchy_2= ruleTableHierarchy
+                    // InternalTableDSL.g:1848:3: this_TableHierarchy_2= ruleTableHierarchy
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableValueElementAccess().getTableHierarchyParserRuleCall_2()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableHierarchyParserRuleCall_2());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableHierarchy_in_ruleTableValueElement4003);
+                    pushFollow(FOLLOW_2);
                     this_TableHierarchy_2=ruleTableHierarchy();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableHierarchy_2; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableHierarchy_2;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 4 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1649:5: this_TableProperty_3= ruleTableProperty
+                    // InternalTableDSL.g:1857:3: this_TableAttribute_3= ruleTableAttribute
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableValueElementAccess().getTablePropertyParserRuleCall_3()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAttributeParserRuleCall_3());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableProperty_in_ruleTableValueElement4030);
-                    this_TableProperty_3=ruleTableProperty();
+                    pushFollow(FOLLOW_2);
+                    this_TableAttribute_3=ruleTableAttribute();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableProperty_3; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableAttribute_3;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 5 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1659:5: this_TableAggregation_4= ruleTableAggregation
+                    // InternalTableDSL.g:1866:3: this_TableAggregation_4= ruleTableAggregation
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_4()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_4());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableAggregation_in_ruleTableValueElement4057);
+                    pushFollow(FOLLOW_2);
                     this_TableAggregation_4=ruleTableAggregation();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableAggregation_4; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableAggregation_4;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 6 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1669:5: this_TableOrdinal_5= ruleTableOrdinal
+                    // InternalTableDSL.g:1875:3: this_TableOrdinal_5= ruleTableOrdinal
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableValueElementAccess().getTableOrdinalParserRuleCall_5()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableOrdinalParserRuleCall_5());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableOrdinal_in_ruleTableValueElement4084);
+                    pushFollow(FOLLOW_2);
                     this_TableOrdinal_5=ruleTableOrdinal();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableOrdinal_5; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableOrdinal_5;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 7 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1679:5: this_TableColumn_6= ruleTableColumn
+                    // InternalTableDSL.g:1884:3: this_TableColumn_6= ruleTableColumn
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableValueElementAccess().getTableColumnParserRuleCall_6()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableColumnParserRuleCall_6());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableColumn_in_ruleTableValueElement4111);
+                    pushFollow(FOLLOW_2);
                     this_TableColumn_6=ruleTableColumn();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableColumn_6; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableColumn_6;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 8 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1689:5: this_TableTask_7= ruleTableTask
+                    // InternalTableDSL.g:1893:3: this_TableTask_7= ruleTableTask
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableValueElementAccess().getTableTaskParserRuleCall_7()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableTaskParserRuleCall_7());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableTask_in_ruleTableValueElement4138);
+                    pushFollow(FOLLOW_2);
                     this_TableTask_7=ruleTableTask();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableTask_7; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableTask_7;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 9 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1699:5: this_TableAllColumns_8= ruleTableAllColumns
+                    // InternalTableDSL.g:1902:3: this_TableAllColumns_8= ruleTableAllColumns
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAllColumnsParserRuleCall_8()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAllColumnsParserRuleCall_8());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableAllColumns_in_ruleTableValueElement4165);
+                    pushFollow(FOLLOW_2);
                     this_TableAllColumns_8=ruleTableAllColumns();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableAllColumns_8; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableAllColumns_8;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
@@ -4609,14 +5379,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4625,7 +5397,7 @@
 
 
     // $ANTLR start "entryRuleTableTask"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1715:1: entryRuleTableTask returns [EObject current=null] : iv_ruleTableTask= ruleTableTask EOF ;
+    // InternalTableDSL.g:1914:1: entryRuleTableTask returns [EObject current=null] : iv_ruleTableTask= ruleTableTask EOF ;
     public final EObject entryRuleTableTask() throws RecognitionException {
         EObject current = null;
 
@@ -4633,13 +5405,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1716:2: (iv_ruleTableTask= ruleTableTask EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1717:2: iv_ruleTableTask= ruleTableTask EOF
+            // InternalTableDSL.g:1914:50: (iv_ruleTableTask= ruleTableTask EOF )
+            // InternalTableDSL.g:1915:2: iv_ruleTableTask= ruleTableTask EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableTaskRule()); 
             }
-            pushFollow(FOLLOW_ruleTableTask_in_entryRuleTableTask4200);
+            pushFollow(FOLLOW_1);
             iv_ruleTableTask=ruleTableTask();
 
             state._fsp--;
@@ -4647,16 +5419,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableTask; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableTask4210); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4665,39 +5437,40 @@
 
 
     // $ANTLR start "ruleTableTask"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1724:1: ruleTableTask returns [EObject current=null] : ( () otherlv_1= 'taskId' ) ;
+    // InternalTableDSL.g:1921:1: ruleTableTask returns [EObject current=null] : ( () otherlv_1= 'taskId' ) ;
     public final EObject ruleTableTask() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1727:28: ( ( () otherlv_1= 'taskId' ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1728:1: ( () otherlv_1= 'taskId' )
+            // InternalTableDSL.g:1927:2: ( ( () otherlv_1= 'taskId' ) )
+            // InternalTableDSL.g:1928:2: ( () otherlv_1= 'taskId' )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1728:1: ( () otherlv_1= 'taskId' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1728:2: () otherlv_1= 'taskId'
+            // InternalTableDSL.g:1928:2: ( () otherlv_1= 'taskId' )
+            // InternalTableDSL.g:1929:3: () otherlv_1= 'taskId'
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1728:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1729:5: 
+            // InternalTableDSL.g:1929:3: ()
+            // InternalTableDSL.g:1930:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableTaskAccess().getTableTaskAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableTaskAccess().getTableTaskAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,44,FOLLOW_44_in_ruleTableTask4256); if (state.failed) return current;
+            otherlv_1=(Token)match(input,47,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableTaskAccess().getTaskIdKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableTaskAccess().getTaskIdKeyword_1());
+              		
             }
 
             }
@@ -4706,14 +5479,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4722,7 +5497,7 @@
 
 
     // $ANTLR start "entryRuleTableAllColumns"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1746:1: entryRuleTableAllColumns returns [EObject current=null] : iv_ruleTableAllColumns= ruleTableAllColumns EOF ;
+    // InternalTableDSL.g:1944:1: entryRuleTableAllColumns returns [EObject current=null] : iv_ruleTableAllColumns= ruleTableAllColumns EOF ;
     public final EObject entryRuleTableAllColumns() throws RecognitionException {
         EObject current = null;
 
@@ -4730,13 +5505,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1747:2: (iv_ruleTableAllColumns= ruleTableAllColumns EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1748:2: iv_ruleTableAllColumns= ruleTableAllColumns EOF
+            // InternalTableDSL.g:1944:56: (iv_ruleTableAllColumns= ruleTableAllColumns EOF )
+            // InternalTableDSL.g:1945:2: iv_ruleTableAllColumns= ruleTableAllColumns EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableAllColumnsRule()); 
             }
-            pushFollow(FOLLOW_ruleTableAllColumns_in_entryRuleTableAllColumns4292);
+            pushFollow(FOLLOW_1);
             iv_ruleTableAllColumns=ruleTableAllColumns();
 
             state._fsp--;
@@ -4744,16 +5519,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableAllColumns; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableAllColumns4302); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4762,39 +5537,40 @@
 
 
     // $ANTLR start "ruleTableAllColumns"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1755:1: ruleTableAllColumns returns [EObject current=null] : ( () otherlv_1= 'allColumns' ) ;
+    // InternalTableDSL.g:1951:1: ruleTableAllColumns returns [EObject current=null] : ( () otherlv_1= 'allColumns' ) ;
     public final EObject ruleTableAllColumns() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1758:28: ( ( () otherlv_1= 'allColumns' ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1759:1: ( () otherlv_1= 'allColumns' )
+            // InternalTableDSL.g:1957:2: ( ( () otherlv_1= 'allColumns' ) )
+            // InternalTableDSL.g:1958:2: ( () otherlv_1= 'allColumns' )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1759:1: ( () otherlv_1= 'allColumns' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1759:2: () otherlv_1= 'allColumns'
+            // InternalTableDSL.g:1958:2: ( () otherlv_1= 'allColumns' )
+            // InternalTableDSL.g:1959:3: () otherlv_1= 'allColumns'
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1759:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1760:5: 
+            // InternalTableDSL.g:1959:3: ()
+            // InternalTableDSL.g:1960:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableAllColumnsAccess().getTableAllColumnsAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableAllColumnsAccess().getTableAllColumnsAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,45,FOLLOW_45_in_ruleTableAllColumns4348); if (state.failed) return current;
+            otherlv_1=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableAllColumnsAccess().getAllColumnsKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableAllColumnsAccess().getAllColumnsKeyword_1());
+              		
             }
 
             }
@@ -4803,14 +5579,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4819,7 +5597,7 @@
 
 
     // $ANTLR start "entryRuleTableOrdinal"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1777:1: entryRuleTableOrdinal returns [EObject current=null] : iv_ruleTableOrdinal= ruleTableOrdinal EOF ;
+    // InternalTableDSL.g:1974:1: entryRuleTableOrdinal returns [EObject current=null] : iv_ruleTableOrdinal= ruleTableOrdinal EOF ;
     public final EObject entryRuleTableOrdinal() throws RecognitionException {
         EObject current = null;
 
@@ -4827,13 +5605,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1778:2: (iv_ruleTableOrdinal= ruleTableOrdinal EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1779:2: iv_ruleTableOrdinal= ruleTableOrdinal EOF
+            // InternalTableDSL.g:1974:53: (iv_ruleTableOrdinal= ruleTableOrdinal EOF )
+            // InternalTableDSL.g:1975:2: iv_ruleTableOrdinal= ruleTableOrdinal EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableOrdinalRule()); 
             }
-            pushFollow(FOLLOW_ruleTableOrdinal_in_entryRuleTableOrdinal4384);
+            pushFollow(FOLLOW_1);
             iv_ruleTableOrdinal=ruleTableOrdinal();
 
             state._fsp--;
@@ -4841,16 +5619,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableOrdinal; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableOrdinal4394); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4859,7 +5637,7 @@
 
 
     // $ANTLR start "ruleTableOrdinal"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1786:1: ruleTableOrdinal returns [EObject current=null] : (otherlv_0= 'ordinal' ( (lv_valueRef_1_0= ruleNumber ) ) ) ;
+    // InternalTableDSL.g:1981:1: ruleTableOrdinal returns [EObject current=null] : (otherlv_0= 'ordinal' ( (lv_valueRef_1_0= ruleNumber ) ) ) ;
     public final EObject ruleTableOrdinal() throws RecognitionException {
         EObject current = null;
 
@@ -4867,49 +5645,50 @@
         AntlrDatatypeRuleToken lv_valueRef_1_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1789:28: ( (otherlv_0= 'ordinal' ( (lv_valueRef_1_0= ruleNumber ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1790:1: (otherlv_0= 'ordinal' ( (lv_valueRef_1_0= ruleNumber ) ) )
+            // InternalTableDSL.g:1987:2: ( (otherlv_0= 'ordinal' ( (lv_valueRef_1_0= ruleNumber ) ) ) )
+            // InternalTableDSL.g:1988:2: (otherlv_0= 'ordinal' ( (lv_valueRef_1_0= ruleNumber ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1790:1: (otherlv_0= 'ordinal' ( (lv_valueRef_1_0= ruleNumber ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1790:3: otherlv_0= 'ordinal' ( (lv_valueRef_1_0= ruleNumber ) )
+            // InternalTableDSL.g:1988:2: (otherlv_0= 'ordinal' ( (lv_valueRef_1_0= ruleNumber ) ) )
+            // InternalTableDSL.g:1989:3: otherlv_0= 'ordinal' ( (lv_valueRef_1_0= ruleNumber ) )
             {
-            otherlv_0=(Token)match(input,46,FOLLOW_46_in_ruleTableOrdinal4431); if (state.failed) return current;
+            otherlv_0=(Token)match(input,49,FOLLOW_14); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableOrdinalAccess().getOrdinalKeyword_0());
-                  
+              			newLeafNode(otherlv_0, grammarAccess.getTableOrdinalAccess().getOrdinalKeyword_0());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1794:1: ( (lv_valueRef_1_0= ruleNumber ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1795:1: (lv_valueRef_1_0= ruleNumber )
+            // InternalTableDSL.g:1993:3: ( (lv_valueRef_1_0= ruleNumber ) )
+            // InternalTableDSL.g:1994:4: (lv_valueRef_1_0= ruleNumber )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1795:1: (lv_valueRef_1_0= ruleNumber )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1796:3: lv_valueRef_1_0= ruleNumber
+            // InternalTableDSL.g:1994:4: (lv_valueRef_1_0= ruleNumber )
+            // InternalTableDSL.g:1995:5: lv_valueRef_1_0= ruleNumber
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableOrdinalAccess().getValueRefNumberParserRuleCall_1_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableOrdinalAccess().getValueRefNumberParserRuleCall_1_0());
+              				
             }
-            pushFollow(FOLLOW_ruleNumber_in_ruleTableOrdinal4452);
+            pushFollow(FOLLOW_2);
             lv_valueRef_1_0=ruleNumber();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableOrdinalRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"valueRef",
-                      		lv_valueRef_1_0, 
-                      		"Number");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableOrdinalRule());
+              					}
+              					set(
+              						current,
+              						"valueRef",
+              						lv_valueRef_1_0,
+              						"org.eclipse.xtext.xbase.Xbase.Number");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -4924,14 +5703,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4940,7 +5721,7 @@
 
 
     // $ANTLR start "entryRuleTableColumn"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1820:1: entryRuleTableColumn returns [EObject current=null] : iv_ruleTableColumn= ruleTableColumn EOF ;
+    // InternalTableDSL.g:2016:1: entryRuleTableColumn returns [EObject current=null] : iv_ruleTableColumn= ruleTableColumn EOF ;
     public final EObject entryRuleTableColumn() throws RecognitionException {
         EObject current = null;
 
@@ -4948,13 +5729,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1821:2: (iv_ruleTableColumn= ruleTableColumn EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1822:2: iv_ruleTableColumn= ruleTableColumn EOF
+            // InternalTableDSL.g:2016:52: (iv_ruleTableColumn= ruleTableColumn EOF )
+            // InternalTableDSL.g:2017:2: iv_ruleTableColumn= ruleTableColumn EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableColumnRule()); 
             }
-            pushFollow(FOLLOW_ruleTableColumn_in_entryRuleTableColumn4488);
+            pushFollow(FOLLOW_1);
             iv_ruleTableColumn=ruleTableColumn();
 
             state._fsp--;
@@ -4962,16 +5743,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableColumn; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableColumn4498); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -4980,46 +5761,47 @@
 
 
     // $ANTLR start "ruleTableColumn"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1829:1: ruleTableColumn returns [EObject current=null] : (otherlv_0= 'column' ( (otherlv_1= RULE_ID ) ) ) ;
+    // InternalTableDSL.g:2023:1: ruleTableColumn returns [EObject current=null] : (otherlv_0= 'column' ( (otherlv_1= RULE_ID ) ) ) ;
     public final EObject ruleTableColumn() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_0=null;
         Token otherlv_1=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1832:28: ( (otherlv_0= 'column' ( (otherlv_1= RULE_ID ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1833:1: (otherlv_0= 'column' ( (otherlv_1= RULE_ID ) ) )
+            // InternalTableDSL.g:2029:2: ( (otherlv_0= 'column' ( (otherlv_1= RULE_ID ) ) ) )
+            // InternalTableDSL.g:2030:2: (otherlv_0= 'column' ( (otherlv_1= RULE_ID ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1833:1: (otherlv_0= 'column' ( (otherlv_1= RULE_ID ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1833:3: otherlv_0= 'column' ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2030:2: (otherlv_0= 'column' ( (otherlv_1= RULE_ID ) ) )
+            // InternalTableDSL.g:2031:3: otherlv_0= 'column' ( (otherlv_1= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,47,FOLLOW_47_in_ruleTableColumn4535); if (state.failed) return current;
+            otherlv_0=(Token)match(input,50,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableColumnAccess().getColumnKeyword_0());
-                  
+              			newLeafNode(otherlv_0, grammarAccess.getTableColumnAccess().getColumnKeyword_0());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1837:1: ( (otherlv_1= RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1838:1: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2035:3: ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2036:4: (otherlv_1= RULE_ID )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1838:1: (otherlv_1= RULE_ID )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1839:3: otherlv_1= RULE_ID
+            // InternalTableDSL.g:2036:4: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2037:5: otherlv_1= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
-              			if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableColumnRule());
-              	        }
-                      
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableColumnRule());
+              					}
+              				
             }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableColumn4555); if (state.failed) return current;
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              		newLeafNode(otherlv_1, grammarAccess.getTableColumnAccess().getValueRefDatamartColumnCrossReference_1_0()); 
-              	
+              					newLeafNode(otherlv_1, grammarAccess.getTableColumnAccess().getValueRefDatamartColumnCrossReference_1_0());
+              				
             }
 
             }
@@ -5034,14 +5816,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5050,7 +5834,7 @@
 
 
     // $ANTLR start "entryRuleTableMeasure"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1858:1: entryRuleTableMeasure returns [EObject current=null] : iv_ruleTableMeasure= ruleTableMeasure EOF ;
+    // InternalTableDSL.g:2052:1: entryRuleTableMeasure returns [EObject current=null] : iv_ruleTableMeasure= ruleTableMeasure EOF ;
     public final EObject entryRuleTableMeasure() throws RecognitionException {
         EObject current = null;
 
@@ -5058,13 +5842,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1859:2: (iv_ruleTableMeasure= ruleTableMeasure EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1860:2: iv_ruleTableMeasure= ruleTableMeasure EOF
+            // InternalTableDSL.g:2052:53: (iv_ruleTableMeasure= ruleTableMeasure EOF )
+            // InternalTableDSL.g:2053:2: iv_ruleTableMeasure= ruleTableMeasure EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableMeasureRule()); 
             }
-            pushFollow(FOLLOW_ruleTableMeasure_in_entryRuleTableMeasure4591);
+            pushFollow(FOLLOW_1);
             iv_ruleTableMeasure=ruleTableMeasure();
 
             state._fsp--;
@@ -5072,16 +5856,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableMeasure; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableMeasure4601); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5090,46 +5874,47 @@
 
 
     // $ANTLR start "ruleTableMeasure"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1867:1: ruleTableMeasure returns [EObject current=null] : (otherlv_0= 'measure' ( (otherlv_1= RULE_ID ) ) ) ;
+    // InternalTableDSL.g:2059:1: ruleTableMeasure returns [EObject current=null] : (otherlv_0= 'measure' ( (otherlv_1= RULE_ID ) ) ) ;
     public final EObject ruleTableMeasure() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_0=null;
         Token otherlv_1=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1870:28: ( (otherlv_0= 'measure' ( (otherlv_1= RULE_ID ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1871:1: (otherlv_0= 'measure' ( (otherlv_1= RULE_ID ) ) )
+            // InternalTableDSL.g:2065:2: ( (otherlv_0= 'measure' ( (otherlv_1= RULE_ID ) ) ) )
+            // InternalTableDSL.g:2066:2: (otherlv_0= 'measure' ( (otherlv_1= RULE_ID ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1871:1: (otherlv_0= 'measure' ( (otherlv_1= RULE_ID ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1871:3: otherlv_0= 'measure' ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2066:2: (otherlv_0= 'measure' ( (otherlv_1= RULE_ID ) ) )
+            // InternalTableDSL.g:2067:3: otherlv_0= 'measure' ( (otherlv_1= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,48,FOLLOW_48_in_ruleTableMeasure4638); if (state.failed) return current;
+            otherlv_0=(Token)match(input,51,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableMeasureAccess().getMeasureKeyword_0());
-                  
+              			newLeafNode(otherlv_0, grammarAccess.getTableMeasureAccess().getMeasureKeyword_0());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1875:1: ( (otherlv_1= RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1876:1: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2071:3: ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2072:4: (otherlv_1= RULE_ID )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1876:1: (otherlv_1= RULE_ID )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1877:3: otherlv_1= RULE_ID
+            // InternalTableDSL.g:2072:4: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2073:5: otherlv_1= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
-              			if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableMeasureRule());
-              	        }
-                      
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableMeasureRule());
+              					}
+              				
             }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableMeasure4658); if (state.failed) return current;
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              		newLeafNode(otherlv_1, grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureCrossReference_1_0()); 
-              	
+              					newLeafNode(otherlv_1, grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureCrossReference_1_0());
+              				
             }
 
             }
@@ -5144,14 +5929,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5160,7 +5947,7 @@
 
 
     // $ANTLR start "entryRuleTableDerived"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1896:1: entryRuleTableDerived returns [EObject current=null] : iv_ruleTableDerived= ruleTableDerived EOF ;
+    // InternalTableDSL.g:2088:1: entryRuleTableDerived returns [EObject current=null] : iv_ruleTableDerived= ruleTableDerived EOF ;
     public final EObject entryRuleTableDerived() throws RecognitionException {
         EObject current = null;
 
@@ -5168,13 +5955,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1897:2: (iv_ruleTableDerived= ruleTableDerived EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1898:2: iv_ruleTableDerived= ruleTableDerived EOF
+            // InternalTableDSL.g:2088:53: (iv_ruleTableDerived= ruleTableDerived EOF )
+            // InternalTableDSL.g:2089:2: iv_ruleTableDerived= ruleTableDerived EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableDerivedRule()); 
             }
-            pushFollow(FOLLOW_ruleTableDerived_in_entryRuleTableDerived4694);
+            pushFollow(FOLLOW_1);
             iv_ruleTableDerived=ruleTableDerived();
 
             state._fsp--;
@@ -5182,16 +5969,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableDerived; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableDerived4704); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5200,46 +5987,47 @@
 
 
     // $ANTLR start "ruleTableDerived"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1905:1: ruleTableDerived returns [EObject current=null] : (otherlv_0= 'derived' ( (otherlv_1= RULE_ID ) ) ) ;
+    // InternalTableDSL.g:2095:1: ruleTableDerived returns [EObject current=null] : (otherlv_0= 'derived' ( (otherlv_1= RULE_ID ) ) ) ;
     public final EObject ruleTableDerived() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_0=null;
         Token otherlv_1=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1908:28: ( (otherlv_0= 'derived' ( (otherlv_1= RULE_ID ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1909:1: (otherlv_0= 'derived' ( (otherlv_1= RULE_ID ) ) )
+            // InternalTableDSL.g:2101:2: ( (otherlv_0= 'derived' ( (otherlv_1= RULE_ID ) ) ) )
+            // InternalTableDSL.g:2102:2: (otherlv_0= 'derived' ( (otherlv_1= RULE_ID ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1909:1: (otherlv_0= 'derived' ( (otherlv_1= RULE_ID ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1909:3: otherlv_0= 'derived' ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2102:2: (otherlv_0= 'derived' ( (otherlv_1= RULE_ID ) ) )
+            // InternalTableDSL.g:2103:3: otherlv_0= 'derived' ( (otherlv_1= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,49,FOLLOW_49_in_ruleTableDerived4741); if (state.failed) return current;
+            otherlv_0=(Token)match(input,52,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableDerivedAccess().getDerivedKeyword_0());
-                  
+              			newLeafNode(otherlv_0, grammarAccess.getTableDerivedAccess().getDerivedKeyword_0());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1913:1: ( (otherlv_1= RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1914:1: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2107:3: ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2108:4: (otherlv_1= RULE_ID )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1914:1: (otherlv_1= RULE_ID )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1915:3: otherlv_1= RULE_ID
+            // InternalTableDSL.g:2108:4: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2109:5: otherlv_1= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
-              			if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableDerivedRule());
-              	        }
-                      
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableDerivedRule());
+              					}
+              				
             }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableDerived4761); if (state.failed) return current;
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              		newLeafNode(otherlv_1, grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureCrossReference_1_0()); 
-              	
+              					newLeafNode(otherlv_1, grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureCrossReference_1_0());
+              				
             }
 
             }
@@ -5254,14 +6042,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5270,7 +6060,7 @@
 
 
     // $ANTLR start "entryRuleTableHierarchy"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1934:1: entryRuleTableHierarchy returns [EObject current=null] : iv_ruleTableHierarchy= ruleTableHierarchy EOF ;
+    // InternalTableDSL.g:2124:1: entryRuleTableHierarchy returns [EObject current=null] : iv_ruleTableHierarchy= ruleTableHierarchy EOF ;
     public final EObject entryRuleTableHierarchy() throws RecognitionException {
         EObject current = null;
 
@@ -5278,13 +6068,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1935:2: (iv_ruleTableHierarchy= ruleTableHierarchy EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1936:2: iv_ruleTableHierarchy= ruleTableHierarchy EOF
+            // InternalTableDSL.g:2124:55: (iv_ruleTableHierarchy= ruleTableHierarchy EOF )
+            // InternalTableDSL.g:2125:2: iv_ruleTableHierarchy= ruleTableHierarchy EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableHierarchyRule()); 
             }
-            pushFollow(FOLLOW_ruleTableHierarchy_in_entryRuleTableHierarchy4797);
+            pushFollow(FOLLOW_1);
             iv_ruleTableHierarchy=ruleTableHierarchy();
 
             state._fsp--;
@@ -5292,16 +6082,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableHierarchy; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableHierarchy4807); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5310,46 +6100,47 @@
 
 
     // $ANTLR start "ruleTableHierarchy"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1943:1: ruleTableHierarchy returns [EObject current=null] : (otherlv_0= 'level' ( (otherlv_1= RULE_ID ) ) ) ;
+    // InternalTableDSL.g:2131:1: ruleTableHierarchy returns [EObject current=null] : (otherlv_0= 'level' ( (otherlv_1= RULE_ID ) ) ) ;
     public final EObject ruleTableHierarchy() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_0=null;
         Token otherlv_1=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1946:28: ( (otherlv_0= 'level' ( (otherlv_1= RULE_ID ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1947:1: (otherlv_0= 'level' ( (otherlv_1= RULE_ID ) ) )
+            // InternalTableDSL.g:2137:2: ( (otherlv_0= 'level' ( (otherlv_1= RULE_ID ) ) ) )
+            // InternalTableDSL.g:2138:2: (otherlv_0= 'level' ( (otherlv_1= RULE_ID ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1947:1: (otherlv_0= 'level' ( (otherlv_1= RULE_ID ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1947:3: otherlv_0= 'level' ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2138:2: (otherlv_0= 'level' ( (otherlv_1= RULE_ID ) ) )
+            // InternalTableDSL.g:2139:3: otherlv_0= 'level' ( (otherlv_1= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,50,FOLLOW_50_in_ruleTableHierarchy4844); if (state.failed) return current;
+            otherlv_0=(Token)match(input,53,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableHierarchyAccess().getLevelKeyword_0());
-                  
+              			newLeafNode(otherlv_0, grammarAccess.getTableHierarchyAccess().getLevelKeyword_0());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1951:1: ( (otherlv_1= RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1952:1: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2143:3: ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2144:4: (otherlv_1= RULE_ID )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1952:1: (otherlv_1= RULE_ID )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1953:3: otherlv_1= RULE_ID
+            // InternalTableDSL.g:2144:4: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2145:5: otherlv_1= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
-              			if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableHierarchyRule());
-              	        }
-                      
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableHierarchyRule());
+              					}
+              				
             }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableHierarchy4864); if (state.failed) return current;
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              		newLeafNode(otherlv_1, grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelCrossReference_1_0()); 
-              	
+              					newLeafNode(otherlv_1, grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelCrossReference_1_0());
+              				
             }
 
             }
@@ -5364,14 +6155,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5379,100 +6172,101 @@
     // $ANTLR end "ruleTableHierarchy"
 
 
-    // $ANTLR start "entryRuleTableProperty"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1972:1: entryRuleTableProperty returns [EObject current=null] : iv_ruleTableProperty= ruleTableProperty EOF ;
-    public final EObject entryRuleTableProperty() throws RecognitionException {
+    // $ANTLR start "entryRuleTableAttribute"
+    // InternalTableDSL.g:2160:1: entryRuleTableAttribute returns [EObject current=null] : iv_ruleTableAttribute= ruleTableAttribute EOF ;
+    public final EObject entryRuleTableAttribute() throws RecognitionException {
         EObject current = null;
 
-        EObject iv_ruleTableProperty = null;
+        EObject iv_ruleTableAttribute = null;
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1973:2: (iv_ruleTableProperty= ruleTableProperty EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1974:2: iv_ruleTableProperty= ruleTableProperty EOF
+            // InternalTableDSL.g:2160:55: (iv_ruleTableAttribute= ruleTableAttribute EOF )
+            // InternalTableDSL.g:2161:2: iv_ruleTableAttribute= ruleTableAttribute EOF
             {
             if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getTablePropertyRule()); 
+               newCompositeNode(grammarAccess.getTableAttributeRule()); 
             }
-            pushFollow(FOLLOW_ruleTableProperty_in_entryRuleTableProperty4900);
-            iv_ruleTableProperty=ruleTableProperty();
+            pushFollow(FOLLOW_1);
+            iv_ruleTableAttribute=ruleTableAttribute();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
-               current =iv_ruleTableProperty; 
+               current =iv_ruleTableAttribute; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableProperty4910); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
     }
-    // $ANTLR end "entryRuleTableProperty"
+    // $ANTLR end "entryRuleTableAttribute"
 
 
-    // $ANTLR start "ruleTableProperty"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1981:1: ruleTableProperty returns [EObject current=null] : ( () otherlv_1= 'property' ( (otherlv_2= RULE_ID ) ) ) ;
-    public final EObject ruleTableProperty() throws RecognitionException {
+    // $ANTLR start "ruleTableAttribute"
+    // InternalTableDSL.g:2167:1: ruleTableAttribute returns [EObject current=null] : ( () otherlv_1= 'property' ( (otherlv_2= RULE_ID ) ) ) ;
+    public final EObject ruleTableAttribute() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
         Token otherlv_2=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1984:28: ( ( () otherlv_1= 'property' ( (otherlv_2= RULE_ID ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1985:1: ( () otherlv_1= 'property' ( (otherlv_2= RULE_ID ) ) )
+            // InternalTableDSL.g:2173:2: ( ( () otherlv_1= 'property' ( (otherlv_2= RULE_ID ) ) ) )
+            // InternalTableDSL.g:2174:2: ( () otherlv_1= 'property' ( (otherlv_2= RULE_ID ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1985:1: ( () otherlv_1= 'property' ( (otherlv_2= RULE_ID ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1985:2: () otherlv_1= 'property' ( (otherlv_2= RULE_ID ) )
+            // InternalTableDSL.g:2174:2: ( () otherlv_1= 'property' ( (otherlv_2= RULE_ID ) ) )
+            // InternalTableDSL.g:2175:3: () otherlv_1= 'property' ( (otherlv_2= RULE_ID ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1985:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1986:5: 
+            // InternalTableDSL.g:2175:3: ()
+            // InternalTableDSL.g:2176:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTablePropertyAccess().getTablePropertyAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableAttributeAccess().getTableAttributeAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,51,FOLLOW_51_in_ruleTableProperty4956); if (state.failed) return current;
+            otherlv_1=(Token)match(input,54,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTablePropertyAccess().getPropertyKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableAttributeAccess().getPropertyKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1995:1: ( (otherlv_2= RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1996:1: (otherlv_2= RULE_ID )
+            // InternalTableDSL.g:2186:3: ( (otherlv_2= RULE_ID ) )
+            // InternalTableDSL.g:2187:4: (otherlv_2= RULE_ID )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1996:1: (otherlv_2= RULE_ID )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:1997:3: otherlv_2= RULE_ID
+            // InternalTableDSL.g:2187:4: (otherlv_2= RULE_ID )
+            // InternalTableDSL.g:2188:5: otherlv_2= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
-              			if (current==null) {
-              	            current = createModelElement(grammarAccess.getTablePropertyRule());
-              	        }
-                      
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableAttributeRule());
+              					}
+              				
             }
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableProperty4976); if (state.failed) return current;
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              		newLeafNode(otherlv_2, grammarAccess.getTablePropertyAccess().getValueRefDatamartPropertyCrossReference_2_0()); 
-              	
+              					newLeafNode(otherlv_2, grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeCrossReference_2_0());
+              				
             }
 
             }
@@ -5487,23 +6281,25 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
     }
-    // $ANTLR end "ruleTableProperty"
+    // $ANTLR end "ruleTableAttribute"
 
 
     // $ANTLR start "entryRuleTableAggregation"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2016:1: entryRuleTableAggregation returns [EObject current=null] : iv_ruleTableAggregation= ruleTableAggregation EOF ;
+    // InternalTableDSL.g:2203:1: entryRuleTableAggregation returns [EObject current=null] : iv_ruleTableAggregation= ruleTableAggregation EOF ;
     public final EObject entryRuleTableAggregation() throws RecognitionException {
         EObject current = null;
 
@@ -5511,13 +6307,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2017:2: (iv_ruleTableAggregation= ruleTableAggregation EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2018:2: iv_ruleTableAggregation= ruleTableAggregation EOF
+            // InternalTableDSL.g:2203:57: (iv_ruleTableAggregation= ruleTableAggregation EOF )
+            // InternalTableDSL.g:2204:2: iv_ruleTableAggregation= ruleTableAggregation EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableAggregationRule()); 
             }
-            pushFollow(FOLLOW_ruleTableAggregation_in_entryRuleTableAggregation5012);
+            pushFollow(FOLLOW_1);
             iv_ruleTableAggregation=ruleTableAggregation();
 
             state._fsp--;
@@ -5525,16 +6321,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableAggregation; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableAggregation5022); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5543,46 +6339,47 @@
 
 
     // $ANTLR start "ruleTableAggregation"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2025:1: ruleTableAggregation returns [EObject current=null] : (otherlv_0= 'aggregation' ( (otherlv_1= RULE_ID ) ) ) ;
+    // InternalTableDSL.g:2210:1: ruleTableAggregation returns [EObject current=null] : (otherlv_0= 'aggregation' ( (otherlv_1= RULE_ID ) ) ) ;
     public final EObject ruleTableAggregation() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_0=null;
         Token otherlv_1=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2028:28: ( (otherlv_0= 'aggregation' ( (otherlv_1= RULE_ID ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2029:1: (otherlv_0= 'aggregation' ( (otherlv_1= RULE_ID ) ) )
+            // InternalTableDSL.g:2216:2: ( (otherlv_0= 'aggregation' ( (otherlv_1= RULE_ID ) ) ) )
+            // InternalTableDSL.g:2217:2: (otherlv_0= 'aggregation' ( (otherlv_1= RULE_ID ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2029:1: (otherlv_0= 'aggregation' ( (otherlv_1= RULE_ID ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2029:3: otherlv_0= 'aggregation' ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2217:2: (otherlv_0= 'aggregation' ( (otherlv_1= RULE_ID ) ) )
+            // InternalTableDSL.g:2218:3: otherlv_0= 'aggregation' ( (otherlv_1= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,52,FOLLOW_52_in_ruleTableAggregation5059); if (state.failed) return current;
+            otherlv_0=(Token)match(input,55,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableAggregationAccess().getAggregationKeyword_0());
-                  
+              			newLeafNode(otherlv_0, grammarAccess.getTableAggregationAccess().getAggregationKeyword_0());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2033:1: ( (otherlv_1= RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2034:1: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2222:3: ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2223:4: (otherlv_1= RULE_ID )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2034:1: (otherlv_1= RULE_ID )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2035:3: otherlv_1= RULE_ID
+            // InternalTableDSL.g:2223:4: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2224:5: otherlv_1= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
-              			if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableAggregationRule());
-              	        }
-                      
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableAggregationRule());
+              					}
+              				
             }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableAggregation5079); if (state.failed) return current;
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              		newLeafNode(otherlv_1, grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionCrossReference_1_0()); 
-              	
+              					newLeafNode(otherlv_1, grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionCrossReference_1_0());
+              				
             }
 
             }
@@ -5597,14 +6394,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5613,7 +6412,7 @@
 
 
     // $ANTLR start "entryRuleTableInterval"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2054:1: entryRuleTableInterval returns [EObject current=null] : iv_ruleTableInterval= ruleTableInterval EOF ;
+    // InternalTableDSL.g:2239:1: entryRuleTableInterval returns [EObject current=null] : iv_ruleTableInterval= ruleTableInterval EOF ;
     public final EObject entryRuleTableInterval() throws RecognitionException {
         EObject current = null;
 
@@ -5621,13 +6420,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2055:2: (iv_ruleTableInterval= ruleTableInterval EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2056:2: iv_ruleTableInterval= ruleTableInterval EOF
+            // InternalTableDSL.g:2239:54: (iv_ruleTableInterval= ruleTableInterval EOF )
+            // InternalTableDSL.g:2240:2: iv_ruleTableInterval= ruleTableInterval EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableIntervalRule()); 
             }
-            pushFollow(FOLLOW_ruleTableInterval_in_entryRuleTableInterval5115);
+            pushFollow(FOLLOW_1);
             iv_ruleTableInterval=ruleTableInterval();
 
             state._fsp--;
@@ -5635,16 +6434,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableInterval; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableInterval5125); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5653,79 +6452,113 @@
 
 
     // $ANTLR start "ruleTableInterval"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2063:1: ruleTableInterval returns [EObject current=null] : (this_TableNumberInterval_0= ruleTableNumberInterval | this_TableDateDayInterval_1= ruleTableDateDayInterval ) ;
+    // InternalTableDSL.g:2246:1: ruleTableInterval returns [EObject current=null] : (this_TableNumberInterval_0= ruleTableNumberInterval | this_TableIntInterval_1= ruleTableIntInterval | this_TableDateDayInterval_2= ruleTableDateDayInterval ) ;
     public final EObject ruleTableInterval() throws RecognitionException {
         EObject current = null;
 
         EObject this_TableNumberInterval_0 = null;
 
-        EObject this_TableDateDayInterval_1 = null;
+        EObject this_TableIntInterval_1 = null;
+
+        EObject this_TableDateDayInterval_2 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2066:28: ( (this_TableNumberInterval_0= ruleTableNumberInterval | this_TableDateDayInterval_1= ruleTableDateDayInterval ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2067:1: (this_TableNumberInterval_0= ruleTableNumberInterval | this_TableDateDayInterval_1= ruleTableDateDayInterval )
+            // InternalTableDSL.g:2252:2: ( (this_TableNumberInterval_0= ruleTableNumberInterval | this_TableIntInterval_1= ruleTableIntInterval | this_TableDateDayInterval_2= ruleTableDateDayInterval ) )
+            // InternalTableDSL.g:2253:2: (this_TableNumberInterval_0= ruleTableNumberInterval | this_TableIntInterval_1= ruleTableIntInterval | this_TableDateDayInterval_2= ruleTableDateDayInterval )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2067:1: (this_TableNumberInterval_0= ruleTableNumberInterval | this_TableDateDayInterval_1= ruleTableDateDayInterval )
-            int alt23=2;
-            int LA23_0 = input.LA(1);
-
-            if ( (LA23_0==53) ) {
+            // InternalTableDSL.g:2253:2: (this_TableNumberInterval_0= ruleTableNumberInterval | this_TableIntInterval_1= ruleTableIntInterval | this_TableDateDayInterval_2= ruleTableDateDayInterval )
+            int alt23=3;
+            switch ( input.LA(1) ) {
+            case 56:
+                {
                 alt23=1;
-            }
-            else if ( (LA23_0==54) ) {
+                }
+                break;
+            case 57:
+                {
                 alt23=2;
-            }
-            else {
+                }
+                break;
+            case 58:
+                {
+                alt23=3;
+                }
+                break;
+            default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
                     new NoViableAltException("", 23, 0, input);
 
                 throw nvae;
             }
+
             switch (alt23) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2068:5: this_TableNumberInterval_0= ruleTableNumberInterval
+                    // InternalTableDSL.g:2254:3: this_TableNumberInterval_0= ruleTableNumberInterval
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableIntervalAccess().getTableNumberIntervalParserRuleCall_0()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableIntervalAccess().getTableNumberIntervalParserRuleCall_0());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableNumberInterval_in_ruleTableInterval5172);
+                    pushFollow(FOLLOW_2);
                     this_TableNumberInterval_0=ruleTableNumberInterval();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableNumberInterval_0; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableNumberInterval_0;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 2 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2078:5: this_TableDateDayInterval_1= ruleTableDateDayInterval
+                    // InternalTableDSL.g:2263:3: this_TableIntInterval_1= ruleTableIntInterval
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableIntervalAccess().getTableDateDayIntervalParserRuleCall_1()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableIntervalAccess().getTableIntIntervalParserRuleCall_1());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableDateDayInterval_in_ruleTableInterval5199);
-                    this_TableDateDayInterval_1=ruleTableDateDayInterval();
+                    pushFollow(FOLLOW_2);
+                    this_TableIntInterval_1=ruleTableIntInterval();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableDateDayInterval_1; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableIntInterval_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:2272:3: this_TableDateDayInterval_2= ruleTableDateDayInterval
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getTableIntervalAccess().getTableDateDayIntervalParserRuleCall_2());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_TableDateDayInterval_2=ruleTableDateDayInterval();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_TableDateDayInterval_2;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
@@ -5737,14 +6570,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5753,7 +6588,7 @@
 
 
     // $ANTLR start "entryRuleTableNumberInterval"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2094:1: entryRuleTableNumberInterval returns [EObject current=null] : iv_ruleTableNumberInterval= ruleTableNumberInterval EOF ;
+    // InternalTableDSL.g:2284:1: entryRuleTableNumberInterval returns [EObject current=null] : iv_ruleTableNumberInterval= ruleTableNumberInterval EOF ;
     public final EObject entryRuleTableNumberInterval() throws RecognitionException {
         EObject current = null;
 
@@ -5761,13 +6596,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2095:2: (iv_ruleTableNumberInterval= ruleTableNumberInterval EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2096:2: iv_ruleTableNumberInterval= ruleTableNumberInterval EOF
+            // InternalTableDSL.g:2284:60: (iv_ruleTableNumberInterval= ruleTableNumberInterval EOF )
+            // InternalTableDSL.g:2285:2: iv_ruleTableNumberInterval= ruleTableNumberInterval EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableNumberIntervalRule()); 
             }
-            pushFollow(FOLLOW_ruleTableNumberInterval_in_entryRuleTableNumberInterval5234);
+            pushFollow(FOLLOW_1);
             iv_ruleTableNumberInterval=ruleTableNumberInterval();
 
             state._fsp--;
@@ -5775,16 +6610,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableNumberInterval; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableNumberInterval5244); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5793,7 +6628,7 @@
 
 
     // $ANTLR start "ruleTableNumberInterval"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2103:1: ruleTableNumberInterval returns [EObject current=null] : ( () otherlv_1= 'up to' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleTableRangeElement ) ) ) ;
+    // InternalTableDSL.g:2291:1: ruleTableNumberInterval returns [EObject current=null] : ( () otherlv_1= 'upToNumber' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleTableRangeElement ) ) ) ;
     public final EObject ruleTableNumberInterval() throws RecognitionException {
         EObject current = null;
 
@@ -5803,62 +6638,63 @@
         EObject lv_numberRange_3_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2106:28: ( ( () otherlv_1= 'up to' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleTableRangeElement ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2107:1: ( () otherlv_1= 'up to' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2297:2: ( ( () otherlv_1= 'upToNumber' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleTableRangeElement ) ) ) )
+            // InternalTableDSL.g:2298:2: ( () otherlv_1= 'upToNumber' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleTableRangeElement ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2107:1: ( () otherlv_1= 'up to' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleTableRangeElement ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2107:2: () otherlv_1= 'up to' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2298:2: ( () otherlv_1= 'upToNumber' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2299:3: () otherlv_1= 'upToNumber' ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_numberRange_3_0= ruleTableRangeElement ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2107:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2108:5: 
+            // InternalTableDSL.g:2299:3: ()
+            // InternalTableDSL.g:2300:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableNumberIntervalAccess().getTableNumberIntervalAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableNumberIntervalAccess().getTableNumberIntervalAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,53,FOLLOW_53_in_ruleTableNumberInterval5290); if (state.failed) return current;
+            otherlv_1=(Token)match(input,56,FOLLOW_27); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableNumberIntervalAccess().getUpToKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableNumberIntervalAccess().getUpToNumberKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2117:1: ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2118:1: (lv_numberIntervalValue_2_0= ruleSignedNumber )
+            // InternalTableDSL.g:2310:3: ( (lv_numberIntervalValue_2_0= ruleSignedNumber ) )
+            // InternalTableDSL.g:2311:4: (lv_numberIntervalValue_2_0= ruleSignedNumber )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2118:1: (lv_numberIntervalValue_2_0= ruleSignedNumber )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2119:3: lv_numberIntervalValue_2_0= ruleSignedNumber
+            // InternalTableDSL.g:2311:4: (lv_numberIntervalValue_2_0= ruleSignedNumber )
+            // InternalTableDSL.g:2312:5: lv_numberIntervalValue_2_0= ruleSignedNumber
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0());
+              				
             }
-            pushFollow(FOLLOW_ruleSignedNumber_in_ruleTableNumberInterval5311);
+            pushFollow(FOLLOW_28);
             lv_numberIntervalValue_2_0=ruleSignedNumber();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableNumberIntervalRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"numberIntervalValue",
-                      		lv_numberIntervalValue_2_0, 
-                      		"SignedNumber");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableNumberIntervalRule());
+              					}
+              					set(
+              						current,
+              						"numberIntervalValue",
+              						lv_numberIntervalValue_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.SignedNumber");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -5866,34 +6702,34 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2135:2: ( (lv_numberRange_3_0= ruleTableRangeElement ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2136:1: (lv_numberRange_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2329:3: ( (lv_numberRange_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2330:4: (lv_numberRange_3_0= ruleTableRangeElement )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2136:1: (lv_numberRange_3_0= ruleTableRangeElement )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2137:3: lv_numberRange_3_0= ruleTableRangeElement
+            // InternalTableDSL.g:2330:4: (lv_numberRange_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2331:5: lv_numberRange_3_0= ruleTableRangeElement
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableNumberIntervalAccess().getNumberRangeTableRangeElementParserRuleCall_3_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableNumberIntervalAccess().getNumberRangeTableRangeElementParserRuleCall_3_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTableRangeElement_in_ruleTableNumberInterval5332);
+            pushFollow(FOLLOW_2);
             lv_numberRange_3_0=ruleTableRangeElement();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableNumberIntervalRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"numberRange",
-                      		lv_numberRange_3_0, 
-                      		"TableRangeElement");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableNumberIntervalRule());
+              					}
+              					set(
+              						current,
+              						"numberRange",
+              						lv_numberRange_3_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -5908,14 +6744,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5923,8 +6761,182 @@
     // $ANTLR end "ruleTableNumberInterval"
 
 
+    // $ANTLR start "entryRuleTableIntInterval"
+    // InternalTableDSL.g:2352:1: entryRuleTableIntInterval returns [EObject current=null] : iv_ruleTableIntInterval= ruleTableIntInterval EOF ;
+    public final EObject entryRuleTableIntInterval() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTableIntInterval = null;
+
+
+        try {
+            // InternalTableDSL.g:2352:57: (iv_ruleTableIntInterval= ruleTableIntInterval EOF )
+            // InternalTableDSL.g:2353:2: iv_ruleTableIntInterval= ruleTableIntInterval EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getTableIntIntervalRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleTableIntInterval=ruleTableIntInterval();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleTableIntInterval; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTableIntInterval"
+
+
+    // $ANTLR start "ruleTableIntInterval"
+    // InternalTableDSL.g:2359:1: ruleTableIntInterval returns [EObject current=null] : ( () otherlv_1= 'upToInteger' ( (lv_intIntervalValue_2_0= ruleSignedInt ) ) ( (lv_intRange_3_0= ruleTableRangeElement ) ) ) ;
+    public final EObject ruleTableIntInterval() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        AntlrDatatypeRuleToken lv_intIntervalValue_2_0 = null;
+
+        EObject lv_intRange_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:2365:2: ( ( () otherlv_1= 'upToInteger' ( (lv_intIntervalValue_2_0= ruleSignedInt ) ) ( (lv_intRange_3_0= ruleTableRangeElement ) ) ) )
+            // InternalTableDSL.g:2366:2: ( () otherlv_1= 'upToInteger' ( (lv_intIntervalValue_2_0= ruleSignedInt ) ) ( (lv_intRange_3_0= ruleTableRangeElement ) ) )
+            {
+            // InternalTableDSL.g:2366:2: ( () otherlv_1= 'upToInteger' ( (lv_intIntervalValue_2_0= ruleSignedInt ) ) ( (lv_intRange_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2367:3: () otherlv_1= 'upToInteger' ( (lv_intIntervalValue_2_0= ruleSignedInt ) ) ( (lv_intRange_3_0= ruleTableRangeElement ) )
+            {
+            // InternalTableDSL.g:2367:3: ()
+            // InternalTableDSL.g:2368:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableIntIntervalAccess().getTableIntIntervalAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,57,FOLLOW_29); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getTableIntIntervalAccess().getUpToIntegerKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:2378:3: ( (lv_intIntervalValue_2_0= ruleSignedInt ) )
+            // InternalTableDSL.g:2379:4: (lv_intIntervalValue_2_0= ruleSignedInt )
+            {
+            // InternalTableDSL.g:2379:4: (lv_intIntervalValue_2_0= ruleSignedInt )
+            // InternalTableDSL.g:2380:5: lv_intIntervalValue_2_0= ruleSignedInt
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueSignedIntParserRuleCall_2_0());
+              				
+            }
+            pushFollow(FOLLOW_28);
+            lv_intIntervalValue_2_0=ruleSignedInt();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableIntIntervalRule());
+              					}
+              					set(
+              						current,
+              						"intIntervalValue",
+              						lv_intIntervalValue_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.SignedInt");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:2397:3: ( (lv_intRange_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2398:4: (lv_intRange_3_0= ruleTableRangeElement )
+            {
+            // InternalTableDSL.g:2398:4: (lv_intRange_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2399:5: lv_intRange_3_0= ruleTableRangeElement
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getTableIntIntervalAccess().getIntRangeTableRangeElementParserRuleCall_3_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_intRange_3_0=ruleTableRangeElement();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableIntIntervalRule());
+              					}
+              					set(
+              						current,
+              						"intRange",
+              						lv_intRange_3_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTableIntInterval"
+
+
     // $ANTLR start "entryRuleTableDateDayInterval"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2161:1: entryRuleTableDateDayInterval returns [EObject current=null] : iv_ruleTableDateDayInterval= ruleTableDateDayInterval EOF ;
+    // InternalTableDSL.g:2420:1: entryRuleTableDateDayInterval returns [EObject current=null] : iv_ruleTableDateDayInterval= ruleTableDateDayInterval EOF ;
     public final EObject entryRuleTableDateDayInterval() throws RecognitionException {
         EObject current = null;
 
@@ -5932,13 +6944,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2162:2: (iv_ruleTableDateDayInterval= ruleTableDateDayInterval EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2163:2: iv_ruleTableDateDayInterval= ruleTableDateDayInterval EOF
+            // InternalTableDSL.g:2420:61: (iv_ruleTableDateDayInterval= ruleTableDateDayInterval EOF )
+            // InternalTableDSL.g:2421:2: iv_ruleTableDateDayInterval= ruleTableDateDayInterval EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableDateDayIntervalRule()); 
             }
-            pushFollow(FOLLOW_ruleTableDateDayInterval_in_entryRuleTableDateDayInterval5368);
+            pushFollow(FOLLOW_1);
             iv_ruleTableDateDayInterval=ruleTableDateDayInterval();
 
             state._fsp--;
@@ -5946,16 +6958,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableDateDayInterval; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableDateDayInterval5378); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -5964,7 +6976,7 @@
 
 
     // $ANTLR start "ruleTableDateDayInterval"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2170:1: ruleTableDateDayInterval returns [EObject current=null] : ( () otherlv_1= 'days in past' ( (lv_dateIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_dateRange_3_0= ruleTableRangeElement ) ) ) ;
+    // InternalTableDSL.g:2427:1: ruleTableDateDayInterval returns [EObject current=null] : ( () otherlv_1= 'daysInPast' ( (lv_dateIntervalValue_2_0= ruleSignedInt ) ) ( (lv_dateRange_3_0= ruleTableRangeElement ) ) ) ;
     public final EObject ruleTableDateDayInterval() throws RecognitionException {
         EObject current = null;
 
@@ -5974,62 +6986,63 @@
         EObject lv_dateRange_3_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2173:28: ( ( () otherlv_1= 'days in past' ( (lv_dateIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_dateRange_3_0= ruleTableRangeElement ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2174:1: ( () otherlv_1= 'days in past' ( (lv_dateIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_dateRange_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2433:2: ( ( () otherlv_1= 'daysInPast' ( (lv_dateIntervalValue_2_0= ruleSignedInt ) ) ( (lv_dateRange_3_0= ruleTableRangeElement ) ) ) )
+            // InternalTableDSL.g:2434:2: ( () otherlv_1= 'daysInPast' ( (lv_dateIntervalValue_2_0= ruleSignedInt ) ) ( (lv_dateRange_3_0= ruleTableRangeElement ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2174:1: ( () otherlv_1= 'days in past' ( (lv_dateIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_dateRange_3_0= ruleTableRangeElement ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2174:2: () otherlv_1= 'days in past' ( (lv_dateIntervalValue_2_0= ruleSignedNumber ) ) ( (lv_dateRange_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2434:2: ( () otherlv_1= 'daysInPast' ( (lv_dateIntervalValue_2_0= ruleSignedInt ) ) ( (lv_dateRange_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2435:3: () otherlv_1= 'daysInPast' ( (lv_dateIntervalValue_2_0= ruleSignedInt ) ) ( (lv_dateRange_3_0= ruleTableRangeElement ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2174:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2175:5: 
+            // InternalTableDSL.g:2435:3: ()
+            // InternalTableDSL.g:2436:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableDateDayIntervalAccess().getTableDateDayIntervalAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableDateDayIntervalAccess().getTableDateDayIntervalAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,54,FOLLOW_54_in_ruleTableDateDayInterval5424); if (state.failed) return current;
+            otherlv_1=(Token)match(input,58,FOLLOW_29); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableDateDayIntervalAccess().getDaysInPastKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableDateDayIntervalAccess().getDaysInPastKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2184:1: ( (lv_dateIntervalValue_2_0= ruleSignedNumber ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2185:1: (lv_dateIntervalValue_2_0= ruleSignedNumber )
+            // InternalTableDSL.g:2446:3: ( (lv_dateIntervalValue_2_0= ruleSignedInt ) )
+            // InternalTableDSL.g:2447:4: (lv_dateIntervalValue_2_0= ruleSignedInt )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2185:1: (lv_dateIntervalValue_2_0= ruleSignedNumber )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2186:3: lv_dateIntervalValue_2_0= ruleSignedNumber
+            // InternalTableDSL.g:2447:4: (lv_dateIntervalValue_2_0= ruleSignedInt )
+            // InternalTableDSL.g:2448:5: lv_dateIntervalValue_2_0= ruleSignedInt
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueSignedNumberParserRuleCall_2_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueSignedIntParserRuleCall_2_0());
+              				
             }
-            pushFollow(FOLLOW_ruleSignedNumber_in_ruleTableDateDayInterval5445);
-            lv_dateIntervalValue_2_0=ruleSignedNumber();
+            pushFollow(FOLLOW_28);
+            lv_dateIntervalValue_2_0=ruleSignedInt();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableDateDayIntervalRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"dateIntervalValue",
-                      		lv_dateIntervalValue_2_0, 
-                      		"SignedNumber");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableDateDayIntervalRule());
+              					}
+              					set(
+              						current,
+              						"dateIntervalValue",
+              						lv_dateIntervalValue_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.SignedInt");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -6037,34 +7050,34 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2202:2: ( (lv_dateRange_3_0= ruleTableRangeElement ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2203:1: (lv_dateRange_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2465:3: ( (lv_dateRange_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2466:4: (lv_dateRange_3_0= ruleTableRangeElement )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2203:1: (lv_dateRange_3_0= ruleTableRangeElement )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2204:3: lv_dateRange_3_0= ruleTableRangeElement
+            // InternalTableDSL.g:2466:4: (lv_dateRange_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2467:5: lv_dateRange_3_0= ruleTableRangeElement
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableDateDayIntervalAccess().getDateRangeTableRangeElementParserRuleCall_3_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableDateDayIntervalAccess().getDateRangeTableRangeElementParserRuleCall_3_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTableRangeElement_in_ruleTableDateDayInterval5466);
+            pushFollow(FOLLOW_2);
             lv_dateRange_3_0=ruleTableRangeElement();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableDateDayIntervalRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"dateRange",
-                      		lv_dateRange_3_0, 
-                      		"TableRangeElement");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableDateDayIntervalRule());
+              					}
+              					set(
+              						current,
+              						"dateRange",
+              						lv_dateRange_3_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -6079,14 +7092,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6095,7 +7110,7 @@
 
 
     // $ANTLR start "entryRuleTableLookup"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2228:1: entryRuleTableLookup returns [EObject current=null] : iv_ruleTableLookup= ruleTableLookup EOF ;
+    // InternalTableDSL.g:2488:1: entryRuleTableLookup returns [EObject current=null] : iv_ruleTableLookup= ruleTableLookup EOF ;
     public final EObject entryRuleTableLookup() throws RecognitionException {
         EObject current = null;
 
@@ -6103,13 +7118,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2229:2: (iv_ruleTableLookup= ruleTableLookup EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2230:2: iv_ruleTableLookup= ruleTableLookup EOF
+            // InternalTableDSL.g:2488:52: (iv_ruleTableLookup= ruleTableLookup EOF )
+            // InternalTableDSL.g:2489:2: iv_ruleTableLookup= ruleTableLookup EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableLookupRule()); 
             }
-            pushFollow(FOLLOW_ruleTableLookup_in_entryRuleTableLookup5502);
+            pushFollow(FOLLOW_1);
             iv_ruleTableLookup=ruleTableLookup();
 
             state._fsp--;
@@ -6117,16 +7132,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableLookup; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableLookup5512); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6135,41 +7150,49 @@
 
 
     // $ANTLR start "ruleTableLookup"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2237:1: ruleTableLookup returns [EObject current=null] : (this_TableNumberLookup_0= ruleTableNumberLookup | this_TableStringLookup_1= ruleTableStringLookup | this_TableDateDayLookup_2= ruleTableDateDayLookup ) ;
+    // InternalTableDSL.g:2495:1: ruleTableLookup returns [EObject current=null] : (this_TableNumberLookup_0= ruleTableNumberLookup | this_TableIntLookup_1= ruleTableIntLookup | this_TableStringLookup_2= ruleTableStringLookup | this_TableDateDayLookup_3= ruleTableDateDayLookup ) ;
     public final EObject ruleTableLookup() throws RecognitionException {
         EObject current = null;
 
         EObject this_TableNumberLookup_0 = null;
 
-        EObject this_TableStringLookup_1 = null;
+        EObject this_TableIntLookup_1 = null;
 
-        EObject this_TableDateDayLookup_2 = null;
+        EObject this_TableStringLookup_2 = null;
+
+        EObject this_TableDateDayLookup_3 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2240:28: ( (this_TableNumberLookup_0= ruleTableNumberLookup | this_TableStringLookup_1= ruleTableStringLookup | this_TableDateDayLookup_2= ruleTableDateDayLookup ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2241:1: (this_TableNumberLookup_0= ruleTableNumberLookup | this_TableStringLookup_1= ruleTableStringLookup | this_TableDateDayLookup_2= ruleTableDateDayLookup )
+            // InternalTableDSL.g:2501:2: ( (this_TableNumberLookup_0= ruleTableNumberLookup | this_TableIntLookup_1= ruleTableIntLookup | this_TableStringLookup_2= ruleTableStringLookup | this_TableDateDayLookup_3= ruleTableDateDayLookup ) )
+            // InternalTableDSL.g:2502:2: (this_TableNumberLookup_0= ruleTableNumberLookup | this_TableIntLookup_1= ruleTableIntLookup | this_TableStringLookup_2= ruleTableStringLookup | this_TableDateDayLookup_3= ruleTableDateDayLookup )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2241:1: (this_TableNumberLookup_0= ruleTableNumberLookup | this_TableStringLookup_1= ruleTableStringLookup | this_TableDateDayLookup_2= ruleTableDateDayLookup )
-            int alt24=3;
+            // InternalTableDSL.g:2502:2: (this_TableNumberLookup_0= ruleTableNumberLookup | this_TableIntLookup_1= ruleTableIntLookup | this_TableStringLookup_2= ruleTableStringLookup | this_TableDateDayLookup_3= ruleTableDateDayLookup )
+            int alt24=4;
             switch ( input.LA(1) ) {
-            case 55:
+            case 60:
                 {
                 alt24=1;
                 }
                 break;
-            case 56:
+            case 59:
                 {
                 alt24=2;
                 }
                 break;
-            case 54:
+            case 61:
                 {
                 alt24=3;
                 }
                 break;
+            case 58:
+                {
+                alt24=4;
+                }
+                break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
@@ -6180,67 +7203,89 @@
 
             switch (alt24) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2242:5: this_TableNumberLookup_0= ruleTableNumberLookup
+                    // InternalTableDSL.g:2503:3: this_TableNumberLookup_0= ruleTableNumberLookup
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableLookupAccess().getTableNumberLookupParserRuleCall_0()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableLookupAccess().getTableNumberLookupParserRuleCall_0());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableNumberLookup_in_ruleTableLookup5559);
+                    pushFollow(FOLLOW_2);
                     this_TableNumberLookup_0=ruleTableNumberLookup();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableNumberLookup_0; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableNumberLookup_0;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 2 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2252:5: this_TableStringLookup_1= ruleTableStringLookup
+                    // InternalTableDSL.g:2512:3: this_TableIntLookup_1= ruleTableIntLookup
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableLookupAccess().getTableStringLookupParserRuleCall_1()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableLookupAccess().getTableIntLookupParserRuleCall_1());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableStringLookup_in_ruleTableLookup5586);
-                    this_TableStringLookup_1=ruleTableStringLookup();
+                    pushFollow(FOLLOW_2);
+                    this_TableIntLookup_1=ruleTableIntLookup();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableStringLookup_1; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableIntLookup_1;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 3 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2262:5: this_TableDateDayLookup_2= ruleTableDateDayLookup
+                    // InternalTableDSL.g:2521:3: this_TableStringLookup_2= ruleTableStringLookup
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableLookupAccess().getTableDateDayLookupParserRuleCall_2()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableLookupAccess().getTableStringLookupParserRuleCall_2());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableDateDayLookup_in_ruleTableLookup5613);
-                    this_TableDateDayLookup_2=ruleTableDateDayLookup();
+                    pushFollow(FOLLOW_2);
+                    this_TableStringLookup_2=ruleTableStringLookup();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableDateDayLookup_2; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableStringLookup_2;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:2530:3: this_TableDateDayLookup_3= ruleTableDateDayLookup
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getTableLookupAccess().getTableDateDayLookupParserRuleCall_3());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_TableDateDayLookup_3=ruleTableDateDayLookup();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_TableDateDayLookup_3;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
@@ -6252,14 +7297,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6267,8 +7314,182 @@
     // $ANTLR end "ruleTableLookup"
 
 
+    // $ANTLR start "entryRuleTableIntLookup"
+    // InternalTableDSL.g:2542:1: entryRuleTableIntLookup returns [EObject current=null] : iv_ruleTableIntLookup= ruleTableIntLookup EOF ;
+    public final EObject entryRuleTableIntLookup() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTableIntLookup = null;
+
+
+        try {
+            // InternalTableDSL.g:2542:55: (iv_ruleTableIntLookup= ruleTableIntLookup EOF )
+            // InternalTableDSL.g:2543:2: iv_ruleTableIntLookup= ruleTableIntLookup EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getTableIntLookupRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleTableIntLookup=ruleTableIntLookup();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleTableIntLookup; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTableIntLookup"
+
+
+    // $ANTLR start "ruleTableIntLookup"
+    // InternalTableDSL.g:2549:1: ruleTableIntLookup returns [EObject current=null] : ( () otherlv_1= 'integer' ( (lv_lookupValue_2_0= ruleSignedInt ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) ;
+    public final EObject ruleTableIntLookup() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        AntlrDatatypeRuleToken lv_lookupValue_2_0 = null;
+
+        EObject lv_discrete_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:2555:2: ( ( () otherlv_1= 'integer' ( (lv_lookupValue_2_0= ruleSignedInt ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) )
+            // InternalTableDSL.g:2556:2: ( () otherlv_1= 'integer' ( (lv_lookupValue_2_0= ruleSignedInt ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
+            {
+            // InternalTableDSL.g:2556:2: ( () otherlv_1= 'integer' ( (lv_lookupValue_2_0= ruleSignedInt ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2557:3: () otherlv_1= 'integer' ( (lv_lookupValue_2_0= ruleSignedInt ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) )
+            {
+            // InternalTableDSL.g:2557:3: ()
+            // InternalTableDSL.g:2558:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableIntLookupAccess().getTableIntLookupAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,59,FOLLOW_29); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getTableIntLookupAccess().getIntegerKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:2568:3: ( (lv_lookupValue_2_0= ruleSignedInt ) )
+            // InternalTableDSL.g:2569:4: (lv_lookupValue_2_0= ruleSignedInt )
+            {
+            // InternalTableDSL.g:2569:4: (lv_lookupValue_2_0= ruleSignedInt )
+            // InternalTableDSL.g:2570:5: lv_lookupValue_2_0= ruleSignedInt
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getTableIntLookupAccess().getLookupValueSignedIntParserRuleCall_2_0());
+              				
+            }
+            pushFollow(FOLLOW_28);
+            lv_lookupValue_2_0=ruleSignedInt();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableIntLookupRule());
+              					}
+              					set(
+              						current,
+              						"lookupValue",
+              						lv_lookupValue_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.SignedInt");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:2587:3: ( (lv_discrete_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2588:4: (lv_discrete_3_0= ruleTableRangeElement )
+            {
+            // InternalTableDSL.g:2588:4: (lv_discrete_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2589:5: lv_discrete_3_0= ruleTableRangeElement
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getTableIntLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_discrete_3_0=ruleTableRangeElement();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableIntLookupRule());
+              					}
+              					set(
+              						current,
+              						"discrete",
+              						lv_discrete_3_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTableIntLookup"
+
+
     // $ANTLR start "entryRuleTableNumberLookup"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2278:1: entryRuleTableNumberLookup returns [EObject current=null] : iv_ruleTableNumberLookup= ruleTableNumberLookup EOF ;
+    // InternalTableDSL.g:2610:1: entryRuleTableNumberLookup returns [EObject current=null] : iv_ruleTableNumberLookup= ruleTableNumberLookup EOF ;
     public final EObject entryRuleTableNumberLookup() throws RecognitionException {
         EObject current = null;
 
@@ -6276,13 +7497,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2279:2: (iv_ruleTableNumberLookup= ruleTableNumberLookup EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2280:2: iv_ruleTableNumberLookup= ruleTableNumberLookup EOF
+            // InternalTableDSL.g:2610:58: (iv_ruleTableNumberLookup= ruleTableNumberLookup EOF )
+            // InternalTableDSL.g:2611:2: iv_ruleTableNumberLookup= ruleTableNumberLookup EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableNumberLookupRule()); 
             }
-            pushFollow(FOLLOW_ruleTableNumberLookup_in_entryRuleTableNumberLookup5648);
+            pushFollow(FOLLOW_1);
             iv_ruleTableNumberLookup=ruleTableNumberLookup();
 
             state._fsp--;
@@ -6290,16 +7511,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableNumberLookup; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableNumberLookup5658); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6308,7 +7529,7 @@
 
 
     // $ANTLR start "ruleTableNumberLookup"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2287:1: ruleTableNumberLookup returns [EObject current=null] : ( () otherlv_1= 'number' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) ;
+    // InternalTableDSL.g:2617:1: ruleTableNumberLookup returns [EObject current=null] : ( () otherlv_1= 'number' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) ;
     public final EObject ruleTableNumberLookup() throws RecognitionException {
         EObject current = null;
 
@@ -6318,62 +7539,63 @@
         EObject lv_discrete_3_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2290:28: ( ( () otherlv_1= 'number' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2291:1: ( () otherlv_1= 'number' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2623:2: ( ( () otherlv_1= 'number' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) )
+            // InternalTableDSL.g:2624:2: ( () otherlv_1= 'number' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2291:1: ( () otherlv_1= 'number' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2291:2: () otherlv_1= 'number' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2624:2: ( () otherlv_1= 'number' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2625:3: () otherlv_1= 'number' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2291:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2292:5: 
+            // InternalTableDSL.g:2625:3: ()
+            // InternalTableDSL.g:2626:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableNumberLookupAccess().getTableNumberLookupAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableNumberLookupAccess().getTableNumberLookupAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,55,FOLLOW_55_in_ruleTableNumberLookup5704); if (state.failed) return current;
+            otherlv_1=(Token)match(input,60,FOLLOW_27); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableNumberLookupAccess().getNumberKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableNumberLookupAccess().getNumberKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2301:1: ( (lv_lookupValue_2_0= ruleSignedNumber ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2302:1: (lv_lookupValue_2_0= ruleSignedNumber )
+            // InternalTableDSL.g:2636:3: ( (lv_lookupValue_2_0= ruleSignedNumber ) )
+            // InternalTableDSL.g:2637:4: (lv_lookupValue_2_0= ruleSignedNumber )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2302:1: (lv_lookupValue_2_0= ruleSignedNumber )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2303:3: lv_lookupValue_2_0= ruleSignedNumber
+            // InternalTableDSL.g:2637:4: (lv_lookupValue_2_0= ruleSignedNumber )
+            // InternalTableDSL.g:2638:5: lv_lookupValue_2_0= ruleSignedNumber
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableNumberLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableNumberLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0());
+              				
             }
-            pushFollow(FOLLOW_ruleSignedNumber_in_ruleTableNumberLookup5725);
+            pushFollow(FOLLOW_28);
             lv_lookupValue_2_0=ruleSignedNumber();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableNumberLookupRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"lookupValue",
-                      		lv_lookupValue_2_0, 
-                      		"SignedNumber");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableNumberLookupRule());
+              					}
+              					set(
+              						current,
+              						"lookupValue",
+              						lv_lookupValue_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.SignedNumber");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -6381,34 +7603,34 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2319:2: ( (lv_discrete_3_0= ruleTableRangeElement ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2320:1: (lv_discrete_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2655:3: ( (lv_discrete_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2656:4: (lv_discrete_3_0= ruleTableRangeElement )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2320:1: (lv_discrete_3_0= ruleTableRangeElement )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2321:3: lv_discrete_3_0= ruleTableRangeElement
+            // InternalTableDSL.g:2656:4: (lv_discrete_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2657:5: lv_discrete_3_0= ruleTableRangeElement
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableNumberLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableNumberLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTableRangeElement_in_ruleTableNumberLookup5746);
+            pushFollow(FOLLOW_2);
             lv_discrete_3_0=ruleTableRangeElement();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableNumberLookupRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"discrete",
-                      		lv_discrete_3_0, 
-                      		"TableRangeElement");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableNumberLookupRule());
+              					}
+              					set(
+              						current,
+              						"discrete",
+              						lv_discrete_3_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -6423,14 +7645,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6439,7 +7663,7 @@
 
 
     // $ANTLR start "entryRuleTableStringLookup"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2345:1: entryRuleTableStringLookup returns [EObject current=null] : iv_ruleTableStringLookup= ruleTableStringLookup EOF ;
+    // InternalTableDSL.g:2678:1: entryRuleTableStringLookup returns [EObject current=null] : iv_ruleTableStringLookup= ruleTableStringLookup EOF ;
     public final EObject entryRuleTableStringLookup() throws RecognitionException {
         EObject current = null;
 
@@ -6447,13 +7671,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2346:2: (iv_ruleTableStringLookup= ruleTableStringLookup EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2347:2: iv_ruleTableStringLookup= ruleTableStringLookup EOF
+            // InternalTableDSL.g:2678:58: (iv_ruleTableStringLookup= ruleTableStringLookup EOF )
+            // InternalTableDSL.g:2679:2: iv_ruleTableStringLookup= ruleTableStringLookup EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableStringLookupRule()); 
             }
-            pushFollow(FOLLOW_ruleTableStringLookup_in_entryRuleTableStringLookup5782);
+            pushFollow(FOLLOW_1);
             iv_ruleTableStringLookup=ruleTableStringLookup();
 
             state._fsp--;
@@ -6461,16 +7685,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableStringLookup; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableStringLookup5792); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6479,7 +7703,7 @@
 
 
     // $ANTLR start "ruleTableStringLookup"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2354:1: ruleTableStringLookup returns [EObject current=null] : ( () otherlv_1= 'string' ( (lv_lookupValue_2_0= RULE_STRING ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) ;
+    // InternalTableDSL.g:2685:1: ruleTableStringLookup returns [EObject current=null] : ( () otherlv_1= 'string' ( (lv_lookupValue_2_0= RULE_STRING ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) ;
     public final EObject ruleTableStringLookup() throws RecognitionException {
         EObject current = null;
 
@@ -6488,57 +7712,58 @@
         EObject lv_discrete_3_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2357:28: ( ( () otherlv_1= 'string' ( (lv_lookupValue_2_0= RULE_STRING ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2358:1: ( () otherlv_1= 'string' ( (lv_lookupValue_2_0= RULE_STRING ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2691:2: ( ( () otherlv_1= 'string' ( (lv_lookupValue_2_0= RULE_STRING ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) )
+            // InternalTableDSL.g:2692:2: ( () otherlv_1= 'string' ( (lv_lookupValue_2_0= RULE_STRING ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2358:1: ( () otherlv_1= 'string' ( (lv_lookupValue_2_0= RULE_STRING ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2358:2: () otherlv_1= 'string' ( (lv_lookupValue_2_0= RULE_STRING ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2692:2: ( () otherlv_1= 'string' ( (lv_lookupValue_2_0= RULE_STRING ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2693:3: () otherlv_1= 'string' ( (lv_lookupValue_2_0= RULE_STRING ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2358:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2359:5: 
+            // InternalTableDSL.g:2693:3: ()
+            // InternalTableDSL.g:2694:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableStringLookupAccess().getTableStringLookupAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableStringLookupAccess().getTableStringLookupAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,56,FOLLOW_56_in_ruleTableStringLookup5838); if (state.failed) return current;
+            otherlv_1=(Token)match(input,61,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableStringLookupAccess().getStringKeyword_1());
-                  
-            }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2368:1: ( (lv_lookupValue_2_0= RULE_STRING ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2369:1: (lv_lookupValue_2_0= RULE_STRING )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2369:1: (lv_lookupValue_2_0= RULE_STRING )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2370:3: lv_lookupValue_2_0= RULE_STRING
-            {
-            lv_lookupValue_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTableStringLookup5855); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(lv_lookupValue_2_0, grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0()); 
+              			newLeafNode(otherlv_1, grammarAccess.getTableStringLookupAccess().getStringKeyword_1());
               		
             }
+            // InternalTableDSL.g:2704:3: ( (lv_lookupValue_2_0= RULE_STRING ) )
+            // InternalTableDSL.g:2705:4: (lv_lookupValue_2_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:2705:4: (lv_lookupValue_2_0= RULE_STRING )
+            // InternalTableDSL.g:2706:5: lv_lookupValue_2_0= RULE_STRING
+            {
+            lv_lookupValue_2_0=(Token)match(input,RULE_STRING,FOLLOW_28); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableStringLookupRule());
-              	        }
-                     		setWithLastConsumed(
-                     			current, 
-                     			"lookupValue",
-                      		lv_lookupValue_2_0, 
-                      		"STRING");
-              	    
+              					newLeafNode(lv_lookupValue_2_0, grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableStringLookupRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"lookupValue",
+              						lv_lookupValue_2_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
             }
 
             }
@@ -6546,34 +7771,34 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2386:2: ( (lv_discrete_3_0= ruleTableRangeElement ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2387:1: (lv_discrete_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2722:3: ( (lv_discrete_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2723:4: (lv_discrete_3_0= ruleTableRangeElement )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2387:1: (lv_discrete_3_0= ruleTableRangeElement )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2388:3: lv_discrete_3_0= ruleTableRangeElement
+            // InternalTableDSL.g:2723:4: (lv_discrete_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2724:5: lv_discrete_3_0= ruleTableRangeElement
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableStringLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableStringLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTableRangeElement_in_ruleTableStringLookup5881);
+            pushFollow(FOLLOW_2);
             lv_discrete_3_0=ruleTableRangeElement();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableStringLookupRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"discrete",
-                      		lv_discrete_3_0, 
-                      		"TableRangeElement");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableStringLookupRule());
+              					}
+              					set(
+              						current,
+              						"discrete",
+              						lv_discrete_3_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -6588,14 +7813,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6604,7 +7831,7 @@
 
 
     // $ANTLR start "entryRuleTableDateDayLookup"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2412:1: entryRuleTableDateDayLookup returns [EObject current=null] : iv_ruleTableDateDayLookup= ruleTableDateDayLookup EOF ;
+    // InternalTableDSL.g:2745:1: entryRuleTableDateDayLookup returns [EObject current=null] : iv_ruleTableDateDayLookup= ruleTableDateDayLookup EOF ;
     public final EObject entryRuleTableDateDayLookup() throws RecognitionException {
         EObject current = null;
 
@@ -6612,13 +7839,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2413:2: (iv_ruleTableDateDayLookup= ruleTableDateDayLookup EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2414:2: iv_ruleTableDateDayLookup= ruleTableDateDayLookup EOF
+            // InternalTableDSL.g:2745:59: (iv_ruleTableDateDayLookup= ruleTableDateDayLookup EOF )
+            // InternalTableDSL.g:2746:2: iv_ruleTableDateDayLookup= ruleTableDateDayLookup EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableDateDayLookupRule()); 
             }
-            pushFollow(FOLLOW_ruleTableDateDayLookup_in_entryRuleTableDateDayLookup5917);
+            pushFollow(FOLLOW_1);
             iv_ruleTableDateDayLookup=ruleTableDateDayLookup();
 
             state._fsp--;
@@ -6626,16 +7853,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableDateDayLookup; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableDateDayLookup5927); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6644,7 +7871,7 @@
 
 
     // $ANTLR start "ruleTableDateDayLookup"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2421:1: ruleTableDateDayLookup returns [EObject current=null] : ( () otherlv_1= 'days in past' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) ;
+    // InternalTableDSL.g:2752:1: ruleTableDateDayLookup returns [EObject current=null] : ( () otherlv_1= 'daysInPast' ( (lv_lookupValue_2_0= ruleSignedInt ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) ;
     public final EObject ruleTableDateDayLookup() throws RecognitionException {
         EObject current = null;
 
@@ -6654,62 +7881,63 @@
         EObject lv_discrete_3_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2424:28: ( ( () otherlv_1= 'days in past' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2425:1: ( () otherlv_1= 'days in past' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2758:2: ( ( () otherlv_1= 'daysInPast' ( (lv_lookupValue_2_0= ruleSignedInt ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) ) )
+            // InternalTableDSL.g:2759:2: ( () otherlv_1= 'daysInPast' ( (lv_lookupValue_2_0= ruleSignedInt ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2425:1: ( () otherlv_1= 'days in past' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2425:2: () otherlv_1= 'days in past' ( (lv_lookupValue_2_0= ruleSignedNumber ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2759:2: ( () otherlv_1= 'daysInPast' ( (lv_lookupValue_2_0= ruleSignedInt ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) ) )
+            // InternalTableDSL.g:2760:3: () otherlv_1= 'daysInPast' ( (lv_lookupValue_2_0= ruleSignedInt ) ) ( (lv_discrete_3_0= ruleTableRangeElement ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2425:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2426:5: 
+            // InternalTableDSL.g:2760:3: ()
+            // InternalTableDSL.g:2761:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableDateDayLookupAccess().getTableDateDayLookupAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableDateDayLookupAccess().getTableDateDayLookupAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,54,FOLLOW_54_in_ruleTableDateDayLookup5973); if (state.failed) return current;
+            otherlv_1=(Token)match(input,58,FOLLOW_29); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableDateDayLookupAccess().getDaysInPastKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableDateDayLookupAccess().getDaysInPastKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2435:1: ( (lv_lookupValue_2_0= ruleSignedNumber ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2436:1: (lv_lookupValue_2_0= ruleSignedNumber )
+            // InternalTableDSL.g:2771:3: ( (lv_lookupValue_2_0= ruleSignedInt ) )
+            // InternalTableDSL.g:2772:4: (lv_lookupValue_2_0= ruleSignedInt )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2436:1: (lv_lookupValue_2_0= ruleSignedNumber )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2437:3: lv_lookupValue_2_0= ruleSignedNumber
+            // InternalTableDSL.g:2772:4: (lv_lookupValue_2_0= ruleSignedInt )
+            // InternalTableDSL.g:2773:5: lv_lookupValue_2_0= ruleSignedInt
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedIntParserRuleCall_2_0());
+              				
             }
-            pushFollow(FOLLOW_ruleSignedNumber_in_ruleTableDateDayLookup5994);
-            lv_lookupValue_2_0=ruleSignedNumber();
+            pushFollow(FOLLOW_28);
+            lv_lookupValue_2_0=ruleSignedInt();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableDateDayLookupRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"lookupValue",
-                      		lv_lookupValue_2_0, 
-                      		"SignedNumber");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableDateDayLookupRule());
+              					}
+              					set(
+              						current,
+              						"lookupValue",
+              						lv_lookupValue_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.SignedInt");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -6717,34 +7945,34 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2453:2: ( (lv_discrete_3_0= ruleTableRangeElement ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2454:1: (lv_discrete_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2790:3: ( (lv_discrete_3_0= ruleTableRangeElement ) )
+            // InternalTableDSL.g:2791:4: (lv_discrete_3_0= ruleTableRangeElement )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2454:1: (lv_discrete_3_0= ruleTableRangeElement )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2455:3: lv_discrete_3_0= ruleTableRangeElement
+            // InternalTableDSL.g:2791:4: (lv_discrete_3_0= ruleTableRangeElement )
+            // InternalTableDSL.g:2792:5: lv_discrete_3_0= ruleTableRangeElement
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableDateDayLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableDateDayLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTableRangeElement_in_ruleTableDateDayLookup6015);
+            pushFollow(FOLLOW_2);
             lv_discrete_3_0=ruleTableRangeElement();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableDateDayLookupRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"discrete",
-                      		lv_discrete_3_0, 
-                      		"TableRangeElement");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableDateDayLookupRule());
+              					}
+              					set(
+              						current,
+              						"discrete",
+              						lv_discrete_3_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -6759,14 +7987,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6775,7 +8005,7 @@
 
 
     // $ANTLR start "entryRuleTableDatamart"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2479:1: entryRuleTableDatamart returns [EObject current=null] : iv_ruleTableDatamart= ruleTableDatamart EOF ;
+    // InternalTableDSL.g:2813:1: entryRuleTableDatamart returns [EObject current=null] : iv_ruleTableDatamart= ruleTableDatamart EOF ;
     public final EObject entryRuleTableDatamart() throws RecognitionException {
         EObject current = null;
 
@@ -6783,13 +8013,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2480:2: (iv_ruleTableDatamart= ruleTableDatamart EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2481:2: iv_ruleTableDatamart= ruleTableDatamart EOF
+            // InternalTableDSL.g:2813:54: (iv_ruleTableDatamart= ruleTableDatamart EOF )
+            // InternalTableDSL.g:2814:2: iv_ruleTableDatamart= ruleTableDatamart EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableDatamartRule()); 
             }
-            pushFollow(FOLLOW_ruleTableDatamart_in_entryRuleTableDatamart6051);
+            pushFollow(FOLLOW_1);
             iv_ruleTableDatamart=ruleTableDatamart();
 
             state._fsp--;
@@ -6797,16 +8027,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableDatamart; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableDatamart6061); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6815,7 +8045,7 @@
 
 
     // $ANTLR start "ruleTableDatamart"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2488:1: ruleTableDatamart returns [EObject current=null] : (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )? ) ;
+    // InternalTableDSL.g:2820:1: ruleTableDatamart returns [EObject current=null] : (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )? ) ;
     public final EObject ruleTableDatamart() throws RecognitionException {
         EObject current = null;
 
@@ -6826,39 +8056,40 @@
         EObject lv_elements_3_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2491:28: ( (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )? ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2492:1: (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )? )
+            // InternalTableDSL.g:2826:2: ( (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )? ) )
+            // InternalTableDSL.g:2827:2: (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )? )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2492:1: (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2492:3: otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )?
+            // InternalTableDSL.g:2827:2: (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )? )
+            // InternalTableDSL.g:2828:3: otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )?
             {
-            otherlv_0=(Token)match(input,57,FOLLOW_57_in_ruleTableDatamart6098); if (state.failed) return current;
+            otherlv_0=(Token)match(input,62,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableDatamartAccess().getDatamartKeyword_0());
-                  
+              			newLeafNode(otherlv_0, grammarAccess.getTableDatamartAccess().getDatamartKeyword_0());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2496:1: ( (otherlv_1= RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2497:1: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2832:3: ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:2833:4: (otherlv_1= RULE_ID )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2497:1: (otherlv_1= RULE_ID )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2498:3: otherlv_1= RULE_ID
+            // InternalTableDSL.g:2833:4: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:2834:5: otherlv_1= RULE_ID
             {
             if ( state.backtracking==0 ) {
 
-              			if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableDatamartRule());
-              	        }
-                      
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableDatamartRule());
+              					}
+              				
             }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableDatamart6118); if (state.failed) return current;
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_5); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              		newLeafNode(otherlv_1, grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionCrossReference_1_0()); 
-              	
+              					newLeafNode(otherlv_1, grammarAccess.getTableDatamartAccess().getDatamartRefDatamartDefinitionCrossReference_1_0());
+              				
             }
 
             }
@@ -6866,7 +8097,7 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2509:2: (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )?
+            // InternalTableDSL.g:2845:3: (otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}' )?
             int alt26=2;
             int LA26_0 = input.LA(1);
 
@@ -6875,54 +8106,54 @@
             }
             switch (alt26) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2509:4: otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}'
+                    // InternalTableDSL.g:2846:4: otherlv_2= '{' ( (lv_elements_3_0= ruleTableElement ) )* otherlv_4= '}'
                     {
-                    otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleTableDatamart6131); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,16,FOLLOW_30); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_2, grammarAccess.getTableDatamartAccess().getLeftCurlyBracketKeyword_2_0());
-                          
+                      				newLeafNode(otherlv_2, grammarAccess.getTableDatamartAccess().getLeftCurlyBracketKeyword_2_0());
+                      			
                     }
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2513:1: ( (lv_elements_3_0= ruleTableElement ) )*
+                    // InternalTableDSL.g:2850:4: ( (lv_elements_3_0= ruleTableElement ) )*
                     loop25:
                     do {
                         int alt25=2;
                         int LA25_0 = input.LA(1);
 
-                        if ( (LA25_0==62) ) {
+                        if ( (LA25_0==63) ) {
                             alt25=1;
                         }
 
 
                         switch (alt25) {
                     	case 1 :
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2514:1: (lv_elements_3_0= ruleTableElement )
+                    	    // InternalTableDSL.g:2851:5: (lv_elements_3_0= ruleTableElement )
                     	    {
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2514:1: (lv_elements_3_0= ruleTableElement )
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2515:3: lv_elements_3_0= ruleTableElement
+                    	    // InternalTableDSL.g:2851:5: (lv_elements_3_0= ruleTableElement )
+                    	    // InternalTableDSL.g:2852:6: lv_elements_3_0= ruleTableElement
                     	    {
                     	    if ( state.backtracking==0 ) {
-                    	       
-                    	      	        newCompositeNode(grammarAccess.getTableDatamartAccess().getElementsTableElementParserRuleCall_2_1_0()); 
-                    	      	    
+
+                    	      						newCompositeNode(grammarAccess.getTableDatamartAccess().getElementsTableElementParserRuleCall_2_1_0());
+                    	      					
                     	    }
-                    	    pushFollow(FOLLOW_ruleTableElement_in_ruleTableDatamart6152);
+                    	    pushFollow(FOLLOW_30);
                     	    lv_elements_3_0=ruleTableElement();
 
                     	    state._fsp--;
                     	    if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
-                    	      	        if (current==null) {
-                    	      	            current = createModelElementForParent(grammarAccess.getTableDatamartRule());
-                    	      	        }
-                    	             		add(
-                    	             			current, 
-                    	             			"elements",
-                    	              		lv_elements_3_0, 
-                    	              		"TableElement");
-                    	      	        afterParserOrEnumRuleCall();
-                    	      	    
+                    	      						if (current==null) {
+                    	      							current = createModelElementForParent(grammarAccess.getTableDatamartRule());
+                    	      						}
+                    	      						add(
+                    	      							current,
+                    	      							"elements",
+                    	      							lv_elements_3_0,
+                    	      							"org.eclipse.osbp.xtext.table.TableDSL.TableElement");
+                    	      						afterParserOrEnumRuleCall();
+                    	      					
                     	    }
 
                     	    }
@@ -6936,11 +8167,11 @@
                         }
                     } while (true);
 
-                    otherlv_4=(Token)match(input,17,FOLLOW_17_in_ruleTableDatamart6165); if (state.failed) return current;
+                    otherlv_4=(Token)match(input,17,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_4, grammarAccess.getTableDatamartAccess().getRightCurlyBracketKeyword_2_2());
-                          
+                      				newLeafNode(otherlv_4, grammarAccess.getTableDatamartAccess().getRightCurlyBracketKeyword_2_2());
+                      			
                     }
 
                     }
@@ -6955,14 +8186,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -6971,7 +8204,7 @@
 
 
     // $ANTLR start "entryRuleTableElement"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2543:1: entryRuleTableElement returns [EObject current=null] : iv_ruleTableElement= ruleTableElement EOF ;
+    // InternalTableDSL.g:2878:1: entryRuleTableElement returns [EObject current=null] : iv_ruleTableElement= ruleTableElement EOF ;
     public final EObject entryRuleTableElement() throws RecognitionException {
         EObject current = null;
 
@@ -6979,13 +8212,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2544:2: (iv_ruleTableElement= ruleTableElement EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2545:2: iv_ruleTableElement= ruleTableElement EOF
+            // InternalTableDSL.g:2878:53: (iv_ruleTableElement= ruleTableElement EOF )
+            // InternalTableDSL.g:2879:2: iv_ruleTableElement= ruleTableElement EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableElementRule()); 
             }
-            pushFollow(FOLLOW_ruleTableElement_in_entryRuleTableElement6203);
+            pushFollow(FOLLOW_1);
             iv_ruleTableElement=ruleTableElement();
 
             state._fsp--;
@@ -6993,16 +8226,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableElement; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableElement6213); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -7011,47 +8244,50 @@
 
 
     // $ANTLR start "ruleTableElement"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2552:1: ruleTableElement returns [EObject current=null] : this_TableAxis_0= ruleTableAxis ;
+    // InternalTableDSL.g:2885:1: ruleTableElement returns [EObject current=null] : this_TableAxis_0= ruleTableAxis ;
     public final EObject ruleTableElement() throws RecognitionException {
         EObject current = null;
 
         EObject this_TableAxis_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2555:28: (this_TableAxis_0= ruleTableAxis )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2557:5: this_TableAxis_0= ruleTableAxis
+            // InternalTableDSL.g:2891:2: (this_TableAxis_0= ruleTableAxis )
+            // InternalTableDSL.g:2892:2: this_TableAxis_0= ruleTableAxis
             {
             if ( state.backtracking==0 ) {
-               
-                      newCompositeNode(grammarAccess.getTableElementAccess().getTableAxisParserRuleCall()); 
-                  
+
+              		newCompositeNode(grammarAccess.getTableElementAccess().getTableAxisParserRuleCall());
+              	
             }
-            pushFollow(FOLLOW_ruleTableAxis_in_ruleTableElement6259);
+            pushFollow(FOLLOW_2);
             this_TableAxis_0=ruleTableAxis();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
-               
-                      current = this_TableAxis_0; 
-                      afterParserOrEnumRuleCall();
-                  
+
+              		current = this_TableAxis_0;
+              		afterParserOrEnumRuleCall();
+              	
             }
 
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -7060,7 +8296,7 @@
 
 
     // $ANTLR start "entryRuleTableEvent"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2573:1: entryRuleTableEvent returns [EObject current=null] : iv_ruleTableEvent= ruleTableEvent EOF ;
+    // InternalTableDSL.g:2903:1: entryRuleTableEvent returns [EObject current=null] : iv_ruleTableEvent= ruleTableEvent EOF ;
     public final EObject entryRuleTableEvent() throws RecognitionException {
         EObject current = null;
 
@@ -7068,13 +8304,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2574:2: (iv_ruleTableEvent= ruleTableEvent EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2575:2: iv_ruleTableEvent= ruleTableEvent EOF
+            // InternalTableDSL.g:2903:51: (iv_ruleTableEvent= ruleTableEvent EOF )
+            // InternalTableDSL.g:2904:2: iv_ruleTableEvent= ruleTableEvent EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableEventRule()); 
             }
-            pushFollow(FOLLOW_ruleTableEvent_in_entryRuleTableEvent6293);
+            pushFollow(FOLLOW_1);
             iv_ruleTableEvent=ruleTableEvent();
 
             state._fsp--;
@@ -7082,16 +8318,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableEvent; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableEvent6303); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -7100,62 +8336,48 @@
 
 
     // $ANTLR start "ruleTableEvent"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2582:1: ruleTableEvent returns [EObject current=null] : (otherlv_0= 'broker' ( (lv_source_1_0= ruleTableValueElement ) ) otherlv_2= 'to' otherlv_3= '{' ( (lv_brokerDatamarts_4_0= ruleTableBrokerDatamart ) )* otherlv_5= '}' ) ;
+    // InternalTableDSL.g:2910:1: ruleTableEvent returns [EObject current=null] : ( (lv_source_0_0= ruleTableValueElement ) ) ;
     public final EObject ruleTableEvent() throws RecognitionException {
         EObject current = null;
 
-        Token otherlv_0=null;
-        Token otherlv_2=null;
-        Token otherlv_3=null;
-        Token otherlv_5=null;
-        EObject lv_source_1_0 = null;
-
-        EObject lv_brokerDatamarts_4_0 = null;
+        EObject lv_source_0_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2585:28: ( (otherlv_0= 'broker' ( (lv_source_1_0= ruleTableValueElement ) ) otherlv_2= 'to' otherlv_3= '{' ( (lv_brokerDatamarts_4_0= ruleTableBrokerDatamart ) )* otherlv_5= '}' ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2586:1: (otherlv_0= 'broker' ( (lv_source_1_0= ruleTableValueElement ) ) otherlv_2= 'to' otherlv_3= '{' ( (lv_brokerDatamarts_4_0= ruleTableBrokerDatamart ) )* otherlv_5= '}' )
+            // InternalTableDSL.g:2916:2: ( ( (lv_source_0_0= ruleTableValueElement ) ) )
+            // InternalTableDSL.g:2917:2: ( (lv_source_0_0= ruleTableValueElement ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2586:1: (otherlv_0= 'broker' ( (lv_source_1_0= ruleTableValueElement ) ) otherlv_2= 'to' otherlv_3= '{' ( (lv_brokerDatamarts_4_0= ruleTableBrokerDatamart ) )* otherlv_5= '}' )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2586:3: otherlv_0= 'broker' ( (lv_source_1_0= ruleTableValueElement ) ) otherlv_2= 'to' otherlv_3= '{' ( (lv_brokerDatamarts_4_0= ruleTableBrokerDatamart ) )* otherlv_5= '}'
+            // InternalTableDSL.g:2917:2: ( (lv_source_0_0= ruleTableValueElement ) )
+            // InternalTableDSL.g:2918:3: (lv_source_0_0= ruleTableValueElement )
             {
-            otherlv_0=(Token)match(input,58,FOLLOW_58_in_ruleTableEvent6340); if (state.failed) return current;
+            // InternalTableDSL.g:2918:3: (lv_source_0_0= ruleTableValueElement )
+            // InternalTableDSL.g:2919:4: lv_source_0_0= ruleTableValueElement
+            {
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableEventAccess().getBrokerKeyword_0());
-                  
+              				newCompositeNode(grammarAccess.getTableEventAccess().getSourceTableValueElementParserRuleCall_0());
+              			
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2590:1: ( (lv_source_1_0= ruleTableValueElement ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2591:1: (lv_source_1_0= ruleTableValueElement )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2591:1: (lv_source_1_0= ruleTableValueElement )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2592:3: lv_source_1_0= ruleTableValueElement
-            {
-            if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableEventAccess().getSourceTableValueElementParserRuleCall_1_0()); 
-              	    
-            }
-            pushFollow(FOLLOW_ruleTableValueElement_in_ruleTableEvent6361);
-            lv_source_1_0=ruleTableValueElement();
+            pushFollow(FOLLOW_2);
+            lv_source_0_0=ruleTableValueElement();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableEventRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"source",
-                      		lv_source_1_0, 
-                      		"TableValueElement");
-              	        afterParserOrEnumRuleCall();
-              	    
+              				if (current==null) {
+              					current = createModelElementForParent(grammarAccess.getTableEventRule());
+              				}
+              				set(
+              					current,
+              					"source",
+              					lv_source_0_0,
+              					"org.eclipse.osbp.xtext.table.TableDSL.TableValueElement");
+              				afterParserOrEnumRuleCall();
+              			
             }
 
             }
@@ -7163,92 +8385,20 @@
 
             }
 
-            otherlv_2=(Token)match(input,59,FOLLOW_59_in_ruleTableEvent6373); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-                  	newLeafNode(otherlv_2, grammarAccess.getTableEventAccess().getToKeyword_2());
-                  
-            }
-            otherlv_3=(Token)match(input,16,FOLLOW_16_in_ruleTableEvent6385); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-                  	newLeafNode(otherlv_3, grammarAccess.getTableEventAccess().getLeftCurlyBracketKeyword_3());
-                  
-            }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2616:1: ( (lv_brokerDatamarts_4_0= ruleTableBrokerDatamart ) )*
-            loop27:
-            do {
-                int alt27=2;
-                int LA27_0 = input.LA(1);
-
-                if ( (LA27_0==57) ) {
-                    alt27=1;
-                }
-
-
-                switch (alt27) {
-            	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2617:1: (lv_brokerDatamarts_4_0= ruleTableBrokerDatamart )
-            	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2617:1: (lv_brokerDatamarts_4_0= ruleTableBrokerDatamart )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2618:3: lv_brokerDatamarts_4_0= ruleTableBrokerDatamart
-            	    {
-            	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableEventAccess().getBrokerDatamartsTableBrokerDatamartParserRuleCall_4_0()); 
-            	      	    
-            	    }
-            	    pushFollow(FOLLOW_ruleTableBrokerDatamart_in_ruleTableEvent6406);
-            	    lv_brokerDatamarts_4_0=ruleTableBrokerDatamart();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableEventRule());
-            	      	        }
-            	             		add(
-            	             			current, 
-            	             			"brokerDatamarts",
-            	              		lv_brokerDatamarts_4_0, 
-            	              		"TableBrokerDatamart");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
-            	    }
-
-            	    }
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop27;
-                }
-            } while (true);
-
-            otherlv_5=(Token)match(input,17,FOLLOW_17_in_ruleTableEvent6419); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-                  	newLeafNode(otherlv_5, grammarAccess.getTableEventAccess().getRightCurlyBracketKeyword_5());
-                  
-            }
-
-            }
-
 
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -7256,234 +8406,8 @@
     // $ANTLR end "ruleTableEvent"
 
 
-    // $ANTLR start "entryRuleTableBrokerDatamart"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2646:1: entryRuleTableBrokerDatamart returns [EObject current=null] : iv_ruleTableBrokerDatamart= ruleTableBrokerDatamart EOF ;
-    public final EObject entryRuleTableBrokerDatamart() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleTableBrokerDatamart = null;
-
-
-        try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2647:2: (iv_ruleTableBrokerDatamart= ruleTableBrokerDatamart EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2648:2: iv_ruleTableBrokerDatamart= ruleTableBrokerDatamart EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getTableBrokerDatamartRule()); 
-            }
-            pushFollow(FOLLOW_ruleTableBrokerDatamart_in_entryRuleTableBrokerDatamart6455);
-            iv_ruleTableBrokerDatamart=ruleTableBrokerDatamart();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleTableBrokerDatamart; 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableBrokerDatamart6465); if (state.failed) return current;
-
-            }
-
-        }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
-                appendSkippedTokens();
-            } 
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleTableBrokerDatamart"
-
-
-    // $ANTLR start "ruleTableBrokerDatamart"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2655:1: ruleTableBrokerDatamart returns [EObject current=null] : (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= 'filter' ( (lv_filter_3_0= RULE_STRING ) ) ) | (otherlv_4= 'referenced' ( (otherlv_5= RULE_ID ) ) ) ) ) ;
-    public final EObject ruleTableBrokerDatamart() throws RecognitionException {
-        EObject current = null;
-
-        Token otherlv_0=null;
-        Token otherlv_1=null;
-        Token otherlv_2=null;
-        Token lv_filter_3_0=null;
-        Token otherlv_4=null;
-        Token otherlv_5=null;
-
-         enterRule(); 
-            
-        try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2658:28: ( (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= 'filter' ( (lv_filter_3_0= RULE_STRING ) ) ) | (otherlv_4= 'referenced' ( (otherlv_5= RULE_ID ) ) ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2659:1: (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= 'filter' ( (lv_filter_3_0= RULE_STRING ) ) ) | (otherlv_4= 'referenced' ( (otherlv_5= RULE_ID ) ) ) ) )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2659:1: (otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= 'filter' ( (lv_filter_3_0= RULE_STRING ) ) ) | (otherlv_4= 'referenced' ( (otherlv_5= RULE_ID ) ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2659:3: otherlv_0= 'datamart' ( (otherlv_1= RULE_ID ) ) ( (otherlv_2= 'filter' ( (lv_filter_3_0= RULE_STRING ) ) ) | (otherlv_4= 'referenced' ( (otherlv_5= RULE_ID ) ) ) )
-            {
-            otherlv_0=(Token)match(input,57,FOLLOW_57_in_ruleTableBrokerDatamart6502); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-                  	newLeafNode(otherlv_0, grammarAccess.getTableBrokerDatamartAccess().getDatamartKeyword_0());
-                  
-            }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2663:1: ( (otherlv_1= RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2664:1: (otherlv_1= RULE_ID )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2664:1: (otherlv_1= RULE_ID )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2665:3: otherlv_1= RULE_ID
-            {
-            if ( state.backtracking==0 ) {
-
-              			if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableBrokerDatamartRule());
-              	        }
-                      
-            }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableBrokerDatamart6522); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              		newLeafNode(otherlv_1, grammarAccess.getTableBrokerDatamartAccess().getDatamartDefDatamartDefinitionCrossReference_1_0()); 
-              	
-            }
-
-            }
-
-
-            }
-
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2676:2: ( (otherlv_2= 'filter' ( (lv_filter_3_0= RULE_STRING ) ) ) | (otherlv_4= 'referenced' ( (otherlv_5= RULE_ID ) ) ) )
-            int alt28=2;
-            int LA28_0 = input.LA(1);
-
-            if ( (LA28_0==60) ) {
-                alt28=1;
-            }
-            else if ( (LA28_0==61) ) {
-                alt28=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 28, 0, input);
-
-                throw nvae;
-            }
-            switch (alt28) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2676:3: (otherlv_2= 'filter' ( (lv_filter_3_0= RULE_STRING ) ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2676:3: (otherlv_2= 'filter' ( (lv_filter_3_0= RULE_STRING ) ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2676:5: otherlv_2= 'filter' ( (lv_filter_3_0= RULE_STRING ) )
-                    {
-                    otherlv_2=(Token)match(input,60,FOLLOW_60_in_ruleTableBrokerDatamart6536); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                          	newLeafNode(otherlv_2, grammarAccess.getTableBrokerDatamartAccess().getFilterKeyword_2_0_0());
-                          
-                    }
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2680:1: ( (lv_filter_3_0= RULE_STRING ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2681:1: (lv_filter_3_0= RULE_STRING )
-                    {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2681:1: (lv_filter_3_0= RULE_STRING )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2682:3: lv_filter_3_0= RULE_STRING
-                    {
-                    lv_filter_3_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTableBrokerDatamart6553); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      			newLeafNode(lv_filter_3_0, grammarAccess.getTableBrokerDatamartAccess().getFilterSTRINGTerminalRuleCall_2_0_1_0()); 
-                      		
-                    }
-                    if ( state.backtracking==0 ) {
-
-                      	        if (current==null) {
-                      	            current = createModelElement(grammarAccess.getTableBrokerDatamartRule());
-                      	        }
-                             		setWithLastConsumed(
-                             			current, 
-                             			"filter",
-                              		lv_filter_3_0, 
-                              		"STRING");
-                      	    
-                    }
-
-                    }
-
-
-                    }
-
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2699:6: (otherlv_4= 'referenced' ( (otherlv_5= RULE_ID ) ) )
-                    {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2699:6: (otherlv_4= 'referenced' ( (otherlv_5= RULE_ID ) ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2699:8: otherlv_4= 'referenced' ( (otherlv_5= RULE_ID ) )
-                    {
-                    otherlv_4=(Token)match(input,61,FOLLOW_61_in_ruleTableBrokerDatamart6578); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                          	newLeafNode(otherlv_4, grammarAccess.getTableBrokerDatamartAccess().getReferencedKeyword_2_1_0());
-                          
-                    }
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2703:1: ( (otherlv_5= RULE_ID ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2704:1: (otherlv_5= RULE_ID )
-                    {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2704:1: (otherlv_5= RULE_ID )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2705:3: otherlv_5= RULE_ID
-                    {
-                    if ( state.backtracking==0 ) {
-
-                      			if (current==null) {
-                      	            current = createModelElement(grammarAccess.getTableBrokerDatamartRule());
-                      	        }
-                              
-                    }
-                    otherlv_5=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableBrokerDatamart6598); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                      		newLeafNode(otherlv_5, grammarAccess.getTableBrokerDatamartAccess().getReferenceLEntityReferenceCrossReference_2_1_1_0()); 
-                      	
-                    }
-
-                    }
-
-
-                    }
-
-
-                    }
-
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-               leaveRule(); 
-            }
-        }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
-                appendSkippedTokens();
-            } 
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleTableBrokerDatamart"
-
-
     // $ANTLR start "entryRuleTableAxis"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2724:1: entryRuleTableAxis returns [EObject current=null] : iv_ruleTableAxis= ruleTableAxis EOF ;
+    // InternalTableDSL.g:2939:1: entryRuleTableAxis returns [EObject current=null] : iv_ruleTableAxis= ruleTableAxis EOF ;
     public final EObject entryRuleTableAxis() throws RecognitionException {
         EObject current = null;
 
@@ -7491,13 +8415,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2725:2: (iv_ruleTableAxis= ruleTableAxis EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2726:2: iv_ruleTableAxis= ruleTableAxis EOF
+            // InternalTableDSL.g:2939:50: (iv_ruleTableAxis= ruleTableAxis EOF )
+            // InternalTableDSL.g:2940:2: iv_ruleTableAxis= ruleTableAxis EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableAxisRule()); 
             }
-            pushFollow(FOLLOW_ruleTableAxis_in_entryRuleTableAxis6636);
+            pushFollow(FOLLOW_1);
             iv_ruleTableAxis=ruleTableAxis();
 
             state._fsp--;
@@ -7505,16 +8429,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableAxis; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableAxis6646); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -7523,7 +8447,7 @@
 
 
     // $ANTLR start "ruleTableAxis"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2733:1: ruleTableAxis returns [EObject current=null] : (otherlv_0= 'axis' ( (lv_axis_1_0= ruleAxisEnum ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) ) ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )? ( ( (lv_hasEvents_10_0= 'events' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )? ) ;
+    // InternalTableDSL.g:2946:1: ruleTableAxis returns [EObject current=null] : (otherlv_0= 'axis' ( (lv_axis_1_0= ruleAxisEnum ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) ) ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )? ( ( (lv_hasEvents_10_0= 'notifyOnSelect' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )? ) ;
     public final EObject ruleTableAxis() throws RecognitionException {
         EObject current = null;
 
@@ -7546,49 +8470,50 @@
         EObject lv_events_12_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2736:28: ( (otherlv_0= 'axis' ( (lv_axis_1_0= ruleAxisEnum ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) ) ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )? ( ( (lv_hasEvents_10_0= 'events' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )? ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2737:1: (otherlv_0= 'axis' ( (lv_axis_1_0= ruleAxisEnum ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) ) ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )? ( ( (lv_hasEvents_10_0= 'events' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )? )
+            // InternalTableDSL.g:2952:2: ( (otherlv_0= 'axis' ( (lv_axis_1_0= ruleAxisEnum ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) ) ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )? ( ( (lv_hasEvents_10_0= 'notifyOnSelect' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )? ) )
+            // InternalTableDSL.g:2953:2: (otherlv_0= 'axis' ( (lv_axis_1_0= ruleAxisEnum ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) ) ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )? ( ( (lv_hasEvents_10_0= 'notifyOnSelect' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )? )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2737:1: (otherlv_0= 'axis' ( (lv_axis_1_0= ruleAxisEnum ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) ) ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )? ( ( (lv_hasEvents_10_0= 'events' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2737:3: otherlv_0= 'axis' ( (lv_axis_1_0= ruleAxisEnum ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) ) ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )? ( ( (lv_hasEvents_10_0= 'events' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )?
+            // InternalTableDSL.g:2953:2: (otherlv_0= 'axis' ( (lv_axis_1_0= ruleAxisEnum ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) ) ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )? ( ( (lv_hasEvents_10_0= 'notifyOnSelect' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )? )
+            // InternalTableDSL.g:2954:3: otherlv_0= 'axis' ( (lv_axis_1_0= ruleAxisEnum ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) ) ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )? ( ( (lv_hasEvents_10_0= 'notifyOnSelect' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )?
             {
-            otherlv_0=(Token)match(input,62,FOLLOW_62_in_ruleTableAxis6683); if (state.failed) return current;
+            otherlv_0=(Token)match(input,63,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableAxisAccess().getAxisKeyword_0());
-                  
+              			newLeafNode(otherlv_0, grammarAccess.getTableAxisAccess().getAxisKeyword_0());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2741:1: ( (lv_axis_1_0= ruleAxisEnum ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2742:1: (lv_axis_1_0= ruleAxisEnum )
+            // InternalTableDSL.g:2958:3: ( (lv_axis_1_0= ruleAxisEnum ) )
+            // InternalTableDSL.g:2959:4: (lv_axis_1_0= ruleAxisEnum )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2742:1: (lv_axis_1_0= ruleAxisEnum )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2743:3: lv_axis_1_0= ruleAxisEnum
+            // InternalTableDSL.g:2959:4: (lv_axis_1_0= ruleAxisEnum )
+            // InternalTableDSL.g:2960:5: lv_axis_1_0= ruleAxisEnum
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableAxisAccess().getAxisAxisEnumEnumRuleCall_1_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableAxisAccess().getAxisAxisEnumEnumRuleCall_1_0());
+              				
             }
-            pushFollow(FOLLOW_ruleAxisEnum_in_ruleTableAxis6704);
+            pushFollow(FOLLOW_32);
             lv_axis_1_0=ruleAxisEnum();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableAxisRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"axis",
-                      		lv_axis_1_0, 
-                      		"AxisEnum");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableAxisRule());
+              					}
+              					set(
+              						current,
+              						"axis",
+              						lv_axis_1_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.AxisEnum");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -7596,74 +8521,74 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2759:2: ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2761:1: ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:2977:3: ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:2978:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2761:1: ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2762:2: ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* )
+            // InternalTableDSL.g:2978:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:2979:5: ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getTableAxisAccess().getUnorderedGroup_2());
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2765:2: ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2766:3: ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )*
+            // InternalTableDSL.g:2982:5: ( ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )* )
+            // InternalTableDSL.g:2983:6: ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )*
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2766:3: ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )*
-            loop29:
+            // InternalTableDSL.g:2983:6: ( ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) ) )*
+            loop27:
             do {
-                int alt29=3;
-                int LA29_0 = input.LA(1);
+                int alt27=3;
+                int LA27_0 = input.LA(1);
 
-                if ( LA29_0 ==63 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0) ) {
-                    alt29=1;
+                if ( LA27_0 == 64 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0) ) {
+                    alt27=1;
                 }
-                else if ( LA29_0 ==30 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1) ) {
-                    alt29=2;
+                else if ( LA27_0 == 33 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1) ) {
+                    alt27=2;
                 }
 
 
-                switch (alt29) {
+                switch (alt27) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2768:4: ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) )
+            	    // InternalTableDSL.g:2984:4: ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2768:4: ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2769:5: {...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) )
+            	    // InternalTableDSL.g:2984:4: ({...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) ) )
+            	    // InternalTableDSL.g:2985:5: {...}? => ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableAxis", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2769:106: ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2770:6: ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) )
+            	    // InternalTableDSL.g:2985:106: ( ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) ) )
+            	    // InternalTableDSL.g:2986:6: ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 0);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2773:6: ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2773:7: {...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) )
+            	    // InternalTableDSL.g:2989:9: ({...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) ) )
+            	    // InternalTableDSL.g:2989:10: {...}? => ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableAxis", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2773:16: ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2773:17: ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) )
+            	    // InternalTableDSL.g:2989:19: ( ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) ) )
+            	    // InternalTableDSL.g:2989:20: ( (lv_hasRowHeight_3_0= 'rowheight' ) ) ( (lv_rowHeight_4_0= ruleNumber ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2773:17: ( (lv_hasRowHeight_3_0= 'rowheight' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2774:1: (lv_hasRowHeight_3_0= 'rowheight' )
+            	    // InternalTableDSL.g:2989:20: ( (lv_hasRowHeight_3_0= 'rowheight' ) )
+            	    // InternalTableDSL.g:2990:10: (lv_hasRowHeight_3_0= 'rowheight' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2774:1: (lv_hasRowHeight_3_0= 'rowheight' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2775:3: lv_hasRowHeight_3_0= 'rowheight'
+            	    // InternalTableDSL.g:2990:10: (lv_hasRowHeight_3_0= 'rowheight' )
+            	    // InternalTableDSL.g:2991:11: lv_hasRowHeight_3_0= 'rowheight'
             	    {
-            	    lv_hasRowHeight_3_0=(Token)match(input,63,FOLLOW_63_in_ruleTableAxis6768); if (state.failed) return current;
+            	    lv_hasRowHeight_3_0=(Token)match(input,64,FOLLOW_14); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_hasRowHeight_3_0, grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0());
-            	          
+            	      											newLeafNode(lv_hasRowHeight_3_0, grammarAccess.getTableAxisAccess().getHasRowHeightRowheightKeyword_2_0_0_0());
+            	      										
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableAxisRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "hasRowHeight", true, "rowheight");
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableAxisRule());
+            	      											}
+            	      											setWithLastConsumed(current, "hasRowHeight", true, "rowheight");
+            	      										
             	    }
 
             	    }
@@ -7671,34 +8596,34 @@
 
             	    }
 
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2788:2: ( (lv_rowHeight_4_0= ruleNumber ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2789:1: (lv_rowHeight_4_0= ruleNumber )
+            	    // InternalTableDSL.g:3003:9: ( (lv_rowHeight_4_0= ruleNumber ) )
+            	    // InternalTableDSL.g:3004:10: (lv_rowHeight_4_0= ruleNumber )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2789:1: (lv_rowHeight_4_0= ruleNumber )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2790:3: lv_rowHeight_4_0= ruleNumber
+            	    // InternalTableDSL.g:3004:10: (lv_rowHeight_4_0= ruleNumber )
+            	    // InternalTableDSL.g:3005:11: lv_rowHeight_4_0= ruleNumber
             	    {
             	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableAxisAccess().getRowHeightNumberParserRuleCall_2_0_1_0()); 
-            	      	    
+
+            	      											newCompositeNode(grammarAccess.getTableAxisAccess().getRowHeightNumberParserRuleCall_2_0_1_0());
+            	      										
             	    }
-            	    pushFollow(FOLLOW_ruleNumber_in_ruleTableAxis6802);
+            	    pushFollow(FOLLOW_32);
             	    lv_rowHeight_4_0=ruleNumber();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableAxisRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"rowHeight",
-            	              		lv_rowHeight_4_0, 
-            	              		"Number");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElementForParent(grammarAccess.getTableAxisRule());
+            	      											}
+            	      											set(
+            	      												current,
+            	      												"rowHeight",
+            	      												lv_rowHeight_4_0,
+            	      												"org.eclipse.xtext.xbase.Xbase.Number");
+            	      											afterParserOrEnumRuleCall();
+            	      										
             	    }
 
             	    }
@@ -7723,54 +8648,54 @@
             	    }
             	    break;
             	case 2 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2813:4: ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) )
+            	    // InternalTableDSL.g:3028:4: ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2813:4: ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2814:5: {...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) )
+            	    // InternalTableDSL.g:3028:4: ({...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) ) )
+            	    // InternalTableDSL.g:3029:5: {...}? => ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableAxis", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2814:106: ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2815:6: ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) )
+            	    // InternalTableDSL.g:3029:106: ( ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) ) )
+            	    // InternalTableDSL.g:3030:6: ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableAxisAccess().getUnorderedGroup_2(), 1);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2818:6: ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2818:7: {...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) )
+            	    // InternalTableDSL.g:3033:9: ({...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) ) )
+            	    // InternalTableDSL.g:3033:10: {...}? => ( (lv_preOrder_5_0= ruleTablePreorder ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableAxis", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2818:16: ( (lv_preOrder_5_0= ruleTablePreorder ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2819:1: (lv_preOrder_5_0= ruleTablePreorder )
+            	    // InternalTableDSL.g:3033:19: ( (lv_preOrder_5_0= ruleTablePreorder ) )
+            	    // InternalTableDSL.g:3033:20: (lv_preOrder_5_0= ruleTablePreorder )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2819:1: (lv_preOrder_5_0= ruleTablePreorder )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2820:3: lv_preOrder_5_0= ruleTablePreorder
+            	    // InternalTableDSL.g:3033:20: (lv_preOrder_5_0= ruleTablePreorder )
+            	    // InternalTableDSL.g:3034:10: lv_preOrder_5_0= ruleTablePreorder
             	    {
             	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableAxisAccess().getPreOrderTablePreorderParserRuleCall_2_1_0()); 
-            	      	    
+
+            	      										newCompositeNode(grammarAccess.getTableAxisAccess().getPreOrderTablePreorderParserRuleCall_2_1_0());
+            	      									
             	    }
-            	    pushFollow(FOLLOW_ruleTablePreorder_in_ruleTableAxis6878);
+            	    pushFollow(FOLLOW_32);
             	    lv_preOrder_5_0=ruleTablePreorder();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableAxisRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"preOrder",
-            	              		lv_preOrder_5_0, 
-            	              		"TablePreorder");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElementForParent(grammarAccess.getTableAxisRule());
+            	      										}
+            	      										set(
+            	      											current,
+            	      											"preOrder",
+            	      											lv_preOrder_5_0,
+            	      											"org.eclipse.osbp.xtext.table.TableDSL.TablePreorder");
+            	      										afterParserOrEnumRuleCall();
+            	      									
             	    }
 
             	    }
@@ -7793,7 +8718,7 @@
             	    break;
 
             	default :
-            	    break loop29;
+            	    break loop27;
                 }
             } while (true);
 
@@ -7807,36 +8732,36 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2850:2: ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )?
-            int alt31=2;
-            int LA31_0 = input.LA(1);
+            // InternalTableDSL.g:3063:3: ( ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}' )?
+            int alt29=2;
+            int LA29_0 = input.LA(1);
 
-            if ( (LA31_0==64) ) {
-                alt31=1;
+            if ( (LA29_0==65) ) {
+                alt29=1;
             }
-            switch (alt31) {
+            switch (alt29) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2850:3: ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}'
+                    // InternalTableDSL.g:3064:4: ( (lv_hasDetails_6_0= 'details' ) ) otherlv_7= '{' ( (lv_values_8_0= ruleTableValue ) )* otherlv_9= '}'
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2850:3: ( (lv_hasDetails_6_0= 'details' ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2851:1: (lv_hasDetails_6_0= 'details' )
+                    // InternalTableDSL.g:3064:4: ( (lv_hasDetails_6_0= 'details' ) )
+                    // InternalTableDSL.g:3065:5: (lv_hasDetails_6_0= 'details' )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2851:1: (lv_hasDetails_6_0= 'details' )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2852:3: lv_hasDetails_6_0= 'details'
+                    // InternalTableDSL.g:3065:5: (lv_hasDetails_6_0= 'details' )
+                    // InternalTableDSL.g:3066:6: lv_hasDetails_6_0= 'details'
                     {
-                    lv_hasDetails_6_0=(Token)match(input,64,FOLLOW_64_in_ruleTableAxis6937); if (state.failed) return current;
+                    lv_hasDetails_6_0=(Token)match(input,65,FOLLOW_22); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                              newLeafNode(lv_hasDetails_6_0, grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0());
-                          
+                      						newLeafNode(lv_hasDetails_6_0, grammarAccess.getTableAxisAccess().getHasDetailsDetailsKeyword_3_0_0());
+                      					
                     }
                     if ( state.backtracking==0 ) {
 
-                      	        if (current==null) {
-                      	            current = createModelElement(grammarAccess.getTableAxisRule());
-                      	        }
-                             		setWithLastConsumed(current, "hasDetails", true, "details");
-                      	    
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getTableAxisRule());
+                      						}
+                      						setWithLastConsumed(current, "hasDetails", true, "details");
+                      					
                     }
 
                     }
@@ -7844,52 +8769,160 @@
 
                     }
 
-                    otherlv_7=(Token)match(input,16,FOLLOW_16_in_ruleTableAxis6962); if (state.failed) return current;
+                    otherlv_7=(Token)match(input,16,FOLLOW_33); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_7, grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_3_1());
-                          
+                      				newLeafNode(otherlv_7, grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_3_1());
+                      			
                     }
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2869:1: ( (lv_values_8_0= ruleTableValue ) )*
-                    loop30:
+                    // InternalTableDSL.g:3082:4: ( (lv_values_8_0= ruleTableValue ) )*
+                    loop28:
                     do {
-                        int alt30=2;
-                        int LA30_0 = input.LA(1);
+                        int alt28=2;
+                        int LA28_0 = input.LA(1);
 
-                        if ( (LA30_0==32) ) {
-                            alt30=1;
+                        if ( (LA28_0==35) ) {
+                            alt28=1;
                         }
 
 
-                        switch (alt30) {
+                        switch (alt28) {
                     	case 1 :
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2870:1: (lv_values_8_0= ruleTableValue )
+                    	    // InternalTableDSL.g:3083:5: (lv_values_8_0= ruleTableValue )
                     	    {
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2870:1: (lv_values_8_0= ruleTableValue )
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2871:3: lv_values_8_0= ruleTableValue
+                    	    // InternalTableDSL.g:3083:5: (lv_values_8_0= ruleTableValue )
+                    	    // InternalTableDSL.g:3084:6: lv_values_8_0= ruleTableValue
                     	    {
                     	    if ( state.backtracking==0 ) {
-                    	       
-                    	      	        newCompositeNode(grammarAccess.getTableAxisAccess().getValuesTableValueParserRuleCall_3_2_0()); 
-                    	      	    
+
+                    	      						newCompositeNode(grammarAccess.getTableAxisAccess().getValuesTableValueParserRuleCall_3_2_0());
+                    	      					
                     	    }
-                    	    pushFollow(FOLLOW_ruleTableValue_in_ruleTableAxis6983);
+                    	    pushFollow(FOLLOW_33);
                     	    lv_values_8_0=ruleTableValue();
 
                     	    state._fsp--;
                     	    if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
-                    	      	        if (current==null) {
-                    	      	            current = createModelElementForParent(grammarAccess.getTableAxisRule());
-                    	      	        }
-                    	             		add(
-                    	             			current, 
-                    	             			"values",
-                    	              		lv_values_8_0, 
-                    	              		"TableValue");
-                    	      	        afterParserOrEnumRuleCall();
-                    	      	    
+                    	      						if (current==null) {
+                    	      							current = createModelElementForParent(grammarAccess.getTableAxisRule());
+                    	      						}
+                    	      						add(
+                    	      							current,
+                    	      							"values",
+                    	      							lv_values_8_0,
+                    	      							"org.eclipse.osbp.xtext.table.TableDSL.TableValue");
+                    	      						afterParserOrEnumRuleCall();
+                    	      					
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop28;
+                        }
+                    } while (true);
+
+                    otherlv_9=(Token)match(input,17,FOLLOW_34); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_9, grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_3_3());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:3106:3: ( ( (lv_hasEvents_10_0= 'notifyOnSelect' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+
+            if ( (LA31_0==66) ) {
+                alt31=1;
+            }
+            switch (alt31) {
+                case 1 :
+                    // InternalTableDSL.g:3107:4: ( (lv_hasEvents_10_0= 'notifyOnSelect' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}'
+                    {
+                    // InternalTableDSL.g:3107:4: ( (lv_hasEvents_10_0= 'notifyOnSelect' ) )
+                    // InternalTableDSL.g:3108:5: (lv_hasEvents_10_0= 'notifyOnSelect' )
+                    {
+                    // InternalTableDSL.g:3108:5: (lv_hasEvents_10_0= 'notifyOnSelect' )
+                    // InternalTableDSL.g:3109:6: lv_hasEvents_10_0= 'notifyOnSelect'
+                    {
+                    lv_hasEvents_10_0=(Token)match(input,66,FOLLOW_22); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_hasEvents_10_0, grammarAccess.getTableAxisAccess().getHasEventsNotifyOnSelectKeyword_4_0_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getTableAxisRule());
+                      						}
+                      						setWithLastConsumed(current, "hasEvents", true, "notifyOnSelect");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_11=(Token)match(input,16,FOLLOW_35); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_11, grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_4_1());
+                      			
+                    }
+                    // InternalTableDSL.g:3125:4: ( (lv_events_12_0= ruleTableEvent ) )*
+                    loop30:
+                    do {
+                        int alt30=2;
+                        int LA30_0 = input.LA(1);
+
+                        if ( ((LA30_0>=47 && LA30_0<=55)) ) {
+                            alt30=1;
+                        }
+
+
+                        switch (alt30) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:3126:5: (lv_events_12_0= ruleTableEvent )
+                    	    {
+                    	    // InternalTableDSL.g:3126:5: (lv_events_12_0= ruleTableEvent )
+                    	    // InternalTableDSL.g:3127:6: lv_events_12_0= ruleTableEvent
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      						newCompositeNode(grammarAccess.getTableAxisAccess().getEventsTableEventParserRuleCall_4_2_0());
+                    	      					
+                    	    }
+                    	    pushFollow(FOLLOW_35);
+                    	    lv_events_12_0=ruleTableEvent();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      						if (current==null) {
+                    	      							current = createModelElementForParent(grammarAccess.getTableAxisRule());
+                    	      						}
+                    	      						add(
+                    	      							current,
+                    	      							"events",
+                    	      							lv_events_12_0,
+                    	      							"org.eclipse.osbp.xtext.table.TableDSL.TableEvent");
+                    	      						afterParserOrEnumRuleCall();
+                    	      					
                     	    }
 
                     	    }
@@ -7903,119 +8936,11 @@
                         }
                     } while (true);
 
-                    otherlv_9=(Token)match(input,17,FOLLOW_17_in_ruleTableAxis6996); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,17,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_9, grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_3_3());
-                          
-                    }
-
-                    }
-                    break;
-
-            }
-
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2891:3: ( ( (lv_hasEvents_10_0= 'events' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}' )?
-            int alt33=2;
-            int LA33_0 = input.LA(1);
-
-            if ( (LA33_0==65) ) {
-                alt33=1;
-            }
-            switch (alt33) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2891:4: ( (lv_hasEvents_10_0= 'events' ) ) otherlv_11= '{' ( (lv_events_12_0= ruleTableEvent ) )* otherlv_13= '}'
-                    {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2891:4: ( (lv_hasEvents_10_0= 'events' ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2892:1: (lv_hasEvents_10_0= 'events' )
-                    {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2892:1: (lv_hasEvents_10_0= 'events' )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2893:3: lv_hasEvents_10_0= 'events'
-                    {
-                    lv_hasEvents_10_0=(Token)match(input,65,FOLLOW_65_in_ruleTableAxis7017); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                              newLeafNode(lv_hasEvents_10_0, grammarAccess.getTableAxisAccess().getHasEventsEventsKeyword_4_0_0());
-                          
-                    }
-                    if ( state.backtracking==0 ) {
-
-                      	        if (current==null) {
-                      	            current = createModelElement(grammarAccess.getTableAxisRule());
-                      	        }
-                             		setWithLastConsumed(current, "hasEvents", true, "events");
-                      	    
-                    }
-
-                    }
-
-
-                    }
-
-                    otherlv_11=(Token)match(input,16,FOLLOW_16_in_ruleTableAxis7042); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                          	newLeafNode(otherlv_11, grammarAccess.getTableAxisAccess().getLeftCurlyBracketKeyword_4_1());
-                          
-                    }
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2910:1: ( (lv_events_12_0= ruleTableEvent ) )*
-                    loop32:
-                    do {
-                        int alt32=2;
-                        int LA32_0 = input.LA(1);
-
-                        if ( (LA32_0==58) ) {
-                            alt32=1;
-                        }
-
-
-                        switch (alt32) {
-                    	case 1 :
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2911:1: (lv_events_12_0= ruleTableEvent )
-                    	    {
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2911:1: (lv_events_12_0= ruleTableEvent )
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2912:3: lv_events_12_0= ruleTableEvent
-                    	    {
-                    	    if ( state.backtracking==0 ) {
-                    	       
-                    	      	        newCompositeNode(grammarAccess.getTableAxisAccess().getEventsTableEventParserRuleCall_4_2_0()); 
-                    	      	    
-                    	    }
-                    	    pushFollow(FOLLOW_ruleTableEvent_in_ruleTableAxis7063);
-                    	    lv_events_12_0=ruleTableEvent();
-
-                    	    state._fsp--;
-                    	    if (state.failed) return current;
-                    	    if ( state.backtracking==0 ) {
-
-                    	      	        if (current==null) {
-                    	      	            current = createModelElementForParent(grammarAccess.getTableAxisRule());
-                    	      	        }
-                    	             		add(
-                    	             			current, 
-                    	             			"events",
-                    	              		lv_events_12_0, 
-                    	              		"TableEvent");
-                    	      	        afterParserOrEnumRuleCall();
-                    	      	    
-                    	    }
-
-                    	    }
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop32;
-                        }
-                    } while (true);
-
-                    otherlv_13=(Token)match(input,17,FOLLOW_17_in_ruleTableAxis7076); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                          	newLeafNode(otherlv_13, grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_4_3());
-                          
+                      				newLeafNode(otherlv_13, grammarAccess.getTableAxisAccess().getRightCurlyBracketKeyword_4_3());
+                      			
                     }
 
                     }
@@ -8030,14 +8955,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8046,7 +8973,7 @@
 
 
     // $ANTLR start "entryRuleTableRangeElement"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2940:1: entryRuleTableRangeElement returns [EObject current=null] : iv_ruleTableRangeElement= ruleTableRangeElement EOF ;
+    // InternalTableDSL.g:3153:1: entryRuleTableRangeElement returns [EObject current=null] : iv_ruleTableRangeElement= ruleTableRangeElement EOF ;
     public final EObject entryRuleTableRangeElement() throws RecognitionException {
         EObject current = null;
 
@@ -8054,13 +8981,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2941:2: (iv_ruleTableRangeElement= ruleTableRangeElement EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2942:2: iv_ruleTableRangeElement= ruleTableRangeElement EOF
+            // InternalTableDSL.g:3153:58: (iv_ruleTableRangeElement= ruleTableRangeElement EOF )
+            // InternalTableDSL.g:3154:2: iv_ruleTableRangeElement= ruleTableRangeElement EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableRangeElementRule()); 
             }
-            pushFollow(FOLLOW_ruleTableRangeElement_in_entryRuleTableRangeElement7114);
+            pushFollow(FOLLOW_1);
             iv_ruleTableRangeElement=ruleTableRangeElement();
 
             state._fsp--;
@@ -8068,16 +8995,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableRangeElement; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableRangeElement7124); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8086,7 +9013,7 @@
 
 
     // $ANTLR start "ruleTableRangeElement"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2949:1: ruleTableRangeElement returns [EObject current=null] : (this_TableTextColor_0= ruleTableTextColor | this_TableCellColor_1= ruleTableCellColor | this_TableIcon_2= ruleTableIcon | this_TableTrend_3= ruleTableTrend | this_TableTooltip_4= ruleTableTooltip ) ;
+    // InternalTableDSL.g:3160:1: ruleTableRangeElement returns [EObject current=null] : (this_TableTextColor_0= ruleTableTextColor | this_TableCellColor_1= ruleTableCellColor | this_TableIcon_2= ruleTableIcon | this_TableTrend_3= ruleTableTrend | this_TableTooltip_4= ruleTableTooltip ) ;
     public final EObject ruleTableRangeElement() throws RecognitionException {
         EObject current = null;
 
@@ -8101,155 +9028,156 @@
         EObject this_TableTooltip_4 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2952:28: ( (this_TableTextColor_0= ruleTableTextColor | this_TableCellColor_1= ruleTableCellColor | this_TableIcon_2= ruleTableIcon | this_TableTrend_3= ruleTableTrend | this_TableTooltip_4= ruleTableTooltip ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2953:1: (this_TableTextColor_0= ruleTableTextColor | this_TableCellColor_1= ruleTableCellColor | this_TableIcon_2= ruleTableIcon | this_TableTrend_3= ruleTableTrend | this_TableTooltip_4= ruleTableTooltip )
+            // InternalTableDSL.g:3166:2: ( (this_TableTextColor_0= ruleTableTextColor | this_TableCellColor_1= ruleTableCellColor | this_TableIcon_2= ruleTableIcon | this_TableTrend_3= ruleTableTrend | this_TableTooltip_4= ruleTableTooltip ) )
+            // InternalTableDSL.g:3167:2: (this_TableTextColor_0= ruleTableTextColor | this_TableCellColor_1= ruleTableCellColor | this_TableIcon_2= ruleTableIcon | this_TableTrend_3= ruleTableTrend | this_TableTooltip_4= ruleTableTooltip )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2953:1: (this_TableTextColor_0= ruleTableTextColor | this_TableCellColor_1= ruleTableCellColor | this_TableIcon_2= ruleTableIcon | this_TableTrend_3= ruleTableTrend | this_TableTooltip_4= ruleTableTooltip )
-            int alt34=5;
+            // InternalTableDSL.g:3167:2: (this_TableTextColor_0= ruleTableTextColor | this_TableCellColor_1= ruleTableCellColor | this_TableIcon_2= ruleTableIcon | this_TableTrend_3= ruleTableTrend | this_TableTooltip_4= ruleTableTooltip )
+            int alt32=5;
             switch ( input.LA(1) ) {
-            case 66:
-                {
-                alt34=1;
-                }
-                break;
             case 67:
                 {
-                alt34=2;
-                }
-                break;
-            case 34:
-                {
-                alt34=3;
+                alt32=1;
                 }
                 break;
             case 68:
                 {
-                alt34=4;
+                alt32=2;
+                }
+                break;
+            case 37:
+                {
+                alt32=3;
                 }
                 break;
             case 69:
                 {
-                alt34=5;
+                alt32=4;
+                }
+                break;
+            case 70:
+                {
+                alt32=5;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 34, 0, input);
+                    new NoViableAltException("", 32, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt34) {
+            switch (alt32) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2954:5: this_TableTextColor_0= ruleTableTextColor
+                    // InternalTableDSL.g:3168:3: this_TableTextColor_0= ruleTableTextColor
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTextColorParserRuleCall_0()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTextColorParserRuleCall_0());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableTextColor_in_ruleTableRangeElement7171);
+                    pushFollow(FOLLOW_2);
                     this_TableTextColor_0=ruleTableTextColor();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableTextColor_0; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableTextColor_0;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 2 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2964:5: this_TableCellColor_1= ruleTableCellColor
+                    // InternalTableDSL.g:3177:3: this_TableCellColor_1= ruleTableCellColor
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableCellColorParserRuleCall_1()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableCellColorParserRuleCall_1());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableCellColor_in_ruleTableRangeElement7198);
+                    pushFollow(FOLLOW_2);
                     this_TableCellColor_1=ruleTableCellColor();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableCellColor_1; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableCellColor_1;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 3 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2974:5: this_TableIcon_2= ruleTableIcon
+                    // InternalTableDSL.g:3186:3: this_TableIcon_2= ruleTableIcon
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableIconParserRuleCall_2()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableIconParserRuleCall_2());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableIcon_in_ruleTableRangeElement7225);
+                    pushFollow(FOLLOW_2);
                     this_TableIcon_2=ruleTableIcon();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableIcon_2; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableIcon_2;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 4 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2984:5: this_TableTrend_3= ruleTableTrend
+                    // InternalTableDSL.g:3195:3: this_TableTrend_3= ruleTableTrend
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTrendParserRuleCall_3()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTrendParserRuleCall_3());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableTrend_in_ruleTableRangeElement7252);
+                    pushFollow(FOLLOW_2);
                     this_TableTrend_3=ruleTableTrend();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableTrend_3; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableTrend_3;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
                     break;
                 case 5 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:2994:5: this_TableTooltip_4= ruleTableTooltip
+                    // InternalTableDSL.g:3204:3: this_TableTooltip_4= ruleTableTooltip
                     {
                     if ( state.backtracking==0 ) {
-                       
-                              newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTooltipParserRuleCall_4()); 
-                          
+
+                      			newCompositeNode(grammarAccess.getTableRangeElementAccess().getTableTooltipParserRuleCall_4());
+                      		
                     }
-                    pushFollow(FOLLOW_ruleTableTooltip_in_ruleTableRangeElement7279);
+                    pushFollow(FOLLOW_2);
                     this_TableTooltip_4=ruleTableTooltip();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
-                       
-                              current = this_TableTooltip_4; 
-                              afterParserOrEnumRuleCall();
-                          
+
+                      			current = this_TableTooltip_4;
+                      			afterParserOrEnumRuleCall();
+                      		
                     }
 
                     }
@@ -8261,14 +9189,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8277,7 +9207,7 @@
 
 
     // $ANTLR start "entryRuleTableTextColor"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3010:1: entryRuleTableTextColor returns [EObject current=null] : iv_ruleTableTextColor= ruleTableTextColor EOF ;
+    // InternalTableDSL.g:3216:1: entryRuleTableTextColor returns [EObject current=null] : iv_ruleTableTextColor= ruleTableTextColor EOF ;
     public final EObject entryRuleTableTextColor() throws RecognitionException {
         EObject current = null;
 
@@ -8285,13 +9215,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3011:2: (iv_ruleTableTextColor= ruleTableTextColor EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3012:2: iv_ruleTableTextColor= ruleTableTextColor EOF
+            // InternalTableDSL.g:3216:55: (iv_ruleTableTextColor= ruleTableTextColor EOF )
+            // InternalTableDSL.g:3217:2: iv_ruleTableTextColor= ruleTableTextColor EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableTextColorRule()); 
             }
-            pushFollow(FOLLOW_ruleTableTextColor_in_entryRuleTableTextColor7314);
+            pushFollow(FOLLOW_1);
             iv_ruleTableTextColor=ruleTableTextColor();
 
             state._fsp--;
@@ -8299,16 +9229,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableTextColor; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableTextColor7324); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8317,51 +9247,52 @@
 
 
     // $ANTLR start "ruleTableTextColor"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3019:1: ruleTableTextColor returns [EObject current=null] : (otherlv_0= 'textcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) ;
+    // InternalTableDSL.g:3223:1: ruleTableTextColor returns [EObject current=null] : (otherlv_0= 'textcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) ;
     public final EObject ruleTableTextColor() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_0=null;
         Token lv_rgb_1_0=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3022:28: ( (otherlv_0= 'textcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3023:1: (otherlv_0= 'textcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:3229:2: ( (otherlv_0= 'textcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) )
+            // InternalTableDSL.g:3230:2: (otherlv_0= 'textcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3023:1: (otherlv_0= 'textcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3023:3: otherlv_0= 'textcolor' ( (lv_rgb_1_0= RULE_STRING ) )
+            // InternalTableDSL.g:3230:2: (otherlv_0= 'textcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:3231:3: otherlv_0= 'textcolor' ( (lv_rgb_1_0= RULE_STRING ) )
             {
-            otherlv_0=(Token)match(input,66,FOLLOW_66_in_ruleTableTextColor7361); if (state.failed) return current;
+            otherlv_0=(Token)match(input,67,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableTextColorAccess().getTextcolorKeyword_0());
-                  
-            }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3027:1: ( (lv_rgb_1_0= RULE_STRING ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3028:1: (lv_rgb_1_0= RULE_STRING )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3028:1: (lv_rgb_1_0= RULE_STRING )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3029:3: lv_rgb_1_0= RULE_STRING
-            {
-            lv_rgb_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTableTextColor7378); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(lv_rgb_1_0, grammarAccess.getTableTextColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
+              			newLeafNode(otherlv_0, grammarAccess.getTableTextColorAccess().getTextcolorKeyword_0());
               		
             }
+            // InternalTableDSL.g:3235:3: ( (lv_rgb_1_0= RULE_STRING ) )
+            // InternalTableDSL.g:3236:4: (lv_rgb_1_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:3236:4: (lv_rgb_1_0= RULE_STRING )
+            // InternalTableDSL.g:3237:5: lv_rgb_1_0= RULE_STRING
+            {
+            lv_rgb_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableTextColorRule());
-              	        }
-                     		setWithLastConsumed(
-                     			current, 
-                     			"rgb",
-                      		lv_rgb_1_0, 
-                      		"STRING");
-              	    
+              					newLeafNode(lv_rgb_1_0, grammarAccess.getTableTextColorAccess().getRgbSTRINGTerminalRuleCall_1_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableTextColorRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"rgb",
+              						lv_rgb_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
             }
 
             }
@@ -8376,14 +9307,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8392,7 +9325,7 @@
 
 
     // $ANTLR start "entryRuleTableCellColor"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3053:1: entryRuleTableCellColor returns [EObject current=null] : iv_ruleTableCellColor= ruleTableCellColor EOF ;
+    // InternalTableDSL.g:3257:1: entryRuleTableCellColor returns [EObject current=null] : iv_ruleTableCellColor= ruleTableCellColor EOF ;
     public final EObject entryRuleTableCellColor() throws RecognitionException {
         EObject current = null;
 
@@ -8400,13 +9333,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3054:2: (iv_ruleTableCellColor= ruleTableCellColor EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3055:2: iv_ruleTableCellColor= ruleTableCellColor EOF
+            // InternalTableDSL.g:3257:55: (iv_ruleTableCellColor= ruleTableCellColor EOF )
+            // InternalTableDSL.g:3258:2: iv_ruleTableCellColor= ruleTableCellColor EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableCellColorRule()); 
             }
-            pushFollow(FOLLOW_ruleTableCellColor_in_entryRuleTableCellColor7419);
+            pushFollow(FOLLOW_1);
             iv_ruleTableCellColor=ruleTableCellColor();
 
             state._fsp--;
@@ -8414,16 +9347,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableCellColor; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableCellColor7429); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8432,51 +9365,52 @@
 
 
     // $ANTLR start "ruleTableCellColor"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3062:1: ruleTableCellColor returns [EObject current=null] : (otherlv_0= 'cellcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) ;
+    // InternalTableDSL.g:3264:1: ruleTableCellColor returns [EObject current=null] : (otherlv_0= 'cellcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) ;
     public final EObject ruleTableCellColor() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_0=null;
         Token lv_rgb_1_0=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3065:28: ( (otherlv_0= 'cellcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3066:1: (otherlv_0= 'cellcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:3270:2: ( (otherlv_0= 'cellcolor' ( (lv_rgb_1_0= RULE_STRING ) ) ) )
+            // InternalTableDSL.g:3271:2: (otherlv_0= 'cellcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3066:1: (otherlv_0= 'cellcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3066:3: otherlv_0= 'cellcolor' ( (lv_rgb_1_0= RULE_STRING ) )
+            // InternalTableDSL.g:3271:2: (otherlv_0= 'cellcolor' ( (lv_rgb_1_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:3272:3: otherlv_0= 'cellcolor' ( (lv_rgb_1_0= RULE_STRING ) )
             {
-            otherlv_0=(Token)match(input,67,FOLLOW_67_in_ruleTableCellColor7466); if (state.failed) return current;
+            otherlv_0=(Token)match(input,68,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableCellColorAccess().getCellcolorKeyword_0());
-                  
-            }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3070:1: ( (lv_rgb_1_0= RULE_STRING ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3071:1: (lv_rgb_1_0= RULE_STRING )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3071:1: (lv_rgb_1_0= RULE_STRING )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3072:3: lv_rgb_1_0= RULE_STRING
-            {
-            lv_rgb_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTableCellColor7483); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(lv_rgb_1_0, grammarAccess.getTableCellColorAccess().getRgbSTRINGTerminalRuleCall_1_0()); 
+              			newLeafNode(otherlv_0, grammarAccess.getTableCellColorAccess().getCellcolorKeyword_0());
               		
             }
+            // InternalTableDSL.g:3276:3: ( (lv_rgb_1_0= RULE_STRING ) )
+            // InternalTableDSL.g:3277:4: (lv_rgb_1_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:3277:4: (lv_rgb_1_0= RULE_STRING )
+            // InternalTableDSL.g:3278:5: lv_rgb_1_0= RULE_STRING
+            {
+            lv_rgb_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableCellColorRule());
-              	        }
-                     		setWithLastConsumed(
-                     			current, 
-                     			"rgb",
-                      		lv_rgb_1_0, 
-                      		"STRING");
-              	    
+              					newLeafNode(lv_rgb_1_0, grammarAccess.getTableCellColorAccess().getRgbSTRINGTerminalRuleCall_1_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableCellColorRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"rgb",
+              						lv_rgb_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
             }
 
             }
@@ -8491,14 +9425,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8507,7 +9443,7 @@
 
 
     // $ANTLR start "entryRuleTableIcon"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3096:1: entryRuleTableIcon returns [EObject current=null] : iv_ruleTableIcon= ruleTableIcon EOF ;
+    // InternalTableDSL.g:3298:1: entryRuleTableIcon returns [EObject current=null] : iv_ruleTableIcon= ruleTableIcon EOF ;
     public final EObject entryRuleTableIcon() throws RecognitionException {
         EObject current = null;
 
@@ -8515,13 +9451,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3097:2: (iv_ruleTableIcon= ruleTableIcon EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3098:2: iv_ruleTableIcon= ruleTableIcon EOF
+            // InternalTableDSL.g:3298:50: (iv_ruleTableIcon= ruleTableIcon EOF )
+            // InternalTableDSL.g:3299:2: iv_ruleTableIcon= ruleTableIcon EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableIconRule()); 
             }
-            pushFollow(FOLLOW_ruleTableIcon_in_entryRuleTableIcon7524);
+            pushFollow(FOLLOW_1);
             iv_ruleTableIcon=ruleTableIcon();
 
             state._fsp--;
@@ -8529,16 +9465,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableIcon; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableIcon7534); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8547,51 +9483,52 @@
 
 
     // $ANTLR start "ruleTableIcon"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3105:1: ruleTableIcon returns [EObject current=null] : (otherlv_0= 'icon' ( (lv_icon_1_0= RULE_STRING ) ) ) ;
+    // InternalTableDSL.g:3305:1: ruleTableIcon returns [EObject current=null] : (otherlv_0= 'icon' ( (lv_icon_1_0= RULE_STRING ) ) ) ;
     public final EObject ruleTableIcon() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_0=null;
         Token lv_icon_1_0=null;
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3108:28: ( (otherlv_0= 'icon' ( (lv_icon_1_0= RULE_STRING ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3109:1: (otherlv_0= 'icon' ( (lv_icon_1_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:3311:2: ( (otherlv_0= 'icon' ( (lv_icon_1_0= RULE_STRING ) ) ) )
+            // InternalTableDSL.g:3312:2: (otherlv_0= 'icon' ( (lv_icon_1_0= RULE_STRING ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3109:1: (otherlv_0= 'icon' ( (lv_icon_1_0= RULE_STRING ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3109:3: otherlv_0= 'icon' ( (lv_icon_1_0= RULE_STRING ) )
+            // InternalTableDSL.g:3312:2: (otherlv_0= 'icon' ( (lv_icon_1_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:3313:3: otherlv_0= 'icon' ( (lv_icon_1_0= RULE_STRING ) )
             {
-            otherlv_0=(Token)match(input,34,FOLLOW_34_in_ruleTableIcon7571); if (state.failed) return current;
+            otherlv_0=(Token)match(input,37,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableIconAccess().getIconKeyword_0());
-                  
-            }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3113:1: ( (lv_icon_1_0= RULE_STRING ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3114:1: (lv_icon_1_0= RULE_STRING )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3114:1: (lv_icon_1_0= RULE_STRING )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3115:3: lv_icon_1_0= RULE_STRING
-            {
-            lv_icon_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTableIcon7588); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			newLeafNode(lv_icon_1_0, grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0()); 
+              			newLeafNode(otherlv_0, grammarAccess.getTableIconAccess().getIconKeyword_0());
               		
             }
+            // InternalTableDSL.g:3317:3: ( (lv_icon_1_0= RULE_STRING ) )
+            // InternalTableDSL.g:3318:4: (lv_icon_1_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:3318:4: (lv_icon_1_0= RULE_STRING )
+            // InternalTableDSL.g:3319:5: lv_icon_1_0= RULE_STRING
+            {
+            lv_icon_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableIconRule());
-              	        }
-                     		setWithLastConsumed(
-                     			current, 
-                     			"icon",
-                      		lv_icon_1_0, 
-                      		"STRING");
-              	    
+              					newLeafNode(lv_icon_1_0, grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableIconRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"icon",
+              						lv_icon_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
             }
 
             }
@@ -8606,14 +9543,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8622,7 +9561,7 @@
 
 
     // $ANTLR start "entryRuleTableTrend"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3139:1: entryRuleTableTrend returns [EObject current=null] : iv_ruleTableTrend= ruleTableTrend EOF ;
+    // InternalTableDSL.g:3339:1: entryRuleTableTrend returns [EObject current=null] : iv_ruleTableTrend= ruleTableTrend EOF ;
     public final EObject entryRuleTableTrend() throws RecognitionException {
         EObject current = null;
 
@@ -8630,13 +9569,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3140:2: (iv_ruleTableTrend= ruleTableTrend EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3141:2: iv_ruleTableTrend= ruleTableTrend EOF
+            // InternalTableDSL.g:3339:51: (iv_ruleTableTrend= ruleTableTrend EOF )
+            // InternalTableDSL.g:3340:2: iv_ruleTableTrend= ruleTableTrend EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableTrendRule()); 
             }
-            pushFollow(FOLLOW_ruleTableTrend_in_entryRuleTableTrend7629);
+            pushFollow(FOLLOW_1);
             iv_ruleTableTrend=ruleTableTrend();
 
             state._fsp--;
@@ -8644,16 +9583,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableTrend; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableTrend7639); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8662,7 +9601,7 @@
 
 
     // $ANTLR start "ruleTableTrend"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3148:1: ruleTableTrend returns [EObject current=null] : (otherlv_0= 'trend' ( (lv_icon_1_0= ruleTrendIconEnum ) ) ) ;
+    // InternalTableDSL.g:3346:1: ruleTableTrend returns [EObject current=null] : (otherlv_0= 'trend' ( (lv_icon_1_0= ruleTrendIconEnum ) ) ) ;
     public final EObject ruleTableTrend() throws RecognitionException {
         EObject current = null;
 
@@ -8670,49 +9609,50 @@
         Enumerator lv_icon_1_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3151:28: ( (otherlv_0= 'trend' ( (lv_icon_1_0= ruleTrendIconEnum ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3152:1: (otherlv_0= 'trend' ( (lv_icon_1_0= ruleTrendIconEnum ) ) )
+            // InternalTableDSL.g:3352:2: ( (otherlv_0= 'trend' ( (lv_icon_1_0= ruleTrendIconEnum ) ) ) )
+            // InternalTableDSL.g:3353:2: (otherlv_0= 'trend' ( (lv_icon_1_0= ruleTrendIconEnum ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3152:1: (otherlv_0= 'trend' ( (lv_icon_1_0= ruleTrendIconEnum ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3152:3: otherlv_0= 'trend' ( (lv_icon_1_0= ruleTrendIconEnum ) )
+            // InternalTableDSL.g:3353:2: (otherlv_0= 'trend' ( (lv_icon_1_0= ruleTrendIconEnum ) ) )
+            // InternalTableDSL.g:3354:3: otherlv_0= 'trend' ( (lv_icon_1_0= ruleTrendIconEnum ) )
             {
-            otherlv_0=(Token)match(input,68,FOLLOW_68_in_ruleTableTrend7676); if (state.failed) return current;
+            otherlv_0=(Token)match(input,69,FOLLOW_36); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableTrendAccess().getTrendKeyword_0());
-                  
+              			newLeafNode(otherlv_0, grammarAccess.getTableTrendAccess().getTrendKeyword_0());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3156:1: ( (lv_icon_1_0= ruleTrendIconEnum ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3157:1: (lv_icon_1_0= ruleTrendIconEnum )
+            // InternalTableDSL.g:3358:3: ( (lv_icon_1_0= ruleTrendIconEnum ) )
+            // InternalTableDSL.g:3359:4: (lv_icon_1_0= ruleTrendIconEnum )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3157:1: (lv_icon_1_0= ruleTrendIconEnum )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3158:3: lv_icon_1_0= ruleTrendIconEnum
+            // InternalTableDSL.g:3359:4: (lv_icon_1_0= ruleTrendIconEnum )
+            // InternalTableDSL.g:3360:5: lv_icon_1_0= ruleTrendIconEnum
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableTrendAccess().getIconTrendIconEnumEnumRuleCall_1_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableTrendAccess().getIconTrendIconEnumEnumRuleCall_1_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTrendIconEnum_in_ruleTableTrend7697);
+            pushFollow(FOLLOW_2);
             lv_icon_1_0=ruleTrendIconEnum();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableTrendRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"icon",
-                      		lv_icon_1_0, 
-                      		"TrendIconEnum");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableTrendRule());
+              					}
+              					set(
+              						current,
+              						"icon",
+              						lv_icon_1_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TrendIconEnum");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -8727,14 +9667,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8743,7 +9685,7 @@
 
 
     // $ANTLR start "entryRuleTableTooltip"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3182:1: entryRuleTableTooltip returns [EObject current=null] : iv_ruleTableTooltip= ruleTableTooltip EOF ;
+    // InternalTableDSL.g:3381:1: entryRuleTableTooltip returns [EObject current=null] : iv_ruleTableTooltip= ruleTableTooltip EOF ;
     public final EObject entryRuleTableTooltip() throws RecognitionException {
         EObject current = null;
 
@@ -8751,13 +9693,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3183:2: (iv_ruleTableTooltip= ruleTableTooltip EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3184:2: iv_ruleTableTooltip= ruleTableTooltip EOF
+            // InternalTableDSL.g:3381:53: (iv_ruleTableTooltip= ruleTableTooltip EOF )
+            // InternalTableDSL.g:3382:2: iv_ruleTableTooltip= ruleTableTooltip EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableTooltipRule()); 
             }
-            pushFollow(FOLLOW_ruleTableTooltip_in_entryRuleTableTooltip7733);
+            pushFollow(FOLLOW_1);
             iv_ruleTableTooltip=ruleTableTooltip();
 
             state._fsp--;
@@ -8765,16 +9707,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableTooltip; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableTooltip7743); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8783,7 +9725,7 @@
 
 
     // $ANTLR start "ruleTableTooltip"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3191:1: ruleTableTooltip returns [EObject current=null] : (otherlv_0= 'tooltip' ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) ) ) ;
+    // InternalTableDSL.g:3388:1: ruleTableTooltip returns [EObject current=null] : (otherlv_0= 'tooltip' ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) ) ) ;
     public final EObject ruleTableTooltip() throws RecognitionException {
         EObject current = null;
 
@@ -8791,49 +9733,50 @@
         AntlrDatatypeRuleToken lv_tooltip_1_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3194:28: ( (otherlv_0= 'tooltip' ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3195:1: (otherlv_0= 'tooltip' ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) ) )
+            // InternalTableDSL.g:3394:2: ( (otherlv_0= 'tooltip' ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) ) ) )
+            // InternalTableDSL.g:3395:2: (otherlv_0= 'tooltip' ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3195:1: (otherlv_0= 'tooltip' ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3195:3: otherlv_0= 'tooltip' ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) )
+            // InternalTableDSL.g:3395:2: (otherlv_0= 'tooltip' ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) ) )
+            // InternalTableDSL.g:3396:3: otherlv_0= 'tooltip' ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) )
             {
-            otherlv_0=(Token)match(input,69,FOLLOW_69_in_ruleTableTooltip7780); if (state.failed) return current;
+            otherlv_0=(Token)match(input,70,FOLLOW_8); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_0, grammarAccess.getTableTooltipAccess().getTooltipKeyword_0());
-                  
+              			newLeafNode(otherlv_0, grammarAccess.getTableTooltipAccess().getTooltipKeyword_0());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3199:1: ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3200:1: (lv_tooltip_1_0= ruleTRANSLATABLESTRING )
+            // InternalTableDSL.g:3400:3: ( (lv_tooltip_1_0= ruleTRANSLATABLESTRING ) )
+            // InternalTableDSL.g:3401:4: (lv_tooltip_1_0= ruleTRANSLATABLESTRING )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3200:1: (lv_tooltip_1_0= ruleTRANSLATABLESTRING )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3201:3: lv_tooltip_1_0= ruleTRANSLATABLESTRING
+            // InternalTableDSL.g:3401:4: (lv_tooltip_1_0= ruleTRANSLATABLESTRING )
+            // InternalTableDSL.g:3402:5: lv_tooltip_1_0= ruleTRANSLATABLESTRING
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableTooltipAccess().getTooltipTRANSLATABLESTRINGParserRuleCall_1_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getTableTooltipAccess().getTooltipTRANSLATABLESTRINGParserRuleCall_1_0());
+              				
             }
-            pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_ruleTableTooltip7801);
+            pushFollow(FOLLOW_2);
             lv_tooltip_1_0=ruleTRANSLATABLESTRING();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableTooltipRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"tooltip",
-                      		lv_tooltip_1_0, 
-                      		"TRANSLATABLESTRING");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTableTooltipRule());
+              					}
+              					set(
+              						current,
+              						"tooltip",
+              						lv_tooltip_1_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.TRANSLATABLESTRING");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -8848,14 +9791,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -8863,129 +9808,8 @@
     // $ANTLR end "ruleTableTooltip"
 
 
-    // $ANTLR start "entryRuleTableImport"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3225:1: entryRuleTableImport returns [EObject current=null] : iv_ruleTableImport= ruleTableImport EOF ;
-    public final EObject entryRuleTableImport() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleTableImport = null;
-
-
-        try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3226:2: (iv_ruleTableImport= ruleTableImport EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3227:2: iv_ruleTableImport= ruleTableImport EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getTableImportRule()); 
-            }
-            pushFollow(FOLLOW_ruleTableImport_in_entryRuleTableImport7837);
-            iv_ruleTableImport=ruleTableImport();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleTableImport; 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableImport7847); if (state.failed) return current;
-
-            }
-
-        }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
-                appendSkippedTokens();
-            } 
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleTableImport"
-
-
-    // $ANTLR start "ruleTableImport"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3234:1: ruleTableImport returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleTableQualifiedNameWithWildCard ) ) ) ;
-    public final EObject ruleTableImport() throws RecognitionException {
-        EObject current = null;
-
-        Token otherlv_0=null;
-        AntlrDatatypeRuleToken lv_importedNamespace_1_0 = null;
-
-
-         enterRule(); 
-            
-        try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3237:28: ( (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleTableQualifiedNameWithWildCard ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3238:1: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleTableQualifiedNameWithWildCard ) ) )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3238:1: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleTableQualifiedNameWithWildCard ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3238:3: otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleTableQualifiedNameWithWildCard ) )
-            {
-            otherlv_0=(Token)match(input,70,FOLLOW_70_in_ruleTableImport7884); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-                  	newLeafNode(otherlv_0, grammarAccess.getTableImportAccess().getImportKeyword_0());
-                  
-            }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3242:1: ( (lv_importedNamespace_1_0= ruleTableQualifiedNameWithWildCard ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3243:1: (lv_importedNamespace_1_0= ruleTableQualifiedNameWithWildCard )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3243:1: (lv_importedNamespace_1_0= ruleTableQualifiedNameWithWildCard )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3244:3: lv_importedNamespace_1_0= ruleTableQualifiedNameWithWildCard
-            {
-            if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getTableImportAccess().getImportedNamespaceTableQualifiedNameWithWildCardParserRuleCall_1_0()); 
-              	    
-            }
-            pushFollow(FOLLOW_ruleTableQualifiedNameWithWildCard_in_ruleTableImport7905);
-            lv_importedNamespace_1_0=ruleTableQualifiedNameWithWildCard();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getTableImportRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"importedNamespace",
-                      		lv_importedNamespace_1_0, 
-                      		"TableQualifiedNameWithWildCard");
-              	        afterParserOrEnumRuleCall();
-              	    
-            }
-
-            }
-
-
-            }
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-               leaveRule(); 
-            }
-        }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
-                appendSkippedTokens();
-            } 
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleTableImport"
-
-
     // $ANTLR start "entryRuleTableGrid"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3268:1: entryRuleTableGrid returns [EObject current=null] : iv_ruleTableGrid= ruleTableGrid EOF ;
+    // InternalTableDSL.g:3423:1: entryRuleTableGrid returns [EObject current=null] : iv_ruleTableGrid= ruleTableGrid EOF ;
     public final EObject entryRuleTableGrid() throws RecognitionException {
         EObject current = null;
 
@@ -8993,13 +9817,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3269:2: (iv_ruleTableGrid= ruleTableGrid EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3270:2: iv_ruleTableGrid= ruleTableGrid EOF
+            // InternalTableDSL.g:3423:50: (iv_ruleTableGrid= ruleTableGrid EOF )
+            // InternalTableDSL.g:3424:2: iv_ruleTableGrid= ruleTableGrid EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTableGridRule()); 
             }
-            pushFollow(FOLLOW_ruleTableGrid_in_entryRuleTableGrid7941);
+            pushFollow(FOLLOW_1);
             iv_ruleTableGrid=ruleTableGrid();
 
             state._fsp--;
@@ -9007,16 +9831,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleTableGrid; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableGrid7951); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -9025,7 +9849,7 @@
 
 
     // $ANTLR start "ruleTableGrid"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3277:1: ruleTableGrid returns [EObject current=null] : ( () otherlv_1= 'grid' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )? ) ;
+    // InternalTableDSL.g:3430:1: ruleTableGrid returns [EObject current=null] : ( () otherlv_1= 'grid' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )? ) ;
     public final EObject ruleTableGrid() throws RecognitionException {
         EObject current = null;
 
@@ -9045,99 +9869,100 @@
         EObject lv_source_14_0 = null;
 
 
-         enterRule(); 
-            
+
+        	enterRule();
+
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3280:28: ( ( () otherlv_1= 'grid' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )? ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3281:1: ( () otherlv_1= 'grid' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )? )
+            // InternalTableDSL.g:3436:2: ( ( () otherlv_1= 'grid' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )? ) )
+            // InternalTableDSL.g:3437:2: ( () otherlv_1= 'grid' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )? )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3281:1: ( () otherlv_1= 'grid' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3281:2: () otherlv_1= 'grid' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )?
+            // InternalTableDSL.g:3437:2: ( () otherlv_1= 'grid' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )? )
+            // InternalTableDSL.g:3438:3: () otherlv_1= 'grid' ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) ) ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) ) (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )?
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3281:2: ()
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3282:5: 
+            // InternalTableDSL.g:3438:3: ()
+            // InternalTableDSL.g:3439:4: 
             {
             if ( state.backtracking==0 ) {
 
-                      current = forceCreateModelElement(
-                          grammarAccess.getTableGridAccess().getTableGridAction_0(),
-                          current);
-                  
+              				current = forceCreateModelElement(
+              					grammarAccess.getTableGridAccess().getTableGridAction_0(),
+              					current);
+              			
             }
 
             }
 
-            otherlv_1=(Token)match(input,71,FOLLOW_71_in_ruleTableGrid7997); if (state.failed) return current;
+            otherlv_1=(Token)match(input,71,FOLLOW_37); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getTableGridAccess().getGridKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getTableGridAccess().getGridKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3291:1: ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3293:1: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:3449:3: ( ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:3450:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3293:1: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3294:2: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:3450:4: ( ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:3451:5: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getTableGridAccess().getUnorderedGroup_2());
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3297:2: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3298:3: ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )*
+            // InternalTableDSL.g:3454:5: ( ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:3455:6: ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )*
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3298:3: ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )*
-            loop35:
+            // InternalTableDSL.g:3455:6: ( ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) ) )*
+            loop33:
             do {
-                int alt35=3;
-                int LA35_0 = input.LA(1);
+                int alt33=3;
+                int LA33_0 = input.LA(1);
 
-                if ( LA35_0 ==23 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0) ) {
-                    alt35=1;
+                if ( LA33_0 == 72 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0) ) {
+                    alt33=1;
                 }
-                else if ( LA35_0 ==24 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1) ) {
-                    alt35=2;
+                else if ( LA33_0 == 73 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1) ) {
+                    alt33=2;
                 }
 
 
-                switch (alt35) {
+                switch (alt33) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3300:4: ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) )
+            	    // InternalTableDSL.g:3456:4: ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3300:4: ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3301:5: {...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) )
+            	    // InternalTableDSL.g:3456:4: ({...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) ) )
+            	    // InternalTableDSL.g:3457:5: {...}? => ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3301:106: ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3302:6: ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) )
+            	    // InternalTableDSL.g:3457:106: ( ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) ) )
+            	    // InternalTableDSL.g:3458:6: ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 0);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3305:6: ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3305:7: {...}? => ( (lv_selectalways_3_0= 'selectalways' ) )
+            	    // InternalTableDSL.g:3461:9: ({...}? => ( (lv_selectalways_3_0= 'selectalways' ) ) )
+            	    // InternalTableDSL.g:3461:10: {...}? => ( (lv_selectalways_3_0= 'selectalways' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3305:16: ( (lv_selectalways_3_0= 'selectalways' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3306:1: (lv_selectalways_3_0= 'selectalways' )
+            	    // InternalTableDSL.g:3461:19: ( (lv_selectalways_3_0= 'selectalways' ) )
+            	    // InternalTableDSL.g:3461:20: (lv_selectalways_3_0= 'selectalways' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3306:1: (lv_selectalways_3_0= 'selectalways' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3307:3: lv_selectalways_3_0= 'selectalways'
+            	    // InternalTableDSL.g:3461:20: (lv_selectalways_3_0= 'selectalways' )
+            	    // InternalTableDSL.g:3462:10: lv_selectalways_3_0= 'selectalways'
             	    {
-            	    lv_selectalways_3_0=(Token)match(input,23,FOLLOW_23_in_ruleTableGrid8060); if (state.failed) return current;
+            	    lv_selectalways_3_0=(Token)match(input,72,FOLLOW_37); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_selectalways_3_0, grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0());
-            	          
+            	      										newLeafNode(lv_selectalways_3_0, grammarAccess.getTableGridAccess().getSelectalwaysSelectalwaysKeyword_2_0_0());
+            	      									
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableGridRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "selectalways", true, "selectalways");
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableGridRule());
+            	      										}
+            	      										setWithLastConsumed(current, "selectalways", true, "selectalways");
+            	      									
             	    }
 
             	    }
@@ -9159,63 +9984,63 @@
             	    }
             	    break;
             	case 2 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3327:4: ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) )
+            	    // InternalTableDSL.g:3479:4: ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3327:4: ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3328:5: {...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) )
+            	    // InternalTableDSL.g:3479:4: ({...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) ) )
+            	    // InternalTableDSL.g:3480:5: {...}? => ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3328:106: ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3329:6: ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) )
+            	    // InternalTableDSL.g:3480:106: ( ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) ) )
+            	    // InternalTableDSL.g:3481:6: ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_2(), 1);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3332:6: ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3332:7: {...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) )
+            	    // InternalTableDSL.g:3484:9: ({...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) ) )
+            	    // InternalTableDSL.g:3484:10: {...}? => (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3332:16: (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3332:18: otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) )
+            	    // InternalTableDSL.g:3484:19: (otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) ) )
+            	    // InternalTableDSL.g:3484:20: otherlv_4= 'rowheader' ( (lv_headerMode_5_0= ruleRowHeaderMode ) )
             	    {
-            	    otherlv_4=(Token)match(input,24,FOLLOW_24_in_ruleTableGrid8140); if (state.failed) return current;
+            	    otherlv_4=(Token)match(input,73,FOLLOW_13); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_4, grammarAccess.getTableGridAccess().getRowheaderKeyword_2_1_0());
-            	          
+            	      									newLeafNode(otherlv_4, grammarAccess.getTableGridAccess().getRowheaderKeyword_2_1_0());
+            	      								
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3336:1: ( (lv_headerMode_5_0= ruleRowHeaderMode ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3337:1: (lv_headerMode_5_0= ruleRowHeaderMode )
+            	    // InternalTableDSL.g:3488:9: ( (lv_headerMode_5_0= ruleRowHeaderMode ) )
+            	    // InternalTableDSL.g:3489:10: (lv_headerMode_5_0= ruleRowHeaderMode )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3337:1: (lv_headerMode_5_0= ruleRowHeaderMode )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3338:3: lv_headerMode_5_0= ruleRowHeaderMode
+            	    // InternalTableDSL.g:3489:10: (lv_headerMode_5_0= ruleRowHeaderMode )
+            	    // InternalTableDSL.g:3490:11: lv_headerMode_5_0= ruleRowHeaderMode
             	    {
             	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableGridAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0()); 
-            	      	    
+
+            	      											newCompositeNode(grammarAccess.getTableGridAccess().getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0());
+            	      										
             	    }
-            	    pushFollow(FOLLOW_ruleRowHeaderMode_in_ruleTableGrid8161);
+            	    pushFollow(FOLLOW_37);
             	    lv_headerMode_5_0=ruleRowHeaderMode();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableGridRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"headerMode",
-            	              		lv_headerMode_5_0, 
-            	              		"RowHeaderMode");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElementForParent(grammarAccess.getTableGridRule());
+            	      											}
+            	      											set(
+            	      												current,
+            	      												"headerMode",
+            	      												lv_headerMode_5_0,
+            	      												"org.eclipse.osbp.xtext.table.TableDSL.RowHeaderMode");
+            	      											afterParserOrEnumRuleCall();
+            	      										
             	    }
 
             	    }
@@ -9241,7 +10066,7 @@
             	    break;
 
             	default :
-            	    break loop35;
+            	    break loop33;
                 }
             } while (true);
 
@@ -9255,80 +10080,80 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3368:2: ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3370:1: ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:3520:3: ( ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) ) )
+            // InternalTableDSL.g:3521:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3370:1: ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3371:2: ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:3521:4: ( ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* ) )
+            // InternalTableDSL.g:3522:5: ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* )
             {
             getUnorderedGroupHelper().enter(grammarAccess.getTableGridAccess().getUnorderedGroup_3());
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3374:2: ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3375:3: ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )*
+            // InternalTableDSL.g:3525:5: ( ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )* )
+            // InternalTableDSL.g:3526:6: ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )*
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3375:3: ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )*
-            loop36:
+            // InternalTableDSL.g:3526:6: ( ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) ) )*
+            loop34:
             do {
-                int alt36=5;
-                int LA36_0 = input.LA(1);
+                int alt34=5;
+                int LA34_0 = input.LA(1);
 
-                if ( LA36_0 ==25 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0) ) {
-                    alt36=1;
+                if ( LA34_0 == 26 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0) ) {
+                    alt34=1;
                 }
-                else if ( LA36_0 ==26 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1) ) {
-                    alt36=2;
+                else if ( LA34_0 == 27 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1) ) {
+                    alt34=2;
                 }
-                else if ( LA36_0 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2) ) {
-                    alt36=3;
+                else if ( LA34_0 == 28 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2) ) {
+                    alt34=3;
                 }
-                else if ( LA36_0 ==28 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3) ) {
-                    alt36=4;
+                else if ( LA34_0 == 29 && getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3) ) {
+                    alt34=4;
                 }
 
 
-                switch (alt36) {
+                switch (alt34) {
             	case 1 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3377:4: ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) )
+            	    // InternalTableDSL.g:3527:4: ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3377:4: ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3378:5: {...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) )
+            	    // InternalTableDSL.g:3527:4: ({...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) ) )
+            	    // InternalTableDSL.g:3528:5: {...}? => ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3378:106: ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3379:6: ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) )
+            	    // InternalTableDSL.g:3528:106: ( ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) ) )
+            	    // InternalTableDSL.g:3529:6: ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 0);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3382:6: ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3382:7: {...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) )
+            	    // InternalTableDSL.g:3532:9: ({...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) ) )
+            	    // InternalTableDSL.g:3532:10: {...}? => ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3382:16: ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3382:17: ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) )
+            	    // InternalTableDSL.g:3532:19: ( ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) ) )
+            	    // InternalTableDSL.g:3532:20: ( (lv_polling_7_0= 'polling' ) ) ( (lv_pollingTime_8_0= ruleNumber ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3382:17: ( (lv_polling_7_0= 'polling' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3383:1: (lv_polling_7_0= 'polling' )
+            	    // InternalTableDSL.g:3532:20: ( (lv_polling_7_0= 'polling' ) )
+            	    // InternalTableDSL.g:3533:10: (lv_polling_7_0= 'polling' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3383:1: (lv_polling_7_0= 'polling' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3384:3: lv_polling_7_0= 'polling'
+            	    // InternalTableDSL.g:3533:10: (lv_polling_7_0= 'polling' )
+            	    // InternalTableDSL.g:3534:11: lv_polling_7_0= 'polling'
             	    {
-            	    lv_polling_7_0=(Token)match(input,25,FOLLOW_25_in_ruleTableGrid8266); if (state.failed) return current;
+            	    lv_polling_7_0=(Token)match(input,26,FOLLOW_14); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_polling_7_0, grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0());
-            	          
+            	      											newLeafNode(lv_polling_7_0, grammarAccess.getTableGridAccess().getPollingPollingKeyword_3_0_0_0());
+            	      										
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableGridRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "polling", true, "polling");
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableGridRule());
+            	      											}
+            	      											setWithLastConsumed(current, "polling", true, "polling");
+            	      										
             	    }
 
             	    }
@@ -9336,34 +10161,34 @@
 
             	    }
 
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3397:2: ( (lv_pollingTime_8_0= ruleNumber ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3398:1: (lv_pollingTime_8_0= ruleNumber )
+            	    // InternalTableDSL.g:3546:9: ( (lv_pollingTime_8_0= ruleNumber ) )
+            	    // InternalTableDSL.g:3547:10: (lv_pollingTime_8_0= ruleNumber )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3398:1: (lv_pollingTime_8_0= ruleNumber )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3399:3: lv_pollingTime_8_0= ruleNumber
+            	    // InternalTableDSL.g:3547:10: (lv_pollingTime_8_0= ruleNumber )
+            	    // InternalTableDSL.g:3548:11: lv_pollingTime_8_0= ruleNumber
             	    {
             	    if ( state.backtracking==0 ) {
-            	       
-            	      	        newCompositeNode(grammarAccess.getTableGridAccess().getPollingTimeNumberParserRuleCall_3_0_1_0()); 
-            	      	    
+
+            	      											newCompositeNode(grammarAccess.getTableGridAccess().getPollingTimeNumberParserRuleCall_3_0_1_0());
+            	      										
             	    }
-            	    pushFollow(FOLLOW_ruleNumber_in_ruleTableGrid8300);
+            	    pushFollow(FOLLOW_38);
             	    lv_pollingTime_8_0=ruleNumber();
 
             	    state._fsp--;
             	    if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElementForParent(grammarAccess.getTableGridRule());
-            	      	        }
-            	             		set(
-            	             			current, 
-            	             			"pollingTime",
-            	              		lv_pollingTime_8_0, 
-            	              		"Number");
-            	      	        afterParserOrEnumRuleCall();
-            	      	    
+            	      											if (current==null) {
+            	      												current = createModelElementForParent(grammarAccess.getTableGridRule());
+            	      											}
+            	      											set(
+            	      												current,
+            	      												"pollingTime",
+            	      												lv_pollingTime_8_0,
+            	      												"org.eclipse.xtext.xbase.Xbase.Number");
+            	      											afterParserOrEnumRuleCall();
+            	      										
             	    }
 
             	    }
@@ -9388,45 +10213,45 @@
             	    }
             	    break;
             	case 2 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3422:4: ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) )
+            	    // InternalTableDSL.g:3571:4: ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3422:4: ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3423:5: {...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) )
+            	    // InternalTableDSL.g:3571:4: ({...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) ) )
+            	    // InternalTableDSL.g:3572:5: {...}? => ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3423:106: ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3424:6: ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) )
+            	    // InternalTableDSL.g:3572:106: ( ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) ) )
+            	    // InternalTableDSL.g:3573:6: ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 1);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3427:6: ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3427:7: {...}? => ( (lv_filtering_9_0= 'filtering' ) )
+            	    // InternalTableDSL.g:3576:9: ({...}? => ( (lv_filtering_9_0= 'filtering' ) ) )
+            	    // InternalTableDSL.g:3576:10: {...}? => ( (lv_filtering_9_0= 'filtering' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3427:16: ( (lv_filtering_9_0= 'filtering' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3428:1: (lv_filtering_9_0= 'filtering' )
+            	    // InternalTableDSL.g:3576:19: ( (lv_filtering_9_0= 'filtering' ) )
+            	    // InternalTableDSL.g:3576:20: (lv_filtering_9_0= 'filtering' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3428:1: (lv_filtering_9_0= 'filtering' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3429:3: lv_filtering_9_0= 'filtering'
+            	    // InternalTableDSL.g:3576:20: (lv_filtering_9_0= 'filtering' )
+            	    // InternalTableDSL.g:3577:10: lv_filtering_9_0= 'filtering'
             	    {
-            	    lv_filtering_9_0=(Token)match(input,26,FOLLOW_26_in_ruleTableGrid8373); if (state.failed) return current;
+            	    lv_filtering_9_0=(Token)match(input,27,FOLLOW_38); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_filtering_9_0, grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0());
-            	          
+            	      										newLeafNode(lv_filtering_9_0, grammarAccess.getTableGridAccess().getFilteringFilteringKeyword_3_1_0());
+            	      									
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableGridRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "filtering", true, "filtering");
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableGridRule());
+            	      										}
+            	      										setWithLastConsumed(current, "filtering", true, "filtering");
+            	      									
             	    }
 
             	    }
@@ -9448,45 +10273,45 @@
             	    }
             	    break;
             	case 3 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3449:4: ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) )
+            	    // InternalTableDSL.g:3594:4: ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3449:4: ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3450:5: {...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) )
+            	    // InternalTableDSL.g:3594:4: ({...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) ) )
+            	    // InternalTableDSL.g:3595:5: {...}? => ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3450:106: ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3451:6: ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) )
+            	    // InternalTableDSL.g:3595:106: ( ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) ) )
+            	    // InternalTableDSL.g:3596:6: ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 2);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3454:6: ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3454:7: {...}? => ( (lv_embedded_10_0= 'embedded' ) )
+            	    // InternalTableDSL.g:3599:9: ({...}? => ( (lv_embedded_10_0= 'embedded' ) ) )
+            	    // InternalTableDSL.g:3599:10: {...}? => ( (lv_embedded_10_0= 'embedded' ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3454:16: ( (lv_embedded_10_0= 'embedded' ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3455:1: (lv_embedded_10_0= 'embedded' )
+            	    // InternalTableDSL.g:3599:19: ( (lv_embedded_10_0= 'embedded' ) )
+            	    // InternalTableDSL.g:3599:20: (lv_embedded_10_0= 'embedded' )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3455:1: (lv_embedded_10_0= 'embedded' )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3456:3: lv_embedded_10_0= 'embedded'
+            	    // InternalTableDSL.g:3599:20: (lv_embedded_10_0= 'embedded' )
+            	    // InternalTableDSL.g:3600:10: lv_embedded_10_0= 'embedded'
             	    {
-            	    lv_embedded_10_0=(Token)match(input,27,FOLLOW_27_in_ruleTableGrid8458); if (state.failed) return current;
+            	    lv_embedded_10_0=(Token)match(input,28,FOLLOW_38); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	              newLeafNode(lv_embedded_10_0, grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0());
-            	          
+            	      										newLeafNode(lv_embedded_10_0, grammarAccess.getTableGridAccess().getEmbeddedEmbeddedKeyword_3_2_0());
+            	      									
             	    }
             	    if ( state.backtracking==0 ) {
 
-            	      	        if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableGridRule());
-            	      	        }
-            	             		setWithLastConsumed(current, "embedded", true, "embedded");
-            	      	    
+            	      										if (current==null) {
+            	      											current = createModelElement(grammarAccess.getTableGridRule());
+            	      										}
+            	      										setWithLastConsumed(current, "embedded", true, "embedded");
+            	      									
             	    }
 
             	    }
@@ -9508,53 +10333,53 @@
             	    }
             	    break;
             	case 4 :
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3476:4: ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) )
+            	    // InternalTableDSL.g:3617:4: ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3476:4: ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3477:5: {...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) )
+            	    // InternalTableDSL.g:3617:4: ({...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) ) )
+            	    // InternalTableDSL.g:3618:5: {...}? => ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) )
             	    {
             	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "getUnorderedGroupHelper().canSelect(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3)");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3477:106: ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3478:6: ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) )
+            	    // InternalTableDSL.g:3618:106: ( ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) ) )
+            	    // InternalTableDSL.g:3619:6: ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) )
             	    {
             	    getUnorderedGroupHelper().select(grammarAccess.getTableGridAccess().getUnorderedGroup_3(), 3);
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3481:6: ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3481:7: {...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) )
+            	    // InternalTableDSL.g:3622:9: ({...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) ) )
+            	    // InternalTableDSL.g:3622:10: {...}? => (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) )
             	    {
             	    if ( !((true)) ) {
             	        if (state.backtracking>0) {state.failed=true; return current;}
             	        throw new FailedPredicateException(input, "ruleTableGrid", "true");
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3481:16: (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3481:18: otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) )
+            	    // InternalTableDSL.g:3622:19: (otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) ) )
+            	    // InternalTableDSL.g:3622:20: otherlv_11= 'toolbar' ( (otherlv_12= RULE_ID ) )
             	    {
-            	    otherlv_11=(Token)match(input,28,FOLLOW_28_in_ruleTableGrid8538); if (state.failed) return current;
+            	    otherlv_11=(Token)match(input,29,FOLLOW_4); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	          	newLeafNode(otherlv_11, grammarAccess.getTableGridAccess().getToolbarKeyword_3_3_0());
-            	          
+            	      									newLeafNode(otherlv_11, grammarAccess.getTableGridAccess().getToolbarKeyword_3_3_0());
+            	      								
             	    }
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3485:1: ( (otherlv_12= RULE_ID ) )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3486:1: (otherlv_12= RULE_ID )
+            	    // InternalTableDSL.g:3626:9: ( (otherlv_12= RULE_ID ) )
+            	    // InternalTableDSL.g:3627:10: (otherlv_12= RULE_ID )
             	    {
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3486:1: (otherlv_12= RULE_ID )
-            	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3487:3: otherlv_12= RULE_ID
+            	    // InternalTableDSL.g:3627:10: (otherlv_12= RULE_ID )
+            	    // InternalTableDSL.g:3628:11: otherlv_12= RULE_ID
             	    {
             	    if ( state.backtracking==0 ) {
 
-            	      			if (current==null) {
-            	      	            current = createModelElement(grammarAccess.getTableGridRule());
-            	      	        }
-            	              
+            	      											if (current==null) {
+            	      												current = createModelElement(grammarAccess.getTableGridRule());
+            	      											}
+            	      										
             	    }
-            	    otherlv_12=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableGrid8558); if (state.failed) return current;
+            	    otherlv_12=(Token)match(input,RULE_ID,FOLLOW_38); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
-            	      		newLeafNode(otherlv_12, grammarAccess.getTableGridAccess().getToolbarActionToolbarCrossReference_3_3_1_0()); 
-            	      	
+            	      											newLeafNode(otherlv_12, grammarAccess.getTableGridAccess().getToolbarActionToolbarCrossReference_3_3_1_0());
+            	      										
             	    }
 
             	    }
@@ -9580,7 +10405,7 @@
             	    break;
 
             	default :
-            	    break loop36;
+            	    break loop34;
                 }
             } while (true);
 
@@ -9594,51 +10419,51 @@
 
             }
 
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3512:2: (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )?
-            int alt37=2;
-            int LA37_0 = input.LA(1);
+            // InternalTableDSL.g:3652:3: (otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) ) )?
+            int alt35=2;
+            int LA35_0 = input.LA(1);
 
-            if ( (LA37_0==29) ) {
-                alt37=1;
+            if ( (LA35_0==30) ) {
+                alt35=1;
             }
-            switch (alt37) {
+            switch (alt35) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3512:4: otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) )
+                    // InternalTableDSL.g:3653:4: otherlv_13= 'using' ( (lv_source_14_0= ruleTableDtoDatasource ) )
                     {
-                    otherlv_13=(Token)match(input,29,FOLLOW_29_in_ruleTableGrid8612); if (state.failed) return current;
+                    otherlv_13=(Token)match(input,30,FOLLOW_39); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                          	newLeafNode(otherlv_13, grammarAccess.getTableGridAccess().getUsingKeyword_4_0());
-                          
+                      				newLeafNode(otherlv_13, grammarAccess.getTableGridAccess().getUsingKeyword_4_0());
+                      			
                     }
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3516:1: ( (lv_source_14_0= ruleTableDtoDatasource ) )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3517:1: (lv_source_14_0= ruleTableDtoDatasource )
+                    // InternalTableDSL.g:3657:4: ( (lv_source_14_0= ruleTableDtoDatasource ) )
+                    // InternalTableDSL.g:3658:5: (lv_source_14_0= ruleTableDtoDatasource )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3517:1: (lv_source_14_0= ruleTableDtoDatasource )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3518:3: lv_source_14_0= ruleTableDtoDatasource
+                    // InternalTableDSL.g:3658:5: (lv_source_14_0= ruleTableDtoDatasource )
+                    // InternalTableDSL.g:3659:6: lv_source_14_0= ruleTableDtoDatasource
                     {
                     if ( state.backtracking==0 ) {
-                       
-                      	        newCompositeNode(grammarAccess.getTableGridAccess().getSourceTableDtoDatasourceParserRuleCall_4_1_0()); 
-                      	    
+
+                      						newCompositeNode(grammarAccess.getTableGridAccess().getSourceTableDtoDatasourceParserRuleCall_4_1_0());
+                      					
                     }
-                    pushFollow(FOLLOW_ruleTableDtoDatasource_in_ruleTableGrid8633);
+                    pushFollow(FOLLOW_2);
                     lv_source_14_0=ruleTableDtoDatasource();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      	        if (current==null) {
-                      	            current = createModelElementForParent(grammarAccess.getTableGridRule());
-                      	        }
-                             		set(
-                             			current, 
-                             			"source",
-                              		lv_source_14_0, 
-                              		"TableDtoDatasource");
-                      	        afterParserOrEnumRuleCall();
-                      	    
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getTableGridRule());
+                      						}
+                      						set(
+                      							current,
+                      							"source",
+                      							lv_source_14_0,
+                      							"org.eclipse.osbp.xtext.table.TableDSL.TableDtoDatasource");
+                      						afterParserOrEnumRuleCall();
+                      					
                     }
 
                     }
@@ -9659,14 +10484,16 @@
             }
 
             if ( state.backtracking==0 ) {
-               leaveRule(); 
+
+              	leaveRule();
+
             }
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -9674,204 +10501,8 @@
     // $ANTLR end "ruleTableGrid"
 
 
-    // $ANTLR start "entryRuleTableDtoDatasource"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3542:1: entryRuleTableDtoDatasource returns [EObject current=null] : iv_ruleTableDtoDatasource= ruleTableDtoDatasource EOF ;
-    public final EObject entryRuleTableDtoDatasource() throws RecognitionException {
-        EObject current = null;
-
-        EObject iv_ruleTableDtoDatasource = null;
-
-
-        try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3543:2: (iv_ruleTableDtoDatasource= ruleTableDtoDatasource EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3544:2: iv_ruleTableDtoDatasource= ruleTableDtoDatasource EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getTableDtoDatasourceRule()); 
-            }
-            pushFollow(FOLLOW_ruleTableDtoDatasource_in_entryRuleTableDtoDatasource8671);
-            iv_ruleTableDtoDatasource=ruleTableDtoDatasource();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleTableDtoDatasource; 
-            }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTableDtoDatasource8681); if (state.failed) return current;
-
-            }
-
-        }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
-                appendSkippedTokens();
-            } 
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleTableDtoDatasource"
-
-
-    // $ANTLR start "ruleTableDtoDatasource"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3551:1: ruleTableDtoDatasource returns [EObject current=null] : (otherlv_0= 'dto' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )? ) ;
-    public final EObject ruleTableDtoDatasource() throws RecognitionException {
-        EObject current = null;
-
-        Token otherlv_0=null;
-        Token otherlv_1=null;
-        Token otherlv_2=null;
-        Token otherlv_4=null;
-        EObject lv_properties_3_0 = null;
-
-
-         enterRule(); 
-            
-        try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3554:28: ( (otherlv_0= 'dto' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )? ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3555:1: (otherlv_0= 'dto' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )? )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3555:1: (otherlv_0= 'dto' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )? )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3555:3: otherlv_0= 'dto' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )?
-            {
-            otherlv_0=(Token)match(input,72,FOLLOW_72_in_ruleTableDtoDatasource8718); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-                  	newLeafNode(otherlv_0, grammarAccess.getTableDtoDatasourceAccess().getDtoKeyword_0());
-                  
-            }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3559:1: ( (otherlv_1= RULE_ID ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3560:1: (otherlv_1= RULE_ID )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3560:1: (otherlv_1= RULE_ID )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3561:3: otherlv_1= RULE_ID
-            {
-            if ( state.backtracking==0 ) {
-
-              			if (current==null) {
-              	            current = createModelElement(grammarAccess.getTableDtoDatasourceRule());
-              	        }
-                      
-            }
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTableDtoDatasource8738); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              		newLeafNode(otherlv_1, grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoCrossReference_1_0()); 
-              	
-            }
-
-            }
-
-
-            }
-
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3572:2: (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )?
-            int alt39=2;
-            int LA39_0 = input.LA(1);
-
-            if ( (LA39_0==16) ) {
-                alt39=1;
-            }
-            switch (alt39) {
-                case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3572:4: otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}'
-                    {
-                    otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleTableDtoDatasource8751); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                          	newLeafNode(otherlv_2, grammarAccess.getTableDtoDatasourceAccess().getLeftCurlyBracketKeyword_2_0());
-                          
-                    }
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3576:1: ( (lv_properties_3_0= ruleProperty ) )*
-                    loop38:
-                    do {
-                        int alt38=2;
-                        int LA38_0 = input.LA(1);
-
-                        if ( ((LA38_0>=73 && LA38_0<=74)) ) {
-                            alt38=1;
-                        }
-
-
-                        switch (alt38) {
-                    	case 1 :
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3577:1: (lv_properties_3_0= ruleProperty )
-                    	    {
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3577:1: (lv_properties_3_0= ruleProperty )
-                    	    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3578:3: lv_properties_3_0= ruleProperty
-                    	    {
-                    	    if ( state.backtracking==0 ) {
-                    	       
-                    	      	        newCompositeNode(grammarAccess.getTableDtoDatasourceAccess().getPropertiesPropertyParserRuleCall_2_1_0()); 
-                    	      	    
-                    	    }
-                    	    pushFollow(FOLLOW_ruleProperty_in_ruleTableDtoDatasource8772);
-                    	    lv_properties_3_0=ruleProperty();
-
-                    	    state._fsp--;
-                    	    if (state.failed) return current;
-                    	    if ( state.backtracking==0 ) {
-
-                    	      	        if (current==null) {
-                    	      	            current = createModelElementForParent(grammarAccess.getTableDtoDatasourceRule());
-                    	      	        }
-                    	             		add(
-                    	             			current, 
-                    	             			"properties",
-                    	              		lv_properties_3_0, 
-                    	              		"Property");
-                    	      	        afterParserOrEnumRuleCall();
-                    	      	    
-                    	    }
-
-                    	    }
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop38;
-                        }
-                    } while (true);
-
-                    otherlv_4=(Token)match(input,17,FOLLOW_17_in_ruleTableDtoDatasource8785); if (state.failed) return current;
-                    if ( state.backtracking==0 ) {
-
-                          	newLeafNode(otherlv_4, grammarAccess.getTableDtoDatasourceAccess().getRightCurlyBracketKeyword_2_2());
-                          
-                    }
-
-                    }
-                    break;
-
-            }
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-               leaveRule(); 
-            }
-        }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
-                appendSkippedTokens();
-            } 
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleTableDtoDatasource"
-
-
     // $ANTLR start "entryRuleProperty"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3606:1: entryRuleProperty returns [EObject current=null] : iv_ruleProperty= ruleProperty EOF ;
+    // InternalTableDSL.g:3681:1: entryRuleProperty returns [EObject current=null] : iv_ruleProperty= ruleProperty EOF ;
     public final EObject entryRuleProperty() throws RecognitionException {
         EObject current = null;
 
@@ -9879,13 +10510,13 @@
 
 
         try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3607:2: (iv_ruleProperty= ruleProperty EOF )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3608:2: iv_ruleProperty= ruleProperty EOF
+            // InternalTableDSL.g:3681:49: (iv_ruleProperty= ruleProperty EOF )
+            // InternalTableDSL.g:3682:2: iv_ruleProperty= ruleProperty EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPropertyRule()); 
             }
-            pushFollow(FOLLOW_ruleProperty_in_entryRuleProperty8823);
+            pushFollow(FOLLOW_1);
             iv_ruleProperty=ruleProperty();
 
             state._fsp--;
@@ -9893,16 +10524,16 @@
             if ( state.backtracking==0 ) {
                current =iv_ruleProperty; 
             }
-            match(input,EOF,FOLLOW_EOF_in_entryRuleProperty8833); if (state.failed) return current;
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
             }
 
         }
-         
-            catch (RecognitionException re) { 
-                recover(input,re); 
+
+            catch (RecognitionException re) {
+                recover(input,re);
                 appendSkippedTokens();
-            } 
+            }
         finally {
         }
         return current;
@@ -9911,7 +10542,7 @@
 
 
     // $ANTLR start "ruleProperty"
-    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3615:1: ruleProperty returns [EObject current=null] : ( ( (lv_editable_0_0= 'editable' ) )? otherlv_1= 'prop' ( (lv_path_2_0= ruleNestedField ) ) otherlv_3= 'style' ( (lv_style_4_0= rulePropertyStyle ) ) ) ;
+    // InternalTableDSL.g:3688:1: ruleProperty returns [EObject current=null] : ( ( (lv_editable_0_0= 'editable' ) )? otherlv_1= 'prop' ( (lv_path_2_0= ruleNestedField ) ) otherlv_3= 'style' ( (lv_style_4_0= rulePropertyStyle ) ) ) ;
     public final EObject ruleProperty() throws RecognitionException {
         EObject current = null;
 
@@ -9923,42 +10554,43 @@
         EObject lv_style_4_0 = null;
 
 
-         enterRule(); 
-            
-        try {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3618:28: ( ( ( (lv_editable_0_0= 'editable' ) )? otherlv_1= 'prop' ( (lv_path_2_0= ruleNestedField ) ) otherlv_3= 'style' ( (lv_style_4_0= rulePropertyStyle ) ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3619:1: ( ( (lv_editable_0_0= 'editable' ) )? otherlv_1= 'prop' ( (lv_path_2_0= ruleNestedField ) ) otherlv_3= 'style' ( (lv_style_4_0= rulePropertyStyle ) ) )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3619:1: ( ( (lv_editable_0_0= 'editable' ) )? otherlv_1= 'prop' ( (lv_path_2_0= ruleNestedField ) ) otherlv_3= 'style' ( (lv_style_4_0= rulePropertyStyle ) ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3619:2: ( (lv_editable_0_0= 'editable' ) )? otherlv_1= 'prop' ( (lv_path_2_0= ruleNestedField ) ) otherlv_3= 'style' ( (lv_style_4_0= rulePropertyStyle ) )
-            {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3619:2: ( (lv_editable_0_0= 'editable' ) )?
-            int alt40=2;
-            int LA40_0 = input.LA(1);
 
-            if ( (LA40_0==73) ) {
-                alt40=1;
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:3694:2: ( ( ( (lv_editable_0_0= 'editable' ) )? otherlv_1= 'prop' ( (lv_path_2_0= ruleNestedField ) ) otherlv_3= 'style' ( (lv_style_4_0= rulePropertyStyle ) ) ) )
+            // InternalTableDSL.g:3695:2: ( ( (lv_editable_0_0= 'editable' ) )? otherlv_1= 'prop' ( (lv_path_2_0= ruleNestedField ) ) otherlv_3= 'style' ( (lv_style_4_0= rulePropertyStyle ) ) )
+            {
+            // InternalTableDSL.g:3695:2: ( ( (lv_editable_0_0= 'editable' ) )? otherlv_1= 'prop' ( (lv_path_2_0= ruleNestedField ) ) otherlv_3= 'style' ( (lv_style_4_0= rulePropertyStyle ) ) )
+            // InternalTableDSL.g:3696:3: ( (lv_editable_0_0= 'editable' ) )? otherlv_1= 'prop' ( (lv_path_2_0= ruleNestedField ) ) otherlv_3= 'style' ( (lv_style_4_0= rulePropertyStyle ) )
+            {
+            // InternalTableDSL.g:3696:3: ( (lv_editable_0_0= 'editable' ) )?
+            int alt36=2;
+            int LA36_0 = input.LA(1);
+
+            if ( (LA36_0==74) ) {
+                alt36=1;
             }
-            switch (alt40) {
+            switch (alt36) {
                 case 1 :
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3620:1: (lv_editable_0_0= 'editable' )
+                    // InternalTableDSL.g:3697:4: (lv_editable_0_0= 'editable' )
                     {
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3620:1: (lv_editable_0_0= 'editable' )
-                    // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3621:3: lv_editable_0_0= 'editable'
+                    // InternalTableDSL.g:3697:4: (lv_editable_0_0= 'editable' )
+                    // InternalTableDSL.g:3698:5: lv_editable_0_0= 'editable'
                     {
-                    lv_editable_0_0=(Token)match(input,73,FOLLOW_73_in_ruleProperty8876); if (state.failed) return current;
+                    lv_editable_0_0=(Token)match(input,74,FOLLOW_40); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                              newLeafNode(lv_editable_0_0, grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0());
-                          
+                      					newLeafNode(lv_editable_0_0, grammarAccess.getPropertyAccess().getEditableEditableKeyword_0_0());
+                      				
                     }
                     if ( state.backtracking==0 ) {
 
-                      	        if (current==null) {
-                      	            current = createModelElement(grammarAccess.getPropertyRule());
-                      	        }
-                             		setWithLastConsumed(current, "editable", true, "editable");
-                      	    
+                      					if (current==null) {
+                      						current = createModelElement(grammarAccess.getPropertyRule());
+                      					}
+                      					setWithLastConsumed(current, "editable", true, "editable");
+                      				
                     }
 
                     }
@@ -9969,40 +10601,40 @@
 
             }
 
-            otherlv_1=(Token)match(input,74,FOLLOW_74_in_ruleProperty8902); if (state.failed) return current;
+            otherlv_1=(Token)match(input,75,FOLLOW_4); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-                  	newLeafNode(otherlv_1, grammarAccess.getPropertyAccess().getPropKeyword_1());
-                  
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyAccess().getPropKeyword_1());
+              		
             }
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3638:1: ( (lv_path_2_0= ruleNestedField ) )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3639:1: (lv_path_2_0= ruleNestedField )
+            // InternalTableDSL.g:3714:3: ( (lv_path_2_0= ruleNestedField ) )
+            // InternalTableDSL.g:3715:4: (lv_path_2_0= ruleNestedField )
             {
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3639:1: (lv_path_2_0= ruleNestedField )
-            // ../org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/parser/antlr/internal/InternalTableDSL.g:3640:3: lv_path_2_0= ruleNestedField
+            // InternalTableDSL.g:3715:4: (lv_path_2_0= ruleNestedField )
+            // InternalTableDSL.g:3716:5: lv_path_2_0= ruleNestedField
             {
             if ( state.backtracking==0 ) {
-               
-              	        newCompositeNode(grammarAccess.getPropertyAccess().getPathNestedFieldParserRuleCall_2_0()); 
-              	    
+
+              					newCompositeNode(grammarAccess.getPropertyAccess().getPathNestedFieldParserRuleCall_2_0());
+              				
             }
-            pushFollow(FOLLOW_ruleNestedField_in_ruleProperty8923);
+            pushFollow(FOLLOW_41);
             lv_path_2_0=ruleNestedField();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              	        if (current==null) {
-              	            current = createModelElementForParent(grammarAccess.getPropertyRule());
-              	        }
-                     		set(
-                     			current, 
-                     			"path",
-                      		lv_path_2_0, 
-                      		"NestedField");
-              	        afterParserOrEnumRuleCall();
-              	    
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getPropertyRule());
+              					}
+              					set(
+              						current,
+              						"path",
+              						lv_path_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.NestedField");
+              					afterParserOrEnumRuleCall();
+              				
             }
 
             }
@@ -10010,5 +10642,28921 @@
 
             }
 
-            otherlv_3=(Token)match(input,75,FOLLOW_75_in_ruleProperty8935); if (state.failed) return current;
+            otherlv_3=(Token)match(input,76,FOLLOW_42); if (state.failed) return current;
             if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_3, grammarAccess.getPropertyAccess().getStyleKeyword_3());
+              		
+            }
+            // InternalTableDSL.g:3737:3: ( (lv_style_4_0= rulePropertyStyle ) )
+            // InternalTableDSL.g:3738:4: (lv_style_4_0= rulePropertyStyle )
+            {
+            // InternalTableDSL.g:3738:4: (lv_style_4_0= rulePropertyStyle )
+            // InternalTableDSL.g:3739:5: lv_style_4_0= rulePropertyStyle
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getPropertyAccess().getStylePropertyStyleParserRuleCall_4_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_style_4_0=rulePropertyStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getPropertyRule());
+              					}
+              					set(
+              						current,
+              						"style",
+              						lv_style_4_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.PropertyStyle");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleProperty"
+
+
+    // $ANTLR start "entryRuleTableDtoDatasource"
+    // InternalTableDSL.g:3760:1: entryRuleTableDtoDatasource returns [EObject current=null] : iv_ruleTableDtoDatasource= ruleTableDtoDatasource EOF ;
+    public final EObject entryRuleTableDtoDatasource() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTableDtoDatasource = null;
+
+
+        try {
+            // InternalTableDSL.g:3760:59: (iv_ruleTableDtoDatasource= ruleTableDtoDatasource EOF )
+            // InternalTableDSL.g:3761:2: iv_ruleTableDtoDatasource= ruleTableDtoDatasource EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getTableDtoDatasourceRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleTableDtoDatasource=ruleTableDtoDatasource();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleTableDtoDatasource; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTableDtoDatasource"
+
+
+    // $ANTLR start "ruleTableDtoDatasource"
+    // InternalTableDSL.g:3767:1: ruleTableDtoDatasource returns [EObject current=null] : (otherlv_0= 'dto' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )? ) ;
+    public final EObject ruleTableDtoDatasource() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        EObject lv_properties_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:3773:2: ( (otherlv_0= 'dto' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )? ) )
+            // InternalTableDSL.g:3774:2: (otherlv_0= 'dto' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )? )
+            {
+            // InternalTableDSL.g:3774:2: (otherlv_0= 'dto' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )? )
+            // InternalTableDSL.g:3775:3: otherlv_0= 'dto' ( (otherlv_1= RULE_ID ) ) (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )?
+            {
+            otherlv_0=(Token)match(input,77,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_0, grammarAccess.getTableDtoDatasourceAccess().getDtoKeyword_0());
+              		
+            }
+            // InternalTableDSL.g:3779:3: ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:3780:4: (otherlv_1= RULE_ID )
+            {
+            // InternalTableDSL.g:3780:4: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:3781:5: otherlv_1= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getTableDtoDatasourceRule());
+              					}
+              				
+            }
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_5); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_1, grammarAccess.getTableDtoDatasourceAccess().getDtoSourceLDtoCrossReference_1_0());
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:3792:3: (otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}' )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( (LA38_0==16) ) {
+                alt38=1;
+            }
+            switch (alt38) {
+                case 1 :
+                    // InternalTableDSL.g:3793:4: otherlv_2= '{' ( (lv_properties_3_0= ruleProperty ) )* otherlv_4= '}'
+                    {
+                    otherlv_2=(Token)match(input,16,FOLLOW_43); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_2, grammarAccess.getTableDtoDatasourceAccess().getLeftCurlyBracketKeyword_2_0());
+                      			
+                    }
+                    // InternalTableDSL.g:3797:4: ( (lv_properties_3_0= ruleProperty ) )*
+                    loop37:
+                    do {
+                        int alt37=2;
+                        int LA37_0 = input.LA(1);
+
+                        if ( ((LA37_0>=74 && LA37_0<=75)) ) {
+                            alt37=1;
+                        }
+
+
+                        switch (alt37) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:3798:5: (lv_properties_3_0= ruleProperty )
+                    	    {
+                    	    // InternalTableDSL.g:3798:5: (lv_properties_3_0= ruleProperty )
+                    	    // InternalTableDSL.g:3799:6: lv_properties_3_0= ruleProperty
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      						newCompositeNode(grammarAccess.getTableDtoDatasourceAccess().getPropertiesPropertyParserRuleCall_2_1_0());
+                    	      					
+                    	    }
+                    	    pushFollow(FOLLOW_43);
+                    	    lv_properties_3_0=ruleProperty();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      						if (current==null) {
+                    	      							current = createModelElementForParent(grammarAccess.getTableDtoDatasourceRule());
+                    	      						}
+                    	      						add(
+                    	      							current,
+                    	      							"properties",
+                    	      							lv_properties_3_0,
+                    	      							"org.eclipse.osbp.xtext.table.TableDSL.Property");
+                    	      						afterParserOrEnumRuleCall();
+                    	      					
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop37;
+                        }
+                    } while (true);
+
+                    otherlv_4=(Token)match(input,17,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_4, grammarAccess.getTableDtoDatasourceAccess().getRightCurlyBracketKeyword_2_2());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTableDtoDatasource"
+
+
+    // $ANTLR start "entryRuleNestedField"
+    // InternalTableDSL.g:3825:1: entryRuleNestedField returns [EObject current=null] : iv_ruleNestedField= ruleNestedField EOF ;
+    public final EObject entryRuleNestedField() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleNestedField = null;
+
+
+        try {
+            // InternalTableDSL.g:3825:52: (iv_ruleNestedField= ruleNestedField EOF )
+            // InternalTableDSL.g:3826:2: iv_ruleNestedField= ruleNestedField EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getNestedFieldRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleNestedField=ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleNestedField; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleNestedField"
+
+
+    // $ANTLR start "ruleNestedField"
+    // InternalTableDSL.g:3832:1: ruleNestedField returns [EObject current=null] : ( () ( (otherlv_1= RULE_ID ) ) ( (lv_path_2_0= ruleNestedPath ) )? ) ;
+    public final EObject ruleNestedField() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        EObject lv_path_2_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:3838:2: ( ( () ( (otherlv_1= RULE_ID ) ) ( (lv_path_2_0= ruleNestedPath ) )? ) )
+            // InternalTableDSL.g:3839:2: ( () ( (otherlv_1= RULE_ID ) ) ( (lv_path_2_0= ruleNestedPath ) )? )
+            {
+            // InternalTableDSL.g:3839:2: ( () ( (otherlv_1= RULE_ID ) ) ( (lv_path_2_0= ruleNestedPath ) )? )
+            // InternalTableDSL.g:3840:3: () ( (otherlv_1= RULE_ID ) ) ( (lv_path_2_0= ruleNestedPath ) )?
+            {
+            // InternalTableDSL.g:3840:3: ()
+            // InternalTableDSL.g:3841:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getNestedFieldAccess().getCxGridNestedFieldAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            // InternalTableDSL.g:3847:3: ( (otherlv_1= RULE_ID ) )
+            // InternalTableDSL.g:3848:4: (otherlv_1= RULE_ID )
+            {
+            // InternalTableDSL.g:3848:4: (otherlv_1= RULE_ID )
+            // InternalTableDSL.g:3849:5: otherlv_1= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getNestedFieldRule());
+              					}
+              				
+            }
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_44); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_1, grammarAccess.getNestedFieldAccess().getFieldJvmOperationCrossReference_1_0());
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:3860:3: ( (lv_path_2_0= ruleNestedPath ) )?
+            int alt39=2;
+            int LA39_0 = input.LA(1);
+
+            if ( (LA39_0==78) ) {
+                alt39=1;
+            }
+            switch (alt39) {
+                case 1 :
+                    // InternalTableDSL.g:3861:4: (lv_path_2_0= ruleNestedPath )
+                    {
+                    // InternalTableDSL.g:3861:4: (lv_path_2_0= ruleNestedPath )
+                    // InternalTableDSL.g:3862:5: lv_path_2_0= ruleNestedPath
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					newCompositeNode(grammarAccess.getNestedFieldAccess().getPathNestedPathParserRuleCall_2_0());
+                      				
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_path_2_0=ruleNestedPath();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElementForParent(grammarAccess.getNestedFieldRule());
+                      					}
+                      					set(
+                      						current,
+                      						"path",
+                      						lv_path_2_0,
+                      						"org.eclipse.osbp.xtext.table.TableDSL.NestedPath");
+                      					afterParserOrEnumRuleCall();
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleNestedField"
+
+
+    // $ANTLR start "entryRuleNestedPath"
+    // InternalTableDSL.g:3883:1: entryRuleNestedPath returns [EObject current=null] : iv_ruleNestedPath= ruleNestedPath EOF ;
+    public final EObject entryRuleNestedPath() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleNestedPath = null;
+
+
+        try {
+            // InternalTableDSL.g:3883:51: (iv_ruleNestedPath= ruleNestedPath EOF )
+            // InternalTableDSL.g:3884:2: iv_ruleNestedPath= ruleNestedPath EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getNestedPathRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleNestedPath=ruleNestedPath();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleNestedPath; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleNestedPath"
+
+
+    // $ANTLR start "ruleNestedPath"
+    // InternalTableDSL.g:3890:1: ruleNestedPath returns [EObject current=null] : ( () otherlv_1= '.' ( (otherlv_2= RULE_ID ) ) ( (lv_path_3_0= ruleNestedPath ) )? ) ;
+    public final EObject ruleNestedPath() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        EObject lv_path_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:3896:2: ( ( () otherlv_1= '.' ( (otherlv_2= RULE_ID ) ) ( (lv_path_3_0= ruleNestedPath ) )? ) )
+            // InternalTableDSL.g:3897:2: ( () otherlv_1= '.' ( (otherlv_2= RULE_ID ) ) ( (lv_path_3_0= ruleNestedPath ) )? )
+            {
+            // InternalTableDSL.g:3897:2: ( () otherlv_1= '.' ( (otherlv_2= RULE_ID ) ) ( (lv_path_3_0= ruleNestedPath ) )? )
+            // InternalTableDSL.g:3898:3: () otherlv_1= '.' ( (otherlv_2= RULE_ID ) ) ( (lv_path_3_0= ruleNestedPath ) )?
+            {
+            // InternalTableDSL.g:3898:3: ()
+            // InternalTableDSL.g:3899:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getNestedPathAccess().getCxGridNestedPathAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,78,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getNestedPathAccess().getFullStopKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:3909:3: ( (otherlv_2= RULE_ID ) )
+            // InternalTableDSL.g:3910:4: (otherlv_2= RULE_ID )
+            {
+            // InternalTableDSL.g:3910:4: (otherlv_2= RULE_ID )
+            // InternalTableDSL.g:3911:5: otherlv_2= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getNestedPathRule());
+              					}
+              				
+            }
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_44); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_2, grammarAccess.getNestedPathAccess().getFieldJvmOperationCrossReference_2_0());
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:3922:3: ( (lv_path_3_0= ruleNestedPath ) )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
+
+            if ( (LA40_0==78) ) {
+                alt40=1;
+            }
+            switch (alt40) {
+                case 1 :
+                    // InternalTableDSL.g:3923:4: (lv_path_3_0= ruleNestedPath )
+                    {
+                    // InternalTableDSL.g:3923:4: (lv_path_3_0= ruleNestedPath )
+                    // InternalTableDSL.g:3924:5: lv_path_3_0= ruleNestedPath
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					newCompositeNode(grammarAccess.getNestedPathAccess().getPathNestedPathParserRuleCall_3_0());
+                      				
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_path_3_0=ruleNestedPath();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElementForParent(grammarAccess.getNestedPathRule());
+                      					}
+                      					set(
+                      						current,
+                      						"path",
+                      						lv_path_3_0,
+                      						"org.eclipse.osbp.xtext.table.TableDSL.NestedPath");
+                      					afterParserOrEnumRuleCall();
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleNestedPath"
+
+
+    // $ANTLR start "entryRulePropertyStyle"
+    // InternalTableDSL.g:3945:1: entryRulePropertyStyle returns [EObject current=null] : iv_rulePropertyStyle= rulePropertyStyle EOF ;
+    public final EObject entryRulePropertyStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:3945:54: (iv_rulePropertyStyle= rulePropertyStyle EOF )
+            // InternalTableDSL.g:3946:2: iv_rulePropertyStyle= rulePropertyStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyStyle=rulePropertyStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyStyle"
+
+
+    // $ANTLR start "rulePropertyStyle"
+    // InternalTableDSL.g:3952:1: rulePropertyStyle returns [EObject current=null] : (this_PropertyButtonStyle_0= rulePropertyButtonStyle | this_PropertyHtmlStyle_1= rulePropertyHtmlStyle | this_PropertyProgressbarStyle_2= rulePropertyProgressbarStyle | this_PropertyTextStyle_3= rulePropertyTextStyle | this_PropertyBooleanStyle_4= rulePropertyBooleanStyle | this_PropertyDateStyle_5= rulePropertyDateStyle | this_PropertyNumberStyle_6= rulePropertyNumberStyle | this_PropertyImageStyle_7= rulePropertyImageStyle | this_PropertyQuantityStyle_8= rulePropertyQuantityStyle | this_PropertyPriceStyle_9= rulePropertyPriceStyle | this_GridPropIndicatorStyle_10= ruleGridPropIndicatorStyle ) ;
+    public final EObject rulePropertyStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_PropertyButtonStyle_0 = null;
+
+        EObject this_PropertyHtmlStyle_1 = null;
+
+        EObject this_PropertyProgressbarStyle_2 = null;
+
+        EObject this_PropertyTextStyle_3 = null;
+
+        EObject this_PropertyBooleanStyle_4 = null;
+
+        EObject this_PropertyDateStyle_5 = null;
+
+        EObject this_PropertyNumberStyle_6 = null;
+
+        EObject this_PropertyImageStyle_7 = null;
+
+        EObject this_PropertyQuantityStyle_8 = null;
+
+        EObject this_PropertyPriceStyle_9 = null;
+
+        EObject this_GridPropIndicatorStyle_10 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:3958:2: ( (this_PropertyButtonStyle_0= rulePropertyButtonStyle | this_PropertyHtmlStyle_1= rulePropertyHtmlStyle | this_PropertyProgressbarStyle_2= rulePropertyProgressbarStyle | this_PropertyTextStyle_3= rulePropertyTextStyle | this_PropertyBooleanStyle_4= rulePropertyBooleanStyle | this_PropertyDateStyle_5= rulePropertyDateStyle | this_PropertyNumberStyle_6= rulePropertyNumberStyle | this_PropertyImageStyle_7= rulePropertyImageStyle | this_PropertyQuantityStyle_8= rulePropertyQuantityStyle | this_PropertyPriceStyle_9= rulePropertyPriceStyle | this_GridPropIndicatorStyle_10= ruleGridPropIndicatorStyle ) )
+            // InternalTableDSL.g:3959:2: (this_PropertyButtonStyle_0= rulePropertyButtonStyle | this_PropertyHtmlStyle_1= rulePropertyHtmlStyle | this_PropertyProgressbarStyle_2= rulePropertyProgressbarStyle | this_PropertyTextStyle_3= rulePropertyTextStyle | this_PropertyBooleanStyle_4= rulePropertyBooleanStyle | this_PropertyDateStyle_5= rulePropertyDateStyle | this_PropertyNumberStyle_6= rulePropertyNumberStyle | this_PropertyImageStyle_7= rulePropertyImageStyle | this_PropertyQuantityStyle_8= rulePropertyQuantityStyle | this_PropertyPriceStyle_9= rulePropertyPriceStyle | this_GridPropIndicatorStyle_10= ruleGridPropIndicatorStyle )
+            {
+            // InternalTableDSL.g:3959:2: (this_PropertyButtonStyle_0= rulePropertyButtonStyle | this_PropertyHtmlStyle_1= rulePropertyHtmlStyle | this_PropertyProgressbarStyle_2= rulePropertyProgressbarStyle | this_PropertyTextStyle_3= rulePropertyTextStyle | this_PropertyBooleanStyle_4= rulePropertyBooleanStyle | this_PropertyDateStyle_5= rulePropertyDateStyle | this_PropertyNumberStyle_6= rulePropertyNumberStyle | this_PropertyImageStyle_7= rulePropertyImageStyle | this_PropertyQuantityStyle_8= rulePropertyQuantityStyle | this_PropertyPriceStyle_9= rulePropertyPriceStyle | this_GridPropIndicatorStyle_10= ruleGridPropIndicatorStyle )
+            int alt41=11;
+            switch ( input.LA(1) ) {
+            case 79:
+                {
+                alt41=1;
+                }
+                break;
+            case 81:
+                {
+                alt41=2;
+                }
+                break;
+            case 86:
+                {
+                alt41=3;
+                }
+                break;
+            case 98:
+                {
+                alt41=4;
+                }
+                break;
+            case 82:
+                {
+                alt41=5;
+                }
+                break;
+            case 83:
+                {
+                alt41=6;
+                }
+                break;
+            case 85:
+                {
+                alt41=7;
+                }
+                break;
+            case 99:
+                {
+                alt41=8;
+                }
+                break;
+            case 91:
+                {
+                alt41=9;
+                }
+                break;
+            case 96:
+                {
+                alt41=10;
+                }
+                break;
+            case 88:
+                {
+                alt41=11;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 41, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt41) {
+                case 1 :
+                    // InternalTableDSL.g:3960:3: this_PropertyButtonStyle_0= rulePropertyButtonStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyButtonStyleParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_PropertyButtonStyle_0=rulePropertyButtonStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_PropertyButtonStyle_0;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:3969:3: this_PropertyHtmlStyle_1= rulePropertyHtmlStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyHtmlStyleParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_PropertyHtmlStyle_1=rulePropertyHtmlStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_PropertyHtmlStyle_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:3978:3: this_PropertyProgressbarStyle_2= rulePropertyProgressbarStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyProgressbarStyleParserRuleCall_2());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_PropertyProgressbarStyle_2=rulePropertyProgressbarStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_PropertyProgressbarStyle_2;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:3987:3: this_PropertyTextStyle_3= rulePropertyTextStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyTextStyleParserRuleCall_3());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_PropertyTextStyle_3=rulePropertyTextStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_PropertyTextStyle_3;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:3996:3: this_PropertyBooleanStyle_4= rulePropertyBooleanStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyBooleanStyleParserRuleCall_4());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_PropertyBooleanStyle_4=rulePropertyBooleanStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_PropertyBooleanStyle_4;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:4005:3: this_PropertyDateStyle_5= rulePropertyDateStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyDateStyleParserRuleCall_5());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_PropertyDateStyle_5=rulePropertyDateStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_PropertyDateStyle_5;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:4014:3: this_PropertyNumberStyle_6= rulePropertyNumberStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyNumberStyleParserRuleCall_6());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_PropertyNumberStyle_6=rulePropertyNumberStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_PropertyNumberStyle_6;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTableDSL.g:4023:3: this_PropertyImageStyle_7= rulePropertyImageStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyImageStyleParserRuleCall_7());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_PropertyImageStyle_7=rulePropertyImageStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_PropertyImageStyle_7;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 9 :
+                    // InternalTableDSL.g:4032:3: this_PropertyQuantityStyle_8= rulePropertyQuantityStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyQuantityStyleParserRuleCall_8());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_PropertyQuantityStyle_8=rulePropertyQuantityStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_PropertyQuantityStyle_8;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 10 :
+                    // InternalTableDSL.g:4041:3: this_PropertyPriceStyle_9= rulePropertyPriceStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getPropertyPriceStyleParserRuleCall_9());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_PropertyPriceStyle_9=rulePropertyPriceStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_PropertyPriceStyle_9;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 11 :
+                    // InternalTableDSL.g:4050:3: this_GridPropIndicatorStyle_10= ruleGridPropIndicatorStyle
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getPropertyStyleAccess().getGridPropIndicatorStyleParserRuleCall_10());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_GridPropIndicatorStyle_10=ruleGridPropIndicatorStyle();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_GridPropIndicatorStyle_10;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyStyle"
+
+
+    // $ANTLR start "entryRulePropertyButtonStyle"
+    // InternalTableDSL.g:4062:1: entryRulePropertyButtonStyle returns [EObject current=null] : iv_rulePropertyButtonStyle= rulePropertyButtonStyle EOF ;
+    public final EObject entryRulePropertyButtonStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyButtonStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4062:60: (iv_rulePropertyButtonStyle= rulePropertyButtonStyle EOF )
+            // InternalTableDSL.g:4063:2: iv_rulePropertyButtonStyle= rulePropertyButtonStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyButtonStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyButtonStyle=rulePropertyButtonStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyButtonStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyButtonStyle"
+
+
+    // $ANTLR start "rulePropertyButtonStyle"
+    // InternalTableDSL.g:4069:1: rulePropertyButtonStyle returns [EObject current=null] : ( () otherlv_1= 'buttonStyle' otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) ) ) ;
+    public final EObject rulePropertyButtonStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token lv_eventTopic_3_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4075:2: ( ( () otherlv_1= 'buttonStyle' otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) ) ) )
+            // InternalTableDSL.g:4076:2: ( () otherlv_1= 'buttonStyle' otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) ) )
+            {
+            // InternalTableDSL.g:4076:2: ( () otherlv_1= 'buttonStyle' otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:4077:3: () otherlv_1= 'buttonStyle' otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) )
+            {
+            // InternalTableDSL.g:4077:3: ()
+            // InternalTableDSL.g:4078:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getPropertyButtonStyleAccess().getCxGridPropButtonStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,79,FOLLOW_45); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyButtonStyleAccess().getButtonStyleKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,80,FOLLOW_8); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getPropertyButtonStyleAccess().getEventTopicKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:4092:3: ( (lv_eventTopic_3_0= RULE_STRING ) )
+            // InternalTableDSL.g:4093:4: (lv_eventTopic_3_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:4093:4: (lv_eventTopic_3_0= RULE_STRING )
+            // InternalTableDSL.g:4094:5: lv_eventTopic_3_0= RULE_STRING
+            {
+            lv_eventTopic_3_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_eventTopic_3_0, grammarAccess.getPropertyButtonStyleAccess().getEventTopicSTRINGTerminalRuleCall_3_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getPropertyButtonStyleRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"eventTopic",
+              						lv_eventTopic_3_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyButtonStyle"
+
+
+    // $ANTLR start "entryRulePropertyHtmlStyle"
+    // InternalTableDSL.g:4114:1: entryRulePropertyHtmlStyle returns [EObject current=null] : iv_rulePropertyHtmlStyle= rulePropertyHtmlStyle EOF ;
+    public final EObject entryRulePropertyHtmlStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyHtmlStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4114:58: (iv_rulePropertyHtmlStyle= rulePropertyHtmlStyle EOF )
+            // InternalTableDSL.g:4115:2: iv_rulePropertyHtmlStyle= rulePropertyHtmlStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyHtmlStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyHtmlStyle=rulePropertyHtmlStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyHtmlStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyHtmlStyle"
+
+
+    // $ANTLR start "rulePropertyHtmlStyle"
+    // InternalTableDSL.g:4121:1: rulePropertyHtmlStyle returns [EObject current=null] : ( () otherlv_1= 'htmlStyle' ) ;
+    public final EObject rulePropertyHtmlStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4127:2: ( ( () otherlv_1= 'htmlStyle' ) )
+            // InternalTableDSL.g:4128:2: ( () otherlv_1= 'htmlStyle' )
+            {
+            // InternalTableDSL.g:4128:2: ( () otherlv_1= 'htmlStyle' )
+            // InternalTableDSL.g:4129:3: () otherlv_1= 'htmlStyle'
+            {
+            // InternalTableDSL.g:4129:3: ()
+            // InternalTableDSL.g:4130:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getPropertyHtmlStyleAccess().getCxGridPropHtmlStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyHtmlStyleAccess().getHtmlStyleKeyword_1());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyHtmlStyle"
+
+
+    // $ANTLR start "entryRulePropertyBooleanStyle"
+    // InternalTableDSL.g:4144:1: entryRulePropertyBooleanStyle returns [EObject current=null] : iv_rulePropertyBooleanStyle= rulePropertyBooleanStyle EOF ;
+    public final EObject entryRulePropertyBooleanStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyBooleanStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4144:61: (iv_rulePropertyBooleanStyle= rulePropertyBooleanStyle EOF )
+            // InternalTableDSL.g:4145:2: iv_rulePropertyBooleanStyle= rulePropertyBooleanStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyBooleanStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyBooleanStyle=rulePropertyBooleanStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyBooleanStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyBooleanStyle"
+
+
+    // $ANTLR start "rulePropertyBooleanStyle"
+    // InternalTableDSL.g:4151:1: rulePropertyBooleanStyle returns [EObject current=null] : ( () otherlv_1= 'boolStyle' ) ;
+    public final EObject rulePropertyBooleanStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4157:2: ( ( () otherlv_1= 'boolStyle' ) )
+            // InternalTableDSL.g:4158:2: ( () otherlv_1= 'boolStyle' )
+            {
+            // InternalTableDSL.g:4158:2: ( () otherlv_1= 'boolStyle' )
+            // InternalTableDSL.g:4159:3: () otherlv_1= 'boolStyle'
+            {
+            // InternalTableDSL.g:4159:3: ()
+            // InternalTableDSL.g:4160:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getPropertyBooleanStyleAccess().getCxGridPropBooleanStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyBooleanStyleAccess().getBoolStyleKeyword_1());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyBooleanStyle"
+
+
+    // $ANTLR start "entryRulePropertyDateStyle"
+    // InternalTableDSL.g:4174:1: entryRulePropertyDateStyle returns [EObject current=null] : iv_rulePropertyDateStyle= rulePropertyDateStyle EOF ;
+    public final EObject entryRulePropertyDateStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyDateStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4174:58: (iv_rulePropertyDateStyle= rulePropertyDateStyle EOF )
+            // InternalTableDSL.g:4175:2: iv_rulePropertyDateStyle= rulePropertyDateStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyDateStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyDateStyle=rulePropertyDateStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyDateStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyDateStyle"
+
+
+    // $ANTLR start "rulePropertyDateStyle"
+    // InternalTableDSL.g:4181:1: rulePropertyDateStyle returns [EObject current=null] : ( () otherlv_1= 'dateStyle' otherlv_2= 'format' ( (lv_dateFormat_3_0= RULE_STRING ) ) ) ;
+    public final EObject rulePropertyDateStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token lv_dateFormat_3_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4187:2: ( ( () otherlv_1= 'dateStyle' otherlv_2= 'format' ( (lv_dateFormat_3_0= RULE_STRING ) ) ) )
+            // InternalTableDSL.g:4188:2: ( () otherlv_1= 'dateStyle' otherlv_2= 'format' ( (lv_dateFormat_3_0= RULE_STRING ) ) )
+            {
+            // InternalTableDSL.g:4188:2: ( () otherlv_1= 'dateStyle' otherlv_2= 'format' ( (lv_dateFormat_3_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:4189:3: () otherlv_1= 'dateStyle' otherlv_2= 'format' ( (lv_dateFormat_3_0= RULE_STRING ) )
+            {
+            // InternalTableDSL.g:4189:3: ()
+            // InternalTableDSL.g:4190:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getPropertyDateStyleAccess().getCxGridPropDateStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,83,FOLLOW_46); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyDateStyleAccess().getDateStyleKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,84,FOLLOW_8); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getPropertyDateStyleAccess().getFormatKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:4204:3: ( (lv_dateFormat_3_0= RULE_STRING ) )
+            // InternalTableDSL.g:4205:4: (lv_dateFormat_3_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:4205:4: (lv_dateFormat_3_0= RULE_STRING )
+            // InternalTableDSL.g:4206:5: lv_dateFormat_3_0= RULE_STRING
+            {
+            lv_dateFormat_3_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_dateFormat_3_0, grammarAccess.getPropertyDateStyleAccess().getDateFormatSTRINGTerminalRuleCall_3_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getPropertyDateStyleRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"dateFormat",
+              						lv_dateFormat_3_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyDateStyle"
+
+
+    // $ANTLR start "entryRulePropertyNumberStyle"
+    // InternalTableDSL.g:4226:1: entryRulePropertyNumberStyle returns [EObject current=null] : iv_rulePropertyNumberStyle= rulePropertyNumberStyle EOF ;
+    public final EObject entryRulePropertyNumberStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyNumberStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4226:60: (iv_rulePropertyNumberStyle= rulePropertyNumberStyle EOF )
+            // InternalTableDSL.g:4227:2: iv_rulePropertyNumberStyle= rulePropertyNumberStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyNumberStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyNumberStyle=rulePropertyNumberStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyNumberStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyNumberStyle"
+
+
+    // $ANTLR start "rulePropertyNumberStyle"
+    // InternalTableDSL.g:4233:1: rulePropertyNumberStyle returns [EObject current=null] : ( () otherlv_1= 'numberStyle' otherlv_2= 'format' ( (lv_numberFormat_3_0= RULE_STRING ) ) ) ;
+    public final EObject rulePropertyNumberStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token lv_numberFormat_3_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4239:2: ( ( () otherlv_1= 'numberStyle' otherlv_2= 'format' ( (lv_numberFormat_3_0= RULE_STRING ) ) ) )
+            // InternalTableDSL.g:4240:2: ( () otherlv_1= 'numberStyle' otherlv_2= 'format' ( (lv_numberFormat_3_0= RULE_STRING ) ) )
+            {
+            // InternalTableDSL.g:4240:2: ( () otherlv_1= 'numberStyle' otherlv_2= 'format' ( (lv_numberFormat_3_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:4241:3: () otherlv_1= 'numberStyle' otherlv_2= 'format' ( (lv_numberFormat_3_0= RULE_STRING ) )
+            {
+            // InternalTableDSL.g:4241:3: ()
+            // InternalTableDSL.g:4242:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getPropertyNumberStyleAccess().getCxGridPropNumberStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,85,FOLLOW_46); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyNumberStyleAccess().getNumberStyleKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,84,FOLLOW_8); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getPropertyNumberStyleAccess().getFormatKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:4256:3: ( (lv_numberFormat_3_0= RULE_STRING ) )
+            // InternalTableDSL.g:4257:4: (lv_numberFormat_3_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:4257:4: (lv_numberFormat_3_0= RULE_STRING )
+            // InternalTableDSL.g:4258:5: lv_numberFormat_3_0= RULE_STRING
+            {
+            lv_numberFormat_3_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_numberFormat_3_0, grammarAccess.getPropertyNumberStyleAccess().getNumberFormatSTRINGTerminalRuleCall_3_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getPropertyNumberStyleRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"numberFormat",
+              						lv_numberFormat_3_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyNumberStyle"
+
+
+    // $ANTLR start "entryRulePropertyProgressbarStyle"
+    // InternalTableDSL.g:4278:1: entryRulePropertyProgressbarStyle returns [EObject current=null] : iv_rulePropertyProgressbarStyle= rulePropertyProgressbarStyle EOF ;
+    public final EObject entryRulePropertyProgressbarStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyProgressbarStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4278:65: (iv_rulePropertyProgressbarStyle= rulePropertyProgressbarStyle EOF )
+            // InternalTableDSL.g:4279:2: iv_rulePropertyProgressbarStyle= rulePropertyProgressbarStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyProgressbarStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyProgressbarStyle=rulePropertyProgressbarStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyProgressbarStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyProgressbarStyle"
+
+
+    // $ANTLR start "rulePropertyProgressbarStyle"
+    // InternalTableDSL.g:4285:1: rulePropertyProgressbarStyle returns [EObject current=null] : ( () otherlv_1= 'progressbarStyle' otherlv_2= 'max' ( (lv_maxValue_3_0= ruleLDouble ) ) ) ;
+    public final EObject rulePropertyProgressbarStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        AntlrDatatypeRuleToken lv_maxValue_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4291:2: ( ( () otherlv_1= 'progressbarStyle' otherlv_2= 'max' ( (lv_maxValue_3_0= ruleLDouble ) ) ) )
+            // InternalTableDSL.g:4292:2: ( () otherlv_1= 'progressbarStyle' otherlv_2= 'max' ( (lv_maxValue_3_0= ruleLDouble ) ) )
+            {
+            // InternalTableDSL.g:4292:2: ( () otherlv_1= 'progressbarStyle' otherlv_2= 'max' ( (lv_maxValue_3_0= ruleLDouble ) ) )
+            // InternalTableDSL.g:4293:3: () otherlv_1= 'progressbarStyle' otherlv_2= 'max' ( (lv_maxValue_3_0= ruleLDouble ) )
+            {
+            // InternalTableDSL.g:4293:3: ()
+            // InternalTableDSL.g:4294:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getPropertyProgressbarStyleAccess().getCxGridPropProgressbarStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,86,FOLLOW_47); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyProgressbarStyleAccess().getProgressbarStyleKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,87,FOLLOW_48); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getPropertyProgressbarStyleAccess().getMaxKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:4308:3: ( (lv_maxValue_3_0= ruleLDouble ) )
+            // InternalTableDSL.g:4309:4: (lv_maxValue_3_0= ruleLDouble )
+            {
+            // InternalTableDSL.g:4309:4: (lv_maxValue_3_0= ruleLDouble )
+            // InternalTableDSL.g:4310:5: lv_maxValue_3_0= ruleLDouble
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueLDoubleParserRuleCall_3_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_maxValue_3_0=ruleLDouble();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getPropertyProgressbarStyleRule());
+              					}
+              					set(
+              						current,
+              						"maxValue",
+              						lv_maxValue_3_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.LDouble");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyProgressbarStyle"
+
+
+    // $ANTLR start "entryRuleGridPropIndicatorStyle"
+    // InternalTableDSL.g:4331:1: entryRuleGridPropIndicatorStyle returns [EObject current=null] : iv_ruleGridPropIndicatorStyle= ruleGridPropIndicatorStyle EOF ;
+    public final EObject entryRuleGridPropIndicatorStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleGridPropIndicatorStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4331:63: (iv_ruleGridPropIndicatorStyle= ruleGridPropIndicatorStyle EOF )
+            // InternalTableDSL.g:4332:2: iv_ruleGridPropIndicatorStyle= ruleGridPropIndicatorStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getGridPropIndicatorStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleGridPropIndicatorStyle=ruleGridPropIndicatorStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleGridPropIndicatorStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleGridPropIndicatorStyle"
+
+
+    // $ANTLR start "ruleGridPropIndicatorStyle"
+    // InternalTableDSL.g:4338:1: ruleGridPropIndicatorStyle returns [EObject current=null] : ( () otherlv_1= 'indicatorStyle' otherlv_2= 'greenFrom' ( (lv_greenStarts_3_0= ruleLDouble ) ) otherlv_4= 'redUntil' ( (lv_redEnds_5_0= ruleLDouble ) ) ) ;
+    public final EObject ruleGridPropIndicatorStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        AntlrDatatypeRuleToken lv_greenStarts_3_0 = null;
+
+        AntlrDatatypeRuleToken lv_redEnds_5_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4344:2: ( ( () otherlv_1= 'indicatorStyle' otherlv_2= 'greenFrom' ( (lv_greenStarts_3_0= ruleLDouble ) ) otherlv_4= 'redUntil' ( (lv_redEnds_5_0= ruleLDouble ) ) ) )
+            // InternalTableDSL.g:4345:2: ( () otherlv_1= 'indicatorStyle' otherlv_2= 'greenFrom' ( (lv_greenStarts_3_0= ruleLDouble ) ) otherlv_4= 'redUntil' ( (lv_redEnds_5_0= ruleLDouble ) ) )
+            {
+            // InternalTableDSL.g:4345:2: ( () otherlv_1= 'indicatorStyle' otherlv_2= 'greenFrom' ( (lv_greenStarts_3_0= ruleLDouble ) ) otherlv_4= 'redUntil' ( (lv_redEnds_5_0= ruleLDouble ) ) )
+            // InternalTableDSL.g:4346:3: () otherlv_1= 'indicatorStyle' otherlv_2= 'greenFrom' ( (lv_greenStarts_3_0= ruleLDouble ) ) otherlv_4= 'redUntil' ( (lv_redEnds_5_0= ruleLDouble ) )
+            {
+            // InternalTableDSL.g:4346:3: ()
+            // InternalTableDSL.g:4347:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getGridPropIndicatorStyleAccess().getCxGridPropIndicatorStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,88,FOLLOW_49); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getGridPropIndicatorStyleAccess().getIndicatorStyleKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,89,FOLLOW_48); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getGridPropIndicatorStyleAccess().getGreenFromKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:4361:3: ( (lv_greenStarts_3_0= ruleLDouble ) )
+            // InternalTableDSL.g:4362:4: (lv_greenStarts_3_0= ruleLDouble )
+            {
+            // InternalTableDSL.g:4362:4: (lv_greenStarts_3_0= ruleLDouble )
+            // InternalTableDSL.g:4363:5: lv_greenStarts_3_0= ruleLDouble
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsLDoubleParserRuleCall_3_0());
+              				
+            }
+            pushFollow(FOLLOW_50);
+            lv_greenStarts_3_0=ruleLDouble();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getGridPropIndicatorStyleRule());
+              					}
+              					set(
+              						current,
+              						"greenStarts",
+              						lv_greenStarts_3_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.LDouble");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,90,FOLLOW_48); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_4, grammarAccess.getGridPropIndicatorStyleAccess().getRedUntilKeyword_4());
+              		
+            }
+            // InternalTableDSL.g:4384:3: ( (lv_redEnds_5_0= ruleLDouble ) )
+            // InternalTableDSL.g:4385:4: (lv_redEnds_5_0= ruleLDouble )
+            {
+            // InternalTableDSL.g:4385:4: (lv_redEnds_5_0= ruleLDouble )
+            // InternalTableDSL.g:4386:5: lv_redEnds_5_0= ruleLDouble
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsLDoubleParserRuleCall_5_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_redEnds_5_0=ruleLDouble();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getGridPropIndicatorStyleRule());
+              					}
+              					set(
+              						current,
+              						"redEnds",
+              						lv_redEnds_5_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.LDouble");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleGridPropIndicatorStyle"
+
+
+    // $ANTLR start "entryRulePropertyQuantityStyle"
+    // InternalTableDSL.g:4407:1: entryRulePropertyQuantityStyle returns [EObject current=null] : iv_rulePropertyQuantityStyle= rulePropertyQuantityStyle EOF ;
+    public final EObject entryRulePropertyQuantityStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyQuantityStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4407:62: (iv_rulePropertyQuantityStyle= rulePropertyQuantityStyle EOF )
+            // InternalTableDSL.g:4408:2: iv_rulePropertyQuantityStyle= rulePropertyQuantityStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyQuantityStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyQuantityStyle=rulePropertyQuantityStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyQuantityStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyQuantityStyle"
+
+
+    // $ANTLR start "rulePropertyQuantityStyle"
+    // InternalTableDSL.g:4414:1: rulePropertyQuantityStyle returns [EObject current=null] : ( () otherlv_1= 'quantityStyle' ( (lv_htmlPattern_2_0= RULE_STRING ) )? otherlv_3= 'value' otherlv_4= '=' ( (lv_valuePropertyPath_5_0= ruleNestedField ) ) (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )? otherlv_10= 'uom' otherlv_11= '=' ( (lv_uomPropertyPath_12_0= ruleNestedField ) ) ) ;
+    public final EObject rulePropertyQuantityStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_htmlPattern_2_0=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token lv_valueNumberFormat_8_0=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        EObject lv_valuePropertyPath_5_0 = null;
+
+        EObject lv_uomPropertyPath_12_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4420:2: ( ( () otherlv_1= 'quantityStyle' ( (lv_htmlPattern_2_0= RULE_STRING ) )? otherlv_3= 'value' otherlv_4= '=' ( (lv_valuePropertyPath_5_0= ruleNestedField ) ) (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )? otherlv_10= 'uom' otherlv_11= '=' ( (lv_uomPropertyPath_12_0= ruleNestedField ) ) ) )
+            // InternalTableDSL.g:4421:2: ( () otherlv_1= 'quantityStyle' ( (lv_htmlPattern_2_0= RULE_STRING ) )? otherlv_3= 'value' otherlv_4= '=' ( (lv_valuePropertyPath_5_0= ruleNestedField ) ) (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )? otherlv_10= 'uom' otherlv_11= '=' ( (lv_uomPropertyPath_12_0= ruleNestedField ) ) )
+            {
+            // InternalTableDSL.g:4421:2: ( () otherlv_1= 'quantityStyle' ( (lv_htmlPattern_2_0= RULE_STRING ) )? otherlv_3= 'value' otherlv_4= '=' ( (lv_valuePropertyPath_5_0= ruleNestedField ) ) (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )? otherlv_10= 'uom' otherlv_11= '=' ( (lv_uomPropertyPath_12_0= ruleNestedField ) ) )
+            // InternalTableDSL.g:4422:3: () otherlv_1= 'quantityStyle' ( (lv_htmlPattern_2_0= RULE_STRING ) )? otherlv_3= 'value' otherlv_4= '=' ( (lv_valuePropertyPath_5_0= ruleNestedField ) ) (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )? otherlv_10= 'uom' otherlv_11= '=' ( (lv_uomPropertyPath_12_0= ruleNestedField ) )
+            {
+            // InternalTableDSL.g:4422:3: ()
+            // InternalTableDSL.g:4423:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getPropertyQuantityStyleAccess().getCxGridPropQuantityStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,91,FOLLOW_51); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyQuantityStyleAccess().getQuantityStyleKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:4433:3: ( (lv_htmlPattern_2_0= RULE_STRING ) )?
+            int alt42=2;
+            int LA42_0 = input.LA(1);
+
+            if ( (LA42_0==RULE_STRING) ) {
+                alt42=1;
+            }
+            switch (alt42) {
+                case 1 :
+                    // InternalTableDSL.g:4434:4: (lv_htmlPattern_2_0= RULE_STRING )
+                    {
+                    // InternalTableDSL.g:4434:4: (lv_htmlPattern_2_0= RULE_STRING )
+                    // InternalTableDSL.g:4435:5: lv_htmlPattern_2_0= RULE_STRING
+                    {
+                    lv_htmlPattern_2_0=(Token)match(input,RULE_STRING,FOLLOW_52); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(lv_htmlPattern_2_0, grammarAccess.getPropertyQuantityStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0());
+                      				
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElement(grammarAccess.getPropertyQuantityStyleRule());
+                      					}
+                      					setWithLastConsumed(
+                      						current,
+                      						"htmlPattern",
+                      						lv_htmlPattern_2_0,
+                      						"org.eclipse.xtext.xbase.Xtype.STRING");
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_3=(Token)match(input,35,FOLLOW_53); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_3, grammarAccess.getPropertyQuantityStyleAccess().getValueKeyword_3());
+              		
+            }
+            otherlv_4=(Token)match(input,92,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_4, grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_4());
+              		
+            }
+            // InternalTableDSL.g:4459:3: ( (lv_valuePropertyPath_5_0= ruleNestedField ) )
+            // InternalTableDSL.g:4460:4: (lv_valuePropertyPath_5_0= ruleNestedField )
+            {
+            // InternalTableDSL.g:4460:4: (lv_valuePropertyPath_5_0= ruleNestedField )
+            // InternalTableDSL.g:4461:5: lv_valuePropertyPath_5_0= ruleNestedField
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getPropertyQuantityStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0());
+              				
+            }
+            pushFollow(FOLLOW_54);
+            lv_valuePropertyPath_5_0=ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getPropertyQuantityStyleRule());
+              					}
+              					set(
+              						current,
+              						"valuePropertyPath",
+              						lv_valuePropertyPath_5_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.NestedField");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:4478:3: (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )?
+            int alt43=2;
+            int LA43_0 = input.LA(1);
+
+            if ( (LA43_0==93) ) {
+                alt43=1;
+            }
+            switch (alt43) {
+                case 1 :
+                    // InternalTableDSL.g:4479:4: otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')'
+                    {
+                    otherlv_6=(Token)match(input,93,FOLLOW_46); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_6, grammarAccess.getPropertyQuantityStyleAccess().getLeftParenthesisKeyword_6_0());
+                      			
+                    }
+                    otherlv_7=(Token)match(input,84,FOLLOW_8); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_7, grammarAccess.getPropertyQuantityStyleAccess().getFormatKeyword_6_1());
+                      			
+                    }
+                    // InternalTableDSL.g:4487:4: ( (lv_valueNumberFormat_8_0= RULE_STRING ) )
+                    // InternalTableDSL.g:4488:5: (lv_valueNumberFormat_8_0= RULE_STRING )
+                    {
+                    // InternalTableDSL.g:4488:5: (lv_valueNumberFormat_8_0= RULE_STRING )
+                    // InternalTableDSL.g:4489:6: lv_valueNumberFormat_8_0= RULE_STRING
+                    {
+                    lv_valueNumberFormat_8_0=(Token)match(input,RULE_STRING,FOLLOW_55); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_valueNumberFormat_8_0, grammarAccess.getPropertyQuantityStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getPropertyQuantityStyleRule());
+                      						}
+                      						setWithLastConsumed(
+                      							current,
+                      							"valueNumberFormat",
+                      							lv_valueNumberFormat_8_0,
+                      							"org.eclipse.xtext.xbase.Xtype.STRING");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_9=(Token)match(input,94,FOLLOW_56); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_9, grammarAccess.getPropertyQuantityStyleAccess().getRightParenthesisKeyword_6_3());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            otherlv_10=(Token)match(input,95,FOLLOW_53); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_10, grammarAccess.getPropertyQuantityStyleAccess().getUomKeyword_7());
+              		
+            }
+            otherlv_11=(Token)match(input,92,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_11, grammarAccess.getPropertyQuantityStyleAccess().getEqualsSignKeyword_8());
+              		
+            }
+            // InternalTableDSL.g:4518:3: ( (lv_uomPropertyPath_12_0= ruleNestedField ) )
+            // InternalTableDSL.g:4519:4: (lv_uomPropertyPath_12_0= ruleNestedField )
+            {
+            // InternalTableDSL.g:4519:4: (lv_uomPropertyPath_12_0= ruleNestedField )
+            // InternalTableDSL.g:4520:5: lv_uomPropertyPath_12_0= ruleNestedField
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getPropertyQuantityStyleAccess().getUomPropertyPathNestedFieldParserRuleCall_9_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_uomPropertyPath_12_0=ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getPropertyQuantityStyleRule());
+              					}
+              					set(
+              						current,
+              						"uomPropertyPath",
+              						lv_uomPropertyPath_12_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.NestedField");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyQuantityStyle"
+
+
+    // $ANTLR start "entryRulePropertyPriceStyle"
+    // InternalTableDSL.g:4541:1: entryRulePropertyPriceStyle returns [EObject current=null] : iv_rulePropertyPriceStyle= rulePropertyPriceStyle EOF ;
+    public final EObject entryRulePropertyPriceStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyPriceStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4541:59: (iv_rulePropertyPriceStyle= rulePropertyPriceStyle EOF )
+            // InternalTableDSL.g:4542:2: iv_rulePropertyPriceStyle= rulePropertyPriceStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyPriceStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyPriceStyle=rulePropertyPriceStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyPriceStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyPriceStyle"
+
+
+    // $ANTLR start "rulePropertyPriceStyle"
+    // InternalTableDSL.g:4548:1: rulePropertyPriceStyle returns [EObject current=null] : ( () otherlv_1= 'priceStyle' ( (lv_htmlPattern_2_0= RULE_STRING ) )? otherlv_3= 'value' otherlv_4= '=' ( (lv_valuePropertyPath_5_0= ruleNestedField ) ) (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )? otherlv_10= 'currency' otherlv_11= '=' ( (lv_currencyPropertyPath_12_0= ruleNestedField ) ) ) ;
+    public final EObject rulePropertyPriceStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_htmlPattern_2_0=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token lv_valueNumberFormat_8_0=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        EObject lv_valuePropertyPath_5_0 = null;
+
+        EObject lv_currencyPropertyPath_12_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4554:2: ( ( () otherlv_1= 'priceStyle' ( (lv_htmlPattern_2_0= RULE_STRING ) )? otherlv_3= 'value' otherlv_4= '=' ( (lv_valuePropertyPath_5_0= ruleNestedField ) ) (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )? otherlv_10= 'currency' otherlv_11= '=' ( (lv_currencyPropertyPath_12_0= ruleNestedField ) ) ) )
+            // InternalTableDSL.g:4555:2: ( () otherlv_1= 'priceStyle' ( (lv_htmlPattern_2_0= RULE_STRING ) )? otherlv_3= 'value' otherlv_4= '=' ( (lv_valuePropertyPath_5_0= ruleNestedField ) ) (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )? otherlv_10= 'currency' otherlv_11= '=' ( (lv_currencyPropertyPath_12_0= ruleNestedField ) ) )
+            {
+            // InternalTableDSL.g:4555:2: ( () otherlv_1= 'priceStyle' ( (lv_htmlPattern_2_0= RULE_STRING ) )? otherlv_3= 'value' otherlv_4= '=' ( (lv_valuePropertyPath_5_0= ruleNestedField ) ) (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )? otherlv_10= 'currency' otherlv_11= '=' ( (lv_currencyPropertyPath_12_0= ruleNestedField ) ) )
+            // InternalTableDSL.g:4556:3: () otherlv_1= 'priceStyle' ( (lv_htmlPattern_2_0= RULE_STRING ) )? otherlv_3= 'value' otherlv_4= '=' ( (lv_valuePropertyPath_5_0= ruleNestedField ) ) (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )? otherlv_10= 'currency' otherlv_11= '=' ( (lv_currencyPropertyPath_12_0= ruleNestedField ) )
+            {
+            // InternalTableDSL.g:4556:3: ()
+            // InternalTableDSL.g:4557:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getPropertyPriceStyleAccess().getCxGridPropPriceStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,96,FOLLOW_51); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyPriceStyleAccess().getPriceStyleKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:4567:3: ( (lv_htmlPattern_2_0= RULE_STRING ) )?
+            int alt44=2;
+            int LA44_0 = input.LA(1);
+
+            if ( (LA44_0==RULE_STRING) ) {
+                alt44=1;
+            }
+            switch (alt44) {
+                case 1 :
+                    // InternalTableDSL.g:4568:4: (lv_htmlPattern_2_0= RULE_STRING )
+                    {
+                    // InternalTableDSL.g:4568:4: (lv_htmlPattern_2_0= RULE_STRING )
+                    // InternalTableDSL.g:4569:5: lv_htmlPattern_2_0= RULE_STRING
+                    {
+                    lv_htmlPattern_2_0=(Token)match(input,RULE_STRING,FOLLOW_52); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(lv_htmlPattern_2_0, grammarAccess.getPropertyPriceStyleAccess().getHtmlPatternSTRINGTerminalRuleCall_2_0());
+                      				
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElement(grammarAccess.getPropertyPriceStyleRule());
+                      					}
+                      					setWithLastConsumed(
+                      						current,
+                      						"htmlPattern",
+                      						lv_htmlPattern_2_0,
+                      						"org.eclipse.xtext.xbase.Xtype.STRING");
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_3=(Token)match(input,35,FOLLOW_53); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_3, grammarAccess.getPropertyPriceStyleAccess().getValueKeyword_3());
+              		
+            }
+            otherlv_4=(Token)match(input,92,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_4, grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_4());
+              		
+            }
+            // InternalTableDSL.g:4593:3: ( (lv_valuePropertyPath_5_0= ruleNestedField ) )
+            // InternalTableDSL.g:4594:4: (lv_valuePropertyPath_5_0= ruleNestedField )
+            {
+            // InternalTableDSL.g:4594:4: (lv_valuePropertyPath_5_0= ruleNestedField )
+            // InternalTableDSL.g:4595:5: lv_valuePropertyPath_5_0= ruleNestedField
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getPropertyPriceStyleAccess().getValuePropertyPathNestedFieldParserRuleCall_5_0());
+              				
+            }
+            pushFollow(FOLLOW_57);
+            lv_valuePropertyPath_5_0=ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getPropertyPriceStyleRule());
+              					}
+              					set(
+              						current,
+              						"valuePropertyPath",
+              						lv_valuePropertyPath_5_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.NestedField");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:4612:3: (otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')' )?
+            int alt45=2;
+            int LA45_0 = input.LA(1);
+
+            if ( (LA45_0==93) ) {
+                alt45=1;
+            }
+            switch (alt45) {
+                case 1 :
+                    // InternalTableDSL.g:4613:4: otherlv_6= '(' otherlv_7= 'format' ( (lv_valueNumberFormat_8_0= RULE_STRING ) ) otherlv_9= ')'
+                    {
+                    otherlv_6=(Token)match(input,93,FOLLOW_46); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_6, grammarAccess.getPropertyPriceStyleAccess().getLeftParenthesisKeyword_6_0());
+                      			
+                    }
+                    otherlv_7=(Token)match(input,84,FOLLOW_8); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_7, grammarAccess.getPropertyPriceStyleAccess().getFormatKeyword_6_1());
+                      			
+                    }
+                    // InternalTableDSL.g:4621:4: ( (lv_valueNumberFormat_8_0= RULE_STRING ) )
+                    // InternalTableDSL.g:4622:5: (lv_valueNumberFormat_8_0= RULE_STRING )
+                    {
+                    // InternalTableDSL.g:4622:5: (lv_valueNumberFormat_8_0= RULE_STRING )
+                    // InternalTableDSL.g:4623:6: lv_valueNumberFormat_8_0= RULE_STRING
+                    {
+                    lv_valueNumberFormat_8_0=(Token)match(input,RULE_STRING,FOLLOW_55); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_valueNumberFormat_8_0, grammarAccess.getPropertyPriceStyleAccess().getValueNumberFormatSTRINGTerminalRuleCall_6_2_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getPropertyPriceStyleRule());
+                      						}
+                      						setWithLastConsumed(
+                      							current,
+                      							"valueNumberFormat",
+                      							lv_valueNumberFormat_8_0,
+                      							"org.eclipse.xtext.xbase.Xtype.STRING");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_9=(Token)match(input,94,FOLLOW_58); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_9, grammarAccess.getPropertyPriceStyleAccess().getRightParenthesisKeyword_6_3());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            otherlv_10=(Token)match(input,97,FOLLOW_53); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_10, grammarAccess.getPropertyPriceStyleAccess().getCurrencyKeyword_7());
+              		
+            }
+            otherlv_11=(Token)match(input,92,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_11, grammarAccess.getPropertyPriceStyleAccess().getEqualsSignKeyword_8());
+              		
+            }
+            // InternalTableDSL.g:4652:3: ( (lv_currencyPropertyPath_12_0= ruleNestedField ) )
+            // InternalTableDSL.g:4653:4: (lv_currencyPropertyPath_12_0= ruleNestedField )
+            {
+            // InternalTableDSL.g:4653:4: (lv_currencyPropertyPath_12_0= ruleNestedField )
+            // InternalTableDSL.g:4654:5: lv_currencyPropertyPath_12_0= ruleNestedField
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getPropertyPriceStyleAccess().getCurrencyPropertyPathNestedFieldParserRuleCall_9_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_currencyPropertyPath_12_0=ruleNestedField();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getPropertyPriceStyleRule());
+              					}
+              					set(
+              						current,
+              						"currencyPropertyPath",
+              						lv_currencyPropertyPath_12_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.NestedField");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyPriceStyle"
+
+
+    // $ANTLR start "entryRulePropertyTextStyle"
+    // InternalTableDSL.g:4675:1: entryRulePropertyTextStyle returns [EObject current=null] : iv_rulePropertyTextStyle= rulePropertyTextStyle EOF ;
+    public final EObject entryRulePropertyTextStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyTextStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4675:58: (iv_rulePropertyTextStyle= rulePropertyTextStyle EOF )
+            // InternalTableDSL.g:4676:2: iv_rulePropertyTextStyle= rulePropertyTextStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyTextStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyTextStyle=rulePropertyTextStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyTextStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyTextStyle"
+
+
+    // $ANTLR start "rulePropertyTextStyle"
+    // InternalTableDSL.g:4682:1: rulePropertyTextStyle returns [EObject current=null] : ( () otherlv_1= 'textStyle' ) ;
+    public final EObject rulePropertyTextStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4688:2: ( ( () otherlv_1= 'textStyle' ) )
+            // InternalTableDSL.g:4689:2: ( () otherlv_1= 'textStyle' )
+            {
+            // InternalTableDSL.g:4689:2: ( () otherlv_1= 'textStyle' )
+            // InternalTableDSL.g:4690:3: () otherlv_1= 'textStyle'
+            {
+            // InternalTableDSL.g:4690:3: ()
+            // InternalTableDSL.g:4691:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getPropertyTextStyleAccess().getCxGridPropTextStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,98,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyTextStyleAccess().getTextStyleKeyword_1());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyTextStyle"
+
+
+    // $ANTLR start "entryRulePropertyImageStyle"
+    // InternalTableDSL.g:4705:1: entryRulePropertyImageStyle returns [EObject current=null] : iv_rulePropertyImageStyle= rulePropertyImageStyle EOF ;
+    public final EObject entryRulePropertyImageStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePropertyImageStyle = null;
+
+
+        try {
+            // InternalTableDSL.g:4705:59: (iv_rulePropertyImageStyle= rulePropertyImageStyle EOF )
+            // InternalTableDSL.g:4706:2: iv_rulePropertyImageStyle= rulePropertyImageStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPropertyImageStyleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_rulePropertyImageStyle=rulePropertyImageStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePropertyImageStyle; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePropertyImageStyle"
+
+
+    // $ANTLR start "rulePropertyImageStyle"
+    // InternalTableDSL.g:4712:1: rulePropertyImageStyle returns [EObject current=null] : ( () otherlv_1= 'imageStyle' (otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_configs_5_0= ruleStyleConfig ) )* otherlv_6= '}' ) ;
+    public final EObject rulePropertyImageStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token lv_eventTopic_3_0=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_configs_5_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4718:2: ( ( () otherlv_1= 'imageStyle' (otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_configs_5_0= ruleStyleConfig ) )* otherlv_6= '}' ) )
+            // InternalTableDSL.g:4719:2: ( () otherlv_1= 'imageStyle' (otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_configs_5_0= ruleStyleConfig ) )* otherlv_6= '}' )
+            {
+            // InternalTableDSL.g:4719:2: ( () otherlv_1= 'imageStyle' (otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_configs_5_0= ruleStyleConfig ) )* otherlv_6= '}' )
+            // InternalTableDSL.g:4720:3: () otherlv_1= 'imageStyle' (otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) ) )? otherlv_4= '{' ( (lv_configs_5_0= ruleStyleConfig ) )* otherlv_6= '}'
+            {
+            // InternalTableDSL.g:4720:3: ()
+            // InternalTableDSL.g:4721:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getPropertyImageStyleAccess().getCxGridPropImageStyleAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,99,FOLLOW_59); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getPropertyImageStyleAccess().getImageStyleKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:4731:3: (otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) ) )?
+            int alt46=2;
+            int LA46_0 = input.LA(1);
+
+            if ( (LA46_0==80) ) {
+                alt46=1;
+            }
+            switch (alt46) {
+                case 1 :
+                    // InternalTableDSL.g:4732:4: otherlv_2= 'eventTopic' ( (lv_eventTopic_3_0= RULE_STRING ) )
+                    {
+                    otherlv_2=(Token)match(input,80,FOLLOW_8); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_2, grammarAccess.getPropertyImageStyleAccess().getEventTopicKeyword_2_0());
+                      			
+                    }
+                    // InternalTableDSL.g:4736:4: ( (lv_eventTopic_3_0= RULE_STRING ) )
+                    // InternalTableDSL.g:4737:5: (lv_eventTopic_3_0= RULE_STRING )
+                    {
+                    // InternalTableDSL.g:4737:5: (lv_eventTopic_3_0= RULE_STRING )
+                    // InternalTableDSL.g:4738:6: lv_eventTopic_3_0= RULE_STRING
+                    {
+                    lv_eventTopic_3_0=(Token)match(input,RULE_STRING,FOLLOW_22); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_eventTopic_3_0, grammarAccess.getPropertyImageStyleAccess().getEventTopicSTRINGTerminalRuleCall_2_1_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getPropertyImageStyleRule());
+                      						}
+                      						setWithLastConsumed(
+                      							current,
+                      							"eventTopic",
+                      							lv_eventTopic_3_0,
+                      							"org.eclipse.xtext.xbase.Xtype.STRING");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_4=(Token)match(input,16,FOLLOW_60); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_4, grammarAccess.getPropertyImageStyleAccess().getLeftCurlyBracketKeyword_3());
+              		
+            }
+            // InternalTableDSL.g:4759:3: ( (lv_configs_5_0= ruleStyleConfig ) )*
+            loop47:
+            do {
+                int alt47=2;
+                int LA47_0 = input.LA(1);
+
+                if ( ((LA47_0>=60 && LA47_0<=61)) ) {
+                    alt47=1;
+                }
+
+
+                switch (alt47) {
+            	case 1 :
+            	    // InternalTableDSL.g:4760:4: (lv_configs_5_0= ruleStyleConfig )
+            	    {
+            	    // InternalTableDSL.g:4760:4: (lv_configs_5_0= ruleStyleConfig )
+            	    // InternalTableDSL.g:4761:5: lv_configs_5_0= ruleStyleConfig
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      					newCompositeNode(grammarAccess.getPropertyImageStyleAccess().getConfigsStyleConfigParserRuleCall_4_0());
+            	      				
+            	    }
+            	    pushFollow(FOLLOW_60);
+            	    lv_configs_5_0=ruleStyleConfig();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      					if (current==null) {
+            	      						current = createModelElementForParent(grammarAccess.getPropertyImageStyleRule());
+            	      					}
+            	      					add(
+            	      						current,
+            	      						"configs",
+            	      						lv_configs_5_0,
+            	      						"org.eclipse.osbp.xtext.table.TableDSL.StyleConfig");
+            	      					afterParserOrEnumRuleCall();
+            	      				
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop47;
+                }
+            } while (true);
+
+            otherlv_6=(Token)match(input,17,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_6, grammarAccess.getPropertyImageStyleAccess().getRightCurlyBracketKeyword_5());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePropertyImageStyle"
+
+
+    // $ANTLR start "entryRuleStyleConfig"
+    // InternalTableDSL.g:4786:1: entryRuleStyleConfig returns [EObject current=null] : iv_ruleStyleConfig= ruleStyleConfig EOF ;
+    public final EObject entryRuleStyleConfig() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStyleConfig = null;
+
+
+        try {
+            // InternalTableDSL.g:4786:52: (iv_ruleStyleConfig= ruleStyleConfig EOF )
+            // InternalTableDSL.g:4787:2: iv_ruleStyleConfig= ruleStyleConfig EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getStyleConfigRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleStyleConfig=ruleStyleConfig();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleStyleConfig; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStyleConfig"
+
+
+    // $ANTLR start "ruleStyleConfig"
+    // InternalTableDSL.g:4793:1: ruleStyleConfig returns [EObject current=null] : (this_NumericToResourceStyleConfig_0= ruleNumericToResourceStyleConfig | this_StringToResourceStyleConfig_1= ruleStringToResourceStyleConfig ) ;
+    public final EObject ruleStyleConfig() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_NumericToResourceStyleConfig_0 = null;
+
+        EObject this_StringToResourceStyleConfig_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4799:2: ( (this_NumericToResourceStyleConfig_0= ruleNumericToResourceStyleConfig | this_StringToResourceStyleConfig_1= ruleStringToResourceStyleConfig ) )
+            // InternalTableDSL.g:4800:2: (this_NumericToResourceStyleConfig_0= ruleNumericToResourceStyleConfig | this_StringToResourceStyleConfig_1= ruleStringToResourceStyleConfig )
+            {
+            // InternalTableDSL.g:4800:2: (this_NumericToResourceStyleConfig_0= ruleNumericToResourceStyleConfig | this_StringToResourceStyleConfig_1= ruleStringToResourceStyleConfig )
+            int alt48=2;
+            int LA48_0 = input.LA(1);
+
+            if ( (LA48_0==60) ) {
+                alt48=1;
+            }
+            else if ( (LA48_0==61) ) {
+                alt48=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 48, 0, input);
+
+                throw nvae;
+            }
+            switch (alt48) {
+                case 1 :
+                    // InternalTableDSL.g:4801:3: this_NumericToResourceStyleConfig_0= ruleNumericToResourceStyleConfig
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getStyleConfigAccess().getNumericToResourceStyleConfigParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_NumericToResourceStyleConfig_0=ruleNumericToResourceStyleConfig();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_NumericToResourceStyleConfig_0;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:4810:3: this_StringToResourceStyleConfig_1= ruleStringToResourceStyleConfig
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getStyleConfigAccess().getStringToResourceStyleConfigParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_StringToResourceStyleConfig_1=ruleStringToResourceStyleConfig();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_StringToResourceStyleConfig_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStyleConfig"
+
+
+    // $ANTLR start "entryRuleNumericToResourceStyleConfig"
+    // InternalTableDSL.g:4822:1: entryRuleNumericToResourceStyleConfig returns [EObject current=null] : iv_ruleNumericToResourceStyleConfig= ruleNumericToResourceStyleConfig EOF ;
+    public final EObject entryRuleNumericToResourceStyleConfig() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleNumericToResourceStyleConfig = null;
+
+
+        try {
+            // InternalTableDSL.g:4822:69: (iv_ruleNumericToResourceStyleConfig= ruleNumericToResourceStyleConfig EOF )
+            // InternalTableDSL.g:4823:2: iv_ruleNumericToResourceStyleConfig= ruleNumericToResourceStyleConfig EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getNumericToResourceStyleConfigRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleNumericToResourceStyleConfig=ruleNumericToResourceStyleConfig();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleNumericToResourceStyleConfig; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleNumericToResourceStyleConfig"
+
+
+    // $ANTLR start "ruleNumericToResourceStyleConfig"
+    // InternalTableDSL.g:4829:1: ruleNumericToResourceStyleConfig returns [EObject current=null] : (otherlv_0= 'number' ( (lv_compare_1_0= ruleStyleCompare ) ) ( (lv_value_2_0= ruleLDouble ) ) otherlv_3= 'then' ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) ) ) ;
+    public final EObject ruleNumericToResourceStyleConfig() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_3=null;
+        Token lv_resourceThemePath_4_0=null;
+        Enumerator lv_compare_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_value_2_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4835:2: ( (otherlv_0= 'number' ( (lv_compare_1_0= ruleStyleCompare ) ) ( (lv_value_2_0= ruleLDouble ) ) otherlv_3= 'then' ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) ) ) )
+            // InternalTableDSL.g:4836:2: (otherlv_0= 'number' ( (lv_compare_1_0= ruleStyleCompare ) ) ( (lv_value_2_0= ruleLDouble ) ) otherlv_3= 'then' ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) ) )
+            {
+            // InternalTableDSL.g:4836:2: (otherlv_0= 'number' ( (lv_compare_1_0= ruleStyleCompare ) ) ( (lv_value_2_0= ruleLDouble ) ) otherlv_3= 'then' ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) ) )
+            // InternalTableDSL.g:4837:3: otherlv_0= 'number' ( (lv_compare_1_0= ruleStyleCompare ) ) ( (lv_value_2_0= ruleLDouble ) ) otherlv_3= 'then' ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) )
+            {
+            otherlv_0=(Token)match(input,60,FOLLOW_61); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_0, grammarAccess.getNumericToResourceStyleConfigAccess().getNumberKeyword_0());
+              		
+            }
+            // InternalTableDSL.g:4841:3: ( (lv_compare_1_0= ruleStyleCompare ) )
+            // InternalTableDSL.g:4842:4: (lv_compare_1_0= ruleStyleCompare )
+            {
+            // InternalTableDSL.g:4842:4: (lv_compare_1_0= ruleStyleCompare )
+            // InternalTableDSL.g:4843:5: lv_compare_1_0= ruleStyleCompare
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_48);
+            lv_compare_1_0=ruleStyleCompare();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getNumericToResourceStyleConfigRule());
+              					}
+              					set(
+              						current,
+              						"compare",
+              						lv_compare_1_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.StyleCompare");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:4860:3: ( (lv_value_2_0= ruleLDouble ) )
+            // InternalTableDSL.g:4861:4: (lv_value_2_0= ruleLDouble )
+            {
+            // InternalTableDSL.g:4861:4: (lv_value_2_0= ruleLDouble )
+            // InternalTableDSL.g:4862:5: lv_value_2_0= ruleLDouble
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getNumericToResourceStyleConfigAccess().getValueLDoubleParserRuleCall_2_0());
+              				
+            }
+            pushFollow(FOLLOW_62);
+            lv_value_2_0=ruleLDouble();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getNumericToResourceStyleConfigRule());
+              					}
+              					set(
+              						current,
+              						"value",
+              						lv_value_2_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.LDouble");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,100,FOLLOW_63); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_3, grammarAccess.getNumericToResourceStyleConfigAccess().getThenKeyword_3());
+              		
+            }
+            // InternalTableDSL.g:4883:3: ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) )
+            // InternalTableDSL.g:4884:4: (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE )
+            {
+            // InternalTableDSL.g:4884:4: (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE )
+            // InternalTableDSL.g:4885:5: lv_resourceThemePath_4_0= RULE_THEME_RESOURCE
+            {
+            lv_resourceThemePath_4_0=(Token)match(input,RULE_THEME_RESOURCE,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_resourceThemePath_4_0, grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getNumericToResourceStyleConfigRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"resourceThemePath",
+              						lv_resourceThemePath_4_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.THEME_RESOURCE");
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleNumericToResourceStyleConfig"
+
+
+    // $ANTLR start "entryRuleStringToResourceStyleConfig"
+    // InternalTableDSL.g:4905:1: entryRuleStringToResourceStyleConfig returns [EObject current=null] : iv_ruleStringToResourceStyleConfig= ruleStringToResourceStyleConfig EOF ;
+    public final EObject entryRuleStringToResourceStyleConfig() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStringToResourceStyleConfig = null;
+
+
+        try {
+            // InternalTableDSL.g:4905:68: (iv_ruleStringToResourceStyleConfig= ruleStringToResourceStyleConfig EOF )
+            // InternalTableDSL.g:4906:2: iv_ruleStringToResourceStyleConfig= ruleStringToResourceStyleConfig EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getStringToResourceStyleConfigRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleStringToResourceStyleConfig=ruleStringToResourceStyleConfig();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleStringToResourceStyleConfig; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStringToResourceStyleConfig"
+
+
+    // $ANTLR start "ruleStringToResourceStyleConfig"
+    // InternalTableDSL.g:4912:1: ruleStringToResourceStyleConfig returns [EObject current=null] : (otherlv_0= 'string' ( (lv_compare_1_0= ruleStyleCompare ) ) ( (lv_value_2_0= RULE_STRING ) ) otherlv_3= 'then' ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) ) ) ;
+    public final EObject ruleStringToResourceStyleConfig() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_value_2_0=null;
+        Token otherlv_3=null;
+        Token lv_resourceThemePath_4_0=null;
+        Enumerator lv_compare_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:4918:2: ( (otherlv_0= 'string' ( (lv_compare_1_0= ruleStyleCompare ) ) ( (lv_value_2_0= RULE_STRING ) ) otherlv_3= 'then' ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) ) ) )
+            // InternalTableDSL.g:4919:2: (otherlv_0= 'string' ( (lv_compare_1_0= ruleStyleCompare ) ) ( (lv_value_2_0= RULE_STRING ) ) otherlv_3= 'then' ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) ) )
+            {
+            // InternalTableDSL.g:4919:2: (otherlv_0= 'string' ( (lv_compare_1_0= ruleStyleCompare ) ) ( (lv_value_2_0= RULE_STRING ) ) otherlv_3= 'then' ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) ) )
+            // InternalTableDSL.g:4920:3: otherlv_0= 'string' ( (lv_compare_1_0= ruleStyleCompare ) ) ( (lv_value_2_0= RULE_STRING ) ) otherlv_3= 'then' ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) )
+            {
+            otherlv_0=(Token)match(input,61,FOLLOW_61); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_0, grammarAccess.getStringToResourceStyleConfigAccess().getStringKeyword_0());
+              		
+            }
+            // InternalTableDSL.g:4924:3: ( (lv_compare_1_0= ruleStyleCompare ) )
+            // InternalTableDSL.g:4925:4: (lv_compare_1_0= ruleStyleCompare )
+            {
+            // InternalTableDSL.g:4925:4: (lv_compare_1_0= ruleStyleCompare )
+            // InternalTableDSL.g:4926:5: lv_compare_1_0= ruleStyleCompare
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getStringToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_8);
+            lv_compare_1_0=ruleStyleCompare();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getStringToResourceStyleConfigRule());
+              					}
+              					set(
+              						current,
+              						"compare",
+              						lv_compare_1_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.StyleCompare");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:4943:3: ( (lv_value_2_0= RULE_STRING ) )
+            // InternalTableDSL.g:4944:4: (lv_value_2_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:4944:4: (lv_value_2_0= RULE_STRING )
+            // InternalTableDSL.g:4945:5: lv_value_2_0= RULE_STRING
+            {
+            lv_value_2_0=(Token)match(input,RULE_STRING,FOLLOW_62); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_value_2_0, grammarAccess.getStringToResourceStyleConfigAccess().getValueSTRINGTerminalRuleCall_2_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getStringToResourceStyleConfigRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"value",
+              						lv_value_2_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,100,FOLLOW_63); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_3, grammarAccess.getStringToResourceStyleConfigAccess().getThenKeyword_3());
+              		
+            }
+            // InternalTableDSL.g:4965:3: ( (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE ) )
+            // InternalTableDSL.g:4966:4: (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE )
+            {
+            // InternalTableDSL.g:4966:4: (lv_resourceThemePath_4_0= RULE_THEME_RESOURCE )
+            // InternalTableDSL.g:4967:5: lv_resourceThemePath_4_0= RULE_THEME_RESOURCE
+            {
+            lv_resourceThemePath_4_0=(Token)match(input,RULE_THEME_RESOURCE,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_resourceThemePath_4_0, grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getStringToResourceStyleConfigRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"resourceThemePath",
+              						lv_resourceThemePath_4_0,
+              						"org.eclipse.osbp.xtext.table.TableDSL.THEME_RESOURCE");
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStringToResourceStyleConfig"
+
+
+    // $ANTLR start "entryRuleLInt"
+    // InternalTableDSL.g:4987:1: entryRuleLInt returns [String current=null] : iv_ruleLInt= ruleLInt EOF ;
+    public final String entryRuleLInt() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleLInt = null;
+
+
+        try {
+            // InternalTableDSL.g:4987:44: (iv_ruleLInt= ruleLInt EOF )
+            // InternalTableDSL.g:4988:2: iv_ruleLInt= ruleLInt EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getLIntRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleLInt=ruleLInt();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleLInt.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleLInt"
+
+
+    // $ANTLR start "ruleLInt"
+    // InternalTableDSL.g:4994:1: ruleLInt returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '+' | kw= '-' )? this_INT_2= RULE_INT ) ;
+    public final AntlrDatatypeRuleToken ruleLInt() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        Token this_INT_2=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5000:2: ( ( (kw= '+' | kw= '-' )? this_INT_2= RULE_INT ) )
+            // InternalTableDSL.g:5001:2: ( (kw= '+' | kw= '-' )? this_INT_2= RULE_INT )
+            {
+            // InternalTableDSL.g:5001:2: ( (kw= '+' | kw= '-' )? this_INT_2= RULE_INT )
+            // InternalTableDSL.g:5002:3: (kw= '+' | kw= '-' )? this_INT_2= RULE_INT
+            {
+            // InternalTableDSL.g:5002:3: (kw= '+' | kw= '-' )?
+            int alt49=3;
+            int LA49_0 = input.LA(1);
+
+            if ( (LA49_0==101) ) {
+                alt49=1;
+            }
+            else if ( (LA49_0==102) ) {
+                alt49=2;
+            }
+            switch (alt49) {
+                case 1 :
+                    // InternalTableDSL.g:5003:4: kw= '+'
+                    {
+                    kw=(Token)match(input,101,FOLLOW_64); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getLIntAccess().getPlusSignKeyword_0_0());
+                      			
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5009:4: kw= '-'
+                    {
+                    kw=(Token)match(input,102,FOLLOW_64); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getLIntAccess().getHyphenMinusKeyword_0_1());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            this_INT_2=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current.merge(this_INT_2);
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(this_INT_2, grammarAccess.getLIntAccess().getINTTerminalRuleCall_1());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleLInt"
+
+
+    // $ANTLR start "entryRuleLDouble"
+    // InternalTableDSL.g:5026:1: entryRuleLDouble returns [String current=null] : iv_ruleLDouble= ruleLDouble EOF ;
+    public final String entryRuleLDouble() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleLDouble = null;
+
+
+        try {
+            // InternalTableDSL.g:5026:47: (iv_ruleLDouble= ruleLDouble EOF )
+            // InternalTableDSL.g:5027:2: iv_ruleLDouble= ruleLDouble EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getLDoubleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleLDouble=ruleLDouble();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleLDouble.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleLDouble"
+
+
+    // $ANTLR start "ruleLDouble"
+    // InternalTableDSL.g:5033:1: ruleLDouble returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_LInt_0= ruleLInt (kw= '.' this_INT_2= RULE_INT )? ) ;
+    public final AntlrDatatypeRuleToken ruleLDouble() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        Token this_INT_2=null;
+        AntlrDatatypeRuleToken this_LInt_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5039:2: ( (this_LInt_0= ruleLInt (kw= '.' this_INT_2= RULE_INT )? ) )
+            // InternalTableDSL.g:5040:2: (this_LInt_0= ruleLInt (kw= '.' this_INT_2= RULE_INT )? )
+            {
+            // InternalTableDSL.g:5040:2: (this_LInt_0= ruleLInt (kw= '.' this_INT_2= RULE_INT )? )
+            // InternalTableDSL.g:5041:3: this_LInt_0= ruleLInt (kw= '.' this_INT_2= RULE_INT )?
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getLDoubleAccess().getLIntParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_44);
+            this_LInt_0=ruleLInt();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current.merge(this_LInt_0);
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:5051:3: (kw= '.' this_INT_2= RULE_INT )?
+            int alt50=2;
+            int LA50_0 = input.LA(1);
+
+            if ( (LA50_0==78) ) {
+                alt50=1;
+            }
+            switch (alt50) {
+                case 1 :
+                    // InternalTableDSL.g:5052:4: kw= '.' this_INT_2= RULE_INT
+                    {
+                    kw=(Token)match(input,78,FOLLOW_64); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getLDoubleAccess().getFullStopKeyword_1_0());
+                      			
+                    }
+                    this_INT_2=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(this_INT_2);
+                      			
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(this_INT_2, grammarAccess.getLDoubleAccess().getINTTerminalRuleCall_1_1());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleLDouble"
+
+
+    // $ANTLR start "entryRuleSignedNumber"
+    // InternalTableDSL.g:5069:1: entryRuleSignedNumber returns [String current=null] : iv_ruleSignedNumber= ruleSignedNumber EOF ;
+    public final String entryRuleSignedNumber() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleSignedNumber = null;
+
+
+        try {
+            // InternalTableDSL.g:5069:52: (iv_ruleSignedNumber= ruleSignedNumber EOF )
+            // InternalTableDSL.g:5070:2: iv_ruleSignedNumber= ruleSignedNumber EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getSignedNumberRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleSignedNumber=ruleSignedNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleSignedNumber.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSignedNumber"
+
+
+    // $ANTLR start "ruleSignedNumber"
+    // InternalTableDSL.g:5076:1: ruleSignedNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_Number_1= ruleNumber ) ;
+    public final AntlrDatatypeRuleToken ruleSignedNumber() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_Number_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5082:2: ( ( (kw= '-' )? this_Number_1= ruleNumber ) )
+            // InternalTableDSL.g:5083:2: ( (kw= '-' )? this_Number_1= ruleNumber )
+            {
+            // InternalTableDSL.g:5083:2: ( (kw= '-' )? this_Number_1= ruleNumber )
+            // InternalTableDSL.g:5084:3: (kw= '-' )? this_Number_1= ruleNumber
+            {
+            // InternalTableDSL.g:5084:3: (kw= '-' )?
+            int alt51=2;
+            int LA51_0 = input.LA(1);
+
+            if ( (LA51_0==102) ) {
+                alt51=1;
+            }
+            switch (alt51) {
+                case 1 :
+                    // InternalTableDSL.g:5085:4: kw= '-'
+                    {
+                    kw=(Token)match(input,102,FOLLOW_14); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getSignedNumberAccess().getHyphenMinusKeyword_0());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getSignedNumberAccess().getNumberParserRuleCall_1());
+              		
+            }
+            pushFollow(FOLLOW_2);
+            this_Number_1=ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current.merge(this_Number_1);
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              			afterParserOrEnumRuleCall();
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSignedNumber"
+
+
+    // $ANTLR start "entryRuleSignedInt"
+    // InternalTableDSL.g:5105:1: entryRuleSignedInt returns [String current=null] : iv_ruleSignedInt= ruleSignedInt EOF ;
+    public final String entryRuleSignedInt() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleSignedInt = null;
+
+
+        try {
+            // InternalTableDSL.g:5105:49: (iv_ruleSignedInt= ruleSignedInt EOF )
+            // InternalTableDSL.g:5106:2: iv_ruleSignedInt= ruleSignedInt EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getSignedIntRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleSignedInt=ruleSignedInt();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleSignedInt.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSignedInt"
+
+
+    // $ANTLR start "ruleSignedInt"
+    // InternalTableDSL.g:5112:1: ruleSignedInt returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ) ;
+    public final AntlrDatatypeRuleToken ruleSignedInt() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        Token this_INT_1=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5118:2: ( ( (kw= '-' )? this_INT_1= RULE_INT ) )
+            // InternalTableDSL.g:5119:2: ( (kw= '-' )? this_INT_1= RULE_INT )
+            {
+            // InternalTableDSL.g:5119:2: ( (kw= '-' )? this_INT_1= RULE_INT )
+            // InternalTableDSL.g:5120:3: (kw= '-' )? this_INT_1= RULE_INT
+            {
+            // InternalTableDSL.g:5120:3: (kw= '-' )?
+            int alt52=2;
+            int LA52_0 = input.LA(1);
+
+            if ( (LA52_0==102) ) {
+                alt52=1;
+            }
+            switch (alt52) {
+                case 1 :
+                    // InternalTableDSL.g:5121:4: kw= '-'
+                    {
+                    kw=(Token)match(input,102,FOLLOW_64); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getSignedIntAccess().getHyphenMinusKeyword_0());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current.merge(this_INT_1);
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(this_INT_1, grammarAccess.getSignedIntAccess().getINTTerminalRuleCall_1());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSignedInt"
+
+
+    // $ANTLR start "entryRuleTRANSLATABLESTRING"
+    // InternalTableDSL.g:5138:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
+    public final String entryRuleTRANSLATABLESTRING() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleTRANSLATABLESTRING = null;
+
+
+        try {
+            // InternalTableDSL.g:5138:58: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
+            // InternalTableDSL.g:5139:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getTRANSLATABLESTRINGRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleTRANSLATABLESTRING=ruleTRANSLATABLESTRING();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleTRANSLATABLESTRING.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "ruleTRANSLATABLESTRING"
+    // InternalTableDSL.g:5145:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
+    public final AntlrDatatypeRuleToken ruleTRANSLATABLESTRING() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_STRING_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5151:2: (this_STRING_0= RULE_STRING )
+            // InternalTableDSL.g:5152:2: this_STRING_0= RULE_STRING
+            {
+            this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_STRING_0);
+              	
+            }
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(this_STRING_0, grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall());
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "entryRuleXImportDeclaration"
+    // InternalTableDSL.g:5162:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
+    public final EObject entryRuleXImportDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXImportDeclaration = null;
+
+
+        try {
+            // InternalTableDSL.g:5162:59: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
+            // InternalTableDSL.g:5163:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXImportDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXImportDeclaration=ruleXImportDeclaration();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXImportDeclaration; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXImportDeclaration"
+
+
+    // $ANTLR start "ruleXImportDeclaration"
+    // InternalTableDSL.g:5169:1: ruleXImportDeclaration returns [EObject current=null] : ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) ;
+    public final EObject ruleXImportDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_static_2_0=null;
+        Token lv_extension_3_0=null;
+        Token lv_wildcard_5_0=null;
+        Token lv_fqnImport_9_0=null;
+        Token otherlv_11=null;
+        AntlrDatatypeRuleToken lv_memberName_6_0 = null;
+
+        AntlrDatatypeRuleToken lv_importedNamespace_8_0 = null;
+
+        AntlrDatatypeRuleToken lv_importedFullyQualifiedName_10_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5175:2: ( ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? ) )
+            // InternalTableDSL.g:5176:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
+            {
+            // InternalTableDSL.g:5176:2: ( () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )? )
+            // InternalTableDSL.g:5177:3: () otherlv_1= 'import' ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) ) (otherlv_11= ';' )?
+            {
+            // InternalTableDSL.g:5177:3: ()
+            // InternalTableDSL.g:5178:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXImportDeclarationAccess().getOXImportDeclarationAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,103,FOLLOW_65); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXImportDeclarationAccess().getImportKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:5188:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )
+            int alt55=4;
+            alt55 = dfa55.predict(input);
+            switch (alt55) {
+                case 1 :
+                    // InternalTableDSL.g:5189:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    {
+                    // InternalTableDSL.g:5189:4: ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) )
+                    // InternalTableDSL.g:5190:5: ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    {
+                    // InternalTableDSL.g:5190:5: ( (lv_static_2_0= 'static' ) )
+                    // InternalTableDSL.g:5191:6: (lv_static_2_0= 'static' )
+                    {
+                    // InternalTableDSL.g:5191:6: (lv_static_2_0= 'static' )
+                    // InternalTableDSL.g:5192:7: lv_static_2_0= 'static'
+                    {
+                    lv_static_2_0=(Token)match(input,104,FOLLOW_66); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(lv_static_2_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_2_0_0_0());
+                      						
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getXImportDeclarationRule());
+                      							}
+                      							setWithLastConsumed(current, "static", true, "static");
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:5204:5: ( (lv_extension_3_0= 'extension' ) )?
+                    int alt53=2;
+                    int LA53_0 = input.LA(1);
+
+                    if ( (LA53_0==105) ) {
+                        alt53=1;
+                    }
+                    switch (alt53) {
+                        case 1 :
+                            // InternalTableDSL.g:5205:6: (lv_extension_3_0= 'extension' )
+                            {
+                            // InternalTableDSL.g:5205:6: (lv_extension_3_0= 'extension' )
+                            // InternalTableDSL.g:5206:7: lv_extension_3_0= 'extension'
+                            {
+                            lv_extension_3_0=(Token)match(input,105,FOLLOW_66); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							newLeafNode(lv_extension_3_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_2_0_1_0());
+                              						
+                            }
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElement(grammarAccess.getXImportDeclarationRule());
+                              							}
+                              							setWithLastConsumed(current, "extension", true, "extension");
+                              						
+                            }
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+                    // InternalTableDSL.g:5218:5: ( ( ruleQualifiedNameInStaticImport ) )
+                    // InternalTableDSL.g:5219:6: ( ruleQualifiedNameInStaticImport )
+                    {
+                    // InternalTableDSL.g:5219:6: ( ruleQualifiedNameInStaticImport )
+                    // InternalTableDSL.g:5220:7: ruleQualifiedNameInStaticImport
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getXImportDeclarationRule());
+                      							}
+                      						
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      							newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_0_2_0());
+                      						
+                    }
+                    pushFollow(FOLLOW_67);
+                    ruleQualifiedNameInStaticImport();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							afterParserOrEnumRuleCall();
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:5234:5: ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) )
+                    int alt54=2;
+                    int LA54_0 = input.LA(1);
+
+                    if ( (LA54_0==106) ) {
+                        alt54=1;
+                    }
+                    else if ( (LA54_0==RULE_ID) ) {
+                        alt54=2;
+                    }
+                    else {
+                        if (state.backtracking>0) {state.failed=true; return current;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 54, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt54) {
+                        case 1 :
+                            // InternalTableDSL.g:5235:6: ( (lv_wildcard_5_0= '*' ) )
+                            {
+                            // InternalTableDSL.g:5235:6: ( (lv_wildcard_5_0= '*' ) )
+                            // InternalTableDSL.g:5236:7: (lv_wildcard_5_0= '*' )
+                            {
+                            // InternalTableDSL.g:5236:7: (lv_wildcard_5_0= '*' )
+                            // InternalTableDSL.g:5237:8: lv_wildcard_5_0= '*'
+                            {
+                            lv_wildcard_5_0=(Token)match(input,106,FOLLOW_68); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              								newLeafNode(lv_wildcard_5_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_2_0_3_0_0());
+                              							
+                            }
+                            if ( state.backtracking==0 ) {
+
+                              								if (current==null) {
+                              									current = createModelElement(grammarAccess.getXImportDeclarationRule());
+                              								}
+                              								setWithLastConsumed(current, "wildcard", true, "*");
+                              							
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // InternalTableDSL.g:5250:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            {
+                            // InternalTableDSL.g:5250:6: ( (lv_memberName_6_0= ruleValidID ) )
+                            // InternalTableDSL.g:5251:7: (lv_memberName_6_0= ruleValidID )
+                            {
+                            // InternalTableDSL.g:5251:7: (lv_memberName_6_0= ruleValidID )
+                            // InternalTableDSL.g:5252:8: lv_memberName_6_0= ruleValidID
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              								newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_2_0_3_1_0());
+                              							
+                            }
+                            pushFollow(FOLLOW_68);
+                            lv_memberName_6_0=ruleValidID();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              								if (current==null) {
+                              									current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+                              								}
+                              								set(
+                              									current,
+                              									"memberName",
+                              									lv_memberName_6_0,
+                              									"org.eclipse.xtext.xbase.Xtype.ValidID");
+                              								afterParserOrEnumRuleCall();
+                              							
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5272:4: ( ( ruleQualifiedName ) )
+                    {
+                    // InternalTableDSL.g:5272:4: ( ( ruleQualifiedName ) )
+                    // InternalTableDSL.g:5273:5: ( ruleQualifiedName )
+                    {
+                    // InternalTableDSL.g:5273:5: ( ruleQualifiedName )
+                    // InternalTableDSL.g:5274:6: ruleQualifiedName
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getXImportDeclarationRule());
+                      						}
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_2_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_68);
+                    ruleQualifiedName();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:5289:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    {
+                    // InternalTableDSL.g:5289:4: ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) )
+                    // InternalTableDSL.g:5290:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    {
+                    // InternalTableDSL.g:5290:5: (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard )
+                    // InternalTableDSL.g:5291:6: lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_2_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_68);
+                    lv_importedNamespace_8_0=ruleQualifiedNameWithWildcard();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+                      						}
+                      						set(
+                      							current,
+                      							"importedNamespace",
+                      							lv_importedNamespace_8_0,
+                      							"org.eclipse.xtext.xbase.Xtype.QualifiedNameWithWildcard");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:5309:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    {
+                    // InternalTableDSL.g:5309:4: ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) )
+                    // InternalTableDSL.g:5310:5: ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    {
+                    // InternalTableDSL.g:5310:5: ( (lv_fqnImport_9_0= 'ns' ) )
+                    // InternalTableDSL.g:5311:6: (lv_fqnImport_9_0= 'ns' )
+                    {
+                    // InternalTableDSL.g:5311:6: (lv_fqnImport_9_0= 'ns' )
+                    // InternalTableDSL.g:5312:7: lv_fqnImport_9_0= 'ns'
+                    {
+                    lv_fqnImport_9_0=(Token)match(input,107,FOLLOW_4); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(lv_fqnImport_9_0, grammarAccess.getXImportDeclarationAccess().getFqnImportNsKeyword_2_3_0_0());
+                      						
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getXImportDeclarationRule());
+                      							}
+                      							setWithLastConsumed(current, "fqnImport", true, "ns");
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:5324:5: ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) )
+                    // InternalTableDSL.g:5325:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    {
+                    // InternalTableDSL.g:5325:6: (lv_importedFullyQualifiedName_10_0= ruleQualifiedName )
+                    // InternalTableDSL.g:5326:7: lv_importedFullyQualifiedName_10_0= ruleQualifiedName
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedFullyQualifiedNameQualifiedNameParserRuleCall_2_3_1_0());
+                      						
+                    }
+                    pushFollow(FOLLOW_68);
+                    lv_importedFullyQualifiedName_10_0=ruleQualifiedName();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+                      							}
+                      							set(
+                      								current,
+                      								"importedFullyQualifiedName",
+                      								lv_importedFullyQualifiedName_10_0,
+                      								"org.eclipse.xtext.xbase.Xbase.QualifiedName");
+                      							afterParserOrEnumRuleCall();
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:5345:3: (otherlv_11= ';' )?
+            int alt56=2;
+            int LA56_0 = input.LA(1);
+
+            if ( (LA56_0==108) ) {
+                alt56=1;
+            }
+            switch (alt56) {
+                case 1 :
+                    // InternalTableDSL.g:5346:4: otherlv_11= ';'
+                    {
+                    otherlv_11=(Token)match(input,108,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_11, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXImportDeclaration"
+
+
+    // $ANTLR start "entryRuleXAnnotation"
+    // InternalTableDSL.g:5355:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
+    public final EObject entryRuleXAnnotation() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotation = null;
+
+
+        try {
+            // InternalTableDSL.g:5355:52: (iv_ruleXAnnotation= ruleXAnnotation EOF )
+            // InternalTableDSL.g:5356:2: iv_ruleXAnnotation= ruleXAnnotation EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAnnotation=ruleXAnnotation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotation; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotation"
+
+
+    // $ANTLR start "ruleXAnnotation"
+    // InternalTableDSL.g:5362:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
+    public final EObject ruleXAnnotation() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_8=null;
+        EObject lv_elementValuePairs_4_0 = null;
+
+        EObject lv_elementValuePairs_6_0 = null;
+
+        EObject lv_value_7_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5368:2: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
+            // InternalTableDSL.g:5369:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            {
+            // InternalTableDSL.g:5369:2: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // InternalTableDSL.g:5370:3: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            {
+            // InternalTableDSL.g:5370:3: ()
+            // InternalTableDSL.g:5371:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXAnnotationAccess().getXAnnotationAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,109,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:5381:3: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:5382:4: ( ruleQualifiedName )
+            {
+            // InternalTableDSL.g:5382:4: ( ruleQualifiedName )
+            // InternalTableDSL.g:5383:5: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getXAnnotationRule());
+              					}
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0());
+              				
+            }
+            pushFollow(FOLLOW_69);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:5397:3: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            int alt59=2;
+            int LA59_0 = input.LA(1);
+
+            if ( (LA59_0==93) && (synpred1_InternalTableDSL())) {
+                alt59=1;
+            }
+            switch (alt59) {
+                case 1 :
+                    // InternalTableDSL.g:5398:4: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
+                    {
+                    // InternalTableDSL.g:5398:4: ( ( '(' )=>otherlv_3= '(' )
+                    // InternalTableDSL.g:5399:5: ( '(' )=>otherlv_3= '('
+                    {
+                    otherlv_3=(Token)match(input,93,FOLLOW_70); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
+                      				
+                    }
+
+                    }
+
+                    // InternalTableDSL.g:5405:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
+                    int alt58=3;
+                    alt58 = dfa58.predict(input);
+                    switch (alt58) {
+                        case 1 :
+                            // InternalTableDSL.g:5406:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            {
+                            // InternalTableDSL.g:5406:5: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // InternalTableDSL.g:5407:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            {
+                            // InternalTableDSL.g:5407:6: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
+                            // InternalTableDSL.g:5408:7: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            {
+                            // InternalTableDSL.g:5417:7: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // InternalTableDSL.g:5418:8: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              								newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0());
+                              							
+                            }
+                            pushFollow(FOLLOW_71);
+                            lv_elementValuePairs_4_0=ruleXAnnotationElementValuePair();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              								if (current==null) {
+                              									current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+                              								}
+                              								add(
+                              									current,
+                              									"elementValuePairs",
+                              									lv_elementValuePairs_4_0,
+                              									"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationElementValuePair");
+                              								afterParserOrEnumRuleCall();
+                              							
+                            }
+
+                            }
+
+
+                            }
+
+                            // InternalTableDSL.g:5435:6: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            loop57:
+                            do {
+                                int alt57=2;
+                                int LA57_0 = input.LA(1);
+
+                                if ( (LA57_0==110) ) {
+                                    alt57=1;
+                                }
+
+
+                                switch (alt57) {
+                            	case 1 :
+                            	    // InternalTableDSL.g:5436:7: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    {
+                            	    otherlv_5=(Token)match(input,110,FOLLOW_4); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      							newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
+                            	      						
+                            	    }
+                            	    // InternalTableDSL.g:5440:7: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // InternalTableDSL.g:5441:8: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    {
+                            	    // InternalTableDSL.g:5450:8: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // InternalTableDSL.g:5451:9: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+
+                            	      									newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0());
+                            	      								
+                            	    }
+                            	    pushFollow(FOLLOW_71);
+                            	    lv_elementValuePairs_6_0=ruleXAnnotationElementValuePair();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      									if (current==null) {
+                            	      										current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+                            	      									}
+                            	      									add(
+                            	      										current,
+                            	      										"elementValuePairs",
+                            	      										lv_elementValuePairs_6_0,
+                            	      										"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationElementValuePair");
+                            	      									afterParserOrEnumRuleCall();
+                            	      								
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop57;
+                                }
+                            } while (true);
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // InternalTableDSL.g:5471:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            {
+                            // InternalTableDSL.g:5471:5: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // InternalTableDSL.g:5472:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            {
+                            // InternalTableDSL.g:5472:6: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // InternalTableDSL.g:5473:7: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              							newCompositeNode(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0());
+                              						
+                            }
+                            pushFollow(FOLLOW_55);
+                            lv_value_7_0=ruleXAnnotationElementValueOrCommaList();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+                              							}
+                              							set(
+                              								current,
+                              								"value",
+                              								lv_value_7_0,
+                              								"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationElementValueOrCommaList");
+                              							afterParserOrEnumRuleCall();
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_8=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotation"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValuePair"
+    // InternalTableDSL.g:5500:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
+    public final EObject entryRuleXAnnotationElementValuePair() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationElementValuePair = null;
+
+
+        try {
+            // InternalTableDSL.g:5500:68: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
+            // InternalTableDSL.g:5501:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAnnotationElementValuePair=ruleXAnnotationElementValuePair();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationElementValuePair; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "ruleXAnnotationElementValuePair"
+    // InternalTableDSL.g:5507:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
+    public final EObject ruleXAnnotationElementValuePair() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        EObject lv_value_2_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5513:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
+            // InternalTableDSL.g:5514:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            {
+            // InternalTableDSL.g:5514:2: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // InternalTableDSL.g:5515:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            {
+            // InternalTableDSL.g:5515:3: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
+            // InternalTableDSL.g:5516:4: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            {
+            // InternalTableDSL.g:5525:4: ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // InternalTableDSL.g:5526:5: ( ( ruleValidID ) ) otherlv_1= '='
+            {
+            // InternalTableDSL.g:5526:5: ( ( ruleValidID ) )
+            // InternalTableDSL.g:5527:6: ( ruleValidID )
+            {
+            // InternalTableDSL.g:5527:6: ( ruleValidID )
+            // InternalTableDSL.g:5528:7: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+
+              							if (current==null) {
+              								current = createModelElement(grammarAccess.getXAnnotationElementValuePairRule());
+              							}
+              						
+            }
+            if ( state.backtracking==0 ) {
+
+              							newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0());
+              						
+            }
+            pushFollow(FOLLOW_53);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              							afterParserOrEnumRuleCall();
+              						
+            }
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,92,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:5548:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // InternalTableDSL.g:5549:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            {
+            // InternalTableDSL.g:5549:4: (lv_value_2_0= ruleXAnnotationElementValue )
+            // InternalTableDSL.g:5550:5: lv_value_2_0= ruleXAnnotationElementValue
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_value_2_0=ruleXAnnotationElementValue();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXAnnotationElementValuePairRule());
+              					}
+              					set(
+              						current,
+              						"value",
+              						lv_value_2_0,
+              						"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationElementValue");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
+    // InternalTableDSL.g:5571:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
+    public final EObject entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationElementValueOrCommaList = null;
+
+
+        try {
+            // InternalTableDSL.g:5571:75: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
+            // InternalTableDSL.g:5572:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAnnotationElementValueOrCommaList=ruleXAnnotationElementValueOrCommaList();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationElementValueOrCommaList; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
+    // InternalTableDSL.g:5578:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
+    public final EObject ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_9=null;
+        EObject lv_elements_3_0 = null;
+
+        EObject lv_elements_5_0 = null;
+
+        EObject this_XAnnotationOrExpression_7 = null;
+
+        EObject lv_elements_10_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5584:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
+            // InternalTableDSL.g:5585:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            {
+            // InternalTableDSL.g:5585:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            int alt64=2;
+            alt64 = dfa64.predict(input);
+            switch (alt64) {
+                case 1 :
+                    // InternalTableDSL.g:5586:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    {
+                    // InternalTableDSL.g:5586:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalTableDSL.g:5587:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    {
+                    // InternalTableDSL.g:5587:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalTableDSL.g:5588:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    {
+                    // InternalTableDSL.g:5595:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalTableDSL.g:5596:6: () otherlv_1= '#' otherlv_2= '['
+                    {
+                    // InternalTableDSL.g:5596:6: ()
+                    // InternalTableDSL.g:5597:7: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							current = forceCreateModelElement(
+                      								grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0(),
+                      								current);
+                      						
+                    }
+
+                    }
+
+                    otherlv_1=(Token)match(input,111,FOLLOW_73); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
+                      					
+                    }
+                    otherlv_2=(Token)match(input,112,FOLLOW_74); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:5613:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt61=2;
+                    int LA61_0 = input.LA(1);
+
+                    if ( ((LA61_0>=RULE_ID && LA61_0<=RULE_STRING)||(LA61_0>=RULE_INT && LA61_0<=RULE_DECIMAL)||LA61_0==16||LA61_0==93||(LA61_0>=101 && LA61_0<=105)||LA61_0==109||(LA61_0>=111 && LA61_0<=112)||LA61_0==119||LA61_0==138||LA61_0==144||LA61_0==146||(LA61_0>=150 && LA61_0<=152)||(LA61_0>=155 && LA61_0<=164)||LA61_0==166) ) {
+                        alt61=1;
+                    }
+                    switch (alt61) {
+                        case 1 :
+                            // InternalTableDSL.g:5614:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            {
+                            // InternalTableDSL.g:5614:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalTableDSL.g:5615:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            {
+                            // InternalTableDSL.g:5615:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalTableDSL.g:5616:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              							newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0());
+                              						
+                            }
+                            pushFollow(FOLLOW_75);
+                            lv_elements_3_0=ruleXAnnotationOrExpression();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+                              							}
+                              							add(
+                              								current,
+                              								"elements",
+                              								lv_elements_3_0,
+                              								"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationOrExpression");
+                              							afterParserOrEnumRuleCall();
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+                            // InternalTableDSL.g:5633:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop60:
+                            do {
+                                int alt60=2;
+                                int LA60_0 = input.LA(1);
+
+                                if ( (LA60_0==110) ) {
+                                    alt60=1;
+                                }
+
+
+                                switch (alt60) {
+                            	case 1 :
+                            	    // InternalTableDSL.g:5634:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    {
+                            	    otherlv_4=(Token)match(input,110,FOLLOW_72); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
+                            	      					
+                            	    }
+                            	    // InternalTableDSL.g:5638:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalTableDSL.g:5639:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    {
+                            	    // InternalTableDSL.g:5639:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalTableDSL.g:5640:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+
+                            	      								newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0());
+                            	      							
+                            	    }
+                            	    pushFollow(FOLLOW_75);
+                            	    lv_elements_5_0=ruleXAnnotationOrExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      								if (current==null) {
+                            	      									current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+                            	      								}
+                            	      								add(
+                            	      									current,
+                            	      									"elements",
+                            	      									lv_elements_5_0,
+                            	      									"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationOrExpression");
+                            	      								afterParserOrEnumRuleCall();
+                            	      							
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop60;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_6=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5665:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    {
+                    // InternalTableDSL.g:5665:3: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // InternalTableDSL.g:5666:4: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      				newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0());
+                      			
+                    }
+                    pushFollow(FOLLOW_76);
+                    this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = this_XAnnotationOrExpression_7;
+                      				afterParserOrEnumRuleCall();
+                      			
+                    }
+                    // InternalTableDSL.g:5674:4: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    int alt63=2;
+                    int LA63_0 = input.LA(1);
+
+                    if ( (LA63_0==110) ) {
+                        alt63=1;
+                    }
+                    switch (alt63) {
+                        case 1 :
+                            // InternalTableDSL.g:5675:5: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            {
+                            // InternalTableDSL.g:5675:5: ()
+                            // InternalTableDSL.g:5676:6: 
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              						current = forceCreateModelElementAndAdd(
+                              							grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0(),
+                              							current);
+                              					
+                            }
+
+                            }
+
+                            // InternalTableDSL.g:5682:5: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            int cnt62=0;
+                            loop62:
+                            do {
+                                int alt62=2;
+                                int LA62_0 = input.LA(1);
+
+                                if ( (LA62_0==110) ) {
+                                    alt62=1;
+                                }
+
+
+                                switch (alt62) {
+                            	case 1 :
+                            	    // InternalTableDSL.g:5683:6: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    {
+                            	    otherlv_9=(Token)match(input,110,FOLLOW_72); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      						newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
+                            	      					
+                            	    }
+                            	    // InternalTableDSL.g:5687:6: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalTableDSL.g:5688:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    {
+                            	    // InternalTableDSL.g:5688:7: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // InternalTableDSL.g:5689:8: lv_elements_10_0= ruleXAnnotationOrExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+
+                            	      								newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0());
+                            	      							
+                            	    }
+                            	    pushFollow(FOLLOW_76);
+                            	    lv_elements_10_0=ruleXAnnotationOrExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      								if (current==null) {
+                            	      									current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+                            	      								}
+                            	      								add(
+                            	      									current,
+                            	      									"elements",
+                            	      									lv_elements_10_0,
+                            	      									"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationOrExpression");
+                            	      								afterParserOrEnumRuleCall();
+                            	      							
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    if ( cnt62 >= 1 ) break loop62;
+                            	    if (state.backtracking>0) {state.failed=true; return current;}
+                                        EarlyExitException eee =
+                                            new EarlyExitException(62, input);
+                                        throw eee;
+                                }
+                                cnt62++;
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValue"
+    // InternalTableDSL.g:5713:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
+    public final EObject entryRuleXAnnotationElementValue() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationElementValue = null;
+
+
+        try {
+            // InternalTableDSL.g:5713:64: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
+            // InternalTableDSL.g:5714:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAnnotationElementValue=ruleXAnnotationElementValue();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationElementValue; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValue"
+
+
+    // $ANTLR start "ruleXAnnotationElementValue"
+    // InternalTableDSL.g:5720:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
+    public final EObject ruleXAnnotationElementValue() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_elements_3_0 = null;
+
+        EObject lv_elements_5_0 = null;
+
+        EObject this_XAnnotationOrExpression_7 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5726:2: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
+            // InternalTableDSL.g:5727:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            {
+            // InternalTableDSL.g:5727:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            int alt67=2;
+            alt67 = dfa67.predict(input);
+            switch (alt67) {
+                case 1 :
+                    // InternalTableDSL.g:5728:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    {
+                    // InternalTableDSL.g:5728:3: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // InternalTableDSL.g:5729:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    {
+                    // InternalTableDSL.g:5729:4: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // InternalTableDSL.g:5730:5: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    {
+                    // InternalTableDSL.g:5737:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // InternalTableDSL.g:5738:6: () otherlv_1= '#' otherlv_2= '['
+                    {
+                    // InternalTableDSL.g:5738:6: ()
+                    // InternalTableDSL.g:5739:7: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							current = forceCreateModelElement(
+                      								grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0(),
+                      								current);
+                      						
+                    }
+
+                    }
+
+                    otherlv_1=(Token)match(input,111,FOLLOW_73); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
+                      					
+                    }
+                    otherlv_2=(Token)match(input,112,FOLLOW_74); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:5755:4: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt66=2;
+                    int LA66_0 = input.LA(1);
+
+                    if ( ((LA66_0>=RULE_ID && LA66_0<=RULE_STRING)||(LA66_0>=RULE_INT && LA66_0<=RULE_DECIMAL)||LA66_0==16||LA66_0==93||(LA66_0>=101 && LA66_0<=105)||LA66_0==109||(LA66_0>=111 && LA66_0<=112)||LA66_0==119||LA66_0==138||LA66_0==144||LA66_0==146||(LA66_0>=150 && LA66_0<=152)||(LA66_0>=155 && LA66_0<=164)||LA66_0==166) ) {
+                        alt66=1;
+                    }
+                    switch (alt66) {
+                        case 1 :
+                            // InternalTableDSL.g:5756:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            {
+                            // InternalTableDSL.g:5756:5: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // InternalTableDSL.g:5757:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            {
+                            // InternalTableDSL.g:5757:6: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // InternalTableDSL.g:5758:7: lv_elements_3_0= ruleXAnnotationOrExpression
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              							newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0());
+                              						
+                            }
+                            pushFollow(FOLLOW_75);
+                            lv_elements_3_0=ruleXAnnotationOrExpression();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
+                              							}
+                              							add(
+                              								current,
+                              								"elements",
+                              								lv_elements_3_0,
+                              								"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationOrExpression");
+                              							afterParserOrEnumRuleCall();
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+                            // InternalTableDSL.g:5775:5: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop65:
+                            do {
+                                int alt65=2;
+                                int LA65_0 = input.LA(1);
+
+                                if ( (LA65_0==110) ) {
+                                    alt65=1;
+                                }
+
+
+                                switch (alt65) {
+                            	case 1 :
+                            	    // InternalTableDSL.g:5776:6: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    {
+                            	    otherlv_4=(Token)match(input,110,FOLLOW_72); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      						newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
+                            	      					
+                            	    }
+                            	    // InternalTableDSL.g:5780:6: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // InternalTableDSL.g:5781:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    {
+                            	    // InternalTableDSL.g:5781:7: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // InternalTableDSL.g:5782:8: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+
+                            	      								newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0());
+                            	      							
+                            	    }
+                            	    pushFollow(FOLLOW_75);
+                            	    lv_elements_5_0=ruleXAnnotationOrExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      								if (current==null) {
+                            	      									current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
+                            	      								}
+                            	      								add(
+                            	      									current,
+                            	      									"elements",
+                            	      									lv_elements_5_0,
+                            	      									"org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations.XAnnotationOrExpression");
+                            	      								afterParserOrEnumRuleCall();
+                            	      							
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop65;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_6=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5807:3: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XAnnotationOrExpression_7;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationElementValue"
+
+
+    // $ANTLR start "entryRuleXAnnotationOrExpression"
+    // InternalTableDSL.g:5819:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
+    public final EObject entryRuleXAnnotationOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationOrExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:5819:64: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
+            // InternalTableDSL.g:5820:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAnnotationOrExpression=ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationOrExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationOrExpression"
+
+
+    // $ANTLR start "ruleXAnnotationOrExpression"
+    // InternalTableDSL.g:5826:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
+    public final EObject ruleXAnnotationOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAnnotation_0 = null;
+
+        EObject this_XExpression_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5832:2: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
+            // InternalTableDSL.g:5833:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            {
+            // InternalTableDSL.g:5833:2: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            int alt68=2;
+            int LA68_0 = input.LA(1);
+
+            if ( (LA68_0==109) ) {
+                alt68=1;
+            }
+            else if ( ((LA68_0>=RULE_ID && LA68_0<=RULE_STRING)||(LA68_0>=RULE_INT && LA68_0<=RULE_DECIMAL)||LA68_0==16||LA68_0==93||(LA68_0>=101 && LA68_0<=105)||(LA68_0>=111 && LA68_0<=112)||LA68_0==119||LA68_0==138||LA68_0==144||LA68_0==146||(LA68_0>=150 && LA68_0<=152)||(LA68_0>=155 && LA68_0<=164)||LA68_0==166) ) {
+                alt68=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 68, 0, input);
+
+                throw nvae;
+            }
+            switch (alt68) {
+                case 1 :
+                    // InternalTableDSL.g:5834:3: this_XAnnotation_0= ruleXAnnotation
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XAnnotation_0=ruleXAnnotation();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XAnnotation_0;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5843:3: this_XExpression_1= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XExpression_1=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XExpression_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationOrExpression"
+
+
+    // $ANTLR start "entryRuleXExpression"
+    // InternalTableDSL.g:5855:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
+    public final EObject entryRuleXExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:5855:52: (iv_ruleXExpression= ruleXExpression EOF )
+            // InternalTableDSL.g:5856:2: iv_ruleXExpression= ruleXExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXExpression=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXExpression"
+
+
+    // $ANTLR start "ruleXExpression"
+    // InternalTableDSL.g:5862:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
+    public final EObject ruleXExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAssignment_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5868:2: (this_XAssignment_0= ruleXAssignment )
+            // InternalTableDSL.g:5869:2: this_XAssignment_0= ruleXAssignment
+            {
+            if ( state.backtracking==0 ) {
+
+              		newCompositeNode(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall());
+              	
+            }
+            pushFollow(FOLLOW_2);
+            this_XAssignment_0=ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current = this_XAssignment_0;
+              		afterParserOrEnumRuleCall();
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXExpression"
+
+
+    // $ANTLR start "entryRuleXAssignment"
+    // InternalTableDSL.g:5880:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
+    public final EObject entryRuleXAssignment() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAssignment = null;
+
+
+        try {
+            // InternalTableDSL.g:5880:52: (iv_ruleXAssignment= ruleXAssignment EOF )
+            // InternalTableDSL.g:5881:2: iv_ruleXAssignment= ruleXAssignment EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAssignmentRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAssignment=ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAssignment; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAssignment"
+
+
+    // $ANTLR start "ruleXAssignment"
+    // InternalTableDSL.g:5887:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
+    public final EObject ruleXAssignment() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_value_3_0 = null;
+
+        EObject this_XOrExpression_4 = null;
+
+        EObject lv_rightOperand_7_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:5893:2: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
+            // InternalTableDSL.g:5894:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            {
+            // InternalTableDSL.g:5894:2: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            int alt70=2;
+            switch ( input.LA(1) ) {
+            case RULE_ID:
+                {
+                int LA70_1 = input.LA(2);
+
+                if ( (LA70_1==92) ) {
+                    alt70=1;
+                }
+                else if ( (LA70_1==EOF||(LA70_1>=RULE_ID && LA70_1<=RULE_STRING)||(LA70_1>=RULE_INT && LA70_1<=RULE_DECIMAL)||(LA70_1>=16 && LA70_1<=17)||LA70_1==20||LA70_1==78||(LA70_1>=93 && LA70_1<=94)||(LA70_1>=101 && LA70_1<=106)||LA70_1==108||(LA70_1>=110 && LA70_1<=142)||(LA70_1>=144 && LA70_1<=167)) ) {
+                    alt70=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 70, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 155:
+                {
+                int LA70_2 = input.LA(2);
+
+                if ( (LA70_2==92) ) {
+                    alt70=1;
+                }
+                else if ( (LA70_2==EOF||(LA70_2>=RULE_ID && LA70_2<=RULE_STRING)||(LA70_2>=RULE_INT && LA70_2<=RULE_DECIMAL)||(LA70_2>=16 && LA70_2<=17)||LA70_2==20||LA70_2==78||(LA70_2>=93 && LA70_2<=94)||(LA70_2>=101 && LA70_2<=106)||LA70_2==108||(LA70_2>=110 && LA70_2<=142)||(LA70_2>=144 && LA70_2<=167)) ) {
+                    alt70=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 70, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 104:
+                {
+                int LA70_3 = input.LA(2);
+
+                if ( (LA70_3==92) ) {
+                    alt70=1;
+                }
+                else if ( (LA70_3==EOF||(LA70_3>=RULE_ID && LA70_3<=RULE_STRING)||(LA70_3>=RULE_INT && LA70_3<=RULE_DECIMAL)||(LA70_3>=16 && LA70_3<=17)||LA70_3==20||LA70_3==78||(LA70_3>=93 && LA70_3<=94)||(LA70_3>=101 && LA70_3<=106)||LA70_3==108||(LA70_3>=110 && LA70_3<=142)||(LA70_3>=144 && LA70_3<=167)) ) {
+                    alt70=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 70, 3, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 103:
+                {
+                int LA70_4 = input.LA(2);
+
+                if ( (LA70_4==92) ) {
+                    alt70=1;
+                }
+                else if ( (LA70_4==EOF||(LA70_4>=RULE_ID && LA70_4<=RULE_STRING)||(LA70_4>=RULE_INT && LA70_4<=RULE_DECIMAL)||(LA70_4>=16 && LA70_4<=17)||LA70_4==20||LA70_4==78||(LA70_4>=93 && LA70_4<=94)||(LA70_4>=101 && LA70_4<=106)||LA70_4==108||(LA70_4>=110 && LA70_4<=142)||(LA70_4>=144 && LA70_4<=167)) ) {
+                    alt70=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 70, 4, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 105:
+                {
+                int LA70_5 = input.LA(2);
+
+                if ( (LA70_5==EOF||(LA70_5>=RULE_ID && LA70_5<=RULE_STRING)||(LA70_5>=RULE_INT && LA70_5<=RULE_DECIMAL)||(LA70_5>=16 && LA70_5<=17)||LA70_5==20||LA70_5==78||(LA70_5>=93 && LA70_5<=94)||(LA70_5>=101 && LA70_5<=106)||LA70_5==108||(LA70_5>=110 && LA70_5<=142)||(LA70_5>=144 && LA70_5<=167)) ) {
+                    alt70=2;
+                }
+                else if ( (LA70_5==92) ) {
+                    alt70=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 70, 5, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case RULE_STRING:
+            case RULE_INT:
+            case RULE_HEX:
+            case RULE_DECIMAL:
+            case 16:
+            case 93:
+            case 101:
+            case 102:
+            case 111:
+            case 112:
+            case 119:
+            case 138:
+            case 144:
+            case 146:
+            case 150:
+            case 151:
+            case 152:
+            case 156:
+            case 157:
+            case 158:
+            case 159:
+            case 160:
+            case 161:
+            case 162:
+            case 163:
+            case 164:
+            case 166:
+                {
+                alt70=2;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 70, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt70) {
+                case 1 :
+                    // InternalTableDSL.g:5895:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    {
+                    // InternalTableDSL.g:5895:3: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // InternalTableDSL.g:5896:4: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
+                    {
+                    // InternalTableDSL.g:5896:4: ()
+                    // InternalTableDSL.g:5897:5: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					current = forceCreateModelElement(
+                      						grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0(),
+                      						current);
+                      				
+                    }
+
+                    }
+
+                    // InternalTableDSL.g:5903:4: ( ( ruleFeatureCallID ) )
+                    // InternalTableDSL.g:5904:5: ( ruleFeatureCallID )
+                    {
+                    // InternalTableDSL.g:5904:5: ( ruleFeatureCallID )
+                    // InternalTableDSL.g:5905:6: ruleFeatureCallID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getXAssignmentRule());
+                      						}
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_53);
+                    ruleFeatureCallID();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+
+                      				newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2());
+                      			
+                    }
+                    pushFollow(FOLLOW_72);
+                    ruleOpSingleAssign();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				afterParserOrEnumRuleCall();
+                      			
+                    }
+                    // InternalTableDSL.g:5926:4: ( (lv_value_3_0= ruleXAssignment ) )
+                    // InternalTableDSL.g:5927:5: (lv_value_3_0= ruleXAssignment )
+                    {
+                    // InternalTableDSL.g:5927:5: (lv_value_3_0= ruleXAssignment )
+                    // InternalTableDSL.g:5928:6: lv_value_3_0= ruleXAssignment
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_value_3_0=ruleXAssignment();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+                      						}
+                      						set(
+                      							current,
+                      							"value",
+                      							lv_value_3_0,
+                      							"org.eclipse.xtext.xbase.Xbase.XAssignment");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:5947:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    {
+                    // InternalTableDSL.g:5947:3: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // InternalTableDSL.g:5948:4: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      				newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0());
+                      			
+                    }
+                    pushFollow(FOLLOW_77);
+                    this_XOrExpression_4=ruleXOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = this_XOrExpression_4;
+                      				afterParserOrEnumRuleCall();
+                      			
+                    }
+                    // InternalTableDSL.g:5956:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    int alt69=2;
+                    alt69 = dfa69.predict(input);
+                    switch (alt69) {
+                        case 1 :
+                            // InternalTableDSL.g:5957:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            {
+                            // InternalTableDSL.g:5957:5: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
+                            // InternalTableDSL.g:5958:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
+                            {
+                            // InternalTableDSL.g:5968:6: ( () ( ( ruleOpMultiAssign ) ) )
+                            // InternalTableDSL.g:5969:7: () ( ( ruleOpMultiAssign ) )
+                            {
+                            // InternalTableDSL.g:5969:7: ()
+                            // InternalTableDSL.g:5970:8: 
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              								current = forceCreateModelElementAndSet(
+                              									grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+                              									current);
+                              							
+                            }
+
+                            }
+
+                            // InternalTableDSL.g:5976:7: ( ( ruleOpMultiAssign ) )
+                            // InternalTableDSL.g:5977:8: ( ruleOpMultiAssign )
+                            {
+                            // InternalTableDSL.g:5977:8: ( ruleOpMultiAssign )
+                            // InternalTableDSL.g:5978:9: ruleOpMultiAssign
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              									if (current==null) {
+                              										current = createModelElement(grammarAccess.getXAssignmentRule());
+                              									}
+                              								
+                            }
+                            if ( state.backtracking==0 ) {
+
+                              									newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+                              								
+                            }
+                            pushFollow(FOLLOW_72);
+                            ruleOpMultiAssign();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              									afterParserOrEnumRuleCall();
+                              								
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+
+
+                            }
+
+                            // InternalTableDSL.g:5994:5: ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // InternalTableDSL.g:5995:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            {
+                            // InternalTableDSL.g:5995:6: (lv_rightOperand_7_0= ruleXAssignment )
+                            // InternalTableDSL.g:5996:7: lv_rightOperand_7_0= ruleXAssignment
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              							newCompositeNode(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0());
+                              						
+                            }
+                            pushFollow(FOLLOW_2);
+                            lv_rightOperand_7_0=ruleXAssignment();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+                              							}
+                              							set(
+                              								current,
+                              								"rightOperand",
+                              								lv_rightOperand_7_0,
+                              								"org.eclipse.xtext.xbase.Xbase.XAssignment");
+                              							afterParserOrEnumRuleCall();
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAssignment"
+
+
+    // $ANTLR start "entryRuleOpSingleAssign"
+    // InternalTableDSL.g:6019:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
+    public final String entryRuleOpSingleAssign() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpSingleAssign = null;
+
+
+        try {
+            // InternalTableDSL.g:6019:54: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
+            // InternalTableDSL.g:6020:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpSingleAssignRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpSingleAssign=ruleOpSingleAssign();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpSingleAssign.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpSingleAssign"
+
+
+    // $ANTLR start "ruleOpSingleAssign"
+    // InternalTableDSL.g:6026:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+    public final AntlrDatatypeRuleToken ruleOpSingleAssign() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6032:2: (kw= '=' )
+            // InternalTableDSL.g:6033:2: kw= '='
+            {
+            kw=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(kw);
+              		newLeafNode(kw, grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword());
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpSingleAssign"
+
+
+    // $ANTLR start "entryRuleOpMultiAssign"
+    // InternalTableDSL.g:6041:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
+    public final String entryRuleOpMultiAssign() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpMultiAssign = null;
+
+
+        try {
+            // InternalTableDSL.g:6041:53: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
+            // InternalTableDSL.g:6042:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpMultiAssignRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpMultiAssign=ruleOpMultiAssign();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpMultiAssign.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpMultiAssign"
+
+
+    // $ANTLR start "ruleOpMultiAssign"
+    // InternalTableDSL.g:6048:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
+    public final AntlrDatatypeRuleToken ruleOpMultiAssign() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6054:2: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
+            // InternalTableDSL.g:6055:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            {
+            // InternalTableDSL.g:6055:2: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            int alt72=7;
+            switch ( input.LA(1) ) {
+            case 114:
+                {
+                alt72=1;
+                }
+                break;
+            case 115:
+                {
+                alt72=2;
+                }
+                break;
+            case 116:
+                {
+                alt72=3;
+                }
+                break;
+            case 117:
+                {
+                alt72=4;
+                }
+                break;
+            case 118:
+                {
+                alt72=5;
+                }
+                break;
+            case 119:
+                {
+                alt72=6;
+                }
+                break;
+            case 120:
+                {
+                alt72=7;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 72, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt72) {
+                case 1 :
+                    // InternalTableDSL.g:6056:3: kw= '+='
+                    {
+                    kw=(Token)match(input,114,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:6062:3: kw= '-='
+                    {
+                    kw=(Token)match(input,115,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:6068:3: kw= '*='
+                    {
+                    kw=(Token)match(input,116,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2());
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:6074:3: kw= '/='
+                    {
+                    kw=(Token)match(input,117,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:6080:3: kw= '%='
+                    {
+                    kw=(Token)match(input,118,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4());
+                      		
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:6086:3: (kw= '<' kw= '<' kw= '=' )
+                    {
+                    // InternalTableDSL.g:6086:3: (kw= '<' kw= '<' kw= '=' )
+                    // InternalTableDSL.g:6087:4: kw= '<' kw= '<' kw= '='
+                    {
+                    kw=(Token)match(input,119,FOLLOW_78); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0());
+                      			
+                    }
+                    kw=(Token)match(input,119,FOLLOW_53); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1());
+                      			
+                    }
+                    kw=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:6104:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    {
+                    // InternalTableDSL.g:6104:3: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // InternalTableDSL.g:6105:4: kw= '>' (kw= '>' )? kw= '>='
+                    {
+                    kw=(Token)match(input,120,FOLLOW_79); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0());
+                      			
+                    }
+                    // InternalTableDSL.g:6110:4: (kw= '>' )?
+                    int alt71=2;
+                    int LA71_0 = input.LA(1);
+
+                    if ( (LA71_0==120) ) {
+                        alt71=1;
+                    }
+                    switch (alt71) {
+                        case 1 :
+                            // InternalTableDSL.g:6111:5: kw= '>'
+                            {
+                            kw=(Token)match(input,120,FOLLOW_80); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              					current.merge(kw);
+                              					newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1());
+                              				
+                            }
+
+                            }
+                            break;
+
+                    }
+
+                    kw=(Token)match(input,121,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpMultiAssign"
+
+
+    // $ANTLR start "entryRuleXOrExpression"
+    // InternalTableDSL.g:6127:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
+    public final EObject entryRuleXOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXOrExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:6127:54: (iv_ruleXOrExpression= ruleXOrExpression EOF )
+            // InternalTableDSL.g:6128:2: iv_ruleXOrExpression= ruleXOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXOrExpression=ruleXOrExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXOrExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXOrExpression"
+
+
+    // $ANTLR start "ruleXOrExpression"
+    // InternalTableDSL.g:6134:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
+    public final EObject ruleXOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAndExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6140:2: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
+            // InternalTableDSL.g:6141:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            {
+            // InternalTableDSL.g:6141:2: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // InternalTableDSL.g:6142:3: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_81);
+            this_XAndExpression_0=ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XAndExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:6150:3: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            loop73:
+            do {
+                int alt73=2;
+                int LA73_0 = input.LA(1);
+
+                if ( (LA73_0==122) ) {
+                    int LA73_2 = input.LA(2);
+
+                    if ( (synpred8_InternalTableDSL()) ) {
+                        alt73=1;
+                    }
+
+
+                }
+
+
+                switch (alt73) {
+            	case 1 :
+            	    // InternalTableDSL.g:6151:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    {
+            	    // InternalTableDSL.g:6151:4: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
+            	    // InternalTableDSL.g:6152:5: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
+            	    {
+            	    // InternalTableDSL.g:6162:5: ( () ( ( ruleOpOr ) ) )
+            	    // InternalTableDSL.g:6163:6: () ( ( ruleOpOr ) )
+            	    {
+            	    // InternalTableDSL.g:6163:6: ()
+            	    // InternalTableDSL.g:6164:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalTableDSL.g:6170:6: ( ( ruleOpOr ) )
+            	    // InternalTableDSL.g:6171:7: ( ruleOpOr )
+            	    {
+            	    // InternalTableDSL.g:6171:7: ( ruleOpOr )
+            	    // InternalTableDSL.g:6172:8: ruleOpOr
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXOrExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_72);
+            	    ruleOpOr();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:6188:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // InternalTableDSL.g:6189:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    {
+            	    // InternalTableDSL.g:6189:5: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // InternalTableDSL.g:6190:6: lv_rightOperand_3_0= ruleXAndExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_81);
+            	    lv_rightOperand_3_0=ruleXAndExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXOrExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XAndExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop73;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXOrExpression"
+
+
+    // $ANTLR start "entryRuleOpOr"
+    // InternalTableDSL.g:6212:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+    public final String entryRuleOpOr() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpOr = null;
+
+
+        try {
+            // InternalTableDSL.g:6212:44: (iv_ruleOpOr= ruleOpOr EOF )
+            // InternalTableDSL.g:6213:2: iv_ruleOpOr= ruleOpOr EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpOrRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpOr=ruleOpOr();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpOr.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpOr"
+
+
+    // $ANTLR start "ruleOpOr"
+    // InternalTableDSL.g:6219:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
+    public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6225:2: (kw= '||' )
+            // InternalTableDSL.g:6226:2: kw= '||'
+            {
+            kw=(Token)match(input,122,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(kw);
+              		newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpOr"
+
+
+    // $ANTLR start "entryRuleXAndExpression"
+    // InternalTableDSL.g:6234:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
+    public final EObject entryRuleXAndExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAndExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:6234:55: (iv_ruleXAndExpression= ruleXAndExpression EOF )
+            // InternalTableDSL.g:6235:2: iv_ruleXAndExpression= ruleXAndExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAndExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAndExpression=ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAndExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAndExpression"
+
+
+    // $ANTLR start "ruleXAndExpression"
+    // InternalTableDSL.g:6241:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
+    public final EObject ruleXAndExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XEqualityExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6247:2: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
+            // InternalTableDSL.g:6248:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            {
+            // InternalTableDSL.g:6248:2: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // InternalTableDSL.g:6249:3: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_82);
+            this_XEqualityExpression_0=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XEqualityExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:6257:3: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            loop74:
+            do {
+                int alt74=2;
+                int LA74_0 = input.LA(1);
+
+                if ( (LA74_0==123) ) {
+                    int LA74_2 = input.LA(2);
+
+                    if ( (synpred9_InternalTableDSL()) ) {
+                        alt74=1;
+                    }
+
+
+                }
+
+
+                switch (alt74) {
+            	case 1 :
+            	    // InternalTableDSL.g:6258:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    {
+            	    // InternalTableDSL.g:6258:4: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
+            	    // InternalTableDSL.g:6259:5: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
+            	    {
+            	    // InternalTableDSL.g:6269:5: ( () ( ( ruleOpAnd ) ) )
+            	    // InternalTableDSL.g:6270:6: () ( ( ruleOpAnd ) )
+            	    {
+            	    // InternalTableDSL.g:6270:6: ()
+            	    // InternalTableDSL.g:6271:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalTableDSL.g:6277:6: ( ( ruleOpAnd ) )
+            	    // InternalTableDSL.g:6278:7: ( ruleOpAnd )
+            	    {
+            	    // InternalTableDSL.g:6278:7: ( ruleOpAnd )
+            	    // InternalTableDSL.g:6279:8: ruleOpAnd
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXAndExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_72);
+            	    ruleOpAnd();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:6295:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // InternalTableDSL.g:6296:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    {
+            	    // InternalTableDSL.g:6296:5: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // InternalTableDSL.g:6297:6: lv_rightOperand_3_0= ruleXEqualityExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_82);
+            	    lv_rightOperand_3_0=ruleXEqualityExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XEqualityExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop74;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAndExpression"
+
+
+    // $ANTLR start "entryRuleOpAnd"
+    // InternalTableDSL.g:6319:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+    public final String entryRuleOpAnd() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
+
+
+        try {
+            // InternalTableDSL.g:6319:45: (iv_ruleOpAnd= ruleOpAnd EOF )
+            // InternalTableDSL.g:6320:2: iv_ruleOpAnd= ruleOpAnd EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpAndRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpAnd=ruleOpAnd();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpAnd.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpAnd"
+
+
+    // $ANTLR start "ruleOpAnd"
+    // InternalTableDSL.g:6326:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
+    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6332:2: (kw= '&&' )
+            // InternalTableDSL.g:6333:2: kw= '&&'
+            {
+            kw=(Token)match(input,123,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(kw);
+              		newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpAnd"
+
+
+    // $ANTLR start "entryRuleXEqualityExpression"
+    // InternalTableDSL.g:6341:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
+    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXEqualityExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:6341:60: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
+            // InternalTableDSL.g:6342:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXEqualityExpression=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXEqualityExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXEqualityExpression"
+
+
+    // $ANTLR start "ruleXEqualityExpression"
+    // InternalTableDSL.g:6348:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
+    public final EObject ruleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XRelationalExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6354:2: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
+            // InternalTableDSL.g:6355:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            {
+            // InternalTableDSL.g:6355:2: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // InternalTableDSL.g:6356:3: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_83);
+            this_XRelationalExpression_0=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XRelationalExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:6364:3: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            loop75:
+            do {
+                int alt75=2;
+                switch ( input.LA(1) ) {
+                case 124:
+                    {
+                    int LA75_2 = input.LA(2);
+
+                    if ( (synpred10_InternalTableDSL()) ) {
+                        alt75=1;
+                    }
+
+
+                    }
+                    break;
+                case 125:
+                    {
+                    int LA75_3 = input.LA(2);
+
+                    if ( (synpred10_InternalTableDSL()) ) {
+                        alt75=1;
+                    }
+
+
+                    }
+                    break;
+                case 126:
+                    {
+                    int LA75_4 = input.LA(2);
+
+                    if ( (synpred10_InternalTableDSL()) ) {
+                        alt75=1;
+                    }
+
+
+                    }
+                    break;
+                case 127:
+                    {
+                    int LA75_5 = input.LA(2);
+
+                    if ( (synpred10_InternalTableDSL()) ) {
+                        alt75=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt75) {
+            	case 1 :
+            	    // InternalTableDSL.g:6365:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    {
+            	    // InternalTableDSL.g:6365:4: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
+            	    // InternalTableDSL.g:6366:5: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
+            	    {
+            	    // InternalTableDSL.g:6376:5: ( () ( ( ruleOpEquality ) ) )
+            	    // InternalTableDSL.g:6377:6: () ( ( ruleOpEquality ) )
+            	    {
+            	    // InternalTableDSL.g:6377:6: ()
+            	    // InternalTableDSL.g:6378:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalTableDSL.g:6384:6: ( ( ruleOpEquality ) )
+            	    // InternalTableDSL.g:6385:7: ( ruleOpEquality )
+            	    {
+            	    // InternalTableDSL.g:6385:7: ( ruleOpEquality )
+            	    // InternalTableDSL.g:6386:8: ruleOpEquality
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_72);
+            	    ruleOpEquality();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:6402:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // InternalTableDSL.g:6403:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    {
+            	    // InternalTableDSL.g:6403:5: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // InternalTableDSL.g:6404:6: lv_rightOperand_3_0= ruleXRelationalExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_83);
+            	    lv_rightOperand_3_0=ruleXRelationalExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XRelationalExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop75;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXEqualityExpression"
+
+
+    // $ANTLR start "entryRuleOpEquality"
+    // InternalTableDSL.g:6426:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+    public final String entryRuleOpEquality() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpEquality = null;
+
+
+        try {
+            // InternalTableDSL.g:6426:50: (iv_ruleOpEquality= ruleOpEquality EOF )
+            // InternalTableDSL.g:6427:2: iv_ruleOpEquality= ruleOpEquality EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpEqualityRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpEquality=ruleOpEquality();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpEquality.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpEquality"
+
+
+    // $ANTLR start "ruleOpEquality"
+    // InternalTableDSL.g:6433:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
+    public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6439:2: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
+            // InternalTableDSL.g:6440:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            {
+            // InternalTableDSL.g:6440:2: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            int alt76=4;
+            switch ( input.LA(1) ) {
+            case 124:
+                {
+                alt76=1;
+                }
+                break;
+            case 125:
+                {
+                alt76=2;
+                }
+                break;
+            case 126:
+                {
+                alt76=3;
+                }
+                break;
+            case 127:
+                {
+                alt76=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 76, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt76) {
+                case 1 :
+                    // InternalTableDSL.g:6441:3: kw= '=='
+                    {
+                    kw=(Token)match(input,124,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:6447:3: kw= '!='
+                    {
+                    kw=(Token)match(input,125,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:6453:3: kw= '==='
+                    {
+                    kw=(Token)match(input,126,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:6459:3: kw= '!=='
+                    {
+                    kw=(Token)match(input,127,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpEquality"
+
+
+    // $ANTLR start "entryRuleXRelationalExpression"
+    // InternalTableDSL.g:6468:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
+    public final EObject entryRuleXRelationalExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXRelationalExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:6468:62: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
+            // InternalTableDSL.g:6469:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXRelationalExpression=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXRelationalExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXRelationalExpression"
+
+
+    // $ANTLR start "ruleXRelationalExpression"
+    // InternalTableDSL.g:6475:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
+    public final EObject ruleXRelationalExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        EObject this_XOtherOperatorExpression_0 = null;
+
+        EObject lv_type_3_0 = null;
+
+        EObject lv_rightOperand_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6481:2: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
+            // InternalTableDSL.g:6482:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            {
+            // InternalTableDSL.g:6482:2: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // InternalTableDSL.g:6483:3: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_84);
+            this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XOtherOperatorExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:6491:3: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            loop77:
+            do {
+                int alt77=3;
+                switch ( input.LA(1) ) {
+                case 119:
+                    {
+                    int LA77_2 = input.LA(2);
+
+                    if ( (synpred12_InternalTableDSL()) ) {
+                        alt77=2;
+                    }
+
+
+                    }
+                    break;
+                case 120:
+                    {
+                    int LA77_3 = input.LA(2);
+
+                    if ( (synpred12_InternalTableDSL()) ) {
+                        alt77=2;
+                    }
+
+
+                    }
+                    break;
+                case 128:
+                    {
+                    int LA77_4 = input.LA(2);
+
+                    if ( (synpred11_InternalTableDSL()) ) {
+                        alt77=1;
+                    }
+
+
+                    }
+                    break;
+                case 121:
+                    {
+                    int LA77_5 = input.LA(2);
+
+                    if ( (synpred12_InternalTableDSL()) ) {
+                        alt77=2;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt77) {
+            	case 1 :
+            	    // InternalTableDSL.g:6492:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    {
+            	    // InternalTableDSL.g:6492:4: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // InternalTableDSL.g:6493:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    {
+            	    // InternalTableDSL.g:6493:5: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
+            	    // InternalTableDSL.g:6494:6: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
+            	    {
+            	    // InternalTableDSL.g:6500:6: ( () otherlv_2= 'instanceof' )
+            	    // InternalTableDSL.g:6501:7: () otherlv_2= 'instanceof'
+            	    {
+            	    // InternalTableDSL.g:6501:7: ()
+            	    // InternalTableDSL.g:6502:8: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								current = forceCreateModelElementAndSet(
+            	      									grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
+            	      									current);
+            	      							
+            	    }
+
+            	    }
+
+            	    otherlv_2=(Token)match(input,128,FOLLOW_85); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:6514:5: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalTableDSL.g:6515:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    {
+            	    // InternalTableDSL.g:6515:6: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalTableDSL.g:6516:7: lv_type_3_0= ruleJvmTypeReference
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
+            	      						
+            	    }
+            	    pushFollow(FOLLOW_84);
+            	    lv_type_3_0=ruleJvmTypeReference();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							if (current==null) {
+            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      							}
+            	      							set(
+            	      								current,
+            	      								"type",
+            	      								lv_type_3_0,
+            	      								"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // InternalTableDSL.g:6535:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    {
+            	    // InternalTableDSL.g:6535:4: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // InternalTableDSL.g:6536:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    {
+            	    // InternalTableDSL.g:6536:5: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
+            	    // InternalTableDSL.g:6537:6: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
+            	    {
+            	    // InternalTableDSL.g:6547:6: ( () ( ( ruleOpCompare ) ) )
+            	    // InternalTableDSL.g:6548:7: () ( ( ruleOpCompare ) )
+            	    {
+            	    // InternalTableDSL.g:6548:7: ()
+            	    // InternalTableDSL.g:6549:8: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								current = forceCreateModelElementAndSet(
+            	      									grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+            	      									current);
+            	      							
+            	    }
+
+            	    }
+
+            	    // InternalTableDSL.g:6555:7: ( ( ruleOpCompare ) )
+            	    // InternalTableDSL.g:6556:8: ( ruleOpCompare )
+            	    {
+            	    // InternalTableDSL.g:6556:8: ( ruleOpCompare )
+            	    // InternalTableDSL.g:6557:9: ruleOpCompare
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      									if (current==null) {
+            	      										current = createModelElement(grammarAccess.getXRelationalExpressionRule());
+            	      									}
+            	      								
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      									newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+            	      								
+            	    }
+            	    pushFollow(FOLLOW_72);
+            	    ruleOpCompare();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      									afterParserOrEnumRuleCall();
+            	      								
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:6573:5: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // InternalTableDSL.g:6574:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    {
+            	    // InternalTableDSL.g:6574:6: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // InternalTableDSL.g:6575:7: lv_rightOperand_6_0= ruleXOtherOperatorExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
+            	      						
+            	    }
+            	    pushFollow(FOLLOW_84);
+            	    lv_rightOperand_6_0=ruleXOtherOperatorExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							if (current==null) {
+            	      								current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      							}
+            	      							set(
+            	      								current,
+            	      								"rightOperand",
+            	      								lv_rightOperand_6_0,
+            	      								"org.eclipse.xtext.xbase.Xbase.XOtherOperatorExpression");
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop77;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXRelationalExpression"
+
+
+    // $ANTLR start "entryRuleOpCompare"
+    // InternalTableDSL.g:6598:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
+    public final String entryRuleOpCompare() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpCompare = null;
+
+
+        try {
+            // InternalTableDSL.g:6598:49: (iv_ruleOpCompare= ruleOpCompare EOF )
+            // InternalTableDSL.g:6599:2: iv_ruleOpCompare= ruleOpCompare EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpCompareRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpCompare=ruleOpCompare();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpCompare.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpCompare"
+
+
+    // $ANTLR start "ruleOpCompare"
+    // InternalTableDSL.g:6605:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
+    public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6611:2: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
+            // InternalTableDSL.g:6612:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            {
+            // InternalTableDSL.g:6612:2: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            int alt78=4;
+            switch ( input.LA(1) ) {
+            case 121:
+                {
+                alt78=1;
+                }
+                break;
+            case 119:
+                {
+                int LA78_2 = input.LA(2);
+
+                if ( (LA78_2==EOF||(LA78_2>=RULE_ID && LA78_2<=RULE_STRING)||(LA78_2>=RULE_INT && LA78_2<=RULE_DECIMAL)||LA78_2==16||LA78_2==93||(LA78_2>=101 && LA78_2<=105)||(LA78_2>=111 && LA78_2<=112)||LA78_2==119||LA78_2==138||LA78_2==144||LA78_2==146||(LA78_2>=150 && LA78_2<=152)||(LA78_2>=155 && LA78_2<=164)||LA78_2==166) ) {
+                    alt78=4;
+                }
+                else if ( (LA78_2==92) ) {
+                    alt78=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 78, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 120:
+                {
+                alt78=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 78, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt78) {
+                case 1 :
+                    // InternalTableDSL.g:6613:3: kw= '>='
+                    {
+                    kw=(Token)match(input,121,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:6619:3: (kw= '<' kw= '=' )
+                    {
+                    // InternalTableDSL.g:6619:3: (kw= '<' kw= '=' )
+                    // InternalTableDSL.g:6620:4: kw= '<' kw= '='
+                    {
+                    kw=(Token)match(input,119,FOLLOW_53); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0());
+                      			
+                    }
+                    kw=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:6632:3: kw= '>'
+                    {
+                    kw=(Token)match(input,120,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2());
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:6638:3: kw= '<'
+                    {
+                    kw=(Token)match(input,119,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpCompare"
+
+
+    // $ANTLR start "entryRuleXOtherOperatorExpression"
+    // InternalTableDSL.g:6647:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
+    public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXOtherOperatorExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:6647:65: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
+            // InternalTableDSL.g:6648:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXOtherOperatorExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXOtherOperatorExpression"
+
+
+    // $ANTLR start "ruleXOtherOperatorExpression"
+    // InternalTableDSL.g:6654:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
+    public final EObject ruleXOtherOperatorExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAdditiveExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6660:2: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
+            // InternalTableDSL.g:6661:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            {
+            // InternalTableDSL.g:6661:2: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // InternalTableDSL.g:6662:3: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_86);
+            this_XAdditiveExpression_0=ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XAdditiveExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:6670:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            loop79:
+            do {
+                int alt79=2;
+                alt79 = dfa79.predict(input);
+                switch (alt79) {
+            	case 1 :
+            	    // InternalTableDSL.g:6671:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    {
+            	    // InternalTableDSL.g:6671:4: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
+            	    // InternalTableDSL.g:6672:5: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+            	    {
+            	    // InternalTableDSL.g:6682:5: ( () ( ( ruleOpOther ) ) )
+            	    // InternalTableDSL.g:6683:6: () ( ( ruleOpOther ) )
+            	    {
+            	    // InternalTableDSL.g:6683:6: ()
+            	    // InternalTableDSL.g:6684:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalTableDSL.g:6690:6: ( ( ruleOpOther ) )
+            	    // InternalTableDSL.g:6691:7: ( ruleOpOther )
+            	    {
+            	    // InternalTableDSL.g:6691:7: ( ruleOpOther )
+            	    // InternalTableDSL.g:6692:8: ruleOpOther
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_72);
+            	    ruleOpOther();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:6708:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // InternalTableDSL.g:6709:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    {
+            	    // InternalTableDSL.g:6709:5: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // InternalTableDSL.g:6710:6: lv_rightOperand_3_0= ruleXAdditiveExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_86);
+            	    lv_rightOperand_3_0=ruleXAdditiveExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XAdditiveExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop79;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXOtherOperatorExpression"
+
+
+    // $ANTLR start "entryRuleOpOther"
+    // InternalTableDSL.g:6732:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
+    public final String entryRuleOpOther() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpOther = null;
+
+
+        try {
+            // InternalTableDSL.g:6732:47: (iv_ruleOpOther= ruleOpOther EOF )
+            // InternalTableDSL.g:6733:2: iv_ruleOpOther= ruleOpOther EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpOtherRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpOther=ruleOpOther();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpOther.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpOther"
+
+
+    // $ANTLR start "ruleOpOther"
+    // InternalTableDSL.g:6739:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
+    public final AntlrDatatypeRuleToken ruleOpOther() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6745:2: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
+            // InternalTableDSL.g:6746:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            {
+            // InternalTableDSL.g:6746:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            int alt82=9;
+            alt82 = dfa82.predict(input);
+            switch (alt82) {
+                case 1 :
+                    // InternalTableDSL.g:6747:3: kw= '->'
+                    {
+                    kw=(Token)match(input,129,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:6753:3: kw= '..<'
+                    {
+                    kw=(Token)match(input,130,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:6759:3: (kw= '>' kw= '..' )
+                    {
+                    // InternalTableDSL.g:6759:3: (kw= '>' kw= '..' )
+                    // InternalTableDSL.g:6760:4: kw= '>' kw= '..'
+                    {
+                    kw=(Token)match(input,120,FOLLOW_87); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
+                      			
+                    }
+                    kw=(Token)match(input,131,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:6772:3: kw= '..'
+                    {
+                    kw=(Token)match(input,131,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:6778:3: kw= '=>'
+                    {
+                    kw=(Token)match(input,132,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4());
+                      		
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:6784:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    {
+                    // InternalTableDSL.g:6784:3: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // InternalTableDSL.g:6785:4: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    {
+                    kw=(Token)match(input,120,FOLLOW_88); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
+                      			
+                    }
+                    // InternalTableDSL.g:6790:4: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    int alt80=2;
+                    int LA80_0 = input.LA(1);
+
+                    if ( (LA80_0==120) ) {
+                        int LA80_1 = input.LA(2);
+
+                        if ( (LA80_1==EOF||(LA80_1>=RULE_ID && LA80_1<=RULE_STRING)||(LA80_1>=RULE_INT && LA80_1<=RULE_DECIMAL)||LA80_1==16||LA80_1==93||(LA80_1>=101 && LA80_1<=105)||(LA80_1>=111 && LA80_1<=112)||LA80_1==119||LA80_1==138||LA80_1==144||LA80_1==146||(LA80_1>=150 && LA80_1<=152)||(LA80_1>=155 && LA80_1<=164)||LA80_1==166) ) {
+                            alt80=2;
+                        }
+                        else if ( (LA80_1==120) && (synpred14_InternalTableDSL())) {
+                            alt80=1;
+                        }
+                        else {
+                            if (state.backtracking>0) {state.failed=true; return current;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("", 80, 1, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else {
+                        if (state.backtracking>0) {state.failed=true; return current;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 80, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt80) {
+                        case 1 :
+                            // InternalTableDSL.g:6791:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            {
+                            // InternalTableDSL.g:6791:5: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // InternalTableDSL.g:6792:6: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
+                            {
+                            // InternalTableDSL.g:6797:6: (kw= '>' kw= '>' )
+                            // InternalTableDSL.g:6798:7: kw= '>' kw= '>'
+                            {
+                            kw=(Token)match(input,120,FOLLOW_88); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							current.merge(kw);
+                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
+                              						
+                            }
+                            kw=(Token)match(input,120,FOLLOW_2); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							current.merge(kw);
+                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1());
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // InternalTableDSL.g:6811:5: kw= '>'
+                            {
+                            kw=(Token)match(input,120,FOLLOW_2); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              					current.merge(kw);
+                              					newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1());
+                              				
+                            }
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:6819:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    {
+                    // InternalTableDSL.g:6819:3: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // InternalTableDSL.g:6820:4: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    {
+                    kw=(Token)match(input,119,FOLLOW_89); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current.merge(kw);
+                      				newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
+                      			
+                    }
+                    // InternalTableDSL.g:6825:4: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    int alt81=3;
+                    int LA81_0 = input.LA(1);
+
+                    if ( (LA81_0==119) ) {
+                        int LA81_1 = input.LA(2);
+
+                        if ( (synpred15_InternalTableDSL()) ) {
+                            alt81=1;
+                        }
+                        else if ( (true) ) {
+                            alt81=2;
+                        }
+                        else {
+                            if (state.backtracking>0) {state.failed=true; return current;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("", 81, 1, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else if ( (LA81_0==132) ) {
+                        alt81=3;
+                    }
+                    else {
+                        if (state.backtracking>0) {state.failed=true; return current;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 81, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt81) {
+                        case 1 :
+                            // InternalTableDSL.g:6826:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            {
+                            // InternalTableDSL.g:6826:5: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // InternalTableDSL.g:6827:6: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
+                            {
+                            // InternalTableDSL.g:6832:6: (kw= '<' kw= '<' )
+                            // InternalTableDSL.g:6833:7: kw= '<' kw= '<'
+                            {
+                            kw=(Token)match(input,119,FOLLOW_78); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							current.merge(kw);
+                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
+                              						
+                            }
+                            kw=(Token)match(input,119,FOLLOW_2); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							current.merge(kw);
+                              							newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1());
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // InternalTableDSL.g:6846:5: kw= '<'
+                            {
+                            kw=(Token)match(input,119,FOLLOW_2); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              					current.merge(kw);
+                              					newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1());
+                              				
+                            }
+
+                            }
+                            break;
+                        case 3 :
+                            // InternalTableDSL.g:6852:5: kw= '=>'
+                            {
+                            kw=(Token)match(input,132,FOLLOW_2); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              					current.merge(kw);
+                              					newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2());
+                              				
+                            }
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTableDSL.g:6860:3: kw= '<>'
+                    {
+                    kw=(Token)match(input,133,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7());
+                      		
+                    }
+
+                    }
+                    break;
+                case 9 :
+                    // InternalTableDSL.g:6866:3: kw= '?:'
+                    {
+                    kw=(Token)match(input,134,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpOther"
+
+
+    // $ANTLR start "entryRuleXAdditiveExpression"
+    // InternalTableDSL.g:6875:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
+    public final EObject entryRuleXAdditiveExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAdditiveExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:6875:60: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
+            // InternalTableDSL.g:6876:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXAdditiveExpression=ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAdditiveExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAdditiveExpression"
+
+
+    // $ANTLR start "ruleXAdditiveExpression"
+    // InternalTableDSL.g:6882:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
+    public final EObject ruleXAdditiveExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XMultiplicativeExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6888:2: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
+            // InternalTableDSL.g:6889:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            {
+            // InternalTableDSL.g:6889:2: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // InternalTableDSL.g:6890:3: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_90);
+            this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XMultiplicativeExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:6898:3: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            loop83:
+            do {
+                int alt83=2;
+                int LA83_0 = input.LA(1);
+
+                if ( (LA83_0==101) ) {
+                    int LA83_2 = input.LA(2);
+
+                    if ( (synpred16_InternalTableDSL()) ) {
+                        alt83=1;
+                    }
+
+
+                }
+                else if ( (LA83_0==102) ) {
+                    int LA83_3 = input.LA(2);
+
+                    if ( (synpred16_InternalTableDSL()) ) {
+                        alt83=1;
+                    }
+
+
+                }
+
+
+                switch (alt83) {
+            	case 1 :
+            	    // InternalTableDSL.g:6899:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    {
+            	    // InternalTableDSL.g:6899:4: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
+            	    // InternalTableDSL.g:6900:5: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
+            	    {
+            	    // InternalTableDSL.g:6910:5: ( () ( ( ruleOpAdd ) ) )
+            	    // InternalTableDSL.g:6911:6: () ( ( ruleOpAdd ) )
+            	    {
+            	    // InternalTableDSL.g:6911:6: ()
+            	    // InternalTableDSL.g:6912:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalTableDSL.g:6918:6: ( ( ruleOpAdd ) )
+            	    // InternalTableDSL.g:6919:7: ( ruleOpAdd )
+            	    {
+            	    // InternalTableDSL.g:6919:7: ( ruleOpAdd )
+            	    // InternalTableDSL.g:6920:8: ruleOpAdd
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXAdditiveExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_72);
+            	    ruleOpAdd();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:6936:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // InternalTableDSL.g:6937:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    {
+            	    // InternalTableDSL.g:6937:5: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // InternalTableDSL.g:6938:6: lv_rightOperand_3_0= ruleXMultiplicativeExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_90);
+            	    lv_rightOperand_3_0=ruleXMultiplicativeExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXAdditiveExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XMultiplicativeExpression");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop83;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAdditiveExpression"
+
+
+    // $ANTLR start "entryRuleOpAdd"
+    // InternalTableDSL.g:6960:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
+    public final String entryRuleOpAdd() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpAdd = null;
+
+
+        try {
+            // InternalTableDSL.g:6960:45: (iv_ruleOpAdd= ruleOpAdd EOF )
+            // InternalTableDSL.g:6961:2: iv_ruleOpAdd= ruleOpAdd EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpAddRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpAdd=ruleOpAdd();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpAdd.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpAdd"
+
+
+    // $ANTLR start "ruleOpAdd"
+    // InternalTableDSL.g:6967:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
+    public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:6973:2: ( (kw= '+' | kw= '-' ) )
+            // InternalTableDSL.g:6974:2: (kw= '+' | kw= '-' )
+            {
+            // InternalTableDSL.g:6974:2: (kw= '+' | kw= '-' )
+            int alt84=2;
+            int LA84_0 = input.LA(1);
+
+            if ( (LA84_0==101) ) {
+                alt84=1;
+            }
+            else if ( (LA84_0==102) ) {
+                alt84=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 84, 0, input);
+
+                throw nvae;
+            }
+            switch (alt84) {
+                case 1 :
+                    // InternalTableDSL.g:6975:3: kw= '+'
+                    {
+                    kw=(Token)match(input,101,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:6981:3: kw= '-'
+                    {
+                    kw=(Token)match(input,102,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpAdd"
+
+
+    // $ANTLR start "entryRuleXMultiplicativeExpression"
+    // InternalTableDSL.g:6990:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
+    public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXMultiplicativeExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:6990:66: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
+            // InternalTableDSL.g:6991:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXMultiplicativeExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXMultiplicativeExpression"
+
+
+    // $ANTLR start "ruleXMultiplicativeExpression"
+    // InternalTableDSL.g:6997:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
+    public final EObject ruleXMultiplicativeExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XUnaryOperation_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:7003:2: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
+            // InternalTableDSL.g:7004:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            {
+            // InternalTableDSL.g:7004:2: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // InternalTableDSL.g:7005:3: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_91);
+            this_XUnaryOperation_0=ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XUnaryOperation_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:7013:3: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            loop85:
+            do {
+                int alt85=2;
+                switch ( input.LA(1) ) {
+                case 106:
+                    {
+                    int LA85_2 = input.LA(2);
+
+                    if ( (synpred17_InternalTableDSL()) ) {
+                        alt85=1;
+                    }
+
+
+                    }
+                    break;
+                case 135:
+                    {
+                    int LA85_3 = input.LA(2);
+
+                    if ( (synpred17_InternalTableDSL()) ) {
+                        alt85=1;
+                    }
+
+
+                    }
+                    break;
+                case 136:
+                    {
+                    int LA85_4 = input.LA(2);
+
+                    if ( (synpred17_InternalTableDSL()) ) {
+                        alt85=1;
+                    }
+
+
+                    }
+                    break;
+                case 137:
+                    {
+                    int LA85_5 = input.LA(2);
+
+                    if ( (synpred17_InternalTableDSL()) ) {
+                        alt85=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt85) {
+            	case 1 :
+            	    // InternalTableDSL.g:7014:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    {
+            	    // InternalTableDSL.g:7014:4: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
+            	    // InternalTableDSL.g:7015:5: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
+            	    {
+            	    // InternalTableDSL.g:7025:5: ( () ( ( ruleOpMulti ) ) )
+            	    // InternalTableDSL.g:7026:6: () ( ( ruleOpMulti ) )
+            	    {
+            	    // InternalTableDSL.g:7026:6: ()
+            	    // InternalTableDSL.g:7027:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    // InternalTableDSL.g:7033:6: ( ( ruleOpMulti ) )
+            	    // InternalTableDSL.g:7034:7: ( ruleOpMulti )
+            	    {
+            	    // InternalTableDSL.g:7034:7: ( ruleOpMulti )
+            	    // InternalTableDSL.g:7035:8: ruleOpMulti
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								if (current==null) {
+            	      									current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
+            	      								}
+            	      							
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      								newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+            	      							
+            	    }
+            	    pushFollow(FOLLOW_72);
+            	    ruleOpMulti();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      								afterParserOrEnumRuleCall();
+            	      							
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:7051:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // InternalTableDSL.g:7052:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    {
+            	    // InternalTableDSL.g:7052:5: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // InternalTableDSL.g:7053:6: lv_rightOperand_3_0= ruleXUnaryOperation
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_91);
+            	    lv_rightOperand_3_0=ruleXUnaryOperation();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"rightOperand",
+            	      							lv_rightOperand_3_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XUnaryOperation");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop85;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXMultiplicativeExpression"
+
+
+    // $ANTLR start "entryRuleOpMulti"
+    // InternalTableDSL.g:7075:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
+    public final String entryRuleOpMulti() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpMulti = null;
+
+
+        try {
+            // InternalTableDSL.g:7075:47: (iv_ruleOpMulti= ruleOpMulti EOF )
+            // InternalTableDSL.g:7076:2: iv_ruleOpMulti= ruleOpMulti EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpMultiRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpMulti=ruleOpMulti();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpMulti.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpMulti"
+
+
+    // $ANTLR start "ruleOpMulti"
+    // InternalTableDSL.g:7082:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
+    public final AntlrDatatypeRuleToken ruleOpMulti() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:7088:2: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
+            // InternalTableDSL.g:7089:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            {
+            // InternalTableDSL.g:7089:2: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            int alt86=4;
+            switch ( input.LA(1) ) {
+            case 106:
+                {
+                alt86=1;
+                }
+                break;
+            case 135:
+                {
+                alt86=2;
+                }
+                break;
+            case 136:
+                {
+                alt86=3;
+                }
+                break;
+            case 137:
+                {
+                alt86=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 86, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt86) {
+                case 1 :
+                    // InternalTableDSL.g:7090:3: kw= '*'
+                    {
+                    kw=(Token)match(input,106,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:7096:3: kw= '**'
+                    {
+                    kw=(Token)match(input,135,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:7102:3: kw= '/'
+                    {
+                    kw=(Token)match(input,136,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpMultiAccess().getSolidusKeyword_2());
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:7108:3: kw= '%'
+                    {
+                    kw=(Token)match(input,137,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpMultiAccess().getPercentSignKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpMulti"
+
+
+    // $ANTLR start "entryRuleXUnaryOperation"
+    // InternalTableDSL.g:7117:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
+    public final EObject entryRuleXUnaryOperation() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXUnaryOperation = null;
+
+
+        try {
+            // InternalTableDSL.g:7117:56: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
+            // InternalTableDSL.g:7118:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXUnaryOperationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXUnaryOperation=ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXUnaryOperation; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXUnaryOperation"
+
+
+    // $ANTLR start "ruleXUnaryOperation"
+    // InternalTableDSL.g:7124:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
+    public final EObject ruleXUnaryOperation() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_operand_2_0 = null;
+
+        EObject this_XCastedExpression_3 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:7130:2: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
+            // InternalTableDSL.g:7131:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            {
+            // InternalTableDSL.g:7131:2: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            int alt87=2;
+            int LA87_0 = input.LA(1);
+
+            if ( ((LA87_0>=101 && LA87_0<=102)||LA87_0==138) ) {
+                alt87=1;
+            }
+            else if ( ((LA87_0>=RULE_ID && LA87_0<=RULE_STRING)||(LA87_0>=RULE_INT && LA87_0<=RULE_DECIMAL)||LA87_0==16||LA87_0==93||(LA87_0>=103 && LA87_0<=105)||(LA87_0>=111 && LA87_0<=112)||LA87_0==119||LA87_0==144||LA87_0==146||(LA87_0>=150 && LA87_0<=152)||(LA87_0>=155 && LA87_0<=164)||LA87_0==166) ) {
+                alt87=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 87, 0, input);
+
+                throw nvae;
+            }
+            switch (alt87) {
+                case 1 :
+                    // InternalTableDSL.g:7132:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    {
+                    // InternalTableDSL.g:7132:3: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // InternalTableDSL.g:7133:4: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    {
+                    // InternalTableDSL.g:7133:4: ()
+                    // InternalTableDSL.g:7134:5: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					current = forceCreateModelElement(
+                      						grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0(),
+                      						current);
+                      				
+                    }
+
+                    }
+
+                    // InternalTableDSL.g:7140:4: ( ( ruleOpUnary ) )
+                    // InternalTableDSL.g:7141:5: ( ruleOpUnary )
+                    {
+                    // InternalTableDSL.g:7141:5: ( ruleOpUnary )
+                    // InternalTableDSL.g:7142:6: ruleOpUnary
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getXUnaryOperationRule());
+                      						}
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_72);
+                    ruleOpUnary();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:7156:4: ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // InternalTableDSL.g:7157:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    {
+                    // InternalTableDSL.g:7157:5: (lv_operand_2_0= ruleXUnaryOperation )
+                    // InternalTableDSL.g:7158:6: lv_operand_2_0= ruleXUnaryOperation
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_operand_2_0=ruleXUnaryOperation();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXUnaryOperationRule());
+                      						}
+                      						set(
+                      							current,
+                      							"operand",
+                      							lv_operand_2_0,
+                      							"org.eclipse.xtext.xbase.Xbase.XUnaryOperation");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:7177:3: this_XCastedExpression_3= ruleXCastedExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XCastedExpression_3=ruleXCastedExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XCastedExpression_3;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXUnaryOperation"
+
+
+    // $ANTLR start "entryRuleOpUnary"
+    // InternalTableDSL.g:7189:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
+    public final String entryRuleOpUnary() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpUnary = null;
+
+
+        try {
+            // InternalTableDSL.g:7189:47: (iv_ruleOpUnary= ruleOpUnary EOF )
+            // InternalTableDSL.g:7190:2: iv_ruleOpUnary= ruleOpUnary EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpUnaryRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpUnary=ruleOpUnary();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpUnary.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpUnary"
+
+
+    // $ANTLR start "ruleOpUnary"
+    // InternalTableDSL.g:7196:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
+    public final AntlrDatatypeRuleToken ruleOpUnary() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:7202:2: ( (kw= '!' | kw= '-' | kw= '+' ) )
+            // InternalTableDSL.g:7203:2: (kw= '!' | kw= '-' | kw= '+' )
+            {
+            // InternalTableDSL.g:7203:2: (kw= '!' | kw= '-' | kw= '+' )
+            int alt88=3;
+            switch ( input.LA(1) ) {
+            case 138:
+                {
+                alt88=1;
+                }
+                break;
+            case 102:
+                {
+                alt88=2;
+                }
+                break;
+            case 101:
+                {
+                alt88=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 88, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt88) {
+                case 1 :
+                    // InternalTableDSL.g:7204:3: kw= '!'
+                    {
+                    kw=(Token)match(input,138,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:7210:3: kw= '-'
+                    {
+                    kw=(Token)match(input,102,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:7216:3: kw= '+'
+                    {
+                    kw=(Token)match(input,101,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpUnary"
+
+
+    // $ANTLR start "entryRuleXCastedExpression"
+    // InternalTableDSL.g:7225:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
+    public final EObject entryRuleXCastedExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXCastedExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:7225:58: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
+            // InternalTableDSL.g:7226:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXCastedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXCastedExpression=ruleXCastedExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXCastedExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXCastedExpression"
+
+
+    // $ANTLR start "ruleXCastedExpression"
+    // InternalTableDSL.g:7232:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
+    public final EObject ruleXCastedExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        EObject this_XPostfixOperation_0 = null;
+
+        EObject lv_type_3_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:7238:2: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
+            // InternalTableDSL.g:7239:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            {
+            // InternalTableDSL.g:7239:2: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // InternalTableDSL.g:7240:3: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_92);
+            this_XPostfixOperation_0=ruleXPostfixOperation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XPostfixOperation_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:7248:3: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            loop89:
+            do {
+                int alt89=2;
+                int LA89_0 = input.LA(1);
+
+                if ( (LA89_0==20) ) {
+                    int LA89_2 = input.LA(2);
+
+                    if ( (synpred18_InternalTableDSL()) ) {
+                        alt89=1;
+                    }
+
+
+                }
+
+
+                switch (alt89) {
+            	case 1 :
+            	    // InternalTableDSL.g:7249:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    {
+            	    // InternalTableDSL.g:7249:4: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
+            	    // InternalTableDSL.g:7250:5: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
+            	    {
+            	    // InternalTableDSL.g:7256:5: ( () otherlv_2= 'as' )
+            	    // InternalTableDSL.g:7257:6: () otherlv_2= 'as'
+            	    {
+            	    // InternalTableDSL.g:7257:6: ()
+            	    // InternalTableDSL.g:7258:7: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							current = forceCreateModelElementAndSet(
+            	      								grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0(),
+            	      								current);
+            	      						
+            	    }
+
+            	    }
+
+            	    otherlv_2=(Token)match(input,20,FOLLOW_85); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:7270:4: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // InternalTableDSL.g:7271:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    {
+            	    // InternalTableDSL.g:7271:5: (lv_type_3_0= ruleJvmTypeReference )
+            	    // InternalTableDSL.g:7272:6: lv_type_3_0= ruleJvmTypeReference
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_92);
+            	    lv_type_3_0=ruleJvmTypeReference();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXCastedExpressionRule());
+            	      						}
+            	      						set(
+            	      							current,
+            	      							"type",
+            	      							lv_type_3_0,
+            	      							"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop89;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXCastedExpression"
+
+
+    // $ANTLR start "entryRuleXPostfixOperation"
+    // InternalTableDSL.g:7294:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
+    public final EObject entryRuleXPostfixOperation() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXPostfixOperation = null;
+
+
+        try {
+            // InternalTableDSL.g:7294:58: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
+            // InternalTableDSL.g:7295:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXPostfixOperationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXPostfixOperation=ruleXPostfixOperation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXPostfixOperation; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXPostfixOperation"
+
+
+    // $ANTLR start "ruleXPostfixOperation"
+    // InternalTableDSL.g:7301:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
+    public final EObject ruleXPostfixOperation() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XMemberFeatureCall_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:7307:2: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
+            // InternalTableDSL.g:7308:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            {
+            // InternalTableDSL.g:7308:2: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // InternalTableDSL.g:7309:3: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_93);
+            this_XMemberFeatureCall_0=ruleXMemberFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XMemberFeatureCall_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:7317:3: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            int alt90=2;
+            int LA90_0 = input.LA(1);
+
+            if ( (LA90_0==139) ) {
+                int LA90_1 = input.LA(2);
+
+                if ( (synpred19_InternalTableDSL()) ) {
+                    alt90=1;
+                }
+            }
+            else if ( (LA90_0==140) ) {
+                int LA90_2 = input.LA(2);
+
+                if ( (synpred19_InternalTableDSL()) ) {
+                    alt90=1;
+                }
+            }
+            switch (alt90) {
+                case 1 :
+                    // InternalTableDSL.g:7318:4: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
+                    {
+                    // InternalTableDSL.g:7328:4: ( () ( ( ruleOpPostfix ) ) )
+                    // InternalTableDSL.g:7329:5: () ( ( ruleOpPostfix ) )
+                    {
+                    // InternalTableDSL.g:7329:5: ()
+                    // InternalTableDSL.g:7330:6: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						current = forceCreateModelElementAndSet(
+                      							grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0(),
+                      							current);
+                      					
+                    }
+
+                    }
+
+                    // InternalTableDSL.g:7336:5: ( ( ruleOpPostfix ) )
+                    // InternalTableDSL.g:7337:6: ( ruleOpPostfix )
+                    {
+                    // InternalTableDSL.g:7337:6: ( ruleOpPostfix )
+                    // InternalTableDSL.g:7338:7: ruleOpPostfix
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getXPostfixOperationRule());
+                      							}
+                      						
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      							newCompositeNode(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0());
+                      						
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleOpPostfix();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							afterParserOrEnumRuleCall();
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXPostfixOperation"
+
+
+    // $ANTLR start "entryRuleOpPostfix"
+    // InternalTableDSL.g:7358:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
+    public final String entryRuleOpPostfix() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpPostfix = null;
+
+
+        try {
+            // InternalTableDSL.g:7358:49: (iv_ruleOpPostfix= ruleOpPostfix EOF )
+            // InternalTableDSL.g:7359:2: iv_ruleOpPostfix= ruleOpPostfix EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpPostfixRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleOpPostfix=ruleOpPostfix();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpPostfix.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpPostfix"
+
+
+    // $ANTLR start "ruleOpPostfix"
+    // InternalTableDSL.g:7365:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
+    public final AntlrDatatypeRuleToken ruleOpPostfix() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:7371:2: ( (kw= '++' | kw= '--' ) )
+            // InternalTableDSL.g:7372:2: (kw= '++' | kw= '--' )
+            {
+            // InternalTableDSL.g:7372:2: (kw= '++' | kw= '--' )
+            int alt91=2;
+            int LA91_0 = input.LA(1);
+
+            if ( (LA91_0==139) ) {
+                alt91=1;
+            }
+            else if ( (LA91_0==140) ) {
+                alt91=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 91, 0, input);
+
+                throw nvae;
+            }
+            switch (alt91) {
+                case 1 :
+                    // InternalTableDSL.g:7373:3: kw= '++'
+                    {
+                    kw=(Token)match(input,139,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:7379:3: kw= '--'
+                    {
+                    kw=(Token)match(input,140,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpPostfix"
+
+
+    // $ANTLR start "entryRuleXMemberFeatureCall"
+    // InternalTableDSL.g:7388:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
+    public final EObject entryRuleXMemberFeatureCall() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXMemberFeatureCall = null;
+
+
+        try {
+            // InternalTableDSL.g:7388:59: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
+            // InternalTableDSL.g:7389:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXMemberFeatureCall=ruleXMemberFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXMemberFeatureCall; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXMemberFeatureCall"
+
+
+    // $ANTLR start "ruleXMemberFeatureCall"
+    // InternalTableDSL.g:7395:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
+    public final EObject ruleXMemberFeatureCall() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        Token lv_explicitStatic_3_0=null;
+        Token otherlv_8=null;
+        Token lv_nullSafe_9_0=null;
+        Token lv_explicitStatic_10_0=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        Token otherlv_15=null;
+        Token lv_explicitOperationCall_17_0=null;
+        Token otherlv_20=null;
+        Token otherlv_22=null;
+        EObject this_XPrimaryExpression_0 = null;
+
+        EObject lv_value_6_0 = null;
+
+        EObject lv_typeArguments_12_0 = null;
+
+        EObject lv_typeArguments_14_0 = null;
+
+        EObject lv_memberCallArguments_18_0 = null;
+
+        EObject lv_memberCallArguments_19_0 = null;
+
+        EObject lv_memberCallArguments_21_0 = null;
+
+        EObject lv_memberCallArguments_23_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:7401:2: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
+            // InternalTableDSL.g:7402:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            {
+            // InternalTableDSL.g:7402:2: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            // InternalTableDSL.g:7403:3: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_94);
+            this_XPrimaryExpression_0=ruleXPrimaryExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XPrimaryExpression_0;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:7411:3: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            loop100:
+            do {
+                int alt100=3;
+                switch ( input.LA(1) ) {
+                case 78:
+                    {
+                    int LA100_2 = input.LA(2);
+
+                    if ( (synpred20_InternalTableDSL()) ) {
+                        alt100=1;
+                    }
+                    else if ( (synpred21_InternalTableDSL()) ) {
+                        alt100=2;
+                    }
+
+
+                    }
+                    break;
+                case 141:
+                    {
+                    int LA100_3 = input.LA(2);
+
+                    if ( (synpred20_InternalTableDSL()) ) {
+                        alt100=1;
+                    }
+                    else if ( (synpred21_InternalTableDSL()) ) {
+                        alt100=2;
+                    }
+
+
+                    }
+                    break;
+                case 142:
+                    {
+                    int LA100_4 = input.LA(2);
+
+                    if ( (synpred21_InternalTableDSL()) ) {
+                        alt100=2;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt100) {
+            	case 1 :
+            	    // InternalTableDSL.g:7412:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    {
+            	    // InternalTableDSL.g:7412:4: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // InternalTableDSL.g:7413:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
+            	    {
+            	    // InternalTableDSL.g:7413:5: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+            	    // InternalTableDSL.g:7414:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    {
+            	    // InternalTableDSL.g:7434:6: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // InternalTableDSL.g:7435:7: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+            	    {
+            	    // InternalTableDSL.g:7435:7: ()
+            	    // InternalTableDSL.g:7436:8: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								current = forceCreateModelElementAndSet(
+            	      									grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0(),
+            	      									current);
+            	      							
+            	    }
+
+            	    }
+
+            	    // InternalTableDSL.g:7442:7: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
+            	    int alt92=2;
+            	    int LA92_0 = input.LA(1);
+
+            	    if ( (LA92_0==78) ) {
+            	        alt92=1;
+            	    }
+            	    else if ( (LA92_0==141) ) {
+            	        alt92=2;
+            	    }
+            	    else {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        NoViableAltException nvae =
+            	            new NoViableAltException("", 92, 0, input);
+
+            	        throw nvae;
+            	    }
+            	    switch (alt92) {
+            	        case 1 :
+            	            // InternalTableDSL.g:7443:8: otherlv_2= '.'
+            	            {
+            	            otherlv_2=(Token)match(input,78,FOLLOW_95); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              								newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
+            	              							
+            	            }
+
+            	            }
+            	            break;
+            	        case 2 :
+            	            // InternalTableDSL.g:7448:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            {
+            	            // InternalTableDSL.g:7448:8: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // InternalTableDSL.g:7449:9: (lv_explicitStatic_3_0= '::' )
+            	            {
+            	            // InternalTableDSL.g:7449:9: (lv_explicitStatic_3_0= '::' )
+            	            // InternalTableDSL.g:7450:10: lv_explicitStatic_3_0= '::'
+            	            {
+            	            lv_explicitStatic_3_0=(Token)match(input,141,FOLLOW_95); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              										newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
+            	              									
+            	            }
+            	            if ( state.backtracking==0 ) {
+
+            	              										if (current==null) {
+            	              											current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+            	              										}
+            	              										setWithLastConsumed(current, "explicitStatic", true, "::");
+            	              									
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+
+            	    }
+
+            	    // InternalTableDSL.g:7463:7: ( ( ruleFeatureCallID ) )
+            	    // InternalTableDSL.g:7464:8: ( ruleFeatureCallID )
+            	    {
+            	    // InternalTableDSL.g:7464:8: ( ruleFeatureCallID )
+            	    // InternalTableDSL.g:7465:9: ruleFeatureCallID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      									if (current==null) {
+            	      										current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+            	      									}
+            	      								
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0());
+            	      								
+            	    }
+            	    pushFollow(FOLLOW_53);
+            	    ruleFeatureCallID();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      									afterParserOrEnumRuleCall();
+            	      								
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    if ( state.backtracking==0 ) {
+
+            	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3());
+            	      						
+            	    }
+            	    pushFollow(FOLLOW_72);
+            	    ruleOpSingleAssign();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:7488:5: ( (lv_value_6_0= ruleXAssignment ) )
+            	    // InternalTableDSL.g:7489:6: (lv_value_6_0= ruleXAssignment )
+            	    {
+            	    // InternalTableDSL.g:7489:6: (lv_value_6_0= ruleXAssignment )
+            	    // InternalTableDSL.g:7490:7: lv_value_6_0= ruleXAssignment
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0());
+            	      						
+            	    }
+            	    pushFollow(FOLLOW_94);
+            	    lv_value_6_0=ruleXAssignment();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							if (current==null) {
+            	      								current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+            	      							}
+            	      							set(
+            	      								current,
+            	      								"value",
+            	      								lv_value_6_0,
+            	      								"org.eclipse.xtext.xbase.Xbase.XAssignment");
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // InternalTableDSL.g:7509:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    {
+            	    // InternalTableDSL.g:7509:4: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    // InternalTableDSL.g:7510:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    {
+            	    // InternalTableDSL.g:7510:5: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
+            	    // InternalTableDSL.g:7511:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    {
+            	    // InternalTableDSL.g:7531:6: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // InternalTableDSL.g:7532:7: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    {
+            	    // InternalTableDSL.g:7532:7: ()
+            	    // InternalTableDSL.g:7533:8: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      								current = forceCreateModelElementAndSet(
+            	      									grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0(),
+            	      									current);
+            	      							
+            	    }
+
+            	    }
+
+            	    // InternalTableDSL.g:7539:7: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    int alt93=3;
+            	    switch ( input.LA(1) ) {
+            	    case 78:
+            	        {
+            	        alt93=1;
+            	        }
+            	        break;
+            	    case 142:
+            	        {
+            	        alt93=2;
+            	        }
+            	        break;
+            	    case 141:
+            	        {
+            	        alt93=3;
+            	        }
+            	        break;
+            	    default:
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        NoViableAltException nvae =
+            	            new NoViableAltException("", 93, 0, input);
+
+            	        throw nvae;
+            	    }
+
+            	    switch (alt93) {
+            	        case 1 :
+            	            // InternalTableDSL.g:7540:8: otherlv_8= '.'
+            	            {
+            	            otherlv_8=(Token)match(input,78,FOLLOW_96); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              								newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
+            	              							
+            	            }
+
+            	            }
+            	            break;
+            	        case 2 :
+            	            // InternalTableDSL.g:7545:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            {
+            	            // InternalTableDSL.g:7545:8: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // InternalTableDSL.g:7546:9: (lv_nullSafe_9_0= '?.' )
+            	            {
+            	            // InternalTableDSL.g:7546:9: (lv_nullSafe_9_0= '?.' )
+            	            // InternalTableDSL.g:7547:10: lv_nullSafe_9_0= '?.'
+            	            {
+            	            lv_nullSafe_9_0=(Token)match(input,142,FOLLOW_96); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              										newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+            	              									
+            	            }
+            	            if ( state.backtracking==0 ) {
+
+            	              										if (current==null) {
+            	              											current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+            	              										}
+            	              										setWithLastConsumed(current, "nullSafe", true, "?.");
+            	              									
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+            	        case 3 :
+            	            // InternalTableDSL.g:7560:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            {
+            	            // InternalTableDSL.g:7560:8: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // InternalTableDSL.g:7561:9: (lv_explicitStatic_10_0= '::' )
+            	            {
+            	            // InternalTableDSL.g:7561:9: (lv_explicitStatic_10_0= '::' )
+            	            // InternalTableDSL.g:7562:10: lv_explicitStatic_10_0= '::'
+            	            {
+            	            lv_explicitStatic_10_0=(Token)match(input,141,FOLLOW_96); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              										newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+            	              									
+            	            }
+            	            if ( state.backtracking==0 ) {
+
+            	              										if (current==null) {
+            	              											current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+            	              										}
+            	              										setWithLastConsumed(current, "explicitStatic", true, "::");
+            	              									
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:7577:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
+            	    int alt95=2;
+            	    int LA95_0 = input.LA(1);
+
+            	    if ( (LA95_0==119) ) {
+            	        alt95=1;
+            	    }
+            	    switch (alt95) {
+            	        case 1 :
+            	            // InternalTableDSL.g:7578:6: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
+            	            {
+            	            otherlv_11=(Token)match(input,119,FOLLOW_97); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              						newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
+            	              					
+            	            }
+            	            // InternalTableDSL.g:7582:6: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
+            	            // InternalTableDSL.g:7583:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            {
+            	            // InternalTableDSL.g:7583:7: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // InternalTableDSL.g:7584:8: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
+            	            {
+            	            if ( state.backtracking==0 ) {
+
+            	              								newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0());
+            	              							
+            	            }
+            	            pushFollow(FOLLOW_98);
+            	            lv_typeArguments_12_0=ruleJvmArgumentTypeReference();
+
+            	            state._fsp--;
+            	            if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              								if (current==null) {
+            	              									current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+            	              								}
+            	              								add(
+            	              									current,
+            	              									"typeArguments",
+            	              									lv_typeArguments_12_0,
+            	              									"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+            	              								afterParserOrEnumRuleCall();
+            	              							
+            	            }
+
+            	            }
+
+
+            	            }
+
+            	            // InternalTableDSL.g:7601:6: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
+            	            loop94:
+            	            do {
+            	                int alt94=2;
+            	                int LA94_0 = input.LA(1);
+
+            	                if ( (LA94_0==110) ) {
+            	                    alt94=1;
+            	                }
+
+
+            	                switch (alt94) {
+            	            	case 1 :
+            	            	    // InternalTableDSL.g:7602:7: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    {
+            	            	    otherlv_13=(Token)match(input,110,FOLLOW_97); if (state.failed) return current;
+            	            	    if ( state.backtracking==0 ) {
+
+            	            	      							newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
+            	            	      						
+            	            	    }
+            	            	    // InternalTableDSL.g:7606:7: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    // InternalTableDSL.g:7607:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    {
+            	            	    // InternalTableDSL.g:7607:8: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+            	            	    // InternalTableDSL.g:7608:9: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
+            	            	    {
+            	            	    if ( state.backtracking==0 ) {
+
+            	            	      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0());
+            	            	      								
+            	            	    }
+            	            	    pushFollow(FOLLOW_98);
+            	            	    lv_typeArguments_14_0=ruleJvmArgumentTypeReference();
+
+            	            	    state._fsp--;
+            	            	    if (state.failed) return current;
+            	            	    if ( state.backtracking==0 ) {
+
+            	            	      									if (current==null) {
+            	            	      										current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+            	            	      									}
+            	            	      									add(
+            	            	      										current,
+            	            	      										"typeArguments",
+            	            	      										lv_typeArguments_14_0,
+            	            	      										"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+            	            	      									afterParserOrEnumRuleCall();
+            	            	      								
+            	            	    }
+
+            	            	    }
+
+
+            	            	    }
+
+
+            	            	    }
+            	            	    break;
+
+            	            	default :
+            	            	    break loop94;
+            	                }
+            	            } while (true);
+
+            	            otherlv_15=(Token)match(input,120,FOLLOW_96); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              						newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
+            	              					
+            	            }
+
+            	            }
+            	            break;
+
+            	    }
+
+            	    // InternalTableDSL.g:7631:5: ( ( ruleIdOrSuper ) )
+            	    // InternalTableDSL.g:7632:6: ( ruleIdOrSuper )
+            	    {
+            	    // InternalTableDSL.g:7632:6: ( ruleIdOrSuper )
+            	    // InternalTableDSL.g:7633:7: ruleIdOrSuper
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      							if (current==null) {
+            	      								current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+            	      							}
+            	      						
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0());
+            	      						
+            	    }
+            	    pushFollow(FOLLOW_99);
+            	    ruleIdOrSuper();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      							afterParserOrEnumRuleCall();
+            	      						
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:7647:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?
+            	    int alt98=2;
+            	    alt98 = dfa98.predict(input);
+            	    switch (alt98) {
+            	        case 1 :
+            	            // InternalTableDSL.g:7648:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')'
+            	            {
+            	            // InternalTableDSL.g:7648:6: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
+            	            // InternalTableDSL.g:7649:7: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
+            	            {
+            	            // InternalTableDSL.g:7653:7: (lv_explicitOperationCall_17_0= '(' )
+            	            // InternalTableDSL.g:7654:8: lv_explicitOperationCall_17_0= '('
+            	            {
+            	            lv_explicitOperationCall_17_0=(Token)match(input,93,FOLLOW_100); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              								newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
+            	              							
+            	            }
+            	            if ( state.backtracking==0 ) {
+
+            	              								if (current==null) {
+            	              									current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+            	              								}
+            	              								setWithLastConsumed(current, "explicitOperationCall", true, "(");
+            	              							
+            	            }
+
+            	            }
+
+
+            	            }
+
+            	            // InternalTableDSL.g:7666:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
+            	            int alt97=3;
+            	            alt97 = dfa97.predict(input);
+            	            switch (alt97) {
+            	                case 1 :
+            	                    // InternalTableDSL.g:7667:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    {
+            	                    // InternalTableDSL.g:7667:7: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+            	                    // InternalTableDSL.g:7668:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    {
+            	                    // InternalTableDSL.g:7693:8: (lv_memberCallArguments_18_0= ruleXShortClosure )
+            	                    // InternalTableDSL.g:7694:9: lv_memberCallArguments_18_0= ruleXShortClosure
+            	                    {
+            	                    if ( state.backtracking==0 ) {
+
+            	                      									newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0());
+            	                      								
+            	                    }
+            	                    pushFollow(FOLLOW_55);
+            	                    lv_memberCallArguments_18_0=ruleXShortClosure();
+
+            	                    state._fsp--;
+            	                    if (state.failed) return current;
+            	                    if ( state.backtracking==0 ) {
+
+            	                      									if (current==null) {
+            	                      										current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+            	                      									}
+            	                      									add(
+            	                      										current,
+            	                      										"memberCallArguments",
+            	                      										lv_memberCallArguments_18_0,
+            	                      										"org.eclipse.xtext.xbase.Xbase.XShortClosure");
+            	                      									afterParserOrEnumRuleCall();
+            	                      								
+            	                    }
+
+            	                    }
+
+
+            	                    }
+
+
+            	                    }
+            	                    break;
+            	                case 2 :
+            	                    // InternalTableDSL.g:7712:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    {
+            	                    // InternalTableDSL.g:7712:7: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+            	                    // InternalTableDSL.g:7713:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    {
+            	                    // InternalTableDSL.g:7713:8: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
+            	                    // InternalTableDSL.g:7714:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    {
+            	                    // InternalTableDSL.g:7714:9: (lv_memberCallArguments_19_0= ruleXExpression )
+            	                    // InternalTableDSL.g:7715:10: lv_memberCallArguments_19_0= ruleXExpression
+            	                    {
+            	                    if ( state.backtracking==0 ) {
+
+            	                      										newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0());
+            	                      									
+            	                    }
+            	                    pushFollow(FOLLOW_71);
+            	                    lv_memberCallArguments_19_0=ruleXExpression();
+
+            	                    state._fsp--;
+            	                    if (state.failed) return current;
+            	                    if ( state.backtracking==0 ) {
+
+            	                      										if (current==null) {
+            	                      											current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+            	                      										}
+            	                      										add(
+            	                      											current,
+            	                      											"memberCallArguments",
+            	                      											lv_memberCallArguments_19_0,
+            	                      											"org.eclipse.xtext.xbase.Xbase.XExpression");
+            	                      										afterParserOrEnumRuleCall();
+            	                      									
+            	                    }
+
+            	                    }
+
+
+            	                    }
+
+            	                    // InternalTableDSL.g:7732:8: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+            	                    loop96:
+            	                    do {
+            	                        int alt96=2;
+            	                        int LA96_0 = input.LA(1);
+
+            	                        if ( (LA96_0==110) ) {
+            	                            alt96=1;
+            	                        }
+
+
+            	                        switch (alt96) {
+            	                    	case 1 :
+            	                    	    // InternalTableDSL.g:7733:9: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    {
+            	                    	    otherlv_20=(Token)match(input,110,FOLLOW_72); if (state.failed) return current;
+            	                    	    if ( state.backtracking==0 ) {
+
+            	                    	      									newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
+            	                    	      								
+            	                    	    }
+            	                    	    // InternalTableDSL.g:7737:9: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+            	                    	    // InternalTableDSL.g:7738:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    {
+            	                    	    // InternalTableDSL.g:7738:10: (lv_memberCallArguments_21_0= ruleXExpression )
+            	                    	    // InternalTableDSL.g:7739:11: lv_memberCallArguments_21_0= ruleXExpression
+            	                    	    {
+            	                    	    if ( state.backtracking==0 ) {
+
+            	                    	      											newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0());
+            	                    	      										
+            	                    	    }
+            	                    	    pushFollow(FOLLOW_71);
+            	                    	    lv_memberCallArguments_21_0=ruleXExpression();
+
+            	                    	    state._fsp--;
+            	                    	    if (state.failed) return current;
+            	                    	    if ( state.backtracking==0 ) {
+
+            	                    	      											if (current==null) {
+            	                    	      												current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+            	                    	      											}
+            	                    	      											add(
+            	                    	      												current,
+            	                    	      												"memberCallArguments",
+            	                    	      												lv_memberCallArguments_21_0,
+            	                    	      												"org.eclipse.xtext.xbase.Xbase.XExpression");
+            	                    	      											afterParserOrEnumRuleCall();
+            	                    	      										
+            	                    	    }
+
+            	                    	    }
+
+
+            	                    	    }
+
+
+            	                    	    }
+            	                    	    break;
+
+            	                    	default :
+            	                    	    break loop96;
+            	                        }
+            	                    } while (true);
+
+
+            	                    }
+
+
+            	                    }
+            	                    break;
+
+            	            }
+
+            	            otherlv_22=(Token)match(input,94,FOLLOW_101); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              						newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
+            	              					
+            	            }
+
+            	            }
+            	            break;
+
+            	    }
+
+            	    // InternalTableDSL.g:7764:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    int alt99=2;
+            	    alt99 = dfa99.predict(input);
+            	    switch (alt99) {
+            	        case 1 :
+            	            // InternalTableDSL.g:7765:6: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
+            	            {
+            	            // InternalTableDSL.g:7771:6: (lv_memberCallArguments_23_0= ruleXClosure )
+            	            // InternalTableDSL.g:7772:7: lv_memberCallArguments_23_0= ruleXClosure
+            	            {
+            	            if ( state.backtracking==0 ) {
+
+            	              							newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0());
+            	              						
+            	            }
+            	            pushFollow(FOLLOW_94);
+            	            lv_memberCallArguments_23_0=ruleXClosure();
+
+            	            state._fsp--;
+            	            if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              							if (current==null) {
+            	              								current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+            	              							}
+            	              							add(
+            	              								current,
+            	              								"memberCallArguments",
+            	              								lv_memberCallArguments_23_0,
+            	              								"org.eclipse.xtext.xbase.Xbase.XClosure");
+            	              							afterParserOrEnumRuleCall();
+            	              						
+            	            }
+
+            	            }
+
+
+            	            }
+            	            break;
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop100;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXMemberFeatureCall"
+
+
+    // $ANTLR start "entryRuleXPrimaryExpression"
+    // InternalTableDSL.g:7795:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
+    public final EObject entryRuleXPrimaryExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXPrimaryExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:7795:59: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
+            // InternalTableDSL.g:7796:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXPrimaryExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXPrimaryExpression=ruleXPrimaryExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXPrimaryExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXPrimaryExpression"
+
+
+    // $ANTLR start "ruleXPrimaryExpression"
+    // InternalTableDSL.g:7802:1: ruleXPrimaryExpression returns [EObject current=null] : (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) ;
+    public final EObject ruleXPrimaryExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XConstructorCall_0 = null;
+
+        EObject this_XBlockExpression_1 = null;
+
+        EObject this_XSwitchExpression_2 = null;
+
+        EObject this_XSynchronizedExpression_3 = null;
+
+        EObject this_XFeatureCall_4 = null;
+
+        EObject this_XLiteral_5 = null;
+
+        EObject this_XIfExpression_6 = null;
+
+        EObject this_XForLoopExpression_7 = null;
+
+        EObject this_XBasicForLoopExpression_8 = null;
+
+        EObject this_XWhileExpression_9 = null;
+
+        EObject this_XDoWhileExpression_10 = null;
+
+        EObject this_XThrowExpression_11 = null;
+
+        EObject this_XReturnExpression_12 = null;
+
+        EObject this_XTryCatchFinallyExpression_13 = null;
+
+        EObject this_XParenthesizedExpression_14 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:7808:2: ( (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression ) )
+            // InternalTableDSL.g:7809:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
+            {
+            // InternalTableDSL.g:7809:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )
+            int alt101=15;
+            alt101 = dfa101.predict(input);
+            switch (alt101) {
+                case 1 :
+                    // InternalTableDSL.g:7810:3: this_XConstructorCall_0= ruleXConstructorCall
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XConstructorCall_0=ruleXConstructorCall();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XConstructorCall_0;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:7819:3: this_XBlockExpression_1= ruleXBlockExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XBlockExpression_1=ruleXBlockExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XBlockExpression_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:7828:3: this_XSwitchExpression_2= ruleXSwitchExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XSwitchExpression_2=ruleXSwitchExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XSwitchExpression_2;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:7837:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    {
+                    // InternalTableDSL.g:7837:3: ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression )
+                    // InternalTableDSL.g:7838:4: ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      				newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3());
+                      			
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XSynchronizedExpression_3=ruleXSynchronizedExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = this_XSynchronizedExpression_3;
+                      				afterParserOrEnumRuleCall();
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:7855:3: this_XFeatureCall_4= ruleXFeatureCall
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XFeatureCall_4=ruleXFeatureCall();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XFeatureCall_4;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:7864:3: this_XLiteral_5= ruleXLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XLiteral_5=ruleXLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XLiteral_5;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:7873:3: this_XIfExpression_6= ruleXIfExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XIfExpression_6=ruleXIfExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XIfExpression_6;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTableDSL.g:7882:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    {
+                    // InternalTableDSL.g:7882:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression )
+                    // InternalTableDSL.g:7883:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      				newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7());
+                      			
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XForLoopExpression_7=ruleXForLoopExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = this_XForLoopExpression_7;
+                      				afterParserOrEnumRuleCall();
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 9 :
+                    // InternalTableDSL.g:7906:3: this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XBasicForLoopExpression_8=ruleXBasicForLoopExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XBasicForLoopExpression_8;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 10 :
+                    // InternalTableDSL.g:7915:3: this_XWhileExpression_9= ruleXWhileExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XWhileExpression_9=ruleXWhileExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XWhileExpression_9;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 11 :
+                    // InternalTableDSL.g:7924:3: this_XDoWhileExpression_10= ruleXDoWhileExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XDoWhileExpression_10=ruleXDoWhileExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XDoWhileExpression_10;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 12 :
+                    // InternalTableDSL.g:7933:3: this_XThrowExpression_11= ruleXThrowExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XThrowExpression_11=ruleXThrowExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XThrowExpression_11;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 13 :
+                    // InternalTableDSL.g:7942:3: this_XReturnExpression_12= ruleXReturnExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XReturnExpression_12=ruleXReturnExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XReturnExpression_12;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 14 :
+                    // InternalTableDSL.g:7951:3: this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XTryCatchFinallyExpression_13=ruleXTryCatchFinallyExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XTryCatchFinallyExpression_13;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 15 :
+                    // InternalTableDSL.g:7960:3: this_XParenthesizedExpression_14= ruleXParenthesizedExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XParenthesizedExpression_14=ruleXParenthesizedExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XParenthesizedExpression_14;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXPrimaryExpression"
+
+
+    // $ANTLR start "entryRuleXLiteral"
+    // InternalTableDSL.g:7972:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
+    public final EObject entryRuleXLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXLiteral = null;
+
+
+        try {
+            // InternalTableDSL.g:7972:49: (iv_ruleXLiteral= ruleXLiteral EOF )
+            // InternalTableDSL.g:7973:2: iv_ruleXLiteral= ruleXLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXLiteral=ruleXLiteral();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXLiteral; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXLiteral"
+
+
+    // $ANTLR start "ruleXLiteral"
+    // InternalTableDSL.g:7979:1: ruleXLiteral returns [EObject current=null] : (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) ;
+    public final EObject ruleXLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XCollectionLiteral_0 = null;
+
+        EObject this_XClosure_1 = null;
+
+        EObject this_XBooleanLiteral_2 = null;
+
+        EObject this_XNumberLiteral_3 = null;
+
+        EObject this_XNullLiteral_4 = null;
+
+        EObject this_XStringLiteral_5 = null;
+
+        EObject this_XTypeLiteral_6 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:7985:2: ( (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) )
+            // InternalTableDSL.g:7986:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+            {
+            // InternalTableDSL.g:7986:2: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+            int alt102=7;
+            int LA102_0 = input.LA(1);
+
+            if ( (LA102_0==111) ) {
+                alt102=1;
+            }
+            else if ( (LA102_0==112) && (synpred27_InternalTableDSL())) {
+                alt102=2;
+            }
+            else if ( ((LA102_0>=158 && LA102_0<=159)) ) {
+                alt102=3;
+            }
+            else if ( ((LA102_0>=RULE_INT && LA102_0<=RULE_DECIMAL)) ) {
+                alt102=4;
+            }
+            else if ( (LA102_0==160) ) {
+                alt102=5;
+            }
+            else if ( (LA102_0==RULE_STRING) ) {
+                alt102=6;
+            }
+            else if ( (LA102_0==161) ) {
+                alt102=7;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 102, 0, input);
+
+                throw nvae;
+            }
+            switch (alt102) {
+                case 1 :
+                    // InternalTableDSL.g:7987:3: this_XCollectionLiteral_0= ruleXCollectionLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XCollectionLiteral_0=ruleXCollectionLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XCollectionLiteral_0;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:7996:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    {
+                    // InternalTableDSL.g:7996:3: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+                    // InternalTableDSL.g:7997:4: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      				newCompositeNode(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1());
+                      			
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XClosure_1=ruleXClosure();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = this_XClosure_1;
+                      				afterParserOrEnumRuleCall();
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:8013:3: this_XBooleanLiteral_2= ruleXBooleanLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XBooleanLiteral_2=ruleXBooleanLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XBooleanLiteral_2;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:8022:3: this_XNumberLiteral_3= ruleXNumberLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XNumberLiteral_3=ruleXNumberLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XNumberLiteral_3;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:8031:3: this_XNullLiteral_4= ruleXNullLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XNullLiteral_4=ruleXNullLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XNullLiteral_4;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:8040:3: this_XStringLiteral_5= ruleXStringLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XStringLiteral_5=ruleXStringLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XStringLiteral_5;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTableDSL.g:8049:3: this_XTypeLiteral_6= ruleXTypeLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XTypeLiteral_6=ruleXTypeLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XTypeLiteral_6;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXLiteral"
+
+
+    // $ANTLR start "entryRuleXCollectionLiteral"
+    // InternalTableDSL.g:8061:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
+    public final EObject entryRuleXCollectionLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXCollectionLiteral = null;
+
+
+        try {
+            // InternalTableDSL.g:8061:59: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
+            // InternalTableDSL.g:8062:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXCollectionLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXCollectionLiteral=ruleXCollectionLiteral();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXCollectionLiteral; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXCollectionLiteral"
+
+
+    // $ANTLR start "ruleXCollectionLiteral"
+    // InternalTableDSL.g:8068:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
+    public final EObject ruleXCollectionLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XSetLiteral_0 = null;
+
+        EObject this_XListLiteral_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:8074:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
+            // InternalTableDSL.g:8075:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            {
+            // InternalTableDSL.g:8075:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+            int alt103=2;
+            int LA103_0 = input.LA(1);
+
+            if ( (LA103_0==111) ) {
+                int LA103_1 = input.LA(2);
+
+                if ( (LA103_1==112) ) {
+                    alt103=2;
+                }
+                else if ( (LA103_1==16) ) {
+                    alt103=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 103, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 103, 0, input);
+
+                throw nvae;
+            }
+            switch (alt103) {
+                case 1 :
+                    // InternalTableDSL.g:8076:3: this_XSetLiteral_0= ruleXSetLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XSetLiteral_0=ruleXSetLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XSetLiteral_0;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:8085:3: this_XListLiteral_1= ruleXListLiteral
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XListLiteral_1=ruleXListLiteral();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XListLiteral_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXCollectionLiteral"
+
+
+    // $ANTLR start "entryRuleXSetLiteral"
+    // InternalTableDSL.g:8097:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
+    public final EObject entryRuleXSetLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXSetLiteral = null;
+
+
+        try {
+            // InternalTableDSL.g:8097:52: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
+            // InternalTableDSL.g:8098:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXSetLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXSetLiteral=ruleXSetLiteral();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXSetLiteral; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXSetLiteral"
+
+
+    // $ANTLR start "ruleXSetLiteral"
+    // InternalTableDSL.g:8104:1: ruleXSetLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) ;
+    public final EObject ruleXSetLiteral() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_elements_3_0 = null;
+
+        EObject lv_elements_5_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:8110:2: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
+            // InternalTableDSL.g:8111:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            {
+            // InternalTableDSL.g:8111:2: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+            // InternalTableDSL.g:8112:3: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
+            {
+            // InternalTableDSL.g:8112:3: ()
+            // InternalTableDSL.g:8113:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,111,FOLLOW_22); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,16,FOLLOW_102); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:8127:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            int alt105=2;
+            int LA105_0 = input.LA(1);
+
+            if ( ((LA105_0>=RULE_ID && LA105_0<=RULE_STRING)||(LA105_0>=RULE_INT && LA105_0<=RULE_DECIMAL)||LA105_0==16||LA105_0==93||(LA105_0>=101 && LA105_0<=105)||(LA105_0>=111 && LA105_0<=112)||LA105_0==119||LA105_0==138||LA105_0==144||LA105_0==146||(LA105_0>=150 && LA105_0<=152)||(LA105_0>=155 && LA105_0<=164)||LA105_0==166) ) {
+                alt105=1;
+            }
+            switch (alt105) {
+                case 1 :
+                    // InternalTableDSL.g:8128:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    {
+                    // InternalTableDSL.g:8128:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalTableDSL.g:8129:5: (lv_elements_3_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:8129:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalTableDSL.g:8130:6: lv_elements_3_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_103);
+                    lv_elements_3_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+                      						}
+                      						add(
+                      							current,
+                      							"elements",
+                      							lv_elements_3_0,
+                      							"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:8147:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    loop104:
+                    do {
+                        int alt104=2;
+                        int LA104_0 = input.LA(1);
+
+                        if ( (LA104_0==110) ) {
+                            alt104=1;
+                        }
+
+
+                        switch (alt104) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:8148:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    {
+                    	    otherlv_4=(Token)match(input,110,FOLLOW_72); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      					newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
+                    	      				
+                    	    }
+                    	    // InternalTableDSL.g:8152:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalTableDSL.g:8153:6: (lv_elements_5_0= ruleXExpression )
+                    	    {
+                    	    // InternalTableDSL.g:8153:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalTableDSL.g:8154:7: lv_elements_5_0= ruleXExpression
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_103);
+                    	    lv_elements_5_0=ruleXExpression();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+                    	      							}
+                    	      							add(
+                    	      								current,
+                    	      								"elements",
+                    	      								lv_elements_5_0,
+                    	      								"org.eclipse.xtext.xbase.Xbase.XExpression");
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop104;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_6=(Token)match(input,17,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_6, grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXSetLiteral"
+
+
+    // $ANTLR start "entryRuleXListLiteral"
+    // InternalTableDSL.g:8181:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
+    public final EObject entryRuleXListLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXListLiteral = null;
+
+
+        try {
+            // InternalTableDSL.g:8181:53: (iv_ruleXListLiteral= ruleXListLiteral EOF )
+            // InternalTableDSL.g:8182:2: iv_ruleXListLiteral= ruleXListLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXListLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXListLiteral=ruleXListLiteral();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXListLiteral; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXListLiteral"
+
+
+    // $ANTLR start "ruleXListLiteral"
+    // InternalTableDSL.g:8188:1: ruleXListLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) ;
+    public final EObject ruleXListLiteral() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_elements_3_0 = null;
+
+        EObject lv_elements_5_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:8194:2: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
+            // InternalTableDSL.g:8195:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            {
+            // InternalTableDSL.g:8195:2: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+            // InternalTableDSL.g:8196:3: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
+            {
+            // InternalTableDSL.g:8196:3: ()
+            // InternalTableDSL.g:8197:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXListLiteralAccess().getXListLiteralAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,111,FOLLOW_73); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,112,FOLLOW_74); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:8211:3: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+            int alt107=2;
+            int LA107_0 = input.LA(1);
+
+            if ( ((LA107_0>=RULE_ID && LA107_0<=RULE_STRING)||(LA107_0>=RULE_INT && LA107_0<=RULE_DECIMAL)||LA107_0==16||LA107_0==93||(LA107_0>=101 && LA107_0<=105)||(LA107_0>=111 && LA107_0<=112)||LA107_0==119||LA107_0==138||LA107_0==144||LA107_0==146||(LA107_0>=150 && LA107_0<=152)||(LA107_0>=155 && LA107_0<=164)||LA107_0==166) ) {
+                alt107=1;
+            }
+            switch (alt107) {
+                case 1 :
+                    // InternalTableDSL.g:8212:4: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    {
+                    // InternalTableDSL.g:8212:4: ( (lv_elements_3_0= ruleXExpression ) )
+                    // InternalTableDSL.g:8213:5: (lv_elements_3_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:8213:5: (lv_elements_3_0= ruleXExpression )
+                    // InternalTableDSL.g:8214:6: lv_elements_3_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_75);
+                    lv_elements_3_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+                      						}
+                      						add(
+                      							current,
+                      							"elements",
+                      							lv_elements_3_0,
+                      							"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:8231:4: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+                    loop106:
+                    do {
+                        int alt106=2;
+                        int LA106_0 = input.LA(1);
+
+                        if ( (LA106_0==110) ) {
+                            alt106=1;
+                        }
+
+
+                        switch (alt106) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:8232:5: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+                    	    {
+                    	    otherlv_4=(Token)match(input,110,FOLLOW_72); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      					newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
+                    	      				
+                    	    }
+                    	    // InternalTableDSL.g:8236:5: ( (lv_elements_5_0= ruleXExpression ) )
+                    	    // InternalTableDSL.g:8237:6: (lv_elements_5_0= ruleXExpression )
+                    	    {
+                    	    // InternalTableDSL.g:8237:6: (lv_elements_5_0= ruleXExpression )
+                    	    // InternalTableDSL.g:8238:7: lv_elements_5_0= ruleXExpression
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_75);
+                    	    lv_elements_5_0=ruleXExpression();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+                    	      							}
+                    	      							add(
+                    	      								current,
+                    	      								"elements",
+                    	      								lv_elements_5_0,
+                    	      								"org.eclipse.xtext.xbase.Xbase.XExpression");
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop106;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_6=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXListLiteral"
+
+
+    // $ANTLR start "entryRuleXClosure"
+    // InternalTableDSL.g:8265:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
+    public final EObject entryRuleXClosure() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXClosure = null;
+
+
+        try {
+            // InternalTableDSL.g:8265:49: (iv_ruleXClosure= ruleXClosure EOF )
+            // InternalTableDSL.g:8266:2: iv_ruleXClosure= ruleXClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXClosureRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXClosure=ruleXClosure();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXClosure; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXClosure"
+
+
+    // $ANTLR start "ruleXClosure"
+    // InternalTableDSL.g:8272:1: ruleXClosure returns [EObject current=null] : ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) ;
+    public final EObject ruleXClosure() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token lv_explicitSyntax_5_0=null;
+        Token otherlv_7=null;
+        EObject lv_declaredFormalParameters_2_0 = null;
+
+        EObject lv_declaredFormalParameters_4_0 = null;
+
+        EObject lv_expression_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:8278:2: ( ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) )
+            // InternalTableDSL.g:8279:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+            {
+            // InternalTableDSL.g:8279:2: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+            // InternalTableDSL.g:8280:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']'
+            {
+            // InternalTableDSL.g:8280:3: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
+            // InternalTableDSL.g:8281:4: ( ( () '[' ) )=> ( () otherlv_1= '[' )
+            {
+            // InternalTableDSL.g:8287:4: ( () otherlv_1= '[' )
+            // InternalTableDSL.g:8288:5: () otherlv_1= '['
+            {
+            // InternalTableDSL.g:8288:5: ()
+            // InternalTableDSL.g:8289:6: 
+            {
+            if ( state.backtracking==0 ) {
+
+              						current = forceCreateModelElement(
+              							grammarAccess.getXClosureAccess().getXClosureAction_0_0_0(),
+              							current);
+              					
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,112,FOLLOW_104); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:8301:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
+            int alt110=2;
+            alt110 = dfa110.predict(input);
+            switch (alt110) {
+                case 1 :
+                    // InternalTableDSL.g:8302:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    {
+                    // InternalTableDSL.g:8325:4: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+                    // InternalTableDSL.g:8326:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
+                    {
+                    // InternalTableDSL.g:8326:5: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
+                    int alt109=2;
+                    int LA109_0 = input.LA(1);
+
+                    if ( (LA109_0==RULE_ID||LA109_0==93||LA109_0==132) ) {
+                        alt109=1;
+                    }
+                    switch (alt109) {
+                        case 1 :
+                            // InternalTableDSL.g:8327:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            {
+                            // InternalTableDSL.g:8327:6: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
+                            // InternalTableDSL.g:8328:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            {
+                            // InternalTableDSL.g:8328:7: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+                            // InternalTableDSL.g:8329:8: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              								newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0());
+                              							
+                            }
+                            pushFollow(FOLLOW_105);
+                            lv_declaredFormalParameters_2_0=ruleJvmFormalParameter();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              								if (current==null) {
+                              									current = createModelElementForParent(grammarAccess.getXClosureRule());
+                              								}
+                              								add(
+                              									current,
+                              									"declaredFormalParameters",
+                              									lv_declaredFormalParameters_2_0,
+                              									"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+                              								afterParserOrEnumRuleCall();
+                              							
+                            }
+
+                            }
+
+
+                            }
+
+                            // InternalTableDSL.g:8346:6: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+                            loop108:
+                            do {
+                                int alt108=2;
+                                int LA108_0 = input.LA(1);
+
+                                if ( (LA108_0==110) ) {
+                                    alt108=1;
+                                }
+
+
+                                switch (alt108) {
+                            	case 1 :
+                            	    // InternalTableDSL.g:8347:7: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    {
+                            	    otherlv_3=(Token)match(input,110,FOLLOW_85); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      							newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
+                            	      						
+                            	    }
+                            	    // InternalTableDSL.g:8351:7: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+                            	    // InternalTableDSL.g:8352:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    {
+                            	    // InternalTableDSL.g:8352:8: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+                            	    // InternalTableDSL.g:8353:9: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+
+                            	      									newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0());
+                            	      								
+                            	    }
+                            	    pushFollow(FOLLOW_105);
+                            	    lv_declaredFormalParameters_4_0=ruleJvmFormalParameter();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      									if (current==null) {
+                            	      										current = createModelElementForParent(grammarAccess.getXClosureRule());
+                            	      									}
+                            	      									add(
+                            	      										current,
+                            	      										"declaredFormalParameters",
+                            	      										lv_declaredFormalParameters_4_0,
+                            	      										"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+                            	      									afterParserOrEnumRuleCall();
+                            	      								
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop108;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    // InternalTableDSL.g:8372:5: ( (lv_explicitSyntax_5_0= '|' ) )
+                    // InternalTableDSL.g:8373:6: (lv_explicitSyntax_5_0= '|' )
+                    {
+                    // InternalTableDSL.g:8373:6: (lv_explicitSyntax_5_0= '|' )
+                    // InternalTableDSL.g:8374:7: lv_explicitSyntax_5_0= '|'
+                    {
+                    lv_explicitSyntax_5_0=(Token)match(input,143,FOLLOW_106); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
+                      						
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElement(grammarAccess.getXClosureRule());
+                      							}
+                      							setWithLastConsumed(current, "explicitSyntax", true, "|");
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:8388:3: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
+            // InternalTableDSL.g:8389:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            {
+            // InternalTableDSL.g:8389:4: (lv_expression_6_0= ruleXExpressionInClosure )
+            // InternalTableDSL.g:8390:5: lv_expression_6_0= ruleXExpressionInClosure
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0());
+              				
+            }
+            pushFollow(FOLLOW_107);
+            lv_expression_6_0=ruleXExpressionInClosure();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXClosureRule());
+              					}
+              					set(
+              						current,
+              						"expression",
+              						lv_expression_6_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpressionInClosure");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_7=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXClosure"
+
+
+    // $ANTLR start "entryRuleXExpressionInClosure"
+    // InternalTableDSL.g:8415:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
+    public final EObject entryRuleXExpressionInClosure() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXExpressionInClosure = null;
+
+
+        try {
+            // InternalTableDSL.g:8415:61: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
+            // InternalTableDSL.g:8416:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXExpressionInClosureRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXExpressionInClosure=ruleXExpressionInClosure();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXExpressionInClosure; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXExpressionInClosure"
+
+
+    // $ANTLR start "ruleXExpressionInClosure"
+    // InternalTableDSL.g:8422:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) ;
+    public final EObject ruleXExpressionInClosure() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        EObject lv_expressions_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:8428:2: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* ) )
+            // InternalTableDSL.g:8429:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            {
+            // InternalTableDSL.g:8429:2: ( () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )* )
+            // InternalTableDSL.g:8430:3: () ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            {
+            // InternalTableDSL.g:8430:3: ()
+            // InternalTableDSL.g:8431:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            // InternalTableDSL.g:8437:3: ( ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )? )*
+            loop112:
+            do {
+                int alt112=2;
+                int LA112_0 = input.LA(1);
+
+                if ( ((LA112_0>=RULE_ID && LA112_0<=RULE_STRING)||(LA112_0>=RULE_INT && LA112_0<=RULE_DECIMAL)||LA112_0==16||LA112_0==93||(LA112_0>=101 && LA112_0<=105)||(LA112_0>=111 && LA112_0<=112)||LA112_0==119||LA112_0==138||LA112_0==144||LA112_0==146||(LA112_0>=150 && LA112_0<=164)||LA112_0==166) ) {
+                    alt112=1;
+                }
+
+
+                switch (alt112) {
+            	case 1 :
+            	    // InternalTableDSL.g:8438:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_2= ';' )?
+            	    {
+            	    // InternalTableDSL.g:8438:4: ( (lv_expressions_1_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalTableDSL.g:8439:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    {
+            	    // InternalTableDSL.g:8439:5: (lv_expressions_1_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalTableDSL.g:8440:6: lv_expressions_1_0= ruleXExpressionOrVarDeclaration
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_108);
+            	    lv_expressions_1_0=ruleXExpressionOrVarDeclaration();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXExpressionInClosureRule());
+            	      						}
+            	      						add(
+            	      							current,
+            	      							"expressions",
+            	      							lv_expressions_1_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XExpressionOrVarDeclaration");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:8457:4: (otherlv_2= ';' )?
+            	    int alt111=2;
+            	    int LA111_0 = input.LA(1);
+
+            	    if ( (LA111_0==108) ) {
+            	        alt111=1;
+            	    }
+            	    switch (alt111) {
+            	        case 1 :
+            	            // InternalTableDSL.g:8458:5: otherlv_2= ';'
+            	            {
+            	            otherlv_2=(Token)match(input,108,FOLLOW_109); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              					newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
+            	              				
+            	            }
+
+            	            }
+            	            break;
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop112;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXExpressionInClosure"
+
+
+    // $ANTLR start "entryRuleXShortClosure"
+    // InternalTableDSL.g:8468:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
+    public final EObject entryRuleXShortClosure() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXShortClosure = null;
+
+
+        try {
+            // InternalTableDSL.g:8468:54: (iv_ruleXShortClosure= ruleXShortClosure EOF )
+            // InternalTableDSL.g:8469:2: iv_ruleXShortClosure= ruleXShortClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXShortClosureRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXShortClosure=ruleXShortClosure();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXShortClosure; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXShortClosure"
+
+
+    // $ANTLR start "ruleXShortClosure"
+    // InternalTableDSL.g:8475:1: ruleXShortClosure returns [EObject current=null] : ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+    public final EObject ruleXShortClosure() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        Token lv_explicitSyntax_4_0=null;
+        EObject lv_declaredFormalParameters_1_0 = null;
+
+        EObject lv_declaredFormalParameters_3_0 = null;
+
+        EObject lv_expression_5_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:8481:2: ( ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalTableDSL.g:8482:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+            {
+            // InternalTableDSL.g:8482:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalTableDSL.g:8483:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) )
+            {
+            // InternalTableDSL.g:8483:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
+            // InternalTableDSL.g:8484:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            {
+            // InternalTableDSL.g:8509:4: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+            // InternalTableDSL.g:8510:5: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
+            {
+            // InternalTableDSL.g:8510:5: ()
+            // InternalTableDSL.g:8511:6: 
+            {
+            if ( state.backtracking==0 ) {
+
+              						current = forceCreateModelElement(
+              							grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0(),
+              							current);
+              					
+            }
+
+            }
+
+            // InternalTableDSL.g:8517:5: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
+            int alt114=2;
+            int LA114_0 = input.LA(1);
+
+            if ( (LA114_0==RULE_ID||LA114_0==93||LA114_0==132) ) {
+                alt114=1;
+            }
+            switch (alt114) {
+                case 1 :
+                    // InternalTableDSL.g:8518:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    {
+                    // InternalTableDSL.g:8518:6: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
+                    // InternalTableDSL.g:8519:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    {
+                    // InternalTableDSL.g:8519:7: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+                    // InternalTableDSL.g:8520:8: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      								newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0());
+                      							
+                    }
+                    pushFollow(FOLLOW_105);
+                    lv_declaredFormalParameters_1_0=ruleJvmFormalParameter();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      								if (current==null) {
+                      									current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+                      								}
+                      								add(
+                      									current,
+                      									"declaredFormalParameters",
+                      									lv_declaredFormalParameters_1_0,
+                      									"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+                      								afterParserOrEnumRuleCall();
+                      							
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:8537:6: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+                    loop113:
+                    do {
+                        int alt113=2;
+                        int LA113_0 = input.LA(1);
+
+                        if ( (LA113_0==110) ) {
+                            alt113=1;
+                        }
+
+
+                        switch (alt113) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:8538:7: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    {
+                    	    otherlv_2=(Token)match(input,110,FOLLOW_85); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
+                    	      						
+                    	    }
+                    	    // InternalTableDSL.g:8542:7: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+                    	    // InternalTableDSL.g:8543:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    {
+                    	    // InternalTableDSL.g:8543:8: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+                    	    // InternalTableDSL.g:8544:9: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      									newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0());
+                    	      								
+                    	    }
+                    	    pushFollow(FOLLOW_105);
+                    	    lv_declaredFormalParameters_3_0=ruleJvmFormalParameter();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      									if (current==null) {
+                    	      										current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+                    	      									}
+                    	      									add(
+                    	      										current,
+                    	      										"declaredFormalParameters",
+                    	      										lv_declaredFormalParameters_3_0,
+                    	      										"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+                    	      									afterParserOrEnumRuleCall();
+                    	      								
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop113;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:8563:5: ( (lv_explicitSyntax_4_0= '|' ) )
+            // InternalTableDSL.g:8564:6: (lv_explicitSyntax_4_0= '|' )
+            {
+            // InternalTableDSL.g:8564:6: (lv_explicitSyntax_4_0= '|' )
+            // InternalTableDSL.g:8565:7: lv_explicitSyntax_4_0= '|'
+            {
+            lv_explicitSyntax_4_0=(Token)match(input,143,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              							newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
+              						
+            }
+            if ( state.backtracking==0 ) {
+
+              							if (current==null) {
+              								current = createModelElement(grammarAccess.getXShortClosureRule());
+              							}
+              							setWithLastConsumed(current, "explicitSyntax", true, "|");
+              						
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:8579:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalTableDSL.g:8580:4: (lv_expression_5_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:8580:4: (lv_expression_5_0= ruleXExpression )
+            // InternalTableDSL.g:8581:5: lv_expression_5_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_expression_5_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+              					}
+              					set(
+              						current,
+              						"expression",
+              						lv_expression_5_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXShortClosure"
+
+
+    // $ANTLR start "entryRuleXParenthesizedExpression"
+    // InternalTableDSL.g:8602:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
+    public final EObject entryRuleXParenthesizedExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXParenthesizedExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:8602:65: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
+            // InternalTableDSL.g:8603:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXParenthesizedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXParenthesizedExpression=ruleXParenthesizedExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXParenthesizedExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXParenthesizedExpression"
+
+
+    // $ANTLR start "ruleXParenthesizedExpression"
+    // InternalTableDSL.g:8609:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
+    public final EObject ruleXParenthesizedExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        EObject this_XExpression_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:8615:2: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
+            // InternalTableDSL.g:8616:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            {
+            // InternalTableDSL.g:8616:2: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+            // InternalTableDSL.g:8617:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
+            {
+            otherlv_0=(Token)match(input,93,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
+              		
+            }
+            pushFollow(FOLLOW_55);
+            this_XExpression_1=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current = this_XExpression_1;
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            otherlv_2=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXParenthesizedExpression"
+
+
+    // $ANTLR start "entryRuleXIfExpression"
+    // InternalTableDSL.g:8637:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
+    public final EObject entryRuleXIfExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXIfExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:8637:54: (iv_ruleXIfExpression= ruleXIfExpression EOF )
+            // InternalTableDSL.g:8638:2: iv_ruleXIfExpression= ruleXIfExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXIfExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXIfExpression=ruleXIfExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXIfExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXIfExpression"
+
+
+    // $ANTLR start "ruleXIfExpression"
+    // InternalTableDSL.g:8644:1: ruleXIfExpression returns [EObject current=null] : ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) ;
+    public final EObject ruleXIfExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_if_3_0 = null;
+
+        EObject lv_then_5_0 = null;
+
+        EObject lv_else_7_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:8650:2: ( ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) )
+            // InternalTableDSL.g:8651:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+            {
+            // InternalTableDSL.g:8651:2: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+            // InternalTableDSL.g:8652:3: () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            {
+            // InternalTableDSL.g:8652:3: ()
+            // InternalTableDSL.g:8653:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,144,FOLLOW_110); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,93,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:8667:3: ( (lv_if_3_0= ruleXExpression ) )
+            // InternalTableDSL.g:8668:4: (lv_if_3_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:8668:4: (lv_if_3_0= ruleXExpression )
+            // InternalTableDSL.g:8669:5: lv_if_3_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0());
+              				
+            }
+            pushFollow(FOLLOW_55);
+            lv_if_3_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+              					}
+              					set(
+              						current,
+              						"if",
+              						lv_if_3_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,94,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
+              		
+            }
+            // InternalTableDSL.g:8690:3: ( (lv_then_5_0= ruleXExpression ) )
+            // InternalTableDSL.g:8691:4: (lv_then_5_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:8691:4: (lv_then_5_0= ruleXExpression )
+            // InternalTableDSL.g:8692:5: lv_then_5_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0());
+              				
+            }
+            pushFollow(FOLLOW_111);
+            lv_then_5_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+              					}
+              					set(
+              						current,
+              						"then",
+              						lv_then_5_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:8709:3: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+            int alt115=2;
+            int LA115_0 = input.LA(1);
+
+            if ( (LA115_0==145) ) {
+                int LA115_1 = input.LA(2);
+
+                if ( (synpred31_InternalTableDSL()) ) {
+                    alt115=1;
+                }
+            }
+            switch (alt115) {
+                case 1 :
+                    // InternalTableDSL.g:8710:4: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
+                    {
+                    // InternalTableDSL.g:8710:4: ( ( 'else' )=>otherlv_6= 'else' )
+                    // InternalTableDSL.g:8711:5: ( 'else' )=>otherlv_6= 'else'
+                    {
+                    otherlv_6=(Token)match(input,145,FOLLOW_72); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
+                      				
+                    }
+
+                    }
+
+                    // InternalTableDSL.g:8717:4: ( (lv_else_7_0= ruleXExpression ) )
+                    // InternalTableDSL.g:8718:5: (lv_else_7_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:8718:5: (lv_else_7_0= ruleXExpression )
+                    // InternalTableDSL.g:8719:6: lv_else_7_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_else_7_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+                      						}
+                      						set(
+                      							current,
+                      							"else",
+                      							lv_else_7_0,
+                      							"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXIfExpression"
+
+
+    // $ANTLR start "entryRuleXSwitchExpression"
+    // InternalTableDSL.g:8741:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
+    public final EObject entryRuleXSwitchExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXSwitchExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:8741:58: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
+            // InternalTableDSL.g:8742:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXSwitchExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXSwitchExpression=ruleXSwitchExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXSwitchExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXSwitchExpression"
+
+
+    // $ANTLR start "ruleXSwitchExpression"
+    // InternalTableDSL.g:8748:1: ruleXSwitchExpression returns [EObject current=null] : ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) ;
+    public final EObject ruleXSwitchExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Token otherlv_15=null;
+        EObject lv_declaredParam_3_0 = null;
+
+        EObject lv_switch_5_0 = null;
+
+        EObject lv_declaredParam_7_0 = null;
+
+        EObject lv_switch_9_0 = null;
+
+        EObject lv_cases_11_0 = null;
+
+        EObject lv_default_14_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:8754:2: ( ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) )
+            // InternalTableDSL.g:8755:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+            {
+            // InternalTableDSL.g:8755:2: ( () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+            // InternalTableDSL.g:8756:3: () otherlv_1= 'switch' ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )* (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}'
+            {
+            // InternalTableDSL.g:8756:3: ()
+            // InternalTableDSL.g:8757:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,146,FOLLOW_112); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:8767:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )
+            int alt117=2;
+            alt117 = dfa117.predict(input);
+            switch (alt117) {
+                case 1 :
+                    // InternalTableDSL.g:8768:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    {
+                    // InternalTableDSL.g:8768:4: ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' )
+                    // InternalTableDSL.g:8769:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')'
+                    {
+                    // InternalTableDSL.g:8769:5: ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+                    // InternalTableDSL.g:8770:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    {
+                    // InternalTableDSL.g:8780:6: (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+                    // InternalTableDSL.g:8781:7: otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+                    {
+                    otherlv_2=(Token)match(input,93,FOLLOW_85); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(otherlv_2, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0());
+                      						
+                    }
+                    // InternalTableDSL.g:8785:7: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+                    // InternalTableDSL.g:8786:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    {
+                    // InternalTableDSL.g:8786:8: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+                    // InternalTableDSL.g:8787:9: lv_declaredParam_3_0= ruleJvmFormalParameter
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0());
+                      								
+                    }
+                    pushFollow(FOLLOW_113);
+                    lv_declaredParam_3_0=ruleJvmFormalParameter();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      									if (current==null) {
+                      										current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+                      									}
+                      									set(
+                      										current,
+                      										"declaredParam",
+                      										lv_declaredParam_3_0,
+                      										"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+                      									afterParserOrEnumRuleCall();
+                      								
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_4=(Token)match(input,147,FOLLOW_72); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							newLeafNode(otherlv_4, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2());
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:8810:5: ( (lv_switch_5_0= ruleXExpression ) )
+                    // InternalTableDSL.g:8811:6: (lv_switch_5_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:8811:6: (lv_switch_5_0= ruleXExpression )
+                    // InternalTableDSL.g:8812:7: lv_switch_5_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0());
+                      						
+                    }
+                    pushFollow(FOLLOW_55);
+                    lv_switch_5_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+                      							}
+                      							set(
+                      								current,
+                      								"switch",
+                      								lv_switch_5_0,
+                      								"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      							afterParserOrEnumRuleCall();
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_6=(Token)match(input,94,FOLLOW_22); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(otherlv_6, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2());
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:8835:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    {
+                    // InternalTableDSL.g:8835:4: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) )
+                    // InternalTableDSL.g:8836:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) )
+                    {
+                    // InternalTableDSL.g:8836:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?
+                    int alt116=2;
+                    alt116 = dfa116.predict(input);
+                    switch (alt116) {
+                        case 1 :
+                            // InternalTableDSL.g:8837:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            {
+                            // InternalTableDSL.g:8846:6: ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' )
+                            // InternalTableDSL.g:8847:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':'
+                            {
+                            // InternalTableDSL.g:8847:7: ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) )
+                            // InternalTableDSL.g:8848:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            {
+                            // InternalTableDSL.g:8848:8: (lv_declaredParam_7_0= ruleJvmFormalParameter )
+                            // InternalTableDSL.g:8849:9: lv_declaredParam_7_0= ruleJvmFormalParameter
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              									newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0());
+                              								
+                            }
+                            pushFollow(FOLLOW_113);
+                            lv_declaredParam_7_0=ruleJvmFormalParameter();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              									if (current==null) {
+                              										current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+                              									}
+                              									set(
+                              										current,
+                              										"declaredParam",
+                              										lv_declaredParam_7_0,
+                              										"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+                              									afterParserOrEnumRuleCall();
+                              								
+                            }
+
+                            }
+
+
+                            }
+
+                            otherlv_8=(Token)match(input,147,FOLLOW_72); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							newLeafNode(otherlv_8, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1());
+                              						
+                            }
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+                    // InternalTableDSL.g:8872:5: ( (lv_switch_9_0= ruleXExpression ) )
+                    // InternalTableDSL.g:8873:6: (lv_switch_9_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:8873:6: (lv_switch_9_0= ruleXExpression )
+                    // InternalTableDSL.g:8874:7: lv_switch_9_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0());
+                      						
+                    }
+                    pushFollow(FOLLOW_22);
+                    lv_switch_9_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+                      							}
+                      							set(
+                      								current,
+                      								"switch",
+                      								lv_switch_9_0,
+                      								"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      							afterParserOrEnumRuleCall();
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_10=(Token)match(input,16,FOLLOW_114); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
+              		
+            }
+            // InternalTableDSL.g:8897:3: ( (lv_cases_11_0= ruleXCasePart ) )*
+            loop118:
+            do {
+                int alt118=2;
+                int LA118_0 = input.LA(1);
+
+                if ( (LA118_0==RULE_ID||LA118_0==93||LA118_0==110||LA118_0==132||LA118_0==147||LA118_0==149) ) {
+                    alt118=1;
+                }
+
+
+                switch (alt118) {
+            	case 1 :
+            	    // InternalTableDSL.g:8898:4: (lv_cases_11_0= ruleXCasePart )
+            	    {
+            	    // InternalTableDSL.g:8898:4: (lv_cases_11_0= ruleXCasePart )
+            	    // InternalTableDSL.g:8899:5: lv_cases_11_0= ruleXCasePart
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      					newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0());
+            	      				
+            	    }
+            	    pushFollow(FOLLOW_114);
+            	    lv_cases_11_0=ruleXCasePart();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      					if (current==null) {
+            	      						current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+            	      					}
+            	      					add(
+            	      						current,
+            	      						"cases",
+            	      						lv_cases_11_0,
+            	      						"org.eclipse.xtext.xbase.Xbase.XCasePart");
+            	      					afterParserOrEnumRuleCall();
+            	      				
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop118;
+                }
+            } while (true);
+
+            // InternalTableDSL.g:8916:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
+            int alt119=2;
+            int LA119_0 = input.LA(1);
+
+            if ( (LA119_0==148) ) {
+                alt119=1;
+            }
+            switch (alt119) {
+                case 1 :
+                    // InternalTableDSL.g:8917:4: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
+                    {
+                    otherlv_12=(Token)match(input,148,FOLLOW_113); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
+                      			
+                    }
+                    otherlv_13=(Token)match(input,147,FOLLOW_72); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
+                      			
+                    }
+                    // InternalTableDSL.g:8925:4: ( (lv_default_14_0= ruleXExpression ) )
+                    // InternalTableDSL.g:8926:5: (lv_default_14_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:8926:5: (lv_default_14_0= ruleXExpression )
+                    // InternalTableDSL.g:8927:6: lv_default_14_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_115);
+                    lv_default_14_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+                      						}
+                      						set(
+                      							current,
+                      							"default",
+                      							lv_default_14_0,
+                      							"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_15=(Token)match(input,17,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_15, grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXSwitchExpression"
+
+
+    // $ANTLR start "entryRuleXCasePart"
+    // InternalTableDSL.g:8953:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
+    public final EObject entryRuleXCasePart() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXCasePart = null;
+
+
+        try {
+            // InternalTableDSL.g:8953:50: (iv_ruleXCasePart= ruleXCasePart EOF )
+            // InternalTableDSL.g:8954:2: iv_ruleXCasePart= ruleXCasePart EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXCasePartRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXCasePart=ruleXCasePart();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXCasePart; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXCasePart"
+
+
+    // $ANTLR start "ruleXCasePart"
+    // InternalTableDSL.g:8960:1: ruleXCasePart returns [EObject current=null] : ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) ;
+    public final EObject ruleXCasePart() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token lv_fallThrough_6_0=null;
+        EObject lv_typeGuard_1_0 = null;
+
+        EObject lv_case_3_0 = null;
+
+        EObject lv_then_5_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:8966:2: ( ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) ) )
+            // InternalTableDSL.g:8967:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
+            {
+            // InternalTableDSL.g:8967:2: ( () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) ) )
+            // InternalTableDSL.g:8968:3: () ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )? (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )? ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            {
+            // InternalTableDSL.g:8968:3: ()
+            // InternalTableDSL.g:8969:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXCasePartAccess().getXCasePartAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            // InternalTableDSL.g:8975:3: ( (lv_typeGuard_1_0= ruleJvmTypeReference ) )?
+            int alt120=2;
+            int LA120_0 = input.LA(1);
+
+            if ( (LA120_0==RULE_ID||LA120_0==93||LA120_0==132) ) {
+                alt120=1;
+            }
+            switch (alt120) {
+                case 1 :
+                    // InternalTableDSL.g:8976:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    {
+                    // InternalTableDSL.g:8976:4: (lv_typeGuard_1_0= ruleJvmTypeReference )
+                    // InternalTableDSL.g:8977:5: lv_typeGuard_1_0= ruleJvmTypeReference
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0());
+                      				
+                    }
+                    pushFollow(FOLLOW_116);
+                    lv_typeGuard_1_0=ruleJvmTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElementForParent(grammarAccess.getXCasePartRule());
+                      					}
+                      					set(
+                      						current,
+                      						"typeGuard",
+                      						lv_typeGuard_1_0,
+                      						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+                      					afterParserOrEnumRuleCall();
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:8994:3: (otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) ) )?
+            int alt121=2;
+            int LA121_0 = input.LA(1);
+
+            if ( (LA121_0==149) ) {
+                alt121=1;
+            }
+            switch (alt121) {
+                case 1 :
+                    // InternalTableDSL.g:8995:4: otherlv_2= 'case' ( (lv_case_3_0= ruleXExpression ) )
+                    {
+                    otherlv_2=(Token)match(input,149,FOLLOW_72); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_2, grammarAccess.getXCasePartAccess().getCaseKeyword_2_0());
+                      			
+                    }
+                    // InternalTableDSL.g:8999:4: ( (lv_case_3_0= ruleXExpression ) )
+                    // InternalTableDSL.g:9000:5: (lv_case_3_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:9000:5: (lv_case_3_0= ruleXExpression )
+                    // InternalTableDSL.g:9001:6: lv_case_3_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_117);
+                    lv_case_3_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXCasePartRule());
+                      						}
+                      						set(
+                      							current,
+                      							"case",
+                      							lv_case_3_0,
+                      							"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:9019:3: ( (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) ) | ( (lv_fallThrough_6_0= ',' ) ) )
+            int alt122=2;
+            int LA122_0 = input.LA(1);
+
+            if ( (LA122_0==147) ) {
+                alt122=1;
+            }
+            else if ( (LA122_0==110) ) {
+                alt122=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 122, 0, input);
+
+                throw nvae;
+            }
+            switch (alt122) {
+                case 1 :
+                    // InternalTableDSL.g:9020:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    {
+                    // InternalTableDSL.g:9020:4: (otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) ) )
+                    // InternalTableDSL.g:9021:5: otherlv_4= ':' ( (lv_then_5_0= ruleXExpression ) )
+                    {
+                    otherlv_4=(Token)match(input,147,FOLLOW_72); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(otherlv_4, grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0());
+                      				
+                    }
+                    // InternalTableDSL.g:9025:5: ( (lv_then_5_0= ruleXExpression ) )
+                    // InternalTableDSL.g:9026:6: (lv_then_5_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:9026:6: (lv_then_5_0= ruleXExpression )
+                    // InternalTableDSL.g:9027:7: lv_then_5_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							newCompositeNode(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0());
+                      						
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_then_5_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElementForParent(grammarAccess.getXCasePartRule());
+                      							}
+                      							set(
+                      								current,
+                      								"then",
+                      								lv_then_5_0,
+                      								"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      							afterParserOrEnumRuleCall();
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:9046:4: ( (lv_fallThrough_6_0= ',' ) )
+                    {
+                    // InternalTableDSL.g:9046:4: ( (lv_fallThrough_6_0= ',' ) )
+                    // InternalTableDSL.g:9047:5: (lv_fallThrough_6_0= ',' )
+                    {
+                    // InternalTableDSL.g:9047:5: (lv_fallThrough_6_0= ',' )
+                    // InternalTableDSL.g:9048:6: lv_fallThrough_6_0= ','
+                    {
+                    lv_fallThrough_6_0=(Token)match(input,110,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_fallThrough_6_0, grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getXCasePartRule());
+                      						}
+                      						setWithLastConsumed(current, "fallThrough", true, ",");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXCasePart"
+
+
+    // $ANTLR start "entryRuleXForLoopExpression"
+    // InternalTableDSL.g:9065:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
+    public final EObject entryRuleXForLoopExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXForLoopExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:9065:59: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
+            // InternalTableDSL.g:9066:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXForLoopExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXForLoopExpression=ruleXForLoopExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXForLoopExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXForLoopExpression"
+
+
+    // $ANTLR start "ruleXForLoopExpression"
+    // InternalTableDSL.g:9072:1: ruleXForLoopExpression returns [EObject current=null] : ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) ;
+    public final EObject ruleXForLoopExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_declaredParam_3_0 = null;
+
+        EObject lv_forExpression_5_0 = null;
+
+        EObject lv_eachExpression_7_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:9078:2: ( ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) )
+            // InternalTableDSL.g:9079:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+            {
+            // InternalTableDSL.g:9079:2: ( ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+            // InternalTableDSL.g:9080:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) )
+            {
+            // InternalTableDSL.g:9080:3: ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) )
+            // InternalTableDSL.g:9081:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            {
+            // InternalTableDSL.g:9094:4: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' )
+            // InternalTableDSL.g:9095:5: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':'
+            {
+            // InternalTableDSL.g:9095:5: ()
+            // InternalTableDSL.g:9096:6: 
+            {
+            if ( state.backtracking==0 ) {
+
+              						current = forceCreateModelElement(
+              							grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0(),
+              							current);
+              					
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,150,FOLLOW_110); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1());
+              				
+            }
+            otherlv_2=(Token)match(input,93,FOLLOW_85); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2());
+              				
+            }
+            // InternalTableDSL.g:9110:5: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+            // InternalTableDSL.g:9111:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            {
+            // InternalTableDSL.g:9111:6: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+            // InternalTableDSL.g:9112:7: lv_declaredParam_3_0= ruleJvmFormalParameter
+            {
+            if ( state.backtracking==0 ) {
+
+              							newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0());
+              						
+            }
+            pushFollow(FOLLOW_113);
+            lv_declaredParam_3_0=ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              							if (current==null) {
+              								current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+              							}
+              							set(
+              								current,
+              								"declaredParam",
+              								lv_declaredParam_3_0,
+              								"org.eclipse.xtext.xbase.Xbase.JvmFormalParameter");
+              							afterParserOrEnumRuleCall();
+              						
+            }
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,147,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4());
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:9135:3: ( (lv_forExpression_5_0= ruleXExpression ) )
+            // InternalTableDSL.g:9136:4: (lv_forExpression_5_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:9136:4: (lv_forExpression_5_0= ruleXExpression )
+            // InternalTableDSL.g:9137:5: lv_forExpression_5_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_55);
+            lv_forExpression_5_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+              					}
+              					set(
+              						current,
+              						"forExpression",
+              						lv_forExpression_5_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_6=(Token)match(input,94,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:9158:3: ( (lv_eachExpression_7_0= ruleXExpression ) )
+            // InternalTableDSL.g:9159:4: (lv_eachExpression_7_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:9159:4: (lv_eachExpression_7_0= ruleXExpression )
+            // InternalTableDSL.g:9160:5: lv_eachExpression_7_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_eachExpression_7_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+              					}
+              					set(
+              						current,
+              						"eachExpression",
+              						lv_eachExpression_7_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXForLoopExpression"
+
+
+    // $ANTLR start "entryRuleXBasicForLoopExpression"
+    // InternalTableDSL.g:9181:1: entryRuleXBasicForLoopExpression returns [EObject current=null] : iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF ;
+    public final EObject entryRuleXBasicForLoopExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXBasicForLoopExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:9181:64: (iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF )
+            // InternalTableDSL.g:9182:2: iv_ruleXBasicForLoopExpression= ruleXBasicForLoopExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXBasicForLoopExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXBasicForLoopExpression=ruleXBasicForLoopExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXBasicForLoopExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXBasicForLoopExpression"
+
+
+    // $ANTLR start "ruleXBasicForLoopExpression"
+    // InternalTableDSL.g:9188:1: ruleXBasicForLoopExpression returns [EObject current=null] : ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) ;
+    public final EObject ruleXBasicForLoopExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        EObject lv_initExpressions_3_0 = null;
+
+        EObject lv_initExpressions_5_0 = null;
+
+        EObject lv_expression_7_0 = null;
+
+        EObject lv_updateExpressions_9_0 = null;
+
+        EObject lv_updateExpressions_11_0 = null;
+
+        EObject lv_eachExpression_13_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:9194:2: ( ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) ) )
+            // InternalTableDSL.g:9195:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
+            {
+            // InternalTableDSL.g:9195:2: ( () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) ) )
+            // InternalTableDSL.g:9196:3: () otherlv_1= 'for' otherlv_2= '(' ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )? otherlv_6= ';' ( (lv_expression_7_0= ruleXExpression ) )? otherlv_8= ';' ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )? otherlv_12= ')' ( (lv_eachExpression_13_0= ruleXExpression ) )
+            {
+            // InternalTableDSL.g:9196:3: ()
+            // InternalTableDSL.g:9197:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,150,FOLLOW_110); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,93,FOLLOW_118); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:9211:3: ( ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )* )?
+            int alt124=2;
+            int LA124_0 = input.LA(1);
+
+            if ( ((LA124_0>=RULE_ID && LA124_0<=RULE_STRING)||(LA124_0>=RULE_INT && LA124_0<=RULE_DECIMAL)||LA124_0==16||LA124_0==93||(LA124_0>=101 && LA124_0<=105)||(LA124_0>=111 && LA124_0<=112)||LA124_0==119||LA124_0==138||LA124_0==144||LA124_0==146||(LA124_0>=150 && LA124_0<=164)||LA124_0==166) ) {
+                alt124=1;
+            }
+            switch (alt124) {
+                case 1 :
+                    // InternalTableDSL.g:9212:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    {
+                    // InternalTableDSL.g:9212:4: ( (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration ) )
+                    // InternalTableDSL.g:9213:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    {
+                    // InternalTableDSL.g:9213:5: (lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration )
+                    // InternalTableDSL.g:9214:6: lv_initExpressions_3_0= ruleXExpressionOrVarDeclaration
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_119);
+                    lv_initExpressions_3_0=ruleXExpressionOrVarDeclaration();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+                      						}
+                      						add(
+                      							current,
+                      							"initExpressions",
+                      							lv_initExpressions_3_0,
+                      							"org.eclipse.xtext.xbase.Xbase.XExpressionOrVarDeclaration");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:9231:4: (otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) ) )*
+                    loop123:
+                    do {
+                        int alt123=2;
+                        int LA123_0 = input.LA(1);
+
+                        if ( (LA123_0==110) ) {
+                            alt123=1;
+                        }
+
+
+                        switch (alt123) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:9232:5: otherlv_4= ',' ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    {
+                    	    otherlv_4=(Token)match(input,110,FOLLOW_120); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      					newLeafNode(otherlv_4, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0());
+                    	      				
+                    	    }
+                    	    // InternalTableDSL.g:9236:5: ( (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration ) )
+                    	    // InternalTableDSL.g:9237:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    {
+                    	    // InternalTableDSL.g:9237:6: (lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration )
+                    	    // InternalTableDSL.g:9238:7: lv_initExpressions_5_0= ruleXExpressionOrVarDeclaration
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_119);
+                    	    lv_initExpressions_5_0=ruleXExpressionOrVarDeclaration();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+                    	      							}
+                    	      							add(
+                    	      								current,
+                    	      								"initExpressions",
+                    	      								lv_initExpressions_5_0,
+                    	      								"org.eclipse.xtext.xbase.Xbase.XExpressionOrVarDeclaration");
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop123;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_6=(Token)match(input,108,FOLLOW_121); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_6, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4());
+              		
+            }
+            // InternalTableDSL.g:9261:3: ( (lv_expression_7_0= ruleXExpression ) )?
+            int alt125=2;
+            int LA125_0 = input.LA(1);
+
+            if ( ((LA125_0>=RULE_ID && LA125_0<=RULE_STRING)||(LA125_0>=RULE_INT && LA125_0<=RULE_DECIMAL)||LA125_0==16||LA125_0==93||(LA125_0>=101 && LA125_0<=105)||(LA125_0>=111 && LA125_0<=112)||LA125_0==119||LA125_0==138||LA125_0==144||LA125_0==146||(LA125_0>=150 && LA125_0<=152)||(LA125_0>=155 && LA125_0<=164)||LA125_0==166) ) {
+                alt125=1;
+            }
+            switch (alt125) {
+                case 1 :
+                    // InternalTableDSL.g:9262:4: (lv_expression_7_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:9262:4: (lv_expression_7_0= ruleXExpression )
+                    // InternalTableDSL.g:9263:5: lv_expression_7_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0());
+                      				
+                    }
+                    pushFollow(FOLLOW_122);
+                    lv_expression_7_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+                      					}
+                      					set(
+                      						current,
+                      						"expression",
+                      						lv_expression_7_0,
+                      						"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      					afterParserOrEnumRuleCall();
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_8=(Token)match(input,108,FOLLOW_70); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_8, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6());
+              		
+            }
+            // InternalTableDSL.g:9284:3: ( ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )* )?
+            int alt127=2;
+            int LA127_0 = input.LA(1);
+
+            if ( ((LA127_0>=RULE_ID && LA127_0<=RULE_STRING)||(LA127_0>=RULE_INT && LA127_0<=RULE_DECIMAL)||LA127_0==16||LA127_0==93||(LA127_0>=101 && LA127_0<=105)||(LA127_0>=111 && LA127_0<=112)||LA127_0==119||LA127_0==138||LA127_0==144||LA127_0==146||(LA127_0>=150 && LA127_0<=152)||(LA127_0>=155 && LA127_0<=164)||LA127_0==166) ) {
+                alt127=1;
+            }
+            switch (alt127) {
+                case 1 :
+                    // InternalTableDSL.g:9285:4: ( (lv_updateExpressions_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    {
+                    // InternalTableDSL.g:9285:4: ( (lv_updateExpressions_9_0= ruleXExpression ) )
+                    // InternalTableDSL.g:9286:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:9286:5: (lv_updateExpressions_9_0= ruleXExpression )
+                    // InternalTableDSL.g:9287:6: lv_updateExpressions_9_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_71);
+                    lv_updateExpressions_9_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+                      						}
+                      						add(
+                      							current,
+                      							"updateExpressions",
+                      							lv_updateExpressions_9_0,
+                      							"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:9304:4: (otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) ) )*
+                    loop126:
+                    do {
+                        int alt126=2;
+                        int LA126_0 = input.LA(1);
+
+                        if ( (LA126_0==110) ) {
+                            alt126=1;
+                        }
+
+
+                        switch (alt126) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:9305:5: otherlv_10= ',' ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    {
+                    	    otherlv_10=(Token)match(input,110,FOLLOW_72); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      					newLeafNode(otherlv_10, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0());
+                    	      				
+                    	    }
+                    	    // InternalTableDSL.g:9309:5: ( (lv_updateExpressions_11_0= ruleXExpression ) )
+                    	    // InternalTableDSL.g:9310:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    {
+                    	    // InternalTableDSL.g:9310:6: (lv_updateExpressions_11_0= ruleXExpression )
+                    	    // InternalTableDSL.g:9311:7: lv_updateExpressions_11_0= ruleXExpression
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_71);
+                    	    lv_updateExpressions_11_0=ruleXExpression();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+                    	      							}
+                    	      							add(
+                    	      								current,
+                    	      								"updateExpressions",
+                    	      								lv_updateExpressions_11_0,
+                    	      								"org.eclipse.xtext.xbase.Xbase.XExpression");
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop126;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_12=(Token)match(input,94,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_12, grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8());
+              		
+            }
+            // InternalTableDSL.g:9334:3: ( (lv_eachExpression_13_0= ruleXExpression ) )
+            // InternalTableDSL.g:9335:4: (lv_eachExpression_13_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:9335:4: (lv_eachExpression_13_0= ruleXExpression )
+            // InternalTableDSL.g:9336:5: lv_eachExpression_13_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_eachExpression_13_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+              					}
+              					set(
+              						current,
+              						"eachExpression",
+              						lv_eachExpression_13_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXBasicForLoopExpression"
+
+
+    // $ANTLR start "entryRuleXWhileExpression"
+    // InternalTableDSL.g:9357:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
+    public final EObject entryRuleXWhileExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXWhileExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:9357:57: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
+            // InternalTableDSL.g:9358:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXWhileExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXWhileExpression=ruleXWhileExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXWhileExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXWhileExpression"
+
+
+    // $ANTLR start "ruleXWhileExpression"
+    // InternalTableDSL.g:9364:1: ruleXWhileExpression returns [EObject current=null] : ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) ;
+    public final EObject ruleXWhileExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        EObject lv_predicate_3_0 = null;
+
+        EObject lv_body_5_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:9370:2: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
+            // InternalTableDSL.g:9371:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            {
+            // InternalTableDSL.g:9371:2: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+            // InternalTableDSL.g:9372:3: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
+            {
+            // InternalTableDSL.g:9372:3: ()
+            // InternalTableDSL.g:9373:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,151,FOLLOW_110); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,93,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:9387:3: ( (lv_predicate_3_0= ruleXExpression ) )
+            // InternalTableDSL.g:9388:4: (lv_predicate_3_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:9388:4: (lv_predicate_3_0= ruleXExpression )
+            // InternalTableDSL.g:9389:5: lv_predicate_3_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0());
+              				
+            }
+            pushFollow(FOLLOW_55);
+            lv_predicate_3_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+              					}
+              					set(
+              						current,
+              						"predicate",
+              						lv_predicate_3_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,94,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
+              		
+            }
+            // InternalTableDSL.g:9410:3: ( (lv_body_5_0= ruleXExpression ) )
+            // InternalTableDSL.g:9411:4: (lv_body_5_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:9411:4: (lv_body_5_0= ruleXExpression )
+            // InternalTableDSL.g:9412:5: lv_body_5_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_body_5_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+              					}
+              					set(
+              						current,
+              						"body",
+              						lv_body_5_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXWhileExpression"
+
+
+    // $ANTLR start "entryRuleXDoWhileExpression"
+    // InternalTableDSL.g:9433:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
+    public final EObject entryRuleXDoWhileExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXDoWhileExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:9433:59: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
+            // InternalTableDSL.g:9434:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXDoWhileExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXDoWhileExpression=ruleXDoWhileExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXDoWhileExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXDoWhileExpression"
+
+
+    // $ANTLR start "ruleXDoWhileExpression"
+    // InternalTableDSL.g:9440:1: ruleXDoWhileExpression returns [EObject current=null] : ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) ;
+    public final EObject ruleXDoWhileExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_body_2_0 = null;
+
+        EObject lv_predicate_5_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:9446:2: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
+            // InternalTableDSL.g:9447:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            {
+            // InternalTableDSL.g:9447:2: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+            // InternalTableDSL.g:9448:3: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
+            {
+            // InternalTableDSL.g:9448:3: ()
+            // InternalTableDSL.g:9449:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,152,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:9459:3: ( (lv_body_2_0= ruleXExpression ) )
+            // InternalTableDSL.g:9460:4: (lv_body_2_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:9460:4: (lv_body_2_0= ruleXExpression )
+            // InternalTableDSL.g:9461:5: lv_body_2_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0());
+              				
+            }
+            pushFollow(FOLLOW_123);
+            lv_body_2_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+              					}
+              					set(
+              						current,
+              						"body",
+              						lv_body_2_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,151,FOLLOW_110); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
+              		
+            }
+            otherlv_4=(Token)match(input,93,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
+              		
+            }
+            // InternalTableDSL.g:9486:3: ( (lv_predicate_5_0= ruleXExpression ) )
+            // InternalTableDSL.g:9487:4: (lv_predicate_5_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:9487:4: (lv_predicate_5_0= ruleXExpression )
+            // InternalTableDSL.g:9488:5: lv_predicate_5_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0());
+              				
+            }
+            pushFollow(FOLLOW_55);
+            lv_predicate_5_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+              					}
+              					set(
+              						current,
+              						"predicate",
+              						lv_predicate_5_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_6=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXDoWhileExpression"
+
+
+    // $ANTLR start "entryRuleXBlockExpression"
+    // InternalTableDSL.g:9513:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
+    public final EObject entryRuleXBlockExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXBlockExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:9513:57: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
+            // InternalTableDSL.g:9514:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXBlockExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXBlockExpression=ruleXBlockExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXBlockExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXBlockExpression"
+
+
+    // $ANTLR start "ruleXBlockExpression"
+    // InternalTableDSL.g:9520:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
+    public final EObject ruleXBlockExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        EObject lv_expressions_2_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:9526:2: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
+            // InternalTableDSL.g:9527:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            {
+            // InternalTableDSL.g:9527:2: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+            // InternalTableDSL.g:9528:3: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
+            {
+            // InternalTableDSL.g:9528:3: ()
+            // InternalTableDSL.g:9529:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,16,FOLLOW_124); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:9539:3: ( ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )? )*
+            loop129:
+            do {
+                int alt129=2;
+                int LA129_0 = input.LA(1);
+
+                if ( ((LA129_0>=RULE_ID && LA129_0<=RULE_STRING)||(LA129_0>=RULE_INT && LA129_0<=RULE_DECIMAL)||LA129_0==16||LA129_0==93||(LA129_0>=101 && LA129_0<=105)||(LA129_0>=111 && LA129_0<=112)||LA129_0==119||LA129_0==138||LA129_0==144||LA129_0==146||(LA129_0>=150 && LA129_0<=164)||LA129_0==166) ) {
+                    alt129=1;
+                }
+
+
+                switch (alt129) {
+            	case 1 :
+            	    // InternalTableDSL.g:9540:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) ) (otherlv_3= ';' )?
+            	    {
+            	    // InternalTableDSL.g:9540:4: ( (lv_expressions_2_0= ruleXExpressionOrVarDeclaration ) )
+            	    // InternalTableDSL.g:9541:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    {
+            	    // InternalTableDSL.g:9541:5: (lv_expressions_2_0= ruleXExpressionOrVarDeclaration )
+            	    // InternalTableDSL.g:9542:6: lv_expressions_2_0= ruleXExpressionOrVarDeclaration
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      						newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0());
+            	      					
+            	    }
+            	    pushFollow(FOLLOW_125);
+            	    lv_expressions_2_0=ruleXExpressionOrVarDeclaration();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      						if (current==null) {
+            	      							current = createModelElementForParent(grammarAccess.getXBlockExpressionRule());
+            	      						}
+            	      						add(
+            	      							current,
+            	      							"expressions",
+            	      							lv_expressions_2_0,
+            	      							"org.eclipse.xtext.xbase.Xbase.XExpressionOrVarDeclaration");
+            	      						afterParserOrEnumRuleCall();
+            	      					
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // InternalTableDSL.g:9559:4: (otherlv_3= ';' )?
+            	    int alt128=2;
+            	    int LA128_0 = input.LA(1);
+
+            	    if ( (LA128_0==108) ) {
+            	        alt128=1;
+            	    }
+            	    switch (alt128) {
+            	        case 1 :
+            	            // InternalTableDSL.g:9560:5: otherlv_3= ';'
+            	            {
+            	            otherlv_3=(Token)match(input,108,FOLLOW_124); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              					newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
+            	              				
+            	            }
+
+            	            }
+            	            break;
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop129;
+                }
+            } while (true);
+
+            otherlv_4=(Token)match(input,17,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_4, grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXBlockExpression"
+
+
+    // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
+    // InternalTableDSL.g:9574:1: entryRuleXExpressionOrVarDeclaration returns [EObject current=null] : iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF ;
+    public final EObject entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXExpressionOrVarDeclaration = null;
+
+
+        try {
+            // InternalTableDSL.g:9574:68: (iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF )
+            // InternalTableDSL.g:9575:2: iv_ruleXExpressionOrVarDeclaration= ruleXExpressionOrVarDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXExpressionOrVarDeclaration=ruleXExpressionOrVarDeclaration();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXExpressionOrVarDeclaration; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXExpressionOrVarDeclaration"
+
+
+    // $ANTLR start "ruleXExpressionOrVarDeclaration"
+    // InternalTableDSL.g:9581:1: ruleXExpressionOrVarDeclaration returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
+    public final EObject ruleXExpressionOrVarDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XVariableDeclaration_0 = null;
+
+        EObject this_XExpression_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:9587:2: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
+            // InternalTableDSL.g:9588:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            {
+            // InternalTableDSL.g:9588:2: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+            int alt130=2;
+            int LA130_0 = input.LA(1);
+
+            if ( ((LA130_0>=153 && LA130_0<=154)) ) {
+                alt130=1;
+            }
+            else if ( ((LA130_0>=RULE_ID && LA130_0<=RULE_STRING)||(LA130_0>=RULE_INT && LA130_0<=RULE_DECIMAL)||LA130_0==16||LA130_0==93||(LA130_0>=101 && LA130_0<=105)||(LA130_0>=111 && LA130_0<=112)||LA130_0==119||LA130_0==138||LA130_0==144||LA130_0==146||(LA130_0>=150 && LA130_0<=152)||(LA130_0>=155 && LA130_0<=164)||LA130_0==166) ) {
+                alt130=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 130, 0, input);
+
+                throw nvae;
+            }
+            switch (alt130) {
+                case 1 :
+                    // InternalTableDSL.g:9589:3: this_XVariableDeclaration_0= ruleXVariableDeclaration
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XVariableDeclaration_0=ruleXVariableDeclaration();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XVariableDeclaration_0;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:9598:3: this_XExpression_1= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XExpression_1=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XExpression_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXExpressionOrVarDeclaration"
+
+
+    // $ANTLR start "entryRuleXVariableDeclaration"
+    // InternalTableDSL.g:9610:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
+    public final EObject entryRuleXVariableDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXVariableDeclaration = null;
+
+
+        try {
+            // InternalTableDSL.g:9610:61: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
+            // InternalTableDSL.g:9611:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXVariableDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXVariableDeclaration=ruleXVariableDeclaration();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXVariableDeclaration; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXVariableDeclaration"
+
+
+    // $ANTLR start "ruleXVariableDeclaration"
+    // InternalTableDSL.g:9617:1: ruleXVariableDeclaration returns [EObject current=null] : ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) ;
+    public final EObject ruleXVariableDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        Token lv_writeable_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_6=null;
+        EObject lv_type_3_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_4_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_5_0 = null;
+
+        EObject lv_right_7_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:9623:2: ( ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) )
+            // InternalTableDSL.g:9624:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+            {
+            // InternalTableDSL.g:9624:2: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+            // InternalTableDSL.g:9625:3: () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            {
+            // InternalTableDSL.g:9625:3: ()
+            // InternalTableDSL.g:9626:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            // InternalTableDSL.g:9632:3: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
+            int alt131=2;
+            int LA131_0 = input.LA(1);
+
+            if ( (LA131_0==153) ) {
+                alt131=1;
+            }
+            else if ( (LA131_0==154) ) {
+                alt131=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 131, 0, input);
+
+                throw nvae;
+            }
+            switch (alt131) {
+                case 1 :
+                    // InternalTableDSL.g:9633:4: ( (lv_writeable_1_0= 'var' ) )
+                    {
+                    // InternalTableDSL.g:9633:4: ( (lv_writeable_1_0= 'var' ) )
+                    // InternalTableDSL.g:9634:5: (lv_writeable_1_0= 'var' )
+                    {
+                    // InternalTableDSL.g:9634:5: (lv_writeable_1_0= 'var' )
+                    // InternalTableDSL.g:9635:6: lv_writeable_1_0= 'var'
+                    {
+                    lv_writeable_1_0=(Token)match(input,153,FOLLOW_85); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getXVariableDeclarationRule());
+                      						}
+                      						setWithLastConsumed(current, "writeable", true, "var");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:9648:4: otherlv_2= 'val'
+                    {
+                    otherlv_2=(Token)match(input,154,FOLLOW_85); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:9653:3: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
+            int alt132=2;
+            int LA132_0 = input.LA(1);
+
+            if ( (LA132_0==RULE_ID) ) {
+                int LA132_1 = input.LA(2);
+
+                if ( (synpred35_InternalTableDSL()) ) {
+                    alt132=1;
+                }
+                else if ( (true) ) {
+                    alt132=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 132, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else if ( (LA132_0==93) && (synpred35_InternalTableDSL())) {
+                alt132=1;
+            }
+            else if ( (LA132_0==132) && (synpred35_InternalTableDSL())) {
+                alt132=1;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 132, 0, input);
+
+                throw nvae;
+            }
+            switch (alt132) {
+                case 1 :
+                    // InternalTableDSL.g:9654:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    {
+                    // InternalTableDSL.g:9654:4: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+                    // InternalTableDSL.g:9655:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    {
+                    // InternalTableDSL.g:9668:5: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+                    // InternalTableDSL.g:9669:6: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
+                    {
+                    // InternalTableDSL.g:9669:6: ( (lv_type_3_0= ruleJvmTypeReference ) )
+                    // InternalTableDSL.g:9670:7: (lv_type_3_0= ruleJvmTypeReference )
+                    {
+                    // InternalTableDSL.g:9670:7: (lv_type_3_0= ruleJvmTypeReference )
+                    // InternalTableDSL.g:9671:8: lv_type_3_0= ruleJvmTypeReference
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      								newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0());
+                      							
+                    }
+                    pushFollow(FOLLOW_4);
+                    lv_type_3_0=ruleJvmTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      								if (current==null) {
+                      									current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+                      								}
+                      								set(
+                      									current,
+                      									"type",
+                      									lv_type_3_0,
+                      									"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+                      								afterParserOrEnumRuleCall();
+                      							
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:9688:6: ( (lv_name_4_0= ruleValidID ) )
+                    // InternalTableDSL.g:9689:7: (lv_name_4_0= ruleValidID )
+                    {
+                    // InternalTableDSL.g:9689:7: (lv_name_4_0= ruleValidID )
+                    // InternalTableDSL.g:9690:8: lv_name_4_0= ruleValidID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      								newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0());
+                      							
+                    }
+                    pushFollow(FOLLOW_126);
+                    lv_name_4_0=ruleValidID();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      								if (current==null) {
+                      									current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+                      								}
+                      								set(
+                      									current,
+                      									"name",
+                      									lv_name_4_0,
+                      									"org.eclipse.xtext.xbase.Xtype.ValidID");
+                      								afterParserOrEnumRuleCall();
+                      							
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:9710:4: ( (lv_name_5_0= ruleValidID ) )
+                    {
+                    // InternalTableDSL.g:9710:4: ( (lv_name_5_0= ruleValidID ) )
+                    // InternalTableDSL.g:9711:5: (lv_name_5_0= ruleValidID )
+                    {
+                    // InternalTableDSL.g:9711:5: (lv_name_5_0= ruleValidID )
+                    // InternalTableDSL.g:9712:6: lv_name_5_0= ruleValidID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_126);
+                    lv_name_5_0=ruleValidID();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+                      						}
+                      						set(
+                      							current,
+                      							"name",
+                      							lv_name_5_0,
+                      							"org.eclipse.xtext.xbase.Xtype.ValidID");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:9730:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+            int alt133=2;
+            int LA133_0 = input.LA(1);
+
+            if ( (LA133_0==92) ) {
+                alt133=1;
+            }
+            switch (alt133) {
+                case 1 :
+                    // InternalTableDSL.g:9731:4: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
+                    {
+                    otherlv_6=(Token)match(input,92,FOLLOW_72); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
+                      			
+                    }
+                    // InternalTableDSL.g:9735:4: ( (lv_right_7_0= ruleXExpression ) )
+                    // InternalTableDSL.g:9736:5: (lv_right_7_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:9736:5: (lv_right_7_0= ruleXExpression )
+                    // InternalTableDSL.g:9737:6: lv_right_7_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_right_7_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+                      						}
+                      						set(
+                      							current,
+                      							"right",
+                      							lv_right_7_0,
+                      							"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleJvmFormalParameter"
+    // InternalTableDSL.g:9759:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
+    public final EObject entryRuleJvmFormalParameter() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleJvmFormalParameter = null;
+
+
+        try {
+            // InternalTableDSL.g:9759:59: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
+            // InternalTableDSL.g:9760:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getJvmFormalParameterRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleJvmFormalParameter=ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleJvmFormalParameter; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleJvmFormalParameter"
+
+
+    // $ANTLR start "ruleJvmFormalParameter"
+    // InternalTableDSL.g:9766:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
+    public final EObject ruleJvmFormalParameter() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_parameterType_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:9772:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalTableDSL.g:9773:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            {
+            // InternalTableDSL.g:9773:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalTableDSL.g:9774:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
+            {
+            // InternalTableDSL.g:9774:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
+            int alt134=2;
+            int LA134_0 = input.LA(1);
+
+            if ( (LA134_0==RULE_ID) ) {
+                int LA134_1 = input.LA(2);
+
+                if ( (LA134_1==RULE_ID||LA134_1==78||LA134_1==112||LA134_1==119) ) {
+                    alt134=1;
+                }
+            }
+            else if ( (LA134_0==93||LA134_0==132) ) {
+                alt134=1;
+            }
+            switch (alt134) {
+                case 1 :
+                    // InternalTableDSL.g:9775:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    {
+                    // InternalTableDSL.g:9775:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+                    // InternalTableDSL.g:9776:5: lv_parameterType_0_0= ruleJvmTypeReference
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+                      				
+                    }
+                    pushFollow(FOLLOW_4);
+                    lv_parameterType_0_0=ruleJvmTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+                      					}
+                      					set(
+                      						current,
+                      						"parameterType",
+                      						lv_parameterType_0_0,
+                      						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+                      					afterParserOrEnumRuleCall();
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:9793:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalTableDSL.g:9794:4: (lv_name_1_0= ruleValidID )
+            {
+            // InternalTableDSL.g:9794:4: (lv_name_1_0= ruleValidID )
+            // InternalTableDSL.g:9795:5: lv_name_1_0= ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_name_1_0=ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+              					}
+              					set(
+              						current,
+              						"name",
+              						lv_name_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.ValidID");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleJvmFormalParameter"
+
+
+    // $ANTLR start "entryRuleFullJvmFormalParameter"
+    // InternalTableDSL.g:9816:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
+    public final EObject entryRuleFullJvmFormalParameter() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFullJvmFormalParameter = null;
+
+
+        try {
+            // InternalTableDSL.g:9816:63: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
+            // InternalTableDSL.g:9817:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getFullJvmFormalParameterRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleFullJvmFormalParameter=ruleFullJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleFullJvmFormalParameter; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFullJvmFormalParameter"
+
+
+    // $ANTLR start "ruleFullJvmFormalParameter"
+    // InternalTableDSL.g:9823:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
+    public final EObject ruleFullJvmFormalParameter() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_parameterType_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:9829:2: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
+            // InternalTableDSL.g:9830:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            {
+            // InternalTableDSL.g:9830:2: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+            // InternalTableDSL.g:9831:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
+            {
+            // InternalTableDSL.g:9831:3: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+            // InternalTableDSL.g:9832:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:9832:4: (lv_parameterType_0_0= ruleJvmTypeReference )
+            // InternalTableDSL.g:9833:5: lv_parameterType_0_0= ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+              				
+            }
+            pushFollow(FOLLOW_4);
+            lv_parameterType_0_0=ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+              					}
+              					set(
+              						current,
+              						"parameterType",
+              						lv_parameterType_0_0,
+              						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:9850:3: ( (lv_name_1_0= ruleValidID ) )
+            // InternalTableDSL.g:9851:4: (lv_name_1_0= ruleValidID )
+            {
+            // InternalTableDSL.g:9851:4: (lv_name_1_0= ruleValidID )
+            // InternalTableDSL.g:9852:5: lv_name_1_0= ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_name_1_0=ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+              					}
+              					set(
+              						current,
+              						"name",
+              						lv_name_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.ValidID");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFullJvmFormalParameter"
+
+
+    // $ANTLR start "entryRuleXFeatureCall"
+    // InternalTableDSL.g:9873:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
+    public final EObject entryRuleXFeatureCall() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXFeatureCall = null;
+
+
+        try {
+            // InternalTableDSL.g:9873:53: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
+            // InternalTableDSL.g:9874:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXFeatureCallRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXFeatureCall=ruleXFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXFeatureCall; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXFeatureCall"
+
+
+    // $ANTLR start "ruleXFeatureCall"
+    // InternalTableDSL.g:9880:1: ruleXFeatureCall returns [EObject current=null] : ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) ;
+    public final EObject ruleXFeatureCall() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token lv_explicitOperationCall_7_0=null;
+        Token otherlv_10=null;
+        Token otherlv_12=null;
+        EObject lv_typeArguments_2_0 = null;
+
+        EObject lv_typeArguments_4_0 = null;
+
+        EObject lv_featureCallArguments_8_0 = null;
+
+        EObject lv_featureCallArguments_9_0 = null;
+
+        EObject lv_featureCallArguments_11_0 = null;
+
+        EObject lv_featureCallArguments_13_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:9886:2: ( ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) )
+            // InternalTableDSL.g:9887:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+            {
+            // InternalTableDSL.g:9887:2: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+            // InternalTableDSL.g:9888:3: () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            {
+            // InternalTableDSL.g:9888:3: ()
+            // InternalTableDSL.g:9889:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            // InternalTableDSL.g:9895:3: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
+            int alt136=2;
+            int LA136_0 = input.LA(1);
+
+            if ( (LA136_0==119) ) {
+                alt136=1;
+            }
+            switch (alt136) {
+                case 1 :
+                    // InternalTableDSL.g:9896:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
+                    {
+                    otherlv_1=(Token)match(input,119,FOLLOW_97); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
+                      			
+                    }
+                    // InternalTableDSL.g:9900:4: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalTableDSL.g:9901:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    {
+                    // InternalTableDSL.g:9901:5: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalTableDSL.g:9902:6: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_98);
+                    lv_typeArguments_2_0=ruleJvmArgumentTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+                      						}
+                      						add(
+                      							current,
+                      							"typeArguments",
+                      							lv_typeArguments_2_0,
+                      							"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:9919:4: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop135:
+                    do {
+                        int alt135=2;
+                        int LA135_0 = input.LA(1);
+
+                        if ( (LA135_0==110) ) {
+                            alt135=1;
+                        }
+
+
+                        switch (alt135) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:9920:5: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    {
+                    	    otherlv_3=(Token)match(input,110,FOLLOW_97); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      					newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
+                    	      				
+                    	    }
+                    	    // InternalTableDSL.g:9924:5: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalTableDSL.g:9925:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    {
+                    	    // InternalTableDSL.g:9925:6: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalTableDSL.g:9926:7: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_98);
+                    	    lv_typeArguments_4_0=ruleJvmArgumentTypeReference();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+                    	      							}
+                    	      							add(
+                    	      								current,
+                    	      								"typeArguments",
+                    	      								lv_typeArguments_4_0,
+                    	      								"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop135;
+                        }
+                    } while (true);
+
+                    otherlv_5=(Token)match(input,120,FOLLOW_96); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:9949:3: ( ( ruleIdOrSuper ) )
+            // InternalTableDSL.g:9950:4: ( ruleIdOrSuper )
+            {
+            // InternalTableDSL.g:9950:4: ( ruleIdOrSuper )
+            // InternalTableDSL.g:9951:5: ruleIdOrSuper
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getXFeatureCallRule());
+              					}
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0());
+              				
+            }
+            pushFollow(FOLLOW_127);
+            ruleIdOrSuper();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:9965:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?
+            int alt139=2;
+            alt139 = dfa139.predict(input);
+            switch (alt139) {
+                case 1 :
+                    // InternalTableDSL.g:9966:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')'
+                    {
+                    // InternalTableDSL.g:9966:4: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
+                    // InternalTableDSL.g:9967:5: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
+                    {
+                    // InternalTableDSL.g:9971:5: (lv_explicitOperationCall_7_0= '(' )
+                    // InternalTableDSL.g:9972:6: lv_explicitOperationCall_7_0= '('
+                    {
+                    lv_explicitOperationCall_7_0=(Token)match(input,93,FOLLOW_100); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getXFeatureCallRule());
+                      						}
+                      						setWithLastConsumed(current, "explicitOperationCall", true, "(");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:9984:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
+                    int alt138=3;
+                    alt138 = dfa138.predict(input);
+                    switch (alt138) {
+                        case 1 :
+                            // InternalTableDSL.g:9985:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            {
+                            // InternalTableDSL.g:9985:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+                            // InternalTableDSL.g:9986:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            {
+                            // InternalTableDSL.g:10011:6: (lv_featureCallArguments_8_0= ruleXShortClosure )
+                            // InternalTableDSL.g:10012:7: lv_featureCallArguments_8_0= ruleXShortClosure
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              							newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0());
+                              						
+                            }
+                            pushFollow(FOLLOW_55);
+                            lv_featureCallArguments_8_0=ruleXShortClosure();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+                              							}
+                              							add(
+                              								current,
+                              								"featureCallArguments",
+                              								lv_featureCallArguments_8_0,
+                              								"org.eclipse.xtext.xbase.Xbase.XShortClosure");
+                              							afterParserOrEnumRuleCall();
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // InternalTableDSL.g:10030:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            {
+                            // InternalTableDSL.g:10030:5: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+                            // InternalTableDSL.g:10031:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            {
+                            // InternalTableDSL.g:10031:6: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
+                            // InternalTableDSL.g:10032:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            {
+                            // InternalTableDSL.g:10032:7: (lv_featureCallArguments_9_0= ruleXExpression )
+                            // InternalTableDSL.g:10033:8: lv_featureCallArguments_9_0= ruleXExpression
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              								newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0());
+                              							
+                            }
+                            pushFollow(FOLLOW_71);
+                            lv_featureCallArguments_9_0=ruleXExpression();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              								if (current==null) {
+                              									current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+                              								}
+                              								add(
+                              									current,
+                              									"featureCallArguments",
+                              									lv_featureCallArguments_9_0,
+                              									"org.eclipse.xtext.xbase.Xbase.XExpression");
+                              								afterParserOrEnumRuleCall();
+                              							
+                            }
+
+                            }
+
+
+                            }
+
+                            // InternalTableDSL.g:10050:6: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+                            loop137:
+                            do {
+                                int alt137=2;
+                                int LA137_0 = input.LA(1);
+
+                                if ( (LA137_0==110) ) {
+                                    alt137=1;
+                                }
+
+
+                                switch (alt137) {
+                            	case 1 :
+                            	    // InternalTableDSL.g:10051:7: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    {
+                            	    otherlv_10=(Token)match(input,110,FOLLOW_72); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      							newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
+                            	      						
+                            	    }
+                            	    // InternalTableDSL.g:10055:7: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+                            	    // InternalTableDSL.g:10056:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    {
+                            	    // InternalTableDSL.g:10056:8: (lv_featureCallArguments_11_0= ruleXExpression )
+                            	    // InternalTableDSL.g:10057:9: lv_featureCallArguments_11_0= ruleXExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+
+                            	      									newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0());
+                            	      								
+                            	    }
+                            	    pushFollow(FOLLOW_71);
+                            	    lv_featureCallArguments_11_0=ruleXExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      									if (current==null) {
+                            	      										current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+                            	      									}
+                            	      									add(
+                            	      										current,
+                            	      										"featureCallArguments",
+                            	      										lv_featureCallArguments_11_0,
+                            	      										"org.eclipse.xtext.xbase.Xbase.XExpression");
+                            	      									afterParserOrEnumRuleCall();
+                            	      								
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop137;
+                                }
+                            } while (true);
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_12=(Token)match(input,94,FOLLOW_128); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:10082:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+            int alt140=2;
+            alt140 = dfa140.predict(input);
+            switch (alt140) {
+                case 1 :
+                    // InternalTableDSL.g:10083:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
+                    {
+                    // InternalTableDSL.g:10089:4: (lv_featureCallArguments_13_0= ruleXClosure )
+                    // InternalTableDSL.g:10090:5: lv_featureCallArguments_13_0= ruleXClosure
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0());
+                      				
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_featureCallArguments_13_0=ruleXClosure();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+                      					}
+                      					add(
+                      						current,
+                      						"featureCallArguments",
+                      						lv_featureCallArguments_13_0,
+                      						"org.eclipse.xtext.xbase.Xbase.XClosure");
+                      					afterParserOrEnumRuleCall();
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXFeatureCall"
+
+
+    // $ANTLR start "entryRuleFeatureCallID"
+    // InternalTableDSL.g:10111:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
+    public final String entryRuleFeatureCallID() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleFeatureCallID = null;
+
+
+        try {
+            // InternalTableDSL.g:10111:53: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
+            // InternalTableDSL.g:10112:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getFeatureCallIDRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleFeatureCallID=ruleFeatureCallID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleFeatureCallID.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFeatureCallID"
+
+
+    // $ANTLR start "ruleFeatureCallID"
+    // InternalTableDSL.g:10118:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
+    public final AntlrDatatypeRuleToken ruleFeatureCallID() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_ValidID_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10124:2: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
+            // InternalTableDSL.g:10125:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            {
+            // InternalTableDSL.g:10125:2: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+            int alt141=5;
+            switch ( input.LA(1) ) {
+            case RULE_ID:
+                {
+                alt141=1;
+                }
+                break;
+            case 155:
+                {
+                alt141=2;
+                }
+                break;
+            case 104:
+                {
+                alt141=3;
+                }
+                break;
+            case 103:
+                {
+                alt141=4;
+                }
+                break;
+            case 105:
+                {
+                alt141=5;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 141, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt141) {
+                case 1 :
+                    // InternalTableDSL.g:10126:3: this_ValidID_0= ruleValidID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_ValidID_0=ruleValidID();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(this_ValidID_0);
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:10137:3: kw= 'extends'
+                    {
+                    kw=(Token)match(input,155,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:10143:3: kw= 'static'
+                    {
+                    kw=(Token)match(input,104,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2());
+                      		
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:10149:3: kw= 'import'
+                    {
+                    kw=(Token)match(input,103,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getImportKeyword_3());
+                      		
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:10155:3: kw= 'extension'
+                    {
+                    kw=(Token)match(input,105,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFeatureCallID"
+
+
+    // $ANTLR start "entryRuleIdOrSuper"
+    // InternalTableDSL.g:10164:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
+    public final String entryRuleIdOrSuper() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleIdOrSuper = null;
+
+
+        try {
+            // InternalTableDSL.g:10164:49: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
+            // InternalTableDSL.g:10165:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getIdOrSuperRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleIdOrSuper=ruleIdOrSuper();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleIdOrSuper.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleIdOrSuper"
+
+
+    // $ANTLR start "ruleIdOrSuper"
+    // InternalTableDSL.g:10171:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
+    public final AntlrDatatypeRuleToken ruleIdOrSuper() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_FeatureCallID_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10177:2: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
+            // InternalTableDSL.g:10178:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            {
+            // InternalTableDSL.g:10178:2: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+            int alt142=2;
+            int LA142_0 = input.LA(1);
+
+            if ( (LA142_0==RULE_ID||(LA142_0>=103 && LA142_0<=105)||LA142_0==155) ) {
+                alt142=1;
+            }
+            else if ( (LA142_0==156) ) {
+                alt142=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 142, 0, input);
+
+                throw nvae;
+            }
+            switch (alt142) {
+                case 1 :
+                    // InternalTableDSL.g:10179:3: this_FeatureCallID_0= ruleFeatureCallID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_FeatureCallID_0=ruleFeatureCallID();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(this_FeatureCallID_0);
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:10190:3: kw= 'super'
+                    {
+                    kw=(Token)match(input,156,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(kw);
+                      			newLeafNode(kw, grammarAccess.getIdOrSuperAccess().getSuperKeyword_1());
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleIdOrSuper"
+
+
+    // $ANTLR start "entryRuleXConstructorCall"
+    // InternalTableDSL.g:10199:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
+    public final EObject entryRuleXConstructorCall() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXConstructorCall = null;
+
+
+        try {
+            // InternalTableDSL.g:10199:57: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
+            // InternalTableDSL.g:10200:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXConstructorCallRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXConstructorCall=ruleXConstructorCall();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXConstructorCall; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXConstructorCall"
+
+
+    // $ANTLR start "ruleXConstructorCall"
+    // InternalTableDSL.g:10206:1: ruleXConstructorCall returns [EObject current=null] : ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) ;
+    public final EObject ruleXConstructorCall() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token lv_explicitConstructorCall_8_0=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        EObject lv_typeArguments_4_0 = null;
+
+        EObject lv_typeArguments_6_0 = null;
+
+        EObject lv_arguments_9_0 = null;
+
+        EObject lv_arguments_10_0 = null;
+
+        EObject lv_arguments_12_0 = null;
+
+        EObject lv_arguments_14_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10212:2: ( ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) )
+            // InternalTableDSL.g:10213:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+            {
+            // InternalTableDSL.g:10213:2: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+            // InternalTableDSL.g:10214:3: () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            {
+            // InternalTableDSL.g:10214:3: ()
+            // InternalTableDSL.g:10215:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,157,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:10225:3: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:10226:4: ( ruleQualifiedName )
+            {
+            // InternalTableDSL.g:10226:4: ( ruleQualifiedName )
+            // InternalTableDSL.g:10227:5: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getXConstructorCallRule());
+              					}
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0());
+              				
+            }
+            pushFollow(FOLLOW_129);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:10241:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
+            int alt144=2;
+            alt144 = dfa144.predict(input);
+            switch (alt144) {
+                case 1 :
+                    // InternalTableDSL.g:10242:4: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
+                    {
+                    // InternalTableDSL.g:10242:4: ( ( '<' )=>otherlv_3= '<' )
+                    // InternalTableDSL.g:10243:5: ( '<' )=>otherlv_3= '<'
+                    {
+                    otherlv_3=(Token)match(input,119,FOLLOW_97); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
+                      				
+                    }
+
+                    }
+
+                    // InternalTableDSL.g:10249:4: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+                    // InternalTableDSL.g:10250:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    {
+                    // InternalTableDSL.g:10250:5: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+                    // InternalTableDSL.g:10251:6: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_98);
+                    lv_typeArguments_4_0=ruleJvmArgumentTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+                      						}
+                      						add(
+                      							current,
+                      							"typeArguments",
+                      							lv_typeArguments_4_0,
+                      							"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:10268:4: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop143:
+                    do {
+                        int alt143=2;
+                        int LA143_0 = input.LA(1);
+
+                        if ( (LA143_0==110) ) {
+                            alt143=1;
+                        }
+
+
+                        switch (alt143) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:10269:5: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    {
+                    	    otherlv_5=(Token)match(input,110,FOLLOW_97); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      					newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
+                    	      				
+                    	    }
+                    	    // InternalTableDSL.g:10273:5: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalTableDSL.g:10274:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    {
+                    	    // InternalTableDSL.g:10274:6: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+                    	    // InternalTableDSL.g:10275:7: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_98);
+                    	    lv_typeArguments_6_0=ruleJvmArgumentTypeReference();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+                    	      							}
+                    	      							add(
+                    	      								current,
+                    	      								"typeArguments",
+                    	      								lv_typeArguments_6_0,
+                    	      								"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop143;
+                        }
+                    } while (true);
+
+                    otherlv_7=(Token)match(input,120,FOLLOW_127); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:10298:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?
+            int alt147=2;
+            alt147 = dfa147.predict(input);
+            switch (alt147) {
+                case 1 :
+                    // InternalTableDSL.g:10299:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')'
+                    {
+                    // InternalTableDSL.g:10299:4: ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) )
+                    // InternalTableDSL.g:10300:5: ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' )
+                    {
+                    // InternalTableDSL.g:10304:5: (lv_explicitConstructorCall_8_0= '(' )
+                    // InternalTableDSL.g:10305:6: lv_explicitConstructorCall_8_0= '('
+                    {
+                    lv_explicitConstructorCall_8_0=(Token)match(input,93,FOLLOW_100); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_explicitConstructorCall_8_0, grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getXConstructorCallRule());
+                      						}
+                      						setWithLastConsumed(current, "explicitConstructorCall", true, "(");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:10317:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
+                    int alt146=3;
+                    alt146 = dfa146.predict(input);
+                    switch (alt146) {
+                        case 1 :
+                            // InternalTableDSL.g:10318:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            {
+                            // InternalTableDSL.g:10318:5: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+                            // InternalTableDSL.g:10319:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
+                            {
+                            // InternalTableDSL.g:10344:6: (lv_arguments_9_0= ruleXShortClosure )
+                            // InternalTableDSL.g:10345:7: lv_arguments_9_0= ruleXShortClosure
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              							newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0());
+                              						
+                            }
+                            pushFollow(FOLLOW_55);
+                            lv_arguments_9_0=ruleXShortClosure();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+                              							}
+                              							add(
+                              								current,
+                              								"arguments",
+                              								lv_arguments_9_0,
+                              								"org.eclipse.xtext.xbase.Xbase.XShortClosure");
+                              							afterParserOrEnumRuleCall();
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // InternalTableDSL.g:10363:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            {
+                            // InternalTableDSL.g:10363:5: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+                            // InternalTableDSL.g:10364:6: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            {
+                            // InternalTableDSL.g:10364:6: ( (lv_arguments_10_0= ruleXExpression ) )
+                            // InternalTableDSL.g:10365:7: (lv_arguments_10_0= ruleXExpression )
+                            {
+                            // InternalTableDSL.g:10365:7: (lv_arguments_10_0= ruleXExpression )
+                            // InternalTableDSL.g:10366:8: lv_arguments_10_0= ruleXExpression
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              								newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0());
+                              							
+                            }
+                            pushFollow(FOLLOW_71);
+                            lv_arguments_10_0=ruleXExpression();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              								if (current==null) {
+                              									current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+                              								}
+                              								add(
+                              									current,
+                              									"arguments",
+                              									lv_arguments_10_0,
+                              									"org.eclipse.xtext.xbase.Xbase.XExpression");
+                              								afterParserOrEnumRuleCall();
+                              							
+                            }
+
+                            }
+
+
+                            }
+
+                            // InternalTableDSL.g:10383:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+                            loop145:
+                            do {
+                                int alt145=2;
+                                int LA145_0 = input.LA(1);
+
+                                if ( (LA145_0==110) ) {
+                                    alt145=1;
+                                }
+
+
+                                switch (alt145) {
+                            	case 1 :
+                            	    // InternalTableDSL.g:10384:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    {
+                            	    otherlv_11=(Token)match(input,110,FOLLOW_72); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      							newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
+                            	      						
+                            	    }
+                            	    // InternalTableDSL.g:10388:7: ( (lv_arguments_12_0= ruleXExpression ) )
+                            	    // InternalTableDSL.g:10389:8: (lv_arguments_12_0= ruleXExpression )
+                            	    {
+                            	    // InternalTableDSL.g:10389:8: (lv_arguments_12_0= ruleXExpression )
+                            	    // InternalTableDSL.g:10390:9: lv_arguments_12_0= ruleXExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+
+                            	      									newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0());
+                            	      								
+                            	    }
+                            	    pushFollow(FOLLOW_71);
+                            	    lv_arguments_12_0=ruleXExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      									if (current==null) {
+                            	      										current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+                            	      									}
+                            	      									add(
+                            	      										current,
+                            	      										"arguments",
+                            	      										lv_arguments_12_0,
+                            	      										"org.eclipse.xtext.xbase.Xbase.XExpression");
+                            	      									afterParserOrEnumRuleCall();
+                            	      								
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop145;
+                                }
+                            } while (true);
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_13=(Token)match(input,94,FOLLOW_128); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // InternalTableDSL.g:10415:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+            int alt148=2;
+            alt148 = dfa148.predict(input);
+            switch (alt148) {
+                case 1 :
+                    // InternalTableDSL.g:10416:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
+                    {
+                    // InternalTableDSL.g:10422:4: (lv_arguments_14_0= ruleXClosure )
+                    // InternalTableDSL.g:10423:5: lv_arguments_14_0= ruleXClosure
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0());
+                      				
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_arguments_14_0=ruleXClosure();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+                      					}
+                      					add(
+                      						current,
+                      						"arguments",
+                      						lv_arguments_14_0,
+                      						"org.eclipse.xtext.xbase.Xbase.XClosure");
+                      					afterParserOrEnumRuleCall();
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXConstructorCall"
+
+
+    // $ANTLR start "entryRuleXBooleanLiteral"
+    // InternalTableDSL.g:10444:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
+    public final EObject entryRuleXBooleanLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXBooleanLiteral = null;
+
+
+        try {
+            // InternalTableDSL.g:10444:56: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
+            // InternalTableDSL.g:10445:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXBooleanLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXBooleanLiteral=ruleXBooleanLiteral();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXBooleanLiteral; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXBooleanLiteral"
+
+
+    // $ANTLR start "ruleXBooleanLiteral"
+    // InternalTableDSL.g:10451:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
+    public final EObject ruleXBooleanLiteral() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_isTrue_2_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10457:2: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
+            // InternalTableDSL.g:10458:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            {
+            // InternalTableDSL.g:10458:2: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+            // InternalTableDSL.g:10459:3: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            {
+            // InternalTableDSL.g:10459:3: ()
+            // InternalTableDSL.g:10460:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            // InternalTableDSL.g:10466:3: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+            int alt149=2;
+            int LA149_0 = input.LA(1);
+
+            if ( (LA149_0==158) ) {
+                alt149=1;
+            }
+            else if ( (LA149_0==159) ) {
+                alt149=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 149, 0, input);
+
+                throw nvae;
+            }
+            switch (alt149) {
+                case 1 :
+                    // InternalTableDSL.g:10467:4: otherlv_1= 'false'
+                    {
+                    otherlv_1=(Token)match(input,158,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
+                      			
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:10472:4: ( (lv_isTrue_2_0= 'true' ) )
+                    {
+                    // InternalTableDSL.g:10472:4: ( (lv_isTrue_2_0= 'true' ) )
+                    // InternalTableDSL.g:10473:5: (lv_isTrue_2_0= 'true' )
+                    {
+                    // InternalTableDSL.g:10473:5: (lv_isTrue_2_0= 'true' )
+                    // InternalTableDSL.g:10474:6: lv_isTrue_2_0= 'true'
+                    {
+                    lv_isTrue_2_0=(Token)match(input,159,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getXBooleanLiteralRule());
+                      						}
+                      						setWithLastConsumed(current, "isTrue", true, "true");
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXBooleanLiteral"
+
+
+    // $ANTLR start "entryRuleXNullLiteral"
+    // InternalTableDSL.g:10491:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
+    public final EObject entryRuleXNullLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXNullLiteral = null;
+
+
+        try {
+            // InternalTableDSL.g:10491:53: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
+            // InternalTableDSL.g:10492:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXNullLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXNullLiteral=ruleXNullLiteral();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXNullLiteral; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXNullLiteral"
+
+
+    // $ANTLR start "ruleXNullLiteral"
+    // InternalTableDSL.g:10498:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
+    public final EObject ruleXNullLiteral() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10504:2: ( ( () otherlv_1= 'null' ) )
+            // InternalTableDSL.g:10505:2: ( () otherlv_1= 'null' )
+            {
+            // InternalTableDSL.g:10505:2: ( () otherlv_1= 'null' )
+            // InternalTableDSL.g:10506:3: () otherlv_1= 'null'
+            {
+            // InternalTableDSL.g:10506:3: ()
+            // InternalTableDSL.g:10507:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,160,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXNullLiteral"
+
+
+    // $ANTLR start "entryRuleXNumberLiteral"
+    // InternalTableDSL.g:10521:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
+    public final EObject entryRuleXNumberLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXNumberLiteral = null;
+
+
+        try {
+            // InternalTableDSL.g:10521:55: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
+            // InternalTableDSL.g:10522:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXNumberLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXNumberLiteral=ruleXNumberLiteral();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXNumberLiteral; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXNumberLiteral"
+
+
+    // $ANTLR start "ruleXNumberLiteral"
+    // InternalTableDSL.g:10528:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
+    public final EObject ruleXNumberLiteral() throws RecognitionException {
+        EObject current = null;
+
+        AntlrDatatypeRuleToken lv_value_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10534:2: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
+            // InternalTableDSL.g:10535:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            {
+            // InternalTableDSL.g:10535:2: ( () ( (lv_value_1_0= ruleNumber ) ) )
+            // InternalTableDSL.g:10536:3: () ( (lv_value_1_0= ruleNumber ) )
+            {
+            // InternalTableDSL.g:10536:3: ()
+            // InternalTableDSL.g:10537:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            // InternalTableDSL.g:10543:3: ( (lv_value_1_0= ruleNumber ) )
+            // InternalTableDSL.g:10544:4: (lv_value_1_0= ruleNumber )
+            {
+            // InternalTableDSL.g:10544:4: (lv_value_1_0= ruleNumber )
+            // InternalTableDSL.g:10545:5: lv_value_1_0= ruleNumber
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_value_1_0=ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXNumberLiteralRule());
+              					}
+              					set(
+              						current,
+              						"value",
+              						lv_value_1_0,
+              						"org.eclipse.xtext.xbase.Xbase.Number");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXNumberLiteral"
+
+
+    // $ANTLR start "entryRuleXStringLiteral"
+    // InternalTableDSL.g:10566:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
+    public final EObject entryRuleXStringLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXStringLiteral = null;
+
+
+        try {
+            // InternalTableDSL.g:10566:55: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
+            // InternalTableDSL.g:10567:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXStringLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXStringLiteral=ruleXStringLiteral();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXStringLiteral; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXStringLiteral"
+
+
+    // $ANTLR start "ruleXStringLiteral"
+    // InternalTableDSL.g:10573:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
+    public final EObject ruleXStringLiteral() throws RecognitionException {
+        EObject current = null;
+
+        Token lv_value_1_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10579:2: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
+            // InternalTableDSL.g:10580:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            {
+            // InternalTableDSL.g:10580:2: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+            // InternalTableDSL.g:10581:3: () ( (lv_value_1_0= RULE_STRING ) )
+            {
+            // InternalTableDSL.g:10581:3: ()
+            // InternalTableDSL.g:10582:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            // InternalTableDSL.g:10588:3: ( (lv_value_1_0= RULE_STRING ) )
+            // InternalTableDSL.g:10589:4: (lv_value_1_0= RULE_STRING )
+            {
+            // InternalTableDSL.g:10589:4: (lv_value_1_0= RULE_STRING )
+            // InternalTableDSL.g:10590:5: lv_value_1_0= RULE_STRING
+            {
+            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(lv_value_1_0, grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0());
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getXStringLiteralRule());
+              					}
+              					setWithLastConsumed(
+              						current,
+              						"value",
+              						lv_value_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.STRING");
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXStringLiteral"
+
+
+    // $ANTLR start "entryRuleXTypeLiteral"
+    // InternalTableDSL.g:10610:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
+    public final EObject entryRuleXTypeLiteral() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXTypeLiteral = null;
+
+
+        try {
+            // InternalTableDSL.g:10610:53: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
+            // InternalTableDSL.g:10611:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXTypeLiteralRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXTypeLiteral=ruleXTypeLiteral();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXTypeLiteral; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXTypeLiteral"
+
+
+    // $ANTLR start "ruleXTypeLiteral"
+    // InternalTableDSL.g:10617:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
+    public final EObject ruleXTypeLiteral() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_5=null;
+        AntlrDatatypeRuleToken lv_arrayDimensions_4_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10623:2: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
+            // InternalTableDSL.g:10624:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            {
+            // InternalTableDSL.g:10624:2: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+            // InternalTableDSL.g:10625:3: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
+            {
+            // InternalTableDSL.g:10625:3: ()
+            // InternalTableDSL.g:10626:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,161,FOLLOW_110); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
+              		
+            }
+            otherlv_2=(Token)match(input,93,FOLLOW_4); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:10640:3: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:10641:4: ( ruleQualifiedName )
+            {
+            // InternalTableDSL.g:10641:4: ( ruleQualifiedName )
+            // InternalTableDSL.g:10642:5: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getXTypeLiteralRule());
+              					}
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0());
+              				
+            }
+            pushFollow(FOLLOW_130);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:10656:3: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
+            loop150:
+            do {
+                int alt150=2;
+                int LA150_0 = input.LA(1);
+
+                if ( (LA150_0==112) ) {
+                    alt150=1;
+                }
+
+
+                switch (alt150) {
+            	case 1 :
+            	    // InternalTableDSL.g:10657:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    {
+            	    // InternalTableDSL.g:10657:4: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+            	    // InternalTableDSL.g:10658:5: lv_arrayDimensions_4_0= ruleArrayBrackets
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      					newCompositeNode(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0());
+            	      				
+            	    }
+            	    pushFollow(FOLLOW_130);
+            	    lv_arrayDimensions_4_0=ruleArrayBrackets();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      					if (current==null) {
+            	      						current = createModelElementForParent(grammarAccess.getXTypeLiteralRule());
+            	      					}
+            	      					add(
+            	      						current,
+            	      						"arrayDimensions",
+            	      						lv_arrayDimensions_4_0,
+            	      						"org.eclipse.xtext.xbase.Xtype.ArrayBrackets");
+            	      					afterParserOrEnumRuleCall();
+            	      				
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop150;
+                }
+            } while (true);
+
+            otherlv_5=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXTypeLiteral"
+
+
+    // $ANTLR start "entryRuleXThrowExpression"
+    // InternalTableDSL.g:10683:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
+    public final EObject entryRuleXThrowExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXThrowExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:10683:57: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
+            // InternalTableDSL.g:10684:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXThrowExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXThrowExpression=ruleXThrowExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXThrowExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXThrowExpression"
+
+
+    // $ANTLR start "ruleXThrowExpression"
+    // InternalTableDSL.g:10690:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
+    public final EObject ruleXThrowExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        EObject lv_expression_2_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10696:2: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
+            // InternalTableDSL.g:10697:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            {
+            // InternalTableDSL.g:10697:2: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+            // InternalTableDSL.g:10698:3: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
+            {
+            // InternalTableDSL.g:10698:3: ()
+            // InternalTableDSL.g:10699:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,162,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:10709:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalTableDSL.g:10710:4: (lv_expression_2_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:10710:4: (lv_expression_2_0= ruleXExpression )
+            // InternalTableDSL.g:10711:5: lv_expression_2_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_expression_2_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXThrowExpressionRule());
+              					}
+              					set(
+              						current,
+              						"expression",
+              						lv_expression_2_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXThrowExpression"
+
+
+    // $ANTLR start "entryRuleXReturnExpression"
+    // InternalTableDSL.g:10732:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
+    public final EObject entryRuleXReturnExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXReturnExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:10732:58: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
+            // InternalTableDSL.g:10733:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXReturnExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXReturnExpression=ruleXReturnExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXReturnExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXReturnExpression"
+
+
+    // $ANTLR start "ruleXReturnExpression"
+    // InternalTableDSL.g:10739:1: ruleXReturnExpression returns [EObject current=null] : ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) ;
+    public final EObject ruleXReturnExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        EObject lv_expression_2_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10745:2: ( ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? ) )
+            // InternalTableDSL.g:10746:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
+            {
+            // InternalTableDSL.g:10746:2: ( () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )? )
+            // InternalTableDSL.g:10747:3: () otherlv_1= 'return' ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
+            {
+            // InternalTableDSL.g:10747:3: ()
+            // InternalTableDSL.g:10748:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,163,FOLLOW_131); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:10758:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?
+            int alt151=2;
+            alt151 = dfa151.predict(input);
+            switch (alt151) {
+                case 1 :
+                    // InternalTableDSL.g:10759:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:10760:4: (lv_expression_2_0= ruleXExpression )
+                    // InternalTableDSL.g:10761:5: lv_expression_2_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      					newCompositeNode(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+                      				
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_expression_2_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElementForParent(grammarAccess.getXReturnExpressionRule());
+                      					}
+                      					set(
+                      						current,
+                      						"expression",
+                      						lv_expression_2_0,
+                      						"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      					afterParserOrEnumRuleCall();
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXReturnExpression"
+
+
+    // $ANTLR start "entryRuleXTryCatchFinallyExpression"
+    // InternalTableDSL.g:10782:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
+    public final EObject entryRuleXTryCatchFinallyExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXTryCatchFinallyExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:10782:67: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
+            // InternalTableDSL.g:10783:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXTryCatchFinallyExpression=ruleXTryCatchFinallyExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXTryCatchFinallyExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXTryCatchFinallyExpression"
+
+
+    // $ANTLR start "ruleXTryCatchFinallyExpression"
+    // InternalTableDSL.g:10789:1: ruleXTryCatchFinallyExpression returns [EObject current=null] : ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) ;
+    public final EObject ruleXTryCatchFinallyExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_expression_2_0 = null;
+
+        EObject lv_catchClauses_3_0 = null;
+
+        EObject lv_finallyExpression_5_0 = null;
+
+        EObject lv_finallyExpression_7_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10795:2: ( ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) )
+            // InternalTableDSL.g:10796:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+            {
+            // InternalTableDSL.g:10796:2: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+            // InternalTableDSL.g:10797:3: () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+            {
+            // InternalTableDSL.g:10797:3: ()
+            // InternalTableDSL.g:10798:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,164,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:10808:3: ( (lv_expression_2_0= ruleXExpression ) )
+            // InternalTableDSL.g:10809:4: (lv_expression_2_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:10809:4: (lv_expression_2_0= ruleXExpression )
+            // InternalTableDSL.g:10810:5: lv_expression_2_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+              				
+            }
+            pushFollow(FOLLOW_132);
+            lv_expression_2_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+              					}
+              					set(
+              						current,
+              						"expression",
+              						lv_expression_2_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:10827:3: ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+            int alt154=2;
+            int LA154_0 = input.LA(1);
+
+            if ( (LA154_0==167) ) {
+                alt154=1;
+            }
+            else if ( (LA154_0==165) ) {
+                alt154=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 154, 0, input);
+
+                throw nvae;
+            }
+            switch (alt154) {
+                case 1 :
+                    // InternalTableDSL.g:10828:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    {
+                    // InternalTableDSL.g:10828:4: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+                    // InternalTableDSL.g:10829:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    {
+                    // InternalTableDSL.g:10829:5: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
+                    int cnt152=0;
+                    loop152:
+                    do {
+                        int alt152=2;
+                        int LA152_0 = input.LA(1);
+
+                        if ( (LA152_0==167) ) {
+                            int LA152_2 = input.LA(2);
+
+                            if ( (synpred44_InternalTableDSL()) ) {
+                                alt152=1;
+                            }
+
+
+                        }
+
+
+                        switch (alt152) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:10830:6: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    {
+                    	    // InternalTableDSL.g:10831:6: (lv_catchClauses_3_0= ruleXCatchClause )
+                    	    // InternalTableDSL.g:10832:7: lv_catchClauses_3_0= ruleXCatchClause
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_133);
+                    	    lv_catchClauses_3_0=ruleXCatchClause();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+                    	      							}
+                    	      							add(
+                    	      								current,
+                    	      								"catchClauses",
+                    	      								lv_catchClauses_3_0,
+                    	      								"org.eclipse.xtext.xbase.Xbase.XCatchClause");
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt152 >= 1 ) break loop152;
+                    	    if (state.backtracking>0) {state.failed=true; return current;}
+                                EarlyExitException eee =
+                                    new EarlyExitException(152, input);
+                                throw eee;
+                        }
+                        cnt152++;
+                    } while (true);
+
+                    // InternalTableDSL.g:10849:5: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+                    int alt153=2;
+                    int LA153_0 = input.LA(1);
+
+                    if ( (LA153_0==165) ) {
+                        int LA153_1 = input.LA(2);
+
+                        if ( (synpred45_InternalTableDSL()) ) {
+                            alt153=1;
+                        }
+                    }
+                    switch (alt153) {
+                        case 1 :
+                            // InternalTableDSL.g:10850:6: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            {
+                            // InternalTableDSL.g:10850:6: ( ( 'finally' )=>otherlv_4= 'finally' )
+                            // InternalTableDSL.g:10851:7: ( 'finally' )=>otherlv_4= 'finally'
+                            {
+                            otherlv_4=(Token)match(input,165,FOLLOW_72); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
+                              						
+                            }
+
+                            }
+
+                            // InternalTableDSL.g:10857:6: ( (lv_finallyExpression_5_0= ruleXExpression ) )
+                            // InternalTableDSL.g:10858:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            {
+                            // InternalTableDSL.g:10858:7: (lv_finallyExpression_5_0= ruleXExpression )
+                            // InternalTableDSL.g:10859:8: lv_finallyExpression_5_0= ruleXExpression
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              								newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0());
+                              							
+                            }
+                            pushFollow(FOLLOW_2);
+                            lv_finallyExpression_5_0=ruleXExpression();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              								if (current==null) {
+                              									current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+                              								}
+                              								set(
+                              									current,
+                              									"finallyExpression",
+                              									lv_finallyExpression_5_0,
+                              									"org.eclipse.xtext.xbase.Xbase.XExpression");
+                              								afterParserOrEnumRuleCall();
+                              							
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:10879:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    {
+                    // InternalTableDSL.g:10879:4: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+                    // InternalTableDSL.g:10880:5: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    {
+                    otherlv_6=(Token)match(input,165,FOLLOW_72); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
+                      				
+                    }
+                    // InternalTableDSL.g:10884:5: ( (lv_finallyExpression_7_0= ruleXExpression ) )
+                    // InternalTableDSL.g:10885:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    {
+                    // InternalTableDSL.g:10885:6: (lv_finallyExpression_7_0= ruleXExpression )
+                    // InternalTableDSL.g:10886:7: lv_finallyExpression_7_0= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0());
+                      						
+                    }
+                    pushFollow(FOLLOW_2);
+                    lv_finallyExpression_7_0=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+                      							}
+                      							set(
+                      								current,
+                      								"finallyExpression",
+                      								lv_finallyExpression_7_0,
+                      								"org.eclipse.xtext.xbase.Xbase.XExpression");
+                      							afterParserOrEnumRuleCall();
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXTryCatchFinallyExpression"
+
+
+    // $ANTLR start "entryRuleXSynchronizedExpression"
+    // InternalTableDSL.g:10909:1: entryRuleXSynchronizedExpression returns [EObject current=null] : iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF ;
+    public final EObject entryRuleXSynchronizedExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXSynchronizedExpression = null;
+
+
+        try {
+            // InternalTableDSL.g:10909:64: (iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF )
+            // InternalTableDSL.g:10910:2: iv_ruleXSynchronizedExpression= ruleXSynchronizedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXSynchronizedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXSynchronizedExpression=ruleXSynchronizedExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXSynchronizedExpression; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXSynchronizedExpression"
+
+
+    // $ANTLR start "ruleXSynchronizedExpression"
+    // InternalTableDSL.g:10916:1: ruleXSynchronizedExpression returns [EObject current=null] : ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+    public final EObject ruleXSynchronizedExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        EObject lv_param_3_0 = null;
+
+        EObject lv_expression_5_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:10922:2: ( ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) ) )
+            // InternalTableDSL.g:10923:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            {
+            // InternalTableDSL.g:10923:2: ( ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) ) )
+            // InternalTableDSL.g:10924:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) ) ( (lv_param_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_expression_5_0= ruleXExpression ) )
+            {
+            // InternalTableDSL.g:10924:3: ( ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' ) )
+            // InternalTableDSL.g:10925:4: ( ( () 'synchronized' '(' ) )=> ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            {
+            // InternalTableDSL.g:10932:4: ( () otherlv_1= 'synchronized' otherlv_2= '(' )
+            // InternalTableDSL.g:10933:5: () otherlv_1= 'synchronized' otherlv_2= '('
+            {
+            // InternalTableDSL.g:10933:5: ()
+            // InternalTableDSL.g:10934:6: 
+            {
+            if ( state.backtracking==0 ) {
+
+              						current = forceCreateModelElement(
+              							grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0(),
+              							current);
+              					
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,166,FOLLOW_110); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_1, grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1());
+              				
+            }
+            otherlv_2=(Token)match(input,93,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					newLeafNode(otherlv_2, grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2());
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:10950:3: ( (lv_param_3_0= ruleXExpression ) )
+            // InternalTableDSL.g:10951:4: (lv_param_3_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:10951:4: (lv_param_3_0= ruleXExpression )
+            // InternalTableDSL.g:10952:5: lv_param_3_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_55);
+            lv_param_3_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXSynchronizedExpressionRule());
+              					}
+              					set(
+              						current,
+              						"param",
+              						lv_param_3_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,94,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_4, grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2());
+              		
+            }
+            // InternalTableDSL.g:10973:3: ( (lv_expression_5_0= ruleXExpression ) )
+            // InternalTableDSL.g:10974:4: (lv_expression_5_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:10974:4: (lv_expression_5_0= ruleXExpression )
+            // InternalTableDSL.g:10975:5: lv_expression_5_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_expression_5_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXSynchronizedExpressionRule());
+              					}
+              					set(
+              						current,
+              						"expression",
+              						lv_expression_5_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXSynchronizedExpression"
+
+
+    // $ANTLR start "entryRuleXCatchClause"
+    // InternalTableDSL.g:10996:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
+    public final EObject entryRuleXCatchClause() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXCatchClause = null;
+
+
+        try {
+            // InternalTableDSL.g:10996:53: (iv_ruleXCatchClause= ruleXCatchClause EOF )
+            // InternalTableDSL.g:10997:2: iv_ruleXCatchClause= ruleXCatchClause EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXCatchClauseRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXCatchClause=ruleXCatchClause();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXCatchClause; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXCatchClause"
+
+
+    // $ANTLR start "ruleXCatchClause"
+    // InternalTableDSL.g:11003:1: ruleXCatchClause returns [EObject current=null] : ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
+    public final EObject ruleXCatchClause() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        EObject lv_declaredParam_2_0 = null;
+
+        EObject lv_expression_4_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11009:2: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
+            // InternalTableDSL.g:11010:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            {
+            // InternalTableDSL.g:11010:2: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+            // InternalTableDSL.g:11011:3: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
+            {
+            // InternalTableDSL.g:11011:3: ( ( 'catch' )=>otherlv_0= 'catch' )
+            // InternalTableDSL.g:11012:4: ( 'catch' )=>otherlv_0= 'catch'
+            {
+            otherlv_0=(Token)match(input,167,FOLLOW_110); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              				newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,93,FOLLOW_85); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:11022:3: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
+            // InternalTableDSL.g:11023:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            {
+            // InternalTableDSL.g:11023:4: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+            // InternalTableDSL.g:11024:5: lv_declaredParam_2_0= ruleFullJvmFormalParameter
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0());
+              				
+            }
+            pushFollow(FOLLOW_55);
+            lv_declaredParam_2_0=ruleFullJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+              					}
+              					set(
+              						current,
+              						"declaredParam",
+              						lv_declaredParam_2_0,
+              						"org.eclipse.xtext.xbase.Xbase.FullJvmFormalParameter");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,94,FOLLOW_72); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
+              		
+            }
+            // InternalTableDSL.g:11045:3: ( (lv_expression_4_0= ruleXExpression ) )
+            // InternalTableDSL.g:11046:4: (lv_expression_4_0= ruleXExpression )
+            {
+            // InternalTableDSL.g:11046:4: (lv_expression_4_0= ruleXExpression )
+            // InternalTableDSL.g:11047:5: lv_expression_4_0= ruleXExpression
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_expression_4_0=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+              					}
+              					set(
+              						current,
+              						"expression",
+              						lv_expression_4_0,
+              						"org.eclipse.xtext.xbase.Xbase.XExpression");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXCatchClause"
+
+
+    // $ANTLR start "entryRuleQualifiedName"
+    // InternalTableDSL.g:11068:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    public final String entryRuleQualifiedName() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
+
+
+        try {
+            // InternalTableDSL.g:11068:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalTableDSL.g:11069:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getQualifiedNameRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleQualifiedName=ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleQualifiedName.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleQualifiedName"
+
+
+    // $ANTLR start "ruleQualifiedName"
+    // InternalTableDSL.g:11075:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
+    public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_ValidID_0 = null;
+
+        AntlrDatatypeRuleToken this_ValidID_2 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11081:2: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
+            // InternalTableDSL.g:11082:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            {
+            // InternalTableDSL.g:11082:2: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // InternalTableDSL.g:11083:3: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_44);
+            this_ValidID_0=ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current.merge(this_ValidID_0);
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            // InternalTableDSL.g:11093:3: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            loop155:
+            do {
+                int alt155=2;
+                int LA155_0 = input.LA(1);
+
+                if ( (LA155_0==78) ) {
+                    int LA155_2 = input.LA(2);
+
+                    if ( (LA155_2==RULE_ID) ) {
+                        int LA155_3 = input.LA(3);
+
+                        if ( (synpred48_InternalTableDSL()) ) {
+                            alt155=1;
+                        }
+
+
+                    }
+
+
+                }
+
+
+                switch (alt155) {
+            	case 1 :
+            	    // InternalTableDSL.g:11094:4: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
+            	    {
+            	    // InternalTableDSL.g:11094:4: ( ( '.' )=>kw= '.' )
+            	    // InternalTableDSL.g:11095:5: ( '.' )=>kw= '.'
+            	    {
+            	    kw=(Token)match(input,78,FOLLOW_4); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      					current.merge(kw);
+            	      					newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
+            	      				
+            	    }
+
+            	    }
+
+            	    if ( state.backtracking==0 ) {
+
+            	      				newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1());
+            	      			
+            	    }
+            	    pushFollow(FOLLOW_44);
+            	    this_ValidID_2=ruleValidID();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      				current.merge(this_ValidID_2);
+            	      			
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      				afterParserOrEnumRuleCall();
+            	      			
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop155;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleQualifiedName"
+
+
+    // $ANTLR start "entryRuleNumber"
+    // InternalTableDSL.g:11117:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
+    public final String entryRuleNumber() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleNumber = null;
+
+
+
+        	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+        try {
+            // InternalTableDSL.g:11119:2: (iv_ruleNumber= ruleNumber EOF )
+            // InternalTableDSL.g:11120:2: iv_ruleNumber= ruleNumber EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getNumberRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleNumber=ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleNumber.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+
+            	myHiddenTokenState.restore();
+
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleNumber"
+
+
+    // $ANTLR start "ruleNumber"
+    // InternalTableDSL.g:11129:1: ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) ;
+    public final AntlrDatatypeRuleToken ruleNumber() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_HEX_0=null;
+        Token this_INT_1=null;
+        Token this_DECIMAL_2=null;
+        Token kw=null;
+        Token this_INT_4=null;
+        Token this_DECIMAL_5=null;
+
+
+        	enterRule();
+        	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+        try {
+            // InternalTableDSL.g:11136:2: ( (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) )
+            // InternalTableDSL.g:11137:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+            {
+            // InternalTableDSL.g:11137:2: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+            int alt159=2;
+            int LA159_0 = input.LA(1);
+
+            if ( (LA159_0==RULE_HEX) ) {
+                alt159=1;
+            }
+            else if ( (LA159_0==RULE_INT||LA159_0==RULE_DECIMAL) ) {
+                alt159=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 159, 0, input);
+
+                throw nvae;
+            }
+            switch (alt159) {
+                case 1 :
+                    // InternalTableDSL.g:11138:3: this_HEX_0= RULE_HEX
+                    {
+                    this_HEX_0=(Token)match(input,RULE_HEX,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current.merge(this_HEX_0);
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(this_HEX_0, grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0());
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:11146:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    {
+                    // InternalTableDSL.g:11146:3: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+                    // InternalTableDSL.g:11147:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    {
+                    // InternalTableDSL.g:11147:4: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
+                    int alt156=2;
+                    int LA156_0 = input.LA(1);
+
+                    if ( (LA156_0==RULE_INT) ) {
+                        alt156=1;
+                    }
+                    else if ( (LA156_0==RULE_DECIMAL) ) {
+                        alt156=2;
+                    }
+                    else {
+                        if (state.backtracking>0) {state.failed=true; return current;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 156, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt156) {
+                        case 1 :
+                            // InternalTableDSL.g:11148:5: this_INT_1= RULE_INT
+                            {
+                            this_INT_1=(Token)match(input,RULE_INT,FOLLOW_44); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              					current.merge(this_INT_1);
+                              				
+                            }
+                            if ( state.backtracking==0 ) {
+
+                              					newLeafNode(this_INT_1, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0());
+                              				
+                            }
+
+                            }
+                            break;
+                        case 2 :
+                            // InternalTableDSL.g:11156:5: this_DECIMAL_2= RULE_DECIMAL
+                            {
+                            this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_44); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              					current.merge(this_DECIMAL_2);
+                              				
+                            }
+                            if ( state.backtracking==0 ) {
+
+                              					newLeafNode(this_DECIMAL_2, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1());
+                              				
+                            }
+
+                            }
+                            break;
+
+                    }
+
+                    // InternalTableDSL.g:11164:4: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+                    int alt158=2;
+                    int LA158_0 = input.LA(1);
+
+                    if ( (LA158_0==78) ) {
+                        int LA158_1 = input.LA(2);
+
+                        if ( (LA158_1==RULE_INT||LA158_1==RULE_DECIMAL) ) {
+                            alt158=1;
+                        }
+                    }
+                    switch (alt158) {
+                        case 1 :
+                            // InternalTableDSL.g:11165:5: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            {
+                            kw=(Token)match(input,78,FOLLOW_134); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              					current.merge(kw);
+                              					newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
+                              				
+                            }
+                            // InternalTableDSL.g:11170:5: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+                            int alt157=2;
+                            int LA157_0 = input.LA(1);
+
+                            if ( (LA157_0==RULE_INT) ) {
+                                alt157=1;
+                            }
+                            else if ( (LA157_0==RULE_DECIMAL) ) {
+                                alt157=2;
+                            }
+                            else {
+                                if (state.backtracking>0) {state.failed=true; return current;}
+                                NoViableAltException nvae =
+                                    new NoViableAltException("", 157, 0, input);
+
+                                throw nvae;
+                            }
+                            switch (alt157) {
+                                case 1 :
+                                    // InternalTableDSL.g:11171:6: this_INT_4= RULE_INT
+                                    {
+                                    this_INT_4=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
+                                    if ( state.backtracking==0 ) {
+
+                                      						current.merge(this_INT_4);
+                                      					
+                                    }
+                                    if ( state.backtracking==0 ) {
+
+                                      						newLeafNode(this_INT_4, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0());
+                                      					
+                                    }
+
+                                    }
+                                    break;
+                                case 2 :
+                                    // InternalTableDSL.g:11179:6: this_DECIMAL_5= RULE_DECIMAL
+                                    {
+                                    this_DECIMAL_5=(Token)match(input,RULE_DECIMAL,FOLLOW_2); if (state.failed) return current;
+                                    if ( state.backtracking==0 ) {
+
+                                      						current.merge(this_DECIMAL_5);
+                                      					
+                                    }
+                                    if ( state.backtracking==0 ) {
+
+                                      						newLeafNode(this_DECIMAL_5, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1());
+                                      					
+                                    }
+
+                                    }
+                                    break;
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+
+            	myHiddenTokenState.restore();
+
+        }
+        return current;
+    }
+    // $ANTLR end "ruleNumber"
+
+
+    // $ANTLR start "entryRuleJvmTypeReference"
+    // InternalTableDSL.g:11196:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
+    public final EObject entryRuleJvmTypeReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleJvmTypeReference = null;
+
+
+        try {
+            // InternalTableDSL.g:11196:57: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
+            // InternalTableDSL.g:11197:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleJvmTypeReference=ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleJvmTypeReference; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleJvmTypeReference"
+
+
+    // $ANTLR start "ruleJvmTypeReference"
+    // InternalTableDSL.g:11203:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
+    public final EObject ruleJvmTypeReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_JvmParameterizedTypeReference_0 = null;
+
+        EObject this_XFunctionTypeRef_3 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11209:2: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
+            // InternalTableDSL.g:11210:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            {
+            // InternalTableDSL.g:11210:2: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+            int alt161=2;
+            int LA161_0 = input.LA(1);
+
+            if ( (LA161_0==RULE_ID) ) {
+                alt161=1;
+            }
+            else if ( (LA161_0==93||LA161_0==132) ) {
+                alt161=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 161, 0, input);
+
+                throw nvae;
+            }
+            switch (alt161) {
+                case 1 :
+                    // InternalTableDSL.g:11211:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    {
+                    // InternalTableDSL.g:11211:3: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+                    // InternalTableDSL.g:11212:4: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      				newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0());
+                      			
+                    }
+                    pushFollow(FOLLOW_128);
+                    this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = this_JvmParameterizedTypeReference_0;
+                      				afterParserOrEnumRuleCall();
+                      			
+                    }
+                    // InternalTableDSL.g:11220:4: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+                    loop160:
+                    do {
+                        int alt160=2;
+                        int LA160_0 = input.LA(1);
+
+                        if ( (LA160_0==112) ) {
+                            int LA160_2 = input.LA(2);
+
+                            if ( (LA160_2==113) ) {
+                                int LA160_3 = input.LA(3);
+
+                                if ( (synpred49_InternalTableDSL()) ) {
+                                    alt160=1;
+                                }
+
+
+                            }
+
+
+                        }
+
+
+                        switch (alt160) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:11221:5: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
+                    	    {
+                    	    // InternalTableDSL.g:11227:5: ( () ruleArrayBrackets )
+                    	    // InternalTableDSL.g:11228:6: () ruleArrayBrackets
+                    	    {
+                    	    // InternalTableDSL.g:11228:6: ()
+                    	    // InternalTableDSL.g:11229:7: 
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							current = forceCreateModelElementAndSet(
+                    	      								grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0(),
+                    	      								current);
+                    	      						
+                    	    }
+
+                    	    }
+
+                    	    if ( state.backtracking==0 ) {
+
+                    	      						newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1());
+                    	      					
+                    	    }
+                    	    pushFollow(FOLLOW_128);
+                    	    ruleArrayBrackets();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      						afterParserOrEnumRuleCall();
+                    	      					
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop160;
+                        }
+                    } while (true);
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:11246:3: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_XFunctionTypeRef_3=ruleXFunctionTypeRef();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_XFunctionTypeRef_3;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleJvmTypeReference"
+
+
+    // $ANTLR start "entryRuleArrayBrackets"
+    // InternalTableDSL.g:11258:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
+    public final String entryRuleArrayBrackets() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleArrayBrackets = null;
+
+
+        try {
+            // InternalTableDSL.g:11258:53: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
+            // InternalTableDSL.g:11259:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getArrayBracketsRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleArrayBrackets=ruleArrayBrackets();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleArrayBrackets.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleArrayBrackets"
+
+
+    // $ANTLR start "ruleArrayBrackets"
+    // InternalTableDSL.g:11265:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
+    public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11271:2: ( (kw= '[' kw= ']' ) )
+            // InternalTableDSL.g:11272:2: (kw= '[' kw= ']' )
+            {
+            // InternalTableDSL.g:11272:2: (kw= '[' kw= ']' )
+            // InternalTableDSL.g:11273:3: kw= '[' kw= ']'
+            {
+            kw=(Token)match(input,112,FOLLOW_107); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current.merge(kw);
+              			newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
+              		
+            }
+            kw=(Token)match(input,113,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current.merge(kw);
+              			newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleArrayBrackets"
+
+
+    // $ANTLR start "entryRuleXFunctionTypeRef"
+    // InternalTableDSL.g:11287:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
+    public final EObject entryRuleXFunctionTypeRef() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXFunctionTypeRef = null;
+
+
+        try {
+            // InternalTableDSL.g:11287:57: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
+            // InternalTableDSL.g:11288:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXFunctionTypeRef=ruleXFunctionTypeRef();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXFunctionTypeRef; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXFunctionTypeRef"
+
+
+    // $ANTLR start "ruleXFunctionTypeRef"
+    // InternalTableDSL.g:11294:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ;
+    public final EObject ruleXFunctionTypeRef() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        EObject lv_paramTypes_1_0 = null;
+
+        EObject lv_paramTypes_3_0 = null;
+
+        EObject lv_returnType_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11300:2: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) )
+            // InternalTableDSL.g:11301:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+            {
+            // InternalTableDSL.g:11301:2: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+            // InternalTableDSL.g:11302:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            {
+            // InternalTableDSL.g:11302:3: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
+            int alt164=2;
+            int LA164_0 = input.LA(1);
+
+            if ( (LA164_0==93) ) {
+                alt164=1;
+            }
+            switch (alt164) {
+                case 1 :
+                    // InternalTableDSL.g:11303:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
+                    {
+                    otherlv_0=(Token)match(input,93,FOLLOW_135); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
+                      			
+                    }
+                    // InternalTableDSL.g:11307:4: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
+                    int alt163=2;
+                    int LA163_0 = input.LA(1);
+
+                    if ( (LA163_0==RULE_ID||LA163_0==93||LA163_0==132) ) {
+                        alt163=1;
+                    }
+                    switch (alt163) {
+                        case 1 :
+                            // InternalTableDSL.g:11308:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            {
+                            // InternalTableDSL.g:11308:5: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
+                            // InternalTableDSL.g:11309:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            {
+                            // InternalTableDSL.g:11309:6: (lv_paramTypes_1_0= ruleJvmTypeReference )
+                            // InternalTableDSL.g:11310:7: lv_paramTypes_1_0= ruleJvmTypeReference
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              							newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0());
+                              						
+                            }
+                            pushFollow(FOLLOW_71);
+                            lv_paramTypes_1_0=ruleJvmTypeReference();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              							if (current==null) {
+                              								current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+                              							}
+                              							add(
+                              								current,
+                              								"paramTypes",
+                              								lv_paramTypes_1_0,
+                              								"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+                              							afterParserOrEnumRuleCall();
+                              						
+                            }
+
+                            }
+
+
+                            }
+
+                            // InternalTableDSL.g:11327:5: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+                            loop162:
+                            do {
+                                int alt162=2;
+                                int LA162_0 = input.LA(1);
+
+                                if ( (LA162_0==110) ) {
+                                    alt162=1;
+                                }
+
+
+                                switch (alt162) {
+                            	case 1 :
+                            	    // InternalTableDSL.g:11328:6: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    {
+                            	    otherlv_2=(Token)match(input,110,FOLLOW_85); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      						newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
+                            	      					
+                            	    }
+                            	    // InternalTableDSL.g:11332:6: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+                            	    // InternalTableDSL.g:11333:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    {
+                            	    // InternalTableDSL.g:11333:7: (lv_paramTypes_3_0= ruleJvmTypeReference )
+                            	    // InternalTableDSL.g:11334:8: lv_paramTypes_3_0= ruleJvmTypeReference
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+
+                            	      								newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0());
+                            	      							
+                            	    }
+                            	    pushFollow(FOLLOW_71);
+                            	    lv_paramTypes_3_0=ruleJvmTypeReference();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      								if (current==null) {
+                            	      									current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+                            	      								}
+                            	      								add(
+                            	      									current,
+                            	      									"paramTypes",
+                            	      									lv_paramTypes_3_0,
+                            	      									"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+                            	      								afterParserOrEnumRuleCall();
+                            	      							
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop162;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_4=(Token)match(input,94,FOLLOW_136); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
+                      			
+                    }
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,132,FOLLOW_85); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:11362:3: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+            // InternalTableDSL.g:11363:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:11363:4: (lv_returnType_6_0= ruleJvmTypeReference )
+            // InternalTableDSL.g:11364:5: lv_returnType_6_0= ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_returnType_6_0=ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+              					}
+              					set(
+              						current,
+              						"returnType",
+              						lv_returnType_6_0,
+              						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXFunctionTypeRef"
+
+
+    // $ANTLR start "entryRuleJvmParameterizedTypeReference"
+    // InternalTableDSL.g:11385:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
+    public final EObject entryRuleJvmParameterizedTypeReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleJvmParameterizedTypeReference = null;
+
+
+        try {
+            // InternalTableDSL.g:11385:70: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
+            // InternalTableDSL.g:11386:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleJvmParameterizedTypeReference=ruleJvmParameterizedTypeReference();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleJvmParameterizedTypeReference; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleJvmParameterizedTypeReference"
+
+
+    // $ANTLR start "ruleJvmParameterizedTypeReference"
+    // InternalTableDSL.g:11392:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) ;
+    public final EObject ruleJvmParameterizedTypeReference() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        EObject lv_arguments_2_0 = null;
+
+        EObject lv_arguments_4_0 = null;
+
+        EObject lv_arguments_10_0 = null;
+
+        EObject lv_arguments_12_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11398:2: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? ) )
+            // InternalTableDSL.g:11399:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
+            {
+            // InternalTableDSL.g:11399:2: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )? )
+            // InternalTableDSL.g:11400:3: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
+            {
+            // InternalTableDSL.g:11400:3: ( ( ruleQualifiedName ) )
+            // InternalTableDSL.g:11401:4: ( ruleQualifiedName )
+            {
+            // InternalTableDSL.g:11401:4: ( ruleQualifiedName )
+            // InternalTableDSL.g:11402:5: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule());
+              					}
+              				
+            }
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0());
+              				
+            }
+            pushFollow(FOLLOW_137);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalTableDSL.g:11416:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?
+            int alt169=2;
+            alt169 = dfa169.predict(input);
+            switch (alt169) {
+                case 1 :
+                    // InternalTableDSL.g:11417:4: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    {
+                    // InternalTableDSL.g:11417:4: ( ( '<' )=>otherlv_1= '<' )
+                    // InternalTableDSL.g:11418:5: ( '<' )=>otherlv_1= '<'
+                    {
+                    otherlv_1=(Token)match(input,119,FOLLOW_97); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
+                      				
+                    }
+
+                    }
+
+                    // InternalTableDSL.g:11424:4: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
+                    // InternalTableDSL.g:11425:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    {
+                    // InternalTableDSL.g:11425:5: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+                    // InternalTableDSL.g:11426:6: lv_arguments_2_0= ruleJvmArgumentTypeReference
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_98);
+                    lv_arguments_2_0=ruleJvmArgumentTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+                      						}
+                      						add(
+                      							current,
+                      							"arguments",
+                      							lv_arguments_2_0,
+                      							"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:11443:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+                    loop165:
+                    do {
+                        int alt165=2;
+                        int LA165_0 = input.LA(1);
+
+                        if ( (LA165_0==110) ) {
+                            alt165=1;
+                        }
+
+
+                        switch (alt165) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:11444:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    {
+                    	    otherlv_3=(Token)match(input,110,FOLLOW_97); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      					newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
+                    	      				
+                    	    }
+                    	    // InternalTableDSL.g:11448:5: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+                    	    // InternalTableDSL.g:11449:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    {
+                    	    // InternalTableDSL.g:11449:6: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+                    	    // InternalTableDSL.g:11450:7: lv_arguments_4_0= ruleJvmArgumentTypeReference
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_98);
+                    	    lv_arguments_4_0=ruleJvmArgumentTypeReference();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+                    	      							}
+                    	      							add(
+                    	      								current,
+                    	      								"arguments",
+                    	      								lv_arguments_4_0,
+                    	      								"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop165;
+                        }
+                    } while (true);
+
+                    otherlv_5=(Token)match(input,120,FOLLOW_44); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
+                      			
+                    }
+                    // InternalTableDSL.g:11472:4: ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )*
+                    loop168:
+                    do {
+                        int alt168=2;
+                        int LA168_0 = input.LA(1);
+
+                        if ( (LA168_0==78) ) {
+                            int LA168_2 = input.LA(2);
+
+                            if ( (LA168_2==RULE_ID) ) {
+                                int LA168_3 = input.LA(3);
+
+                                if ( (synpred51_InternalTableDSL()) ) {
+                                    alt168=1;
+                                }
+
+
+                            }
+
+
+                        }
+
+
+                        switch (alt168) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:11473:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    {
+                    	    // InternalTableDSL.g:11473:5: ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) )
+                    	    // InternalTableDSL.g:11474:6: ( ( () '.' ) )=> ( () otherlv_7= '.' )
+                    	    {
+                    	    // InternalTableDSL.g:11480:6: ( () otherlv_7= '.' )
+                    	    // InternalTableDSL.g:11481:7: () otherlv_7= '.'
+                    	    {
+                    	    // InternalTableDSL.g:11481:7: ()
+                    	    // InternalTableDSL.g:11482:8: 
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      								current = forceCreateModelElementAndSet(
+                    	      									grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0(),
+                    	      									current);
+                    	      							
+                    	    }
+
+                    	    }
+
+                    	    otherlv_7=(Token)match(input,78,FOLLOW_4); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1());
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+                    	    // InternalTableDSL.g:11494:5: ( ( ruleValidID ) )
+                    	    // InternalTableDSL.g:11495:6: ( ruleValidID )
+                    	    {
+                    	    // InternalTableDSL.g:11495:6: ( ruleValidID )
+                    	    // InternalTableDSL.g:11496:7: ruleValidID
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule());
+                    	      							}
+                    	      						
+                    	    }
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_138);
+                    	    ruleValidID();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+                    	    // InternalTableDSL.g:11510:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?
+                    	    int alt167=2;
+                    	    alt167 = dfa167.predict(input);
+                    	    switch (alt167) {
+                    	        case 1 :
+                    	            // InternalTableDSL.g:11511:6: ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>'
+                    	            {
+                    	            // InternalTableDSL.g:11511:6: ( ( '<' )=>otherlv_9= '<' )
+                    	            // InternalTableDSL.g:11512:7: ( '<' )=>otherlv_9= '<'
+                    	            {
+                    	            otherlv_9=(Token)match(input,119,FOLLOW_97); if (state.failed) return current;
+                    	            if ( state.backtracking==0 ) {
+
+                    	              							newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0());
+                    	              						
+                    	            }
+
+                    	            }
+
+                    	            // InternalTableDSL.g:11518:6: ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) )
+                    	            // InternalTableDSL.g:11519:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            {
+                    	            // InternalTableDSL.g:11519:7: (lv_arguments_10_0= ruleJvmArgumentTypeReference )
+                    	            // InternalTableDSL.g:11520:8: lv_arguments_10_0= ruleJvmArgumentTypeReference
+                    	            {
+                    	            if ( state.backtracking==0 ) {
+
+                    	              								newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0());
+                    	              							
+                    	            }
+                    	            pushFollow(FOLLOW_98);
+                    	            lv_arguments_10_0=ruleJvmArgumentTypeReference();
+
+                    	            state._fsp--;
+                    	            if (state.failed) return current;
+                    	            if ( state.backtracking==0 ) {
+
+                    	              								if (current==null) {
+                    	              									current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+                    	              								}
+                    	              								add(
+                    	              									current,
+                    	              									"arguments",
+                    	              									lv_arguments_10_0,
+                    	              									"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+                    	              								afterParserOrEnumRuleCall();
+                    	              							
+                    	            }
+
+                    	            }
+
+
+                    	            }
+
+                    	            // InternalTableDSL.g:11537:6: (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )*
+                    	            loop166:
+                    	            do {
+                    	                int alt166=2;
+                    	                int LA166_0 = input.LA(1);
+
+                    	                if ( (LA166_0==110) ) {
+                    	                    alt166=1;
+                    	                }
+
+
+                    	                switch (alt166) {
+                    	            	case 1 :
+                    	            	    // InternalTableDSL.g:11538:7: otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    {
+                    	            	    otherlv_11=(Token)match(input,110,FOLLOW_97); if (state.failed) return current;
+                    	            	    if ( state.backtracking==0 ) {
+
+                    	            	      							newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0());
+                    	            	      						
+                    	            	    }
+                    	            	    // InternalTableDSL.g:11542:7: ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) )
+                    	            	    // InternalTableDSL.g:11543:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    {
+                    	            	    // InternalTableDSL.g:11543:8: (lv_arguments_12_0= ruleJvmArgumentTypeReference )
+                    	            	    // InternalTableDSL.g:11544:9: lv_arguments_12_0= ruleJvmArgumentTypeReference
+                    	            	    {
+                    	            	    if ( state.backtracking==0 ) {
+
+                    	            	      									newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0());
+                    	            	      								
+                    	            	    }
+                    	            	    pushFollow(FOLLOW_98);
+                    	            	    lv_arguments_12_0=ruleJvmArgumentTypeReference();
+
+                    	            	    state._fsp--;
+                    	            	    if (state.failed) return current;
+                    	            	    if ( state.backtracking==0 ) {
+
+                    	            	      									if (current==null) {
+                    	            	      										current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+                    	            	      									}
+                    	            	      									add(
+                    	            	      										current,
+                    	            	      										"arguments",
+                    	            	      										lv_arguments_12_0,
+                    	            	      										"org.eclipse.xtext.xbase.Xtype.JvmArgumentTypeReference");
+                    	            	      									afterParserOrEnumRuleCall();
+                    	            	      								
+                    	            	    }
+
+                    	            	    }
+
+
+                    	            	    }
+
+
+                    	            	    }
+                    	            	    break;
+
+                    	            	default :
+                    	            	    break loop166;
+                    	                }
+                    	            } while (true);
+
+                    	            otherlv_13=(Token)match(input,120,FOLLOW_44); if (state.failed) return current;
+                    	            if ( state.backtracking==0 ) {
+
+                    	              						newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3());
+                    	              					
+                    	            }
+
+                    	            }
+                    	            break;
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop168;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleJvmParameterizedTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmArgumentTypeReference"
+    // InternalTableDSL.g:11573:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
+    public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleJvmArgumentTypeReference = null;
+
+
+        try {
+            // InternalTableDSL.g:11573:65: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
+            // InternalTableDSL.g:11574:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleJvmArgumentTypeReference=ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleJvmArgumentTypeReference; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleJvmArgumentTypeReference"
+
+
+    // $ANTLR start "ruleJvmArgumentTypeReference"
+    // InternalTableDSL.g:11580:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
+    public final EObject ruleJvmArgumentTypeReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_JvmTypeReference_0 = null;
+
+        EObject this_JvmWildcardTypeReference_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11586:2: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
+            // InternalTableDSL.g:11587:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            {
+            // InternalTableDSL.g:11587:2: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+            int alt170=2;
+            int LA170_0 = input.LA(1);
+
+            if ( (LA170_0==RULE_ID||LA170_0==93||LA170_0==132) ) {
+                alt170=1;
+            }
+            else if ( (LA170_0==168) ) {
+                alt170=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 170, 0, input);
+
+                throw nvae;
+            }
+            switch (alt170) {
+                case 1 :
+                    // InternalTableDSL.g:11588:3: this_JvmTypeReference_0= ruleJvmTypeReference
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_JvmTypeReference_0=ruleJvmTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_JvmTypeReference_0;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:11597:3: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_JvmWildcardTypeReference_1=ruleJvmWildcardTypeReference();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_JvmWildcardTypeReference_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleJvmArgumentTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmWildcardTypeReference"
+    // InternalTableDSL.g:11609:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
+    public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleJvmWildcardTypeReference = null;
+
+
+        try {
+            // InternalTableDSL.g:11609:65: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
+            // InternalTableDSL.g:11610:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleJvmWildcardTypeReference=ruleJvmWildcardTypeReference();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleJvmWildcardTypeReference; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleJvmWildcardTypeReference"
+
+
+    // $ANTLR start "ruleJvmWildcardTypeReference"
+    // InternalTableDSL.g:11616:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) ;
+    public final EObject ruleJvmWildcardTypeReference() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        EObject lv_constraints_2_0 = null;
+
+        EObject lv_constraints_3_0 = null;
+
+        EObject lv_constraints_4_0 = null;
+
+        EObject lv_constraints_5_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11622:2: ( ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? ) )
+            // InternalTableDSL.g:11623:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
+            {
+            // InternalTableDSL.g:11623:2: ( () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )? )
+            // InternalTableDSL.g:11624:3: () otherlv_1= '?' ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            {
+            // InternalTableDSL.g:11624:3: ()
+            // InternalTableDSL.g:11625:4: 
+            {
+            if ( state.backtracking==0 ) {
+
+              				current = forceCreateModelElement(
+              					grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0(),
+              					current);
+              			
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,168,FOLLOW_139); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
+              		
+            }
+            // InternalTableDSL.g:11635:3: ( ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* ) | ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* ) )?
+            int alt173=3;
+            int LA173_0 = input.LA(1);
+
+            if ( (LA173_0==155) ) {
+                alt173=1;
+            }
+            else if ( (LA173_0==156) ) {
+                alt173=2;
+            }
+            switch (alt173) {
+                case 1 :
+                    // InternalTableDSL.g:11636:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    {
+                    // InternalTableDSL.g:11636:4: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )* )
+                    // InternalTableDSL.g:11637:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) ) ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    {
+                    // InternalTableDSL.g:11637:5: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
+                    // InternalTableDSL.g:11638:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    {
+                    // InternalTableDSL.g:11638:6: (lv_constraints_2_0= ruleJvmUpperBound )
+                    // InternalTableDSL.g:11639:7: lv_constraints_2_0= ruleJvmUpperBound
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0());
+                      						
+                    }
+                    pushFollow(FOLLOW_140);
+                    lv_constraints_2_0=ruleJvmUpperBound();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+                      							}
+                      							add(
+                      								current,
+                      								"constraints",
+                      								lv_constraints_2_0,
+                      								"org.eclipse.xtext.xbase.Xtype.JvmUpperBound");
+                      							afterParserOrEnumRuleCall();
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:11656:5: ( (lv_constraints_3_0= ruleJvmUpperBoundAnded ) )*
+                    loop171:
+                    do {
+                        int alt171=2;
+                        int LA171_0 = input.LA(1);
+
+                        if ( (LA171_0==169) ) {
+                            alt171=1;
+                        }
+
+
+                        switch (alt171) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:11657:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    {
+                    	    // InternalTableDSL.g:11657:6: (lv_constraints_3_0= ruleJvmUpperBoundAnded )
+                    	    // InternalTableDSL.g:11658:7: lv_constraints_3_0= ruleJvmUpperBoundAnded
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_140);
+                    	    lv_constraints_3_0=ruleJvmUpperBoundAnded();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+                    	      							}
+                    	      							add(
+                    	      								current,
+                    	      								"constraints",
+                    	      								lv_constraints_3_0,
+                    	      								"org.eclipse.xtext.xbase.Xtype.JvmUpperBoundAnded");
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop171;
+                        }
+                    } while (true);
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:11677:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    {
+                    // InternalTableDSL.g:11677:4: ( ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )* )
+                    // InternalTableDSL.g:11678:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) ) ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    {
+                    // InternalTableDSL.g:11678:5: ( (lv_constraints_4_0= ruleJvmLowerBound ) )
+                    // InternalTableDSL.g:11679:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    {
+                    // InternalTableDSL.g:11679:6: (lv_constraints_4_0= ruleJvmLowerBound )
+                    // InternalTableDSL.g:11680:7: lv_constraints_4_0= ruleJvmLowerBound
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0());
+                      						
+                    }
+                    pushFollow(FOLLOW_140);
+                    lv_constraints_4_0=ruleJvmLowerBound();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      							if (current==null) {
+                      								current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+                      							}
+                      							add(
+                      								current,
+                      								"constraints",
+                      								lv_constraints_4_0,
+                      								"org.eclipse.xtext.xbase.Xtype.JvmLowerBound");
+                      							afterParserOrEnumRuleCall();
+                      						
+                    }
+
+                    }
+
+
+                    }
+
+                    // InternalTableDSL.g:11697:5: ( (lv_constraints_5_0= ruleJvmLowerBoundAnded ) )*
+                    loop172:
+                    do {
+                        int alt172=2;
+                        int LA172_0 = input.LA(1);
+
+                        if ( (LA172_0==169) ) {
+                            alt172=1;
+                        }
+
+
+                        switch (alt172) {
+                    	case 1 :
+                    	    // InternalTableDSL.g:11698:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    {
+                    	    // InternalTableDSL.g:11698:6: (lv_constraints_5_0= ruleJvmLowerBoundAnded )
+                    	    // InternalTableDSL.g:11699:7: lv_constraints_5_0= ruleJvmLowerBoundAnded
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0());
+                    	      						
+                    	    }
+                    	    pushFollow(FOLLOW_140);
+                    	    lv_constraints_5_0=ruleJvmLowerBoundAnded();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      							if (current==null) {
+                    	      								current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+                    	      							}
+                    	      							add(
+                    	      								current,
+                    	      								"constraints",
+                    	      								lv_constraints_5_0,
+                    	      								"org.eclipse.xtext.xbase.Xtype.JvmLowerBoundAnded");
+                    	      							afterParserOrEnumRuleCall();
+                    	      						
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop172;
+                        }
+                    } while (true);
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleJvmWildcardTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmUpperBound"
+    // InternalTableDSL.g:11722:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
+    public final EObject entryRuleJvmUpperBound() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleJvmUpperBound = null;
+
+
+        try {
+            // InternalTableDSL.g:11722:54: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
+            // InternalTableDSL.g:11723:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getJvmUpperBoundRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleJvmUpperBound=ruleJvmUpperBound();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleJvmUpperBound; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleJvmUpperBound"
+
+
+    // $ANTLR start "ruleJvmUpperBound"
+    // InternalTableDSL.g:11729:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    public final EObject ruleJvmUpperBound() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        EObject lv_typeReference_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11735:2: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalTableDSL.g:11736:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            {
+            // InternalTableDSL.g:11736:2: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalTableDSL.g:11737:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            {
+            otherlv_0=(Token)match(input,155,FOLLOW_85); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
+              		
+            }
+            // InternalTableDSL.g:11741:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalTableDSL.g:11742:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:11742:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalTableDSL.g:11743:5: lv_typeReference_1_0= ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_typeReference_1_0=ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getJvmUpperBoundRule());
+              					}
+              					set(
+              						current,
+              						"typeReference",
+              						lv_typeReference_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleJvmUpperBound"
+
+
+    // $ANTLR start "entryRuleJvmUpperBoundAnded"
+    // InternalTableDSL.g:11764:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
+    public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleJvmUpperBoundAnded = null;
+
+
+        try {
+            // InternalTableDSL.g:11764:59: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
+            // InternalTableDSL.g:11765:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleJvmUpperBoundAnded=ruleJvmUpperBoundAnded();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleJvmUpperBoundAnded; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleJvmUpperBoundAnded"
+
+
+    // $ANTLR start "ruleJvmUpperBoundAnded"
+    // InternalTableDSL.g:11771:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    public final EObject ruleJvmUpperBoundAnded() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        EObject lv_typeReference_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11777:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalTableDSL.g:11778:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            {
+            // InternalTableDSL.g:11778:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalTableDSL.g:11779:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            {
+            otherlv_0=(Token)match(input,169,FOLLOW_85); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
+              		
+            }
+            // InternalTableDSL.g:11783:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalTableDSL.g:11784:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:11784:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalTableDSL.g:11785:5: lv_typeReference_1_0= ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_typeReference_1_0=ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getJvmUpperBoundAndedRule());
+              					}
+              					set(
+              						current,
+              						"typeReference",
+              						lv_typeReference_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleJvmUpperBoundAnded"
+
+
+    // $ANTLR start "entryRuleJvmLowerBound"
+    // InternalTableDSL.g:11806:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
+    public final EObject entryRuleJvmLowerBound() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleJvmLowerBound = null;
+
+
+        try {
+            // InternalTableDSL.g:11806:54: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
+            // InternalTableDSL.g:11807:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getJvmLowerBoundRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleJvmLowerBound=ruleJvmLowerBound();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleJvmLowerBound; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleJvmLowerBound"
+
+
+    // $ANTLR start "ruleJvmLowerBound"
+    // InternalTableDSL.g:11813:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    public final EObject ruleJvmLowerBound() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        EObject lv_typeReference_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11819:2: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalTableDSL.g:11820:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            {
+            // InternalTableDSL.g:11820:2: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalTableDSL.g:11821:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            {
+            otherlv_0=(Token)match(input,156,FOLLOW_85); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
+              		
+            }
+            // InternalTableDSL.g:11825:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalTableDSL.g:11826:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:11826:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalTableDSL.g:11827:5: lv_typeReference_1_0= ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_typeReference_1_0=ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getJvmLowerBoundRule());
+              					}
+              					set(
+              						current,
+              						"typeReference",
+              						lv_typeReference_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleJvmLowerBound"
+
+
+    // $ANTLR start "entryRuleJvmLowerBoundAnded"
+    // InternalTableDSL.g:11848:1: entryRuleJvmLowerBoundAnded returns [EObject current=null] : iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF ;
+    public final EObject entryRuleJvmLowerBoundAnded() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleJvmLowerBoundAnded = null;
+
+
+        try {
+            // InternalTableDSL.g:11848:59: (iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF )
+            // InternalTableDSL.g:11849:2: iv_ruleJvmLowerBoundAnded= ruleJvmLowerBoundAnded EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleJvmLowerBoundAnded=ruleJvmLowerBoundAnded();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleJvmLowerBoundAnded; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleJvmLowerBoundAnded"
+
+
+    // $ANTLR start "ruleJvmLowerBoundAnded"
+    // InternalTableDSL.g:11855:1: ruleJvmLowerBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+    public final EObject ruleJvmLowerBoundAnded() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        EObject lv_typeReference_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11861:2: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+            // InternalTableDSL.g:11862:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            {
+            // InternalTableDSL.g:11862:2: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+            // InternalTableDSL.g:11863:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            {
+            otherlv_0=(Token)match(input,169,FOLLOW_85); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0());
+              		
+            }
+            // InternalTableDSL.g:11867:3: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+            // InternalTableDSL.g:11868:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            {
+            // InternalTableDSL.g:11868:4: (lv_typeReference_1_0= ruleJvmTypeReference )
+            // InternalTableDSL.g:11869:5: lv_typeReference_1_0= ruleJvmTypeReference
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+              				
+            }
+            pushFollow(FOLLOW_2);
+            lv_typeReference_1_0=ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getJvmLowerBoundAndedRule());
+              					}
+              					set(
+              						current,
+              						"typeReference",
+              						lv_typeReference_1_0,
+              						"org.eclipse.xtext.xbase.Xtype.JvmTypeReference");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleJvmLowerBoundAnded"
+
+
+    // $ANTLR start "entryRuleQualifiedNameWithWildcard"
+    // InternalTableDSL.g:11890:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
+    public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleQualifiedNameWithWildcard = null;
+
+
+        try {
+            // InternalTableDSL.g:11890:65: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
+            // InternalTableDSL.g:11891:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleQualifiedNameWithWildcard=ruleQualifiedNameWithWildcard();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleQualifiedNameWithWildcard.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleQualifiedNameWithWildcard"
+
+
+    // $ANTLR start "ruleQualifiedNameWithWildcard"
+    // InternalTableDSL.g:11897:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
+    public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_QualifiedName_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11903:2: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
+            // InternalTableDSL.g:11904:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            {
+            // InternalTableDSL.g:11904:2: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+            // InternalTableDSL.g:11905:3: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
+            {
+            if ( state.backtracking==0 ) {
+
+              			newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
+              		
+            }
+            pushFollow(FOLLOW_141);
+            this_QualifiedName_0=ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current.merge(this_QualifiedName_0);
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              			afterParserOrEnumRuleCall();
+              		
+            }
+            kw=(Token)match(input,78,FOLLOW_142); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current.merge(kw);
+              			newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
+              		
+            }
+            kw=(Token)match(input,106,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			current.merge(kw);
+              			newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleQualifiedNameWithWildcard"
+
+
+    // $ANTLR start "entryRuleValidID"
+    // InternalTableDSL.g:11929:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
+    public final String entryRuleValidID() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleValidID = null;
+
+
+        try {
+            // InternalTableDSL.g:11929:47: (iv_ruleValidID= ruleValidID EOF )
+            // InternalTableDSL.g:11930:2: iv_ruleValidID= ruleValidID EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getValidIDRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleValidID=ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleValidID.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleValidID"
+
+
+    // $ANTLR start "ruleValidID"
+    // InternalTableDSL.g:11936:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_ID_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11942:2: (this_ID_0= RULE_ID )
+            // InternalTableDSL.g:11943:2: this_ID_0= RULE_ID
+            {
+            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_ID_0);
+              	
+            }
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleValidID"
+
+
+    // $ANTLR start "entryRuleXImportSection"
+    // InternalTableDSL.g:11953:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
+    public final EObject entryRuleXImportSection() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXImportSection = null;
+
+
+        try {
+            // InternalTableDSL.g:11953:55: (iv_ruleXImportSection= ruleXImportSection EOF )
+            // InternalTableDSL.g:11954:2: iv_ruleXImportSection= ruleXImportSection EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXImportSectionRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleXImportSection=ruleXImportSection();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXImportSection; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXImportSection"
+
+
+    // $ANTLR start "ruleXImportSection"
+    // InternalTableDSL.g:11960:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
+    public final EObject ruleXImportSection() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_importDeclarations_0_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:11966:2: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
+            // InternalTableDSL.g:11967:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            {
+            // InternalTableDSL.g:11967:2: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+            int cnt174=0;
+            loop174:
+            do {
+                int alt174=2;
+                int LA174_0 = input.LA(1);
+
+                if ( (LA174_0==103) ) {
+                    alt174=1;
+                }
+
+
+                switch (alt174) {
+            	case 1 :
+            	    // InternalTableDSL.g:11968:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    {
+            	    // InternalTableDSL.g:11968:3: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+            	    // InternalTableDSL.g:11969:4: lv_importDeclarations_0_0= ruleXImportDeclaration
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      				newCompositeNode(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0());
+            	      			
+            	    }
+            	    pushFollow(FOLLOW_143);
+            	    lv_importDeclarations_0_0=ruleXImportDeclaration();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      				if (current==null) {
+            	      					current = createModelElementForParent(grammarAccess.getXImportSectionRule());
+            	      				}
+            	      				add(
+            	      					current,
+            	      					"importDeclarations",
+            	      					lv_importDeclarations_0_0,
+            	      					"org.eclipse.osbp.xtext.oxtype.OXtype.XImportDeclaration");
+            	      				afterParserOrEnumRuleCall();
+            	      			
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt174 >= 1 ) break loop174;
+            	    if (state.backtracking>0) {state.failed=true; return current;}
+                        EarlyExitException eee =
+                            new EarlyExitException(174, input);
+                        throw eee;
+                }
+                cnt174++;
+            } while (true);
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXImportSection"
+
+
+    // $ANTLR start "entryRuleQualifiedNameInStaticImport"
+    // InternalTableDSL.g:11989:1: entryRuleQualifiedNameInStaticImport returns [String current=null] : iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF ;
+    public final String entryRuleQualifiedNameInStaticImport() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleQualifiedNameInStaticImport = null;
+
+
+        try {
+            // InternalTableDSL.g:11989:67: (iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF )
+            // InternalTableDSL.g:11990:2: iv_ruleQualifiedNameInStaticImport= ruleQualifiedNameInStaticImport EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleQualifiedNameInStaticImport=ruleQualifiedNameInStaticImport();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleQualifiedNameInStaticImport.getText(); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleQualifiedNameInStaticImport"
+
+
+    // $ANTLR start "ruleQualifiedNameInStaticImport"
+    // InternalTableDSL.g:11996:1: ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID kw= '.' )+ ;
+    public final AntlrDatatypeRuleToken ruleQualifiedNameInStaticImport() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_ValidID_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:12002:2: ( (this_ValidID_0= ruleValidID kw= '.' )+ )
+            // InternalTableDSL.g:12003:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            {
+            // InternalTableDSL.g:12003:2: (this_ValidID_0= ruleValidID kw= '.' )+
+            int cnt175=0;
+            loop175:
+            do {
+                int alt175=2;
+                int LA175_0 = input.LA(1);
+
+                if ( (LA175_0==RULE_ID) ) {
+                    int LA175_2 = input.LA(2);
+
+                    if ( (LA175_2==78) ) {
+                        alt175=1;
+                    }
+
+
+                }
+
+
+                switch (alt175) {
+            	case 1 :
+            	    // InternalTableDSL.g:12004:3: this_ValidID_0= ruleValidID kw= '.'
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0());
+            	      		
+            	    }
+            	    pushFollow(FOLLOW_141);
+            	    this_ValidID_0=ruleValidID();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      			current.merge(this_ValidID_0);
+            	      		
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      			afterParserOrEnumRuleCall();
+            	      		
+            	    }
+            	    kw=(Token)match(input,78,FOLLOW_144); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      			current.merge(kw);
+            	      			newLeafNode(kw, grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1());
+            	      		
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt175 >= 1 ) break loop175;
+            	    if (state.backtracking>0) {state.failed=true; return current;}
+                        EarlyExitException eee =
+                            new EarlyExitException(175, input);
+                        throw eee;
+                }
+                cnt175++;
+            } while (true);
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleQualifiedNameInStaticImport"
+
+
+    // $ANTLR start "ruleStyleCompare"
+    // InternalTableDSL.g:12023:1: ruleStyleCompare returns [Enumerator current=null] : ( (enumLiteral_0= 'equal' ) | (enumLiteral_1= 'greater equal' ) | (enumLiteral_2= 'greater than' ) | (enumLiteral_3= 'lower equal' ) | (enumLiteral_4= 'lower than' ) | (enumLiteral_5= 'not equal' ) ) ;
+    public final Enumerator ruleStyleCompare() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+        Token enumLiteral_4=null;
+        Token enumLiteral_5=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:12029:2: ( ( (enumLiteral_0= 'equal' ) | (enumLiteral_1= 'greater equal' ) | (enumLiteral_2= 'greater than' ) | (enumLiteral_3= 'lower equal' ) | (enumLiteral_4= 'lower than' ) | (enumLiteral_5= 'not equal' ) ) )
+            // InternalTableDSL.g:12030:2: ( (enumLiteral_0= 'equal' ) | (enumLiteral_1= 'greater equal' ) | (enumLiteral_2= 'greater than' ) | (enumLiteral_3= 'lower equal' ) | (enumLiteral_4= 'lower than' ) | (enumLiteral_5= 'not equal' ) )
+            {
+            // InternalTableDSL.g:12030:2: ( (enumLiteral_0= 'equal' ) | (enumLiteral_1= 'greater equal' ) | (enumLiteral_2= 'greater than' ) | (enumLiteral_3= 'lower equal' ) | (enumLiteral_4= 'lower than' ) | (enumLiteral_5= 'not equal' ) )
+            int alt176=6;
+            switch ( input.LA(1) ) {
+            case 170:
+                {
+                alt176=1;
+                }
+                break;
+            case 171:
+                {
+                alt176=2;
+                }
+                break;
+            case 172:
+                {
+                alt176=3;
+                }
+                break;
+            case 173:
+                {
+                alt176=4;
+                }
+                break;
+            case 174:
+                {
+                alt176=5;
+                }
+                break;
+            case 175:
+                {
+                alt176=6;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 176, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt176) {
+                case 1 :
+                    // InternalTableDSL.g:12031:3: (enumLiteral_0= 'equal' )
+                    {
+                    // InternalTableDSL.g:12031:3: (enumLiteral_0= 'equal' )
+                    // InternalTableDSL.g:12032:4: enumLiteral_0= 'equal'
+                    {
+                    enumLiteral_0=(Token)match(input,170,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getStyleCompareAccess().getEqualEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_0, grammarAccess.getStyleCompareAccess().getEqualEnumLiteralDeclaration_0());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:12039:3: (enumLiteral_1= 'greater equal' )
+                    {
+                    // InternalTableDSL.g:12039:3: (enumLiteral_1= 'greater equal' )
+                    // InternalTableDSL.g:12040:4: enumLiteral_1= 'greater equal'
+                    {
+                    enumLiteral_1=(Token)match(input,171,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getStyleCompareAccess().getGreaterEqualEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_1, grammarAccess.getStyleCompareAccess().getGreaterEqualEnumLiteralDeclaration_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:12047:3: (enumLiteral_2= 'greater than' )
+                    {
+                    // InternalTableDSL.g:12047:3: (enumLiteral_2= 'greater than' )
+                    // InternalTableDSL.g:12048:4: enumLiteral_2= 'greater than'
+                    {
+                    enumLiteral_2=(Token)match(input,172,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getStyleCompareAccess().getGreaterThanEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_2, grammarAccess.getStyleCompareAccess().getGreaterThanEnumLiteralDeclaration_2());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:12055:3: (enumLiteral_3= 'lower equal' )
+                    {
+                    // InternalTableDSL.g:12055:3: (enumLiteral_3= 'lower equal' )
+                    // InternalTableDSL.g:12056:4: enumLiteral_3= 'lower equal'
+                    {
+                    enumLiteral_3=(Token)match(input,173,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getStyleCompareAccess().getLowerEqualEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_3, grammarAccess.getStyleCompareAccess().getLowerEqualEnumLiteralDeclaration_3());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:12063:3: (enumLiteral_4= 'lower than' )
+                    {
+                    // InternalTableDSL.g:12063:3: (enumLiteral_4= 'lower than' )
+                    // InternalTableDSL.g:12064:4: enumLiteral_4= 'lower than'
+                    {
+                    enumLiteral_4=(Token)match(input,174,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getStyleCompareAccess().getLowerThanEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_4, grammarAccess.getStyleCompareAccess().getLowerThanEnumLiteralDeclaration_4());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:12071:3: (enumLiteral_5= 'not equal' )
+                    {
+                    // InternalTableDSL.g:12071:3: (enumLiteral_5= 'not equal' )
+                    // InternalTableDSL.g:12072:4: enumLiteral_5= 'not equal'
+                    {
+                    enumLiteral_5=(Token)match(input,175,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getStyleCompareAccess().getNotEqualEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_5, grammarAccess.getStyleCompareAccess().getNotEqualEnumLiteralDeclaration_5());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStyleCompare"
+
+
+    // $ANTLR start "ruleTrendIconEnum"
+    // InternalTableDSL.g:12082:1: ruleTrendIconEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'rising' ) | (enumLiteral_1= 'bad-rising' ) | (enumLiteral_2= 'sloping' ) | (enumLiteral_3= 'good-sloping' ) | (enumLiteral_4= 'stagnating' ) ) ;
+    public final Enumerator ruleTrendIconEnum() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+        Token enumLiteral_4=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:12088:2: ( ( (enumLiteral_0= 'rising' ) | (enumLiteral_1= 'bad-rising' ) | (enumLiteral_2= 'sloping' ) | (enumLiteral_3= 'good-sloping' ) | (enumLiteral_4= 'stagnating' ) ) )
+            // InternalTableDSL.g:12089:2: ( (enumLiteral_0= 'rising' ) | (enumLiteral_1= 'bad-rising' ) | (enumLiteral_2= 'sloping' ) | (enumLiteral_3= 'good-sloping' ) | (enumLiteral_4= 'stagnating' ) )
+            {
+            // InternalTableDSL.g:12089:2: ( (enumLiteral_0= 'rising' ) | (enumLiteral_1= 'bad-rising' ) | (enumLiteral_2= 'sloping' ) | (enumLiteral_3= 'good-sloping' ) | (enumLiteral_4= 'stagnating' ) )
+            int alt177=5;
+            switch ( input.LA(1) ) {
+            case 176:
+                {
+                alt177=1;
+                }
+                break;
+            case 177:
+                {
+                alt177=2;
+                }
+                break;
+            case 178:
+                {
+                alt177=3;
+                }
+                break;
+            case 179:
+                {
+                alt177=4;
+                }
+                break;
+            case 180:
+                {
+                alt177=5;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 177, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt177) {
+                case 1 :
+                    // InternalTableDSL.g:12090:3: (enumLiteral_0= 'rising' )
+                    {
+                    // InternalTableDSL.g:12090:3: (enumLiteral_0= 'rising' )
+                    // InternalTableDSL.g:12091:4: enumLiteral_0= 'rising'
+                    {
+                    enumLiteral_0=(Token)match(input,176,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getTrendIconEnumAccess().getRISINGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_0, grammarAccess.getTrendIconEnumAccess().getRISINGEnumLiteralDeclaration_0());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:12098:3: (enumLiteral_1= 'bad-rising' )
+                    {
+                    // InternalTableDSL.g:12098:3: (enumLiteral_1= 'bad-rising' )
+                    // InternalTableDSL.g:12099:4: enumLiteral_1= 'bad-rising'
+                    {
+                    enumLiteral_1=(Token)match(input,177,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getTrendIconEnumAccess().getBADRISINGEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_1, grammarAccess.getTrendIconEnumAccess().getBADRISINGEnumLiteralDeclaration_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:12106:3: (enumLiteral_2= 'sloping' )
+                    {
+                    // InternalTableDSL.g:12106:3: (enumLiteral_2= 'sloping' )
+                    // InternalTableDSL.g:12107:4: enumLiteral_2= 'sloping'
+                    {
+                    enumLiteral_2=(Token)match(input,178,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getTrendIconEnumAccess().getSLOPINGEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_2, grammarAccess.getTrendIconEnumAccess().getSLOPINGEnumLiteralDeclaration_2());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:12114:3: (enumLiteral_3= 'good-sloping' )
+                    {
+                    // InternalTableDSL.g:12114:3: (enumLiteral_3= 'good-sloping' )
+                    // InternalTableDSL.g:12115:4: enumLiteral_3= 'good-sloping'
+                    {
+                    enumLiteral_3=(Token)match(input,179,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getTrendIconEnumAccess().getGOODSLOPINGEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_3, grammarAccess.getTrendIconEnumAccess().getGOODSLOPINGEnumLiteralDeclaration_3());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:12122:3: (enumLiteral_4= 'stagnating' )
+                    {
+                    // InternalTableDSL.g:12122:3: (enumLiteral_4= 'stagnating' )
+                    // InternalTableDSL.g:12123:4: enumLiteral_4= 'stagnating'
+                    {
+                    enumLiteral_4=(Token)match(input,180,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getTrendIconEnumAccess().getSTAGNATINGEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_4, grammarAccess.getTrendIconEnumAccess().getSTAGNATINGEnumLiteralDeclaration_4());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTrendIconEnum"
+
+
+    // $ANTLR start "ruleRowHeaderMode"
+    // InternalTableDSL.g:12133:1: ruleRowHeaderMode returns [Enumerator current=null] : ( (enumLiteral_0= 'hidden' ) | (enumLiteral_1= 'explicit' ) | (enumLiteral_2= 'indexed' ) ) ;
+    public final Enumerator ruleRowHeaderMode() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:12139:2: ( ( (enumLiteral_0= 'hidden' ) | (enumLiteral_1= 'explicit' ) | (enumLiteral_2= 'indexed' ) ) )
+            // InternalTableDSL.g:12140:2: ( (enumLiteral_0= 'hidden' ) | (enumLiteral_1= 'explicit' ) | (enumLiteral_2= 'indexed' ) )
+            {
+            // InternalTableDSL.g:12140:2: ( (enumLiteral_0= 'hidden' ) | (enumLiteral_1= 'explicit' ) | (enumLiteral_2= 'indexed' ) )
+            int alt178=3;
+            switch ( input.LA(1) ) {
+            case 181:
+                {
+                alt178=1;
+                }
+                break;
+            case 182:
+                {
+                alt178=2;
+                }
+                break;
+            case 183:
+                {
+                alt178=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 178, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt178) {
+                case 1 :
+                    // InternalTableDSL.g:12141:3: (enumLiteral_0= 'hidden' )
+                    {
+                    // InternalTableDSL.g:12141:3: (enumLiteral_0= 'hidden' )
+                    // InternalTableDSL.g:12142:4: enumLiteral_0= 'hidden'
+                    {
+                    enumLiteral_0=(Token)match(input,181,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getRowHeaderModeAccess().getHIDDENEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_0, grammarAccess.getRowHeaderModeAccess().getHIDDENEnumLiteralDeclaration_0());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:12149:3: (enumLiteral_1= 'explicit' )
+                    {
+                    // InternalTableDSL.g:12149:3: (enumLiteral_1= 'explicit' )
+                    // InternalTableDSL.g:12150:4: enumLiteral_1= 'explicit'
+                    {
+                    enumLiteral_1=(Token)match(input,182,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getRowHeaderModeAccess().getEXPLICIT_DEFAULTS_IDEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_1, grammarAccess.getRowHeaderModeAccess().getEXPLICIT_DEFAULTS_IDEnumLiteralDeclaration_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:12157:3: (enumLiteral_2= 'indexed' )
+                    {
+                    // InternalTableDSL.g:12157:3: (enumLiteral_2= 'indexed' )
+                    // InternalTableDSL.g:12158:4: enumLiteral_2= 'indexed'
+                    {
+                    enumLiteral_2=(Token)match(input,183,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getRowHeaderModeAccess().getINDEXEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_2, grammarAccess.getRowHeaderModeAccess().getINDEXEnumLiteralDeclaration_2());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleRowHeaderMode"
+
+
+    // $ANTLR start "ruleAxisEnum"
+    // InternalTableDSL.g:12168:1: ruleAxisEnum returns [Enumerator current=null] : ( (enumLiteral_0= 'default' ) | (enumLiteral_1= 'columns' ) | (enumLiteral_2= 'rows' ) | (enumLiteral_3= 'pages' ) | (enumLiteral_4= 'sections' ) | (enumLiteral_5= 'chapters' ) ) ;
+    public final Enumerator ruleAxisEnum() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+        Token enumLiteral_4=null;
+        Token enumLiteral_5=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTableDSL.g:12174:2: ( ( (enumLiteral_0= 'default' ) | (enumLiteral_1= 'columns' ) | (enumLiteral_2= 'rows' ) | (enumLiteral_3= 'pages' ) | (enumLiteral_4= 'sections' ) | (enumLiteral_5= 'chapters' ) ) )
+            // InternalTableDSL.g:12175:2: ( (enumLiteral_0= 'default' ) | (enumLiteral_1= 'columns' ) | (enumLiteral_2= 'rows' ) | (enumLiteral_3= 'pages' ) | (enumLiteral_4= 'sections' ) | (enumLiteral_5= 'chapters' ) )
+            {
+            // InternalTableDSL.g:12175:2: ( (enumLiteral_0= 'default' ) | (enumLiteral_1= 'columns' ) | (enumLiteral_2= 'rows' ) | (enumLiteral_3= 'pages' ) | (enumLiteral_4= 'sections' ) | (enumLiteral_5= 'chapters' ) )
+            int alt179=6;
+            switch ( input.LA(1) ) {
+            case 148:
+                {
+                alt179=1;
+                }
+                break;
+            case 184:
+                {
+                alt179=2;
+                }
+                break;
+            case 185:
+                {
+                alt179=3;
+                }
+                break;
+            case 186:
+                {
+                alt179=4;
+                }
+                break;
+            case 187:
+                {
+                alt179=5;
+                }
+                break;
+            case 188:
+                {
+                alt179=6;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 179, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt179) {
+                case 1 :
+                    // InternalTableDSL.g:12176:3: (enumLiteral_0= 'default' )
+                    {
+                    // InternalTableDSL.g:12176:3: (enumLiteral_0= 'default' )
+                    // InternalTableDSL.g:12177:4: enumLiteral_0= 'default'
+                    {
+                    enumLiteral_0=(Token)match(input,148,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getAxisEnumAccess().getDEFAULTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_0, grammarAccess.getAxisEnumAccess().getDEFAULTEnumLiteralDeclaration_0());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTableDSL.g:12184:3: (enumLiteral_1= 'columns' )
+                    {
+                    // InternalTableDSL.g:12184:3: (enumLiteral_1= 'columns' )
+                    // InternalTableDSL.g:12185:4: enumLiteral_1= 'columns'
+                    {
+                    enumLiteral_1=(Token)match(input,184,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getAxisEnumAccess().getCOLUMNSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_1, grammarAccess.getAxisEnumAccess().getCOLUMNSEnumLiteralDeclaration_1());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTableDSL.g:12192:3: (enumLiteral_2= 'rows' )
+                    {
+                    // InternalTableDSL.g:12192:3: (enumLiteral_2= 'rows' )
+                    // InternalTableDSL.g:12193:4: enumLiteral_2= 'rows'
+                    {
+                    enumLiteral_2=(Token)match(input,185,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getAxisEnumAccess().getROWSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_2, grammarAccess.getAxisEnumAccess().getROWSEnumLiteralDeclaration_2());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTableDSL.g:12200:3: (enumLiteral_3= 'pages' )
+                    {
+                    // InternalTableDSL.g:12200:3: (enumLiteral_3= 'pages' )
+                    // InternalTableDSL.g:12201:4: enumLiteral_3= 'pages'
+                    {
+                    enumLiteral_3=(Token)match(input,186,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getAxisEnumAccess().getPAGESEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_3, grammarAccess.getAxisEnumAccess().getPAGESEnumLiteralDeclaration_3());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTableDSL.g:12208:3: (enumLiteral_4= 'sections' )
+                    {
+                    // InternalTableDSL.g:12208:3: (enumLiteral_4= 'sections' )
+                    // InternalTableDSL.g:12209:4: enumLiteral_4= 'sections'
+                    {
+                    enumLiteral_4=(Token)match(input,187,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getAxisEnumAccess().getSECTIONSEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_4, grammarAccess.getAxisEnumAccess().getSECTIONSEnumLiteralDeclaration_4());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTableDSL.g:12216:3: (enumLiteral_5= 'chapters' )
+                    {
+                    // InternalTableDSL.g:12216:3: (enumLiteral_5= 'chapters' )
+                    // InternalTableDSL.g:12217:4: enumLiteral_5= 'chapters'
+                    {
+                    enumLiteral_5=(Token)match(input,188,FOLLOW_2); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				current = grammarAccess.getAxisEnumAccess().getCHAPTERSEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+                      				newLeafNode(enumLiteral_5, grammarAccess.getAxisEnumAccess().getCHAPTERSEnumLiteralDeclaration_5());
+                      			
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleAxisEnum"
+
+    // $ANTLR start synpred1_InternalTableDSL
+    public final void synpred1_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:5399:5: ( '(' )
+        // InternalTableDSL.g:5399:6: '('
+        {
+        match(input,93,FOLLOW_2); if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred1_InternalTableDSL
+
+    // $ANTLR start synpred2_InternalTableDSL
+    public final void synpred2_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:5408:7: ( ( ( ( ruleValidID ) ) '=' ) )
+        // InternalTableDSL.g:5408:8: ( ( ( ruleValidID ) ) '=' )
+        {
+        // InternalTableDSL.g:5408:8: ( ( ( ruleValidID ) ) '=' )
+        // InternalTableDSL.g:5409:8: ( ( ruleValidID ) ) '='
+        {
+        // InternalTableDSL.g:5409:8: ( ( ruleValidID ) )
+        // InternalTableDSL.g:5410:9: ( ruleValidID )
+        {
+        // InternalTableDSL.g:5410:9: ( ruleValidID )
+        // InternalTableDSL.g:5411:10: ruleValidID
+        {
+        pushFollow(FOLLOW_53);
+        ruleValidID();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+        match(input,92,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred2_InternalTableDSL
+
+    // $ANTLR start synpred5_InternalTableDSL
+    public final void synpred5_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:5588:5: ( ( () '#' '[' ) )
+        // InternalTableDSL.g:5588:6: ( () '#' '[' )
+        {
+        // InternalTableDSL.g:5588:6: ( () '#' '[' )
+        // InternalTableDSL.g:5589:6: () '#' '['
+        {
+        // InternalTableDSL.g:5589:6: ()
+        // InternalTableDSL.g:5590:6: 
+        {
+        }
+
+        match(input,111,FOLLOW_73); if (state.failed) return ;
+        match(input,112,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred5_InternalTableDSL
+
+    // $ANTLR start synpred6_InternalTableDSL
+    public final void synpred6_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:5730:5: ( ( () '#' '[' ) )
+        // InternalTableDSL.g:5730:6: ( () '#' '[' )
+        {
+        // InternalTableDSL.g:5730:6: ( () '#' '[' )
+        // InternalTableDSL.g:5731:6: () '#' '['
+        {
+        // InternalTableDSL.g:5731:6: ()
+        // InternalTableDSL.g:5732:6: 
+        {
+        }
+
+        match(input,111,FOLLOW_73); if (state.failed) return ;
+        match(input,112,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred6_InternalTableDSL
+
+    // $ANTLR start synpred7_InternalTableDSL
+    public final void synpred7_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:5958:6: ( ( () ( ( ruleOpMultiAssign ) ) ) )
+        // InternalTableDSL.g:5958:7: ( () ( ( ruleOpMultiAssign ) ) )
+        {
+        // InternalTableDSL.g:5958:7: ( () ( ( ruleOpMultiAssign ) ) )
+        // InternalTableDSL.g:5959:7: () ( ( ruleOpMultiAssign ) )
+        {
+        // InternalTableDSL.g:5959:7: ()
+        // InternalTableDSL.g:5960:7: 
+        {
+        }
+
+        // InternalTableDSL.g:5961:7: ( ( ruleOpMultiAssign ) )
+        // InternalTableDSL.g:5962:8: ( ruleOpMultiAssign )
+        {
+        // InternalTableDSL.g:5962:8: ( ruleOpMultiAssign )
+        // InternalTableDSL.g:5963:9: ruleOpMultiAssign
+        {
+        pushFollow(FOLLOW_2);
+        ruleOpMultiAssign();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred7_InternalTableDSL
+
+    // $ANTLR start synpred8_InternalTableDSL
+    public final void synpred8_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:6152:5: ( ( () ( ( ruleOpOr ) ) ) )
+        // InternalTableDSL.g:6152:6: ( () ( ( ruleOpOr ) ) )
+        {
+        // InternalTableDSL.g:6152:6: ( () ( ( ruleOpOr ) ) )
+        // InternalTableDSL.g:6153:6: () ( ( ruleOpOr ) )
+        {
+        // InternalTableDSL.g:6153:6: ()
+        // InternalTableDSL.g:6154:6: 
+        {
+        }
+
+        // InternalTableDSL.g:6155:6: ( ( ruleOpOr ) )
+        // InternalTableDSL.g:6156:7: ( ruleOpOr )
+        {
+        // InternalTableDSL.g:6156:7: ( ruleOpOr )
+        // InternalTableDSL.g:6157:8: ruleOpOr
+        {
+        pushFollow(FOLLOW_2);
+        ruleOpOr();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred8_InternalTableDSL
+
+    // $ANTLR start synpred9_InternalTableDSL
+    public final void synpred9_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:6259:5: ( ( () ( ( ruleOpAnd ) ) ) )
+        // InternalTableDSL.g:6259:6: ( () ( ( ruleOpAnd ) ) )
+        {
+        // InternalTableDSL.g:6259:6: ( () ( ( ruleOpAnd ) ) )
+        // InternalTableDSL.g:6260:6: () ( ( ruleOpAnd ) )
+        {
+        // InternalTableDSL.g:6260:6: ()
+        // InternalTableDSL.g:6261:6: 
+        {
+        }
+
+        // InternalTableDSL.g:6262:6: ( ( ruleOpAnd ) )
+        // InternalTableDSL.g:6263:7: ( ruleOpAnd )
+        {
+        // InternalTableDSL.g:6263:7: ( ruleOpAnd )
+        // InternalTableDSL.g:6264:8: ruleOpAnd
+        {
+        pushFollow(FOLLOW_2);
+        ruleOpAnd();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred9_InternalTableDSL
+
+    // $ANTLR start synpred10_InternalTableDSL
+    public final void synpred10_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:6366:5: ( ( () ( ( ruleOpEquality ) ) ) )
+        // InternalTableDSL.g:6366:6: ( () ( ( ruleOpEquality ) ) )
+        {
+        // InternalTableDSL.g:6366:6: ( () ( ( ruleOpEquality ) ) )
+        // InternalTableDSL.g:6367:6: () ( ( ruleOpEquality ) )
+        {
+        // InternalTableDSL.g:6367:6: ()
+        // InternalTableDSL.g:6368:6: 
+        {
+        }
+
+        // InternalTableDSL.g:6369:6: ( ( ruleOpEquality ) )
+        // InternalTableDSL.g:6370:7: ( ruleOpEquality )
+        {
+        // InternalTableDSL.g:6370:7: ( ruleOpEquality )
+        // InternalTableDSL.g:6371:8: ruleOpEquality
+        {
+        pushFollow(FOLLOW_2);
+        ruleOpEquality();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred10_InternalTableDSL
+
+    // $ANTLR start synpred11_InternalTableDSL
+    public final void synpred11_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:6494:6: ( ( () 'instanceof' ) )
+        // InternalTableDSL.g:6494:7: ( () 'instanceof' )
+        {
+        // InternalTableDSL.g:6494:7: ( () 'instanceof' )
+        // InternalTableDSL.g:6495:7: () 'instanceof'
+        {
+        // InternalTableDSL.g:6495:7: ()
+        // InternalTableDSL.g:6496:7: 
+        {
+        }
+
+        match(input,128,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred11_InternalTableDSL
+
+    // $ANTLR start synpred12_InternalTableDSL
+    public final void synpred12_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:6537:6: ( ( () ( ( ruleOpCompare ) ) ) )
+        // InternalTableDSL.g:6537:7: ( () ( ( ruleOpCompare ) ) )
+        {
+        // InternalTableDSL.g:6537:7: ( () ( ( ruleOpCompare ) ) )
+        // InternalTableDSL.g:6538:7: () ( ( ruleOpCompare ) )
+        {
+        // InternalTableDSL.g:6538:7: ()
+        // InternalTableDSL.g:6539:7: 
+        {
+        }
+
+        // InternalTableDSL.g:6540:7: ( ( ruleOpCompare ) )
+        // InternalTableDSL.g:6541:8: ( ruleOpCompare )
+        {
+        // InternalTableDSL.g:6541:8: ( ruleOpCompare )
+        // InternalTableDSL.g:6542:9: ruleOpCompare
+        {
+        pushFollow(FOLLOW_2);
+        ruleOpCompare();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred12_InternalTableDSL
+
+    // $ANTLR start synpred13_InternalTableDSL
+    public final void synpred13_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:6672:5: ( ( () ( ( ruleOpOther ) ) ) )
+        // InternalTableDSL.g:6672:6: ( () ( ( ruleOpOther ) ) )
+        {
+        // InternalTableDSL.g:6672:6: ( () ( ( ruleOpOther ) ) )
+        // InternalTableDSL.g:6673:6: () ( ( ruleOpOther ) )
+        {
+        // InternalTableDSL.g:6673:6: ()
+        // InternalTableDSL.g:6674:6: 
+        {
+        }
+
+        // InternalTableDSL.g:6675:6: ( ( ruleOpOther ) )
+        // InternalTableDSL.g:6676:7: ( ruleOpOther )
+        {
+        // InternalTableDSL.g:6676:7: ( ruleOpOther )
+        // InternalTableDSL.g:6677:8: ruleOpOther
+        {
+        pushFollow(FOLLOW_2);
+        ruleOpOther();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred13_InternalTableDSL
+
+    // $ANTLR start synpred14_InternalTableDSL
+    public final void synpred14_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:6792:6: ( ( '>' '>' ) )
+        // InternalTableDSL.g:6792:7: ( '>' '>' )
+        {
+        // InternalTableDSL.g:6792:7: ( '>' '>' )
+        // InternalTableDSL.g:6793:7: '>' '>'
+        {
+        match(input,120,FOLLOW_88); if (state.failed) return ;
+        match(input,120,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred14_InternalTableDSL
+
+    // $ANTLR start synpred15_InternalTableDSL
+    public final void synpred15_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:6827:6: ( ( '<' '<' ) )
+        // InternalTableDSL.g:6827:7: ( '<' '<' )
+        {
+        // InternalTableDSL.g:6827:7: ( '<' '<' )
+        // InternalTableDSL.g:6828:7: '<' '<'
+        {
+        match(input,119,FOLLOW_78); if (state.failed) return ;
+        match(input,119,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred15_InternalTableDSL
+
+    // $ANTLR start synpred16_InternalTableDSL
+    public final void synpred16_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:6900:5: ( ( () ( ( ruleOpAdd ) ) ) )
+        // InternalTableDSL.g:6900:6: ( () ( ( ruleOpAdd ) ) )
+        {
+        // InternalTableDSL.g:6900:6: ( () ( ( ruleOpAdd ) ) )
+        // InternalTableDSL.g:6901:6: () ( ( ruleOpAdd ) )
+        {
+        // InternalTableDSL.g:6901:6: ()
+        // InternalTableDSL.g:6902:6: 
+        {
+        }
+
+        // InternalTableDSL.g:6903:6: ( ( ruleOpAdd ) )
+        // InternalTableDSL.g:6904:7: ( ruleOpAdd )
+        {
+        // InternalTableDSL.g:6904:7: ( ruleOpAdd )
+        // InternalTableDSL.g:6905:8: ruleOpAdd
+        {
+        pushFollow(FOLLOW_2);
+        ruleOpAdd();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred16_InternalTableDSL
+
+    // $ANTLR start synpred17_InternalTableDSL
+    public final void synpred17_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7015:5: ( ( () ( ( ruleOpMulti ) ) ) )
+        // InternalTableDSL.g:7015:6: ( () ( ( ruleOpMulti ) ) )
+        {
+        // InternalTableDSL.g:7015:6: ( () ( ( ruleOpMulti ) ) )
+        // InternalTableDSL.g:7016:6: () ( ( ruleOpMulti ) )
+        {
+        // InternalTableDSL.g:7016:6: ()
+        // InternalTableDSL.g:7017:6: 
+        {
+        }
+
+        // InternalTableDSL.g:7018:6: ( ( ruleOpMulti ) )
+        // InternalTableDSL.g:7019:7: ( ruleOpMulti )
+        {
+        // InternalTableDSL.g:7019:7: ( ruleOpMulti )
+        // InternalTableDSL.g:7020:8: ruleOpMulti
+        {
+        pushFollow(FOLLOW_2);
+        ruleOpMulti();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred17_InternalTableDSL
+
+    // $ANTLR start synpred18_InternalTableDSL
+    public final void synpred18_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7250:5: ( ( () 'as' ) )
+        // InternalTableDSL.g:7250:6: ( () 'as' )
+        {
+        // InternalTableDSL.g:7250:6: ( () 'as' )
+        // InternalTableDSL.g:7251:6: () 'as'
+        {
+        // InternalTableDSL.g:7251:6: ()
+        // InternalTableDSL.g:7252:6: 
+        {
+        }
+
+        match(input,20,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred18_InternalTableDSL
+
+    // $ANTLR start synpred19_InternalTableDSL
+    public final void synpred19_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7318:4: ( ( () ( ( ruleOpPostfix ) ) ) )
+        // InternalTableDSL.g:7318:5: ( () ( ( ruleOpPostfix ) ) )
+        {
+        // InternalTableDSL.g:7318:5: ( () ( ( ruleOpPostfix ) ) )
+        // InternalTableDSL.g:7319:5: () ( ( ruleOpPostfix ) )
+        {
+        // InternalTableDSL.g:7319:5: ()
+        // InternalTableDSL.g:7320:5: 
+        {
+        }
+
+        // InternalTableDSL.g:7321:5: ( ( ruleOpPostfix ) )
+        // InternalTableDSL.g:7322:6: ( ruleOpPostfix )
+        {
+        // InternalTableDSL.g:7322:6: ( ruleOpPostfix )
+        // InternalTableDSL.g:7323:7: ruleOpPostfix
+        {
+        pushFollow(FOLLOW_2);
+        ruleOpPostfix();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred19_InternalTableDSL
+
+    // $ANTLR start synpred20_InternalTableDSL
+    public final void synpred20_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7414:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+        // InternalTableDSL.g:7414:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        {
+        // InternalTableDSL.g:7414:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+        // InternalTableDSL.g:7415:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+        {
+        // InternalTableDSL.g:7415:7: ()
+        // InternalTableDSL.g:7416:7: 
+        {
+        }
+
+        // InternalTableDSL.g:7417:7: ( '.' | ( ( '::' ) ) )
+        int alt180=2;
+        int LA180_0 = input.LA(1);
+
+        if ( (LA180_0==78) ) {
+            alt180=1;
+        }
+        else if ( (LA180_0==141) ) {
+            alt180=2;
+        }
+        else {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            NoViableAltException nvae =
+                new NoViableAltException("", 180, 0, input);
+
+            throw nvae;
+        }
+        switch (alt180) {
+            case 1 :
+                // InternalTableDSL.g:7418:8: '.'
+                {
+                match(input,78,FOLLOW_95); if (state.failed) return ;
+
+                }
+                break;
+            case 2 :
+                // InternalTableDSL.g:7420:8: ( ( '::' ) )
+                {
+                // InternalTableDSL.g:7420:8: ( ( '::' ) )
+                // InternalTableDSL.g:7421:9: ( '::' )
+                {
+                // InternalTableDSL.g:7421:9: ( '::' )
+                // InternalTableDSL.g:7422:10: '::'
+                {
+                match(input,141,FOLLOW_95); if (state.failed) return ;
+
+                }
+
+
+                }
+
+
+                }
+                break;
+
+        }
+
+        // InternalTableDSL.g:7426:7: ( ( ruleFeatureCallID ) )
+        // InternalTableDSL.g:7427:8: ( ruleFeatureCallID )
+        {
+        // InternalTableDSL.g:7427:8: ( ruleFeatureCallID )
+        // InternalTableDSL.g:7428:9: ruleFeatureCallID
+        {
+        pushFollow(FOLLOW_53);
+        ruleFeatureCallID();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+        pushFollow(FOLLOW_2);
+        ruleOpSingleAssign();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred20_InternalTableDSL
+
+    // $ANTLR start synpred21_InternalTableDSL
+    public final void synpred21_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7511:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
+        // InternalTableDSL.g:7511:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        {
+        // InternalTableDSL.g:7511:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+        // InternalTableDSL.g:7512:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        {
+        // InternalTableDSL.g:7512:7: ()
+        // InternalTableDSL.g:7513:7: 
+        {
+        }
+
+        // InternalTableDSL.g:7514:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+        int alt181=3;
+        switch ( input.LA(1) ) {
+        case 78:
+            {
+            alt181=1;
+            }
+            break;
+        case 142:
+            {
+            alt181=2;
+            }
+            break;
+        case 141:
+            {
+            alt181=3;
+            }
+            break;
+        default:
+            if (state.backtracking>0) {state.failed=true; return ;}
+            NoViableAltException nvae =
+                new NoViableAltException("", 181, 0, input);
+
+            throw nvae;
+        }
+
+        switch (alt181) {
+            case 1 :
+                // InternalTableDSL.g:7515:8: '.'
+                {
+                match(input,78,FOLLOW_2); if (state.failed) return ;
+
+                }
+                break;
+            case 2 :
+                // InternalTableDSL.g:7517:8: ( ( '?.' ) )
+                {
+                // InternalTableDSL.g:7517:8: ( ( '?.' ) )
+                // InternalTableDSL.g:7518:9: ( '?.' )
+                {
+                // InternalTableDSL.g:7518:9: ( '?.' )
+                // InternalTableDSL.g:7519:10: '?.'
+                {
+                match(input,142,FOLLOW_2); if (state.failed) return ;
+
+                }
+
+
+                }
+
+
+                }
+                break;
+            case 3 :
+                // InternalTableDSL.g:7523:8: ( ( '::' ) )
+                {
+                // InternalTableDSL.g:7523:8: ( ( '::' ) )
+                // InternalTableDSL.g:7524:9: ( '::' )
+                {
+                // InternalTableDSL.g:7524:9: ( '::' )
+                // InternalTableDSL.g:7525:10: '::'
+                {
+                match(input,141,FOLLOW_2); if (state.failed) return ;
+
+                }
+
+
+                }
+
+
+                }
+                break;
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred21_InternalTableDSL
+
+    // $ANTLR start synpred22_InternalTableDSL
+    public final void synpred22_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7649:7: ( ( '(' ) )
+        // InternalTableDSL.g:7649:8: ( '(' )
+        {
+        // InternalTableDSL.g:7649:8: ( '(' )
+        // InternalTableDSL.g:7650:8: '('
+        {
+        match(input,93,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred22_InternalTableDSL
+
+    // $ANTLR start synpred23_InternalTableDSL
+    public final void synpred23_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7668:8: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalTableDSL.g:7668:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        {
+        // InternalTableDSL.g:7668:9: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalTableDSL.g:7669:9: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        {
+        // InternalTableDSL.g:7669:9: ()
+        // InternalTableDSL.g:7670:9: 
+        {
+        }
+
+        // InternalTableDSL.g:7671:9: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt183=2;
+        int LA183_0 = input.LA(1);
+
+        if ( (LA183_0==RULE_ID||LA183_0==93||LA183_0==132) ) {
+            alt183=1;
+        }
+        switch (alt183) {
+            case 1 :
+                // InternalTableDSL.g:7672:10: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                {
+                // InternalTableDSL.g:7672:10: ( ( ruleJvmFormalParameter ) )
+                // InternalTableDSL.g:7673:11: ( ruleJvmFormalParameter )
+                {
+                // InternalTableDSL.g:7673:11: ( ruleJvmFormalParameter )
+                // InternalTableDSL.g:7674:12: ruleJvmFormalParameter
+                {
+                pushFollow(FOLLOW_105);
+                ruleJvmFormalParameter();
+
+                state._fsp--;
+                if (state.failed) return ;
+
+                }
+
+
+                }
+
+                // InternalTableDSL.g:7677:10: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop182:
+                do {
+                    int alt182=2;
+                    int LA182_0 = input.LA(1);
+
+                    if ( (LA182_0==110) ) {
+                        alt182=1;
+                    }
+
+
+                    switch (alt182) {
+                	case 1 :
+                	    // InternalTableDSL.g:7678:11: ',' ( ( ruleJvmFormalParameter ) )
+                	    {
+                	    match(input,110,FOLLOW_85); if (state.failed) return ;
+                	    // InternalTableDSL.g:7679:11: ( ( ruleJvmFormalParameter ) )
+                	    // InternalTableDSL.g:7680:12: ( ruleJvmFormalParameter )
+                	    {
+                	    // InternalTableDSL.g:7680:12: ( ruleJvmFormalParameter )
+                	    // InternalTableDSL.g:7681:13: ruleJvmFormalParameter
+                	    {
+                	    pushFollow(FOLLOW_105);
+                	    ruleJvmFormalParameter();
+
+                	    state._fsp--;
+                	    if (state.failed) return ;
+
+                	    }
+
+
+                	    }
+
+
+                	    }
+                	    break;
+
+                	default :
+                	    break loop182;
+                    }
+                } while (true);
+
+
+                }
+                break;
+
+        }
+
+        // InternalTableDSL.g:7686:9: ( ( '|' ) )
+        // InternalTableDSL.g:7687:10: ( '|' )
+        {
+        // InternalTableDSL.g:7687:10: ( '|' )
+        // InternalTableDSL.g:7688:11: '|'
+        {
+        match(input,143,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred23_InternalTableDSL
+
+    // $ANTLR start synpred24_InternalTableDSL
+    public final void synpred24_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7765:6: ( ( () '[' ) )
+        // InternalTableDSL.g:7765:7: ( () '[' )
+        {
+        // InternalTableDSL.g:7765:7: ( () '[' )
+        // InternalTableDSL.g:7766:7: () '['
+        {
+        // InternalTableDSL.g:7766:7: ()
+        // InternalTableDSL.g:7767:7: 
+        {
+        }
+
+        match(input,112,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred24_InternalTableDSL
+
+    // $ANTLR start synpred25_InternalTableDSL
+    public final void synpred25_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7838:4: ( ( () 'synchronized' '(' ) )
+        // InternalTableDSL.g:7838:5: ( () 'synchronized' '(' )
+        {
+        // InternalTableDSL.g:7838:5: ( () 'synchronized' '(' )
+        // InternalTableDSL.g:7839:5: () 'synchronized' '('
+        {
+        // InternalTableDSL.g:7839:5: ()
+        // InternalTableDSL.g:7840:5: 
+        {
+        }
+
+        match(input,166,FOLLOW_110); if (state.failed) return ;
+        match(input,93,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred25_InternalTableDSL
+
+    // $ANTLR start synpred26_InternalTableDSL
+    public final void synpred26_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7883:4: ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalTableDSL.g:7883:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        {
+        // InternalTableDSL.g:7883:5: ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalTableDSL.g:7884:5: () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':'
+        {
+        // InternalTableDSL.g:7884:5: ()
+        // InternalTableDSL.g:7885:5: 
+        {
+        }
+
+        match(input,150,FOLLOW_110); if (state.failed) return ;
+        match(input,93,FOLLOW_85); if (state.failed) return ;
+        // InternalTableDSL.g:7888:5: ( ( ruleJvmFormalParameter ) )
+        // InternalTableDSL.g:7889:6: ( ruleJvmFormalParameter )
+        {
+        // InternalTableDSL.g:7889:6: ( ruleJvmFormalParameter )
+        // InternalTableDSL.g:7890:7: ruleJvmFormalParameter
+        {
+        pushFollow(FOLLOW_113);
+        ruleJvmFormalParameter();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+        match(input,147,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred26_InternalTableDSL
+
+    // $ANTLR start synpred27_InternalTableDSL
+    public final void synpred27_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:7997:4: ( ( () '[' ) )
+        // InternalTableDSL.g:7997:5: ( () '[' )
+        {
+        // InternalTableDSL.g:7997:5: ( () '[' )
+        // InternalTableDSL.g:7998:5: () '['
+        {
+        // InternalTableDSL.g:7998:5: ()
+        // InternalTableDSL.g:7999:5: 
+        {
+        }
+
+        match(input,112,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred27_InternalTableDSL
+
+    // $ANTLR start synpred29_InternalTableDSL
+    public final void synpred29_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:8302:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalTableDSL.g:8302:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        {
+        // InternalTableDSL.g:8302:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalTableDSL.g:8303:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        {
+        // InternalTableDSL.g:8303:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt185=2;
+        int LA185_0 = input.LA(1);
+
+        if ( (LA185_0==RULE_ID||LA185_0==93||LA185_0==132) ) {
+            alt185=1;
+        }
+        switch (alt185) {
+            case 1 :
+                // InternalTableDSL.g:8304:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                {
+                // InternalTableDSL.g:8304:6: ( ( ruleJvmFormalParameter ) )
+                // InternalTableDSL.g:8305:7: ( ruleJvmFormalParameter )
+                {
+                // InternalTableDSL.g:8305:7: ( ruleJvmFormalParameter )
+                // InternalTableDSL.g:8306:8: ruleJvmFormalParameter
+                {
+                pushFollow(FOLLOW_105);
+                ruleJvmFormalParameter();
+
+                state._fsp--;
+                if (state.failed) return ;
+
+                }
+
+
+                }
+
+                // InternalTableDSL.g:8309:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop184:
+                do {
+                    int alt184=2;
+                    int LA184_0 = input.LA(1);
+
+                    if ( (LA184_0==110) ) {
+                        alt184=1;
+                    }
+
+
+                    switch (alt184) {
+                	case 1 :
+                	    // InternalTableDSL.g:8310:7: ',' ( ( ruleJvmFormalParameter ) )
+                	    {
+                	    match(input,110,FOLLOW_85); if (state.failed) return ;
+                	    // InternalTableDSL.g:8311:7: ( ( ruleJvmFormalParameter ) )
+                	    // InternalTableDSL.g:8312:8: ( ruleJvmFormalParameter )
+                	    {
+                	    // InternalTableDSL.g:8312:8: ( ruleJvmFormalParameter )
+                	    // InternalTableDSL.g:8313:9: ruleJvmFormalParameter
+                	    {
+                	    pushFollow(FOLLOW_105);
+                	    ruleJvmFormalParameter();
+
+                	    state._fsp--;
+                	    if (state.failed) return ;
+
+                	    }
+
+
+                	    }
+
+
+                	    }
+                	    break;
+
+                	default :
+                	    break loop184;
+                    }
+                } while (true);
+
+
+                }
+                break;
+
+        }
+
+        // InternalTableDSL.g:8318:5: ( ( '|' ) )
+        // InternalTableDSL.g:8319:6: ( '|' )
+        {
+        // InternalTableDSL.g:8319:6: ( '|' )
+        // InternalTableDSL.g:8320:7: '|'
+        {
+        match(input,143,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred29_InternalTableDSL
+
+    // $ANTLR start synpred31_InternalTableDSL
+    public final void synpred31_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:8711:5: ( 'else' )
+        // InternalTableDSL.g:8711:6: 'else'
+        {
+        match(input,145,FOLLOW_2); if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred31_InternalTableDSL
+
+    // $ANTLR start synpred32_InternalTableDSL
+    public final void synpred32_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:8770:6: ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalTableDSL.g:8770:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        {
+        // InternalTableDSL.g:8770:7: ( '(' ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalTableDSL.g:8771:7: '(' ( ( ruleJvmFormalParameter ) ) ':'
+        {
+        match(input,93,FOLLOW_85); if (state.failed) return ;
+        // InternalTableDSL.g:8772:7: ( ( ruleJvmFormalParameter ) )
+        // InternalTableDSL.g:8773:8: ( ruleJvmFormalParameter )
+        {
+        // InternalTableDSL.g:8773:8: ( ruleJvmFormalParameter )
+        // InternalTableDSL.g:8774:9: ruleJvmFormalParameter
+        {
+        pushFollow(FOLLOW_113);
+        ruleJvmFormalParameter();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+        match(input,147,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred32_InternalTableDSL
+
+    // $ANTLR start synpred33_InternalTableDSL
+    public final void synpred33_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:8837:6: ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )
+        // InternalTableDSL.g:8837:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        {
+        // InternalTableDSL.g:8837:7: ( ( ( ruleJvmFormalParameter ) ) ':' )
+        // InternalTableDSL.g:8838:7: ( ( ruleJvmFormalParameter ) ) ':'
+        {
+        // InternalTableDSL.g:8838:7: ( ( ruleJvmFormalParameter ) )
+        // InternalTableDSL.g:8839:8: ( ruleJvmFormalParameter )
+        {
+        // InternalTableDSL.g:8839:8: ( ruleJvmFormalParameter )
+        // InternalTableDSL.g:8840:9: ruleJvmFormalParameter
+        {
+        pushFollow(FOLLOW_113);
+        ruleJvmFormalParameter();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+        match(input,147,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred33_InternalTableDSL
+
+    // $ANTLR start synpred35_InternalTableDSL
+    public final void synpred35_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:9655:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
+        // InternalTableDSL.g:9655:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        {
+        // InternalTableDSL.g:9655:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+        // InternalTableDSL.g:9656:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
+        {
+        // InternalTableDSL.g:9656:6: ( ( ruleJvmTypeReference ) )
+        // InternalTableDSL.g:9657:7: ( ruleJvmTypeReference )
+        {
+        // InternalTableDSL.g:9657:7: ( ruleJvmTypeReference )
+        // InternalTableDSL.g:9658:8: ruleJvmTypeReference
+        {
+        pushFollow(FOLLOW_4);
+        ruleJvmTypeReference();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+        // InternalTableDSL.g:9661:6: ( ( ruleValidID ) )
+        // InternalTableDSL.g:9662:7: ( ruleValidID )
+        {
+        // InternalTableDSL.g:9662:7: ( ruleValidID )
+        // InternalTableDSL.g:9663:8: ruleValidID
+        {
+        pushFollow(FOLLOW_2);
+        ruleValidID();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred35_InternalTableDSL
+
+    // $ANTLR start synpred36_InternalTableDSL
+    public final void synpred36_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:9967:5: ( ( '(' ) )
+        // InternalTableDSL.g:9967:6: ( '(' )
+        {
+        // InternalTableDSL.g:9967:6: ( '(' )
+        // InternalTableDSL.g:9968:6: '('
+        {
+        match(input,93,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred36_InternalTableDSL
+
+    // $ANTLR start synpred37_InternalTableDSL
+    public final void synpred37_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:9986:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalTableDSL.g:9986:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        {
+        // InternalTableDSL.g:9986:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalTableDSL.g:9987:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        {
+        // InternalTableDSL.g:9987:7: ()
+        // InternalTableDSL.g:9988:7: 
+        {
+        }
+
+        // InternalTableDSL.g:9989:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt189=2;
+        int LA189_0 = input.LA(1);
+
+        if ( (LA189_0==RULE_ID||LA189_0==93||LA189_0==132) ) {
+            alt189=1;
+        }
+        switch (alt189) {
+            case 1 :
+                // InternalTableDSL.g:9990:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                {
+                // InternalTableDSL.g:9990:8: ( ( ruleJvmFormalParameter ) )
+                // InternalTableDSL.g:9991:9: ( ruleJvmFormalParameter )
+                {
+                // InternalTableDSL.g:9991:9: ( ruleJvmFormalParameter )
+                // InternalTableDSL.g:9992:10: ruleJvmFormalParameter
+                {
+                pushFollow(FOLLOW_105);
+                ruleJvmFormalParameter();
+
+                state._fsp--;
+                if (state.failed) return ;
+
+                }
+
+
+                }
+
+                // InternalTableDSL.g:9995:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop188:
+                do {
+                    int alt188=2;
+                    int LA188_0 = input.LA(1);
+
+                    if ( (LA188_0==110) ) {
+                        alt188=1;
+                    }
+
+
+                    switch (alt188) {
+                	case 1 :
+                	    // InternalTableDSL.g:9996:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    {
+                	    match(input,110,FOLLOW_85); if (state.failed) return ;
+                	    // InternalTableDSL.g:9997:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalTableDSL.g:9998:10: ( ruleJvmFormalParameter )
+                	    {
+                	    // InternalTableDSL.g:9998:10: ( ruleJvmFormalParameter )
+                	    // InternalTableDSL.g:9999:11: ruleJvmFormalParameter
+                	    {
+                	    pushFollow(FOLLOW_105);
+                	    ruleJvmFormalParameter();
+
+                	    state._fsp--;
+                	    if (state.failed) return ;
+
+                	    }
+
+
+                	    }
+
+
+                	    }
+                	    break;
+
+                	default :
+                	    break loop188;
+                    }
+                } while (true);
+
+
+                }
+                break;
+
+        }
+
+        // InternalTableDSL.g:10004:7: ( ( '|' ) )
+        // InternalTableDSL.g:10005:8: ( '|' )
+        {
+        // InternalTableDSL.g:10005:8: ( '|' )
+        // InternalTableDSL.g:10006:9: '|'
+        {
+        match(input,143,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred37_InternalTableDSL
+
+    // $ANTLR start synpred38_InternalTableDSL
+    public final void synpred38_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:10083:4: ( ( () '[' ) )
+        // InternalTableDSL.g:10083:5: ( () '[' )
+        {
+        // InternalTableDSL.g:10083:5: ( () '[' )
+        // InternalTableDSL.g:10084:5: () '['
+        {
+        // InternalTableDSL.g:10084:5: ()
+        // InternalTableDSL.g:10085:5: 
+        {
+        }
+
+        match(input,112,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred38_InternalTableDSL
+
+    // $ANTLR start synpred39_InternalTableDSL
+    public final void synpred39_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:10243:5: ( '<' )
+        // InternalTableDSL.g:10243:6: '<'
+        {
+        match(input,119,FOLLOW_2); if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred39_InternalTableDSL
+
+    // $ANTLR start synpred40_InternalTableDSL
+    public final void synpred40_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:10300:5: ( ( '(' ) )
+        // InternalTableDSL.g:10300:6: ( '(' )
+        {
+        // InternalTableDSL.g:10300:6: ( '(' )
+        // InternalTableDSL.g:10301:6: '('
+        {
+        match(input,93,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred40_InternalTableDSL
+
+    // $ANTLR start synpred41_InternalTableDSL
+    public final void synpred41_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:10319:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+        // InternalTableDSL.g:10319:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        {
+        // InternalTableDSL.g:10319:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+        // InternalTableDSL.g:10320:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+        {
+        // InternalTableDSL.g:10320:7: ()
+        // InternalTableDSL.g:10321:7: 
+        {
+        }
+
+        // InternalTableDSL.g:10322:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+        int alt191=2;
+        int LA191_0 = input.LA(1);
+
+        if ( (LA191_0==RULE_ID||LA191_0==93||LA191_0==132) ) {
+            alt191=1;
+        }
+        switch (alt191) {
+            case 1 :
+                // InternalTableDSL.g:10323:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                {
+                // InternalTableDSL.g:10323:8: ( ( ruleJvmFormalParameter ) )
+                // InternalTableDSL.g:10324:9: ( ruleJvmFormalParameter )
+                {
+                // InternalTableDSL.g:10324:9: ( ruleJvmFormalParameter )
+                // InternalTableDSL.g:10325:10: ruleJvmFormalParameter
+                {
+                pushFollow(FOLLOW_105);
+                ruleJvmFormalParameter();
+
+                state._fsp--;
+                if (state.failed) return ;
+
+                }
+
+
+                }
+
+                // InternalTableDSL.g:10328:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+                loop190:
+                do {
+                    int alt190=2;
+                    int LA190_0 = input.LA(1);
+
+                    if ( (LA190_0==110) ) {
+                        alt190=1;
+                    }
+
+
+                    switch (alt190) {
+                	case 1 :
+                	    // InternalTableDSL.g:10329:9: ',' ( ( ruleJvmFormalParameter ) )
+                	    {
+                	    match(input,110,FOLLOW_85); if (state.failed) return ;
+                	    // InternalTableDSL.g:10330:9: ( ( ruleJvmFormalParameter ) )
+                	    // InternalTableDSL.g:10331:10: ( ruleJvmFormalParameter )
+                	    {
+                	    // InternalTableDSL.g:10331:10: ( ruleJvmFormalParameter )
+                	    // InternalTableDSL.g:10332:11: ruleJvmFormalParameter
+                	    {
+                	    pushFollow(FOLLOW_105);
+                	    ruleJvmFormalParameter();
+
+                	    state._fsp--;
+                	    if (state.failed) return ;
+
+                	    }
+
+
+                	    }
+
+
+                	    }
+                	    break;
+
+                	default :
+                	    break loop190;
+                    }
+                } while (true);
+
+
+                }
+                break;
+
+        }
+
+        // InternalTableDSL.g:10337:7: ( ( '|' ) )
+        // InternalTableDSL.g:10338:8: ( '|' )
+        {
+        // InternalTableDSL.g:10338:8: ( '|' )
+        // InternalTableDSL.g:10339:9: '|'
+        {
+        match(input,143,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred41_InternalTableDSL
+
+    // $ANTLR start synpred42_InternalTableDSL
+    public final void synpred42_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:10416:4: ( ( () '[' ) )
+        // InternalTableDSL.g:10416:5: ( () '[' )
+        {
+        // InternalTableDSL.g:10416:5: ( () '[' )
+        // InternalTableDSL.g:10417:5: () '['
+        {
+        // InternalTableDSL.g:10417:5: ()
+        // InternalTableDSL.g:10418:5: 
+        {
+        }
+
+        match(input,112,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred42_InternalTableDSL
+
+    // $ANTLR start synpred43_InternalTableDSL
+    public final void synpred43_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:10759:4: ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )
+        // InternalTableDSL.g:
+        {
+        if ( (input.LA(1)>=RULE_ID && input.LA(1)<=RULE_STRING)||(input.LA(1)>=RULE_INT && input.LA(1)<=RULE_DECIMAL)||input.LA(1)==16||input.LA(1)==93||(input.LA(1)>=101 && input.LA(1)<=105)||(input.LA(1)>=111 && input.LA(1)<=112)||input.LA(1)==119||input.LA(1)==138||input.LA(1)==144||input.LA(1)==146||(input.LA(1)>=150 && input.LA(1)<=152)||(input.LA(1)>=155 && input.LA(1)<=164)||input.LA(1)==166 ) {
+            input.consume();
+            state.errorRecovery=false;state.failed=false;
+        }
+        else {
+            if (state.backtracking>0) {state.failed=true; return ;}
+            MismatchedSetException mse = new MismatchedSetException(null,input);
+            throw mse;
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred43_InternalTableDSL
+
+    // $ANTLR start synpred44_InternalTableDSL
+    public final void synpred44_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:10830:6: ( 'catch' )
+        // InternalTableDSL.g:10830:7: 'catch'
+        {
+        match(input,167,FOLLOW_2); if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred44_InternalTableDSL
+
+    // $ANTLR start synpred45_InternalTableDSL
+    public final void synpred45_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:10851:7: ( 'finally' )
+        // InternalTableDSL.g:10851:8: 'finally'
+        {
+        match(input,165,FOLLOW_2); if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred45_InternalTableDSL
+
+    // $ANTLR start synpred48_InternalTableDSL
+    public final void synpred48_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:11095:5: ( '.' )
+        // InternalTableDSL.g:11095:6: '.'
+        {
+        match(input,78,FOLLOW_2); if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred48_InternalTableDSL
+
+    // $ANTLR start synpred49_InternalTableDSL
+    public final void synpred49_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:11221:5: ( ( () ruleArrayBrackets ) )
+        // InternalTableDSL.g:11221:6: ( () ruleArrayBrackets )
+        {
+        // InternalTableDSL.g:11221:6: ( () ruleArrayBrackets )
+        // InternalTableDSL.g:11222:6: () ruleArrayBrackets
+        {
+        // InternalTableDSL.g:11222:6: ()
+        // InternalTableDSL.g:11223:6: 
+        {
+        }
+
+        pushFollow(FOLLOW_2);
+        ruleArrayBrackets();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred49_InternalTableDSL
+
+    // $ANTLR start synpred50_InternalTableDSL
+    public final void synpred50_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:11418:5: ( '<' )
+        // InternalTableDSL.g:11418:6: '<'
+        {
+        match(input,119,FOLLOW_2); if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred50_InternalTableDSL
+
+    // $ANTLR start synpred51_InternalTableDSL
+    public final void synpred51_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:11474:6: ( ( () '.' ) )
+        // InternalTableDSL.g:11474:7: ( () '.' )
+        {
+        // InternalTableDSL.g:11474:7: ( () '.' )
+        // InternalTableDSL.g:11475:7: () '.'
+        {
+        // InternalTableDSL.g:11475:7: ()
+        // InternalTableDSL.g:11476:7: 
+        {
+        }
+
+        match(input,78,FOLLOW_2); if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred51_InternalTableDSL
+
+    // $ANTLR start synpred52_InternalTableDSL
+    public final void synpred52_InternalTableDSL_fragment() throws RecognitionException {   
+        // InternalTableDSL.g:11512:7: ( '<' )
+        // InternalTableDSL.g:11512:8: '<'
+        {
+        match(input,119,FOLLOW_2); if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred52_InternalTableDSL
+
+    // Delegated rules
+
+    public final boolean synpred48_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred48_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred18_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred18_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred13_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred13_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred43_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred43_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred14_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred14_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred27_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred27_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred8_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred8_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred19_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred19_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred49_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred49_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred51_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred51_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred2_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred2_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred21_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred21_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred36_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred36_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred9_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred9_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred12_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred12_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred15_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred15_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred42_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred42_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred33_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred33_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred1_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred1_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred37_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred37_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred5_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred5_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred20_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred20_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred50_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred50_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred11_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred11_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred29_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred29_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred24_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred24_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred41_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred41_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred16_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred16_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred38_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred38_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred40_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred40_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred45_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred45_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred25_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred25_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred32_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred32_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred6_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred6_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred17_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred17_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred23_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred23_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred31_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred31_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred10_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred10_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred44_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred44_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred7_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred7_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred26_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred26_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred52_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred52_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred39_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred39_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred22_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred22_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred35_InternalTableDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred35_InternalTableDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+
+
+    protected DFA55 dfa55 = new DFA55(this);
+    protected DFA58 dfa58 = new DFA58(this);
+    protected DFA64 dfa64 = new DFA64(this);
+    protected DFA67 dfa67 = new DFA67(this);
+    protected DFA69 dfa69 = new DFA69(this);
+    protected DFA79 dfa79 = new DFA79(this);
+    protected DFA82 dfa82 = new DFA82(this);
+    protected DFA98 dfa98 = new DFA98(this);
+    protected DFA97 dfa97 = new DFA97(this);
+    protected DFA99 dfa99 = new DFA99(this);
+    protected DFA101 dfa101 = new DFA101(this);
+    protected DFA110 dfa110 = new DFA110(this);
+    protected DFA117 dfa117 = new DFA117(this);
+    protected DFA116 dfa116 = new DFA116(this);
+    protected DFA139 dfa139 = new DFA139(this);
+    protected DFA138 dfa138 = new DFA138(this);
+    protected DFA140 dfa140 = new DFA140(this);
+    protected DFA144 dfa144 = new DFA144(this);
+    protected DFA147 dfa147 = new DFA147(this);
+    protected DFA146 dfa146 = new DFA146(this);
+    protected DFA148 dfa148 = new DFA148(this);
+    protected DFA151 dfa151 = new DFA151(this);
+    protected DFA169 dfa169 = new DFA169(this);
+    protected DFA167 dfa167 = new DFA167(this);
+    static final String dfa_1s = "\10\uffff";
+    static final String dfa_2s = "\2\uffff\1\5\4\uffff\1\5";
+    static final String dfa_3s = "\1\4\1\uffff\1\17\1\uffff\1\4\2\uffff\1\17";
+    static final String dfa_4s = "\1\153\1\uffff\1\154\1\uffff\1\152\2\uffff\1\154";
+    static final String dfa_5s = "\1\uffff\1\1\1\uffff\1\4\1\uffff\1\2\1\3\1\uffff";
+    static final String dfa_6s = "\10\uffff}>";
+    static final String[] dfa_7s = {
+            "\1\2\143\uffff\1\1\2\uffff\1\3",
+            "",
+            "\1\5\76\uffff\1\4\30\uffff\1\5\4\uffff\1\5",
+            "",
+            "\1\7\145\uffff\1\6",
+            "",
+            "",
+            "\1\5\76\uffff\1\4\30\uffff\1\5\4\uffff\1\5"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA55 extends DFA {
+
+        public DFA55(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 55;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "5188:3: ( ( ( (lv_static_2_0= 'static' ) ) ( (lv_extension_3_0= 'extension' ) )? ( ( ruleQualifiedNameInStaticImport ) ) ( ( (lv_wildcard_5_0= '*' ) ) | ( (lv_memberName_6_0= ruleValidID ) ) ) ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_8_0= ruleQualifiedNameWithWildcard ) ) | ( ( (lv_fqnImport_9_0= 'ns' ) ) ( (lv_importedFullyQualifiedName_10_0= ruleQualifiedName ) ) ) )";
+        }
+    }
+    static final String dfa_8s = "\44\uffff";
+    static final String dfa_9s = "\1\4\1\0\42\uffff";
+    static final String dfa_10s = "\1\u00a6\1\0\42\uffff";
+    static final String dfa_11s = "\2\uffff\1\2\37\uffff\1\3\1\1";
+    static final String dfa_12s = "\1\uffff\1\0\42\uffff}>";
+    static final String[] dfa_13s = {
+            "\1\1\1\2\1\uffff\3\2\6\uffff\1\2\114\uffff\1\2\1\42\6\uffff\5\2\3\uffff\1\2\1\uffff\2\2\6\uffff\1\2\22\uffff\1\2\5\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_8 = DFA.unpackEncodedString(dfa_8s);
+    static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s);
+    static final char[] dfa_10 = DFA.unpackEncodedStringToUnsignedChars(dfa_10s);
+    static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s);
+    static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
+    static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
+
+    class DFA58 extends DFA {
+
+        public DFA58(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 58;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_9;
+            this.max = dfa_10;
+            this.accept = dfa_11;
+            this.special = dfa_12;
+            this.transition = dfa_13;
+        }
+        public String getDescription() {
+            return "5405:4: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA58_1 = input.LA(1);
+
+                         
+                        int index58_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred2_InternalTableDSL()) ) {s = 35;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index58_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 58, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_14s = "\43\uffff";
+    static final String dfa_15s = "\1\4\1\0\41\uffff";
+    static final String dfa_16s = "\1\u00a6\1\0\41\uffff";
+    static final String dfa_17s = "\2\uffff\1\2\37\uffff\1\1";
+    static final String dfa_18s = "\1\uffff\1\0\41\uffff}>";
+    static final String[] dfa_19s = {
+            "\2\2\1\uffff\3\2\6\uffff\1\2\114\uffff\1\2\7\uffff\5\2\3\uffff\1\2\1\uffff\1\1\1\2\6\uffff\1\2\22\uffff\1\2\5\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_14 = DFA.unpackEncodedString(dfa_14s);
+    static final char[] dfa_15 = DFA.unpackEncodedStringToUnsignedChars(dfa_15s);
+    static final char[] dfa_16 = DFA.unpackEncodedStringToUnsignedChars(dfa_16s);
+    static final short[] dfa_17 = DFA.unpackEncodedString(dfa_17s);
+    static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s);
+    static final short[][] dfa_19 = unpackEncodedStringArray(dfa_19s);
+
+    class DFA64 extends DFA {
+
+        public DFA64(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 64;
+            this.eot = dfa_14;
+            this.eof = dfa_14;
+            this.min = dfa_15;
+            this.max = dfa_16;
+            this.accept = dfa_17;
+            this.special = dfa_18;
+            this.transition = dfa_19;
+        }
+        public String getDescription() {
+            return "5585:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA64_1 = input.LA(1);
+
+                         
+                        int index64_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred5_InternalTableDSL()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index64_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 64, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA67 extends DFA {
+
+        public DFA67(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 67;
+            this.eot = dfa_14;
+            this.eof = dfa_14;
+            this.min = dfa_15;
+            this.max = dfa_16;
+            this.accept = dfa_17;
+            this.special = dfa_18;
+            this.transition = dfa_19;
+        }
+        public String getDescription() {
+            return "5727:2: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA67_1 = input.LA(1);
+
+                         
+                        int index67_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred6_InternalTableDSL()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index67_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 67, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_20s = "\12\uffff";
+    static final String dfa_21s = "\1\10\11\uffff";
+    static final String dfa_22s = "\1\4\7\0\2\uffff";
+    static final String dfa_23s = "\1\u00a7\7\0\2\uffff";
+    static final String dfa_24s = "\10\uffff\1\2\1\1";
+    static final String dfa_25s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\6\1\5\2\uffff}>";
+    static final String[] dfa_26s = {
+            "\2\10\1\uffff\3\10\6\uffff\2\10\2\uffff\1\10\71\uffff\1\10\16\uffff\2\10\6\uffff\6\10\1\uffff\1\10\1\uffff\4\10\1\1\1\2\1\3\1\4\1\5\1\6\1\7\26\10\1\uffff\30\10",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            ""
+    };
+
+    static final short[] dfa_20 = DFA.unpackEncodedString(dfa_20s);
+    static final short[] dfa_21 = DFA.unpackEncodedString(dfa_21s);
+    static final char[] dfa_22 = DFA.unpackEncodedStringToUnsignedChars(dfa_22s);
+    static final char[] dfa_23 = DFA.unpackEncodedStringToUnsignedChars(dfa_23s);
+    static final short[] dfa_24 = DFA.unpackEncodedString(dfa_24s);
+    static final short[] dfa_25 = DFA.unpackEncodedString(dfa_25s);
+    static final short[][] dfa_26 = unpackEncodedStringArray(dfa_26s);
+
+    class DFA69 extends DFA {
+
+        public DFA69(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 69;
+            this.eot = dfa_20;
+            this.eof = dfa_21;
+            this.min = dfa_22;
+            this.max = dfa_23;
+            this.accept = dfa_24;
+            this.special = dfa_25;
+            this.transition = dfa_26;
+        }
+        public String getDescription() {
+            return "5956:4: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA69_1 = input.LA(1);
+
+                         
+                        int index69_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred7_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA69_2 = input.LA(1);
+
+                         
+                        int index69_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred7_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA69_3 = input.LA(1);
+
+                         
+                        int index69_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred7_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA69_4 = input.LA(1);
+
+                         
+                        int index69_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred7_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA69_5 = input.LA(1);
+
+                         
+                        int index69_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred7_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA69_7 = input.LA(1);
+
+                         
+                        int index69_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred7_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA69_6 = input.LA(1);
+
+                         
+                        int index69_6 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred7_InternalTableDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index69_6);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 69, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_27s = "\13\uffff";
+    static final String dfa_28s = "\1\1\12\uffff";
+    static final String dfa_29s = "\1\4\1\uffff\10\0\1\uffff";
+    static final String dfa_30s = "\1\u00a7\1\uffff\10\0\1\uffff";
+    static final String dfa_31s = "\1\uffff\1\2\10\uffff\1\1";
+    static final String dfa_32s = "\2\uffff\1\7\1\2\1\4\1\5\1\6\1\3\1\0\1\1\1\uffff}>";
+    static final String[] dfa_33s = {
+            "\2\1\1\uffff\3\1\6\uffff\2\1\2\uffff\1\1\71\uffff\1\1\16\uffff\2\1\6\uffff\6\1\1\uffff\1\1\1\uffff\11\1\1\2\1\3\10\1\1\4\1\5\1\6\1\7\1\10\1\11\10\1\1\uffff\30\1",
+            "",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            ""
+    };
+
+    static final short[] dfa_27 = DFA.unpackEncodedString(dfa_27s);
+    static final short[] dfa_28 = DFA.unpackEncodedString(dfa_28s);
+    static final char[] dfa_29 = DFA.unpackEncodedStringToUnsignedChars(dfa_29s);
+    static final char[] dfa_30 = DFA.unpackEncodedStringToUnsignedChars(dfa_30s);
+    static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s);
+    static final short[] dfa_32 = DFA.unpackEncodedString(dfa_32s);
+    static final short[][] dfa_33 = unpackEncodedStringArray(dfa_33s);
+
+    class DFA79 extends DFA {
+
+        public DFA79(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 79;
+            this.eot = dfa_27;
+            this.eof = dfa_28;
+            this.min = dfa_29;
+            this.max = dfa_30;
+            this.accept = dfa_31;
+            this.special = dfa_32;
+            this.transition = dfa_33;
+        }
+        public String getDescription() {
+            return "()* loopback of 6670:3: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA79_8 = input.LA(1);
+
+                         
+                        int index79_8 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index79_8);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA79_9 = input.LA(1);
+
+                         
+                        int index79_9 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index79_9);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA79_3 = input.LA(1);
+
+                         
+                        int index79_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index79_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA79_7 = input.LA(1);
+
+                         
+                        int index79_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index79_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA79_4 = input.LA(1);
+
+                         
+                        int index79_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index79_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA79_5 = input.LA(1);
+
+                         
+                        int index79_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index79_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA79_6 = input.LA(1);
+
+                         
+                        int index79_6 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index79_6);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 7 : 
+                        int LA79_2 = input.LA(1);
+
+                         
+                        int index79_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred13_InternalTableDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index79_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 79, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_34s = "\1\167\2\uffff\1\170\7\uffff";
+    static final String dfa_35s = "\1\u0086\2\uffff\1\u0083\7\uffff";
+    static final String dfa_36s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\3\1\6";
+    static final String dfa_37s = "\13\uffff}>";
+    static final String[] dfa_38s = {
+            "\1\6\1\3\10\uffff\1\1\1\2\1\4\1\5\1\7\1\10",
+            "",
+            "",
+            "\1\12\12\uffff\1\11",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final char[] dfa_34 = DFA.unpackEncodedStringToUnsignedChars(dfa_34s);
+    static final char[] dfa_35 = DFA.unpackEncodedStringToUnsignedChars(dfa_35s);
+    static final short[] dfa_36 = DFA.unpackEncodedString(dfa_36s);
+    static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
+    static final short[][] dfa_38 = unpackEncodedStringArray(dfa_38s);
+
+    class DFA82 extends DFA {
+
+        public DFA82(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 82;
+            this.eot = dfa_27;
+            this.eof = dfa_27;
+            this.min = dfa_34;
+            this.max = dfa_35;
+            this.accept = dfa_36;
+            this.special = dfa_37;
+            this.transition = dfa_38;
+        }
+        public String getDescription() {
+            return "6746:2: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )";
+        }
+    }
+    static final String dfa_39s = "\116\uffff";
+    static final String dfa_40s = "\1\2\115\uffff";
+    static final String dfa_41s = "\1\4\1\0\114\uffff";
+    static final String dfa_42s = "\1\u00a7\1\0\114\uffff";
+    static final String dfa_43s = "\2\uffff\1\2\112\uffff\1\1";
+    static final String dfa_44s = "\1\uffff\1\0\114\uffff}>";
+    static final String[] dfa_45s = {
+            "\2\2\1\uffff\3\2\6\uffff\2\2\2\uffff\1\2\71\uffff\1\2\16\uffff\1\1\1\2\6\uffff\6\2\1\uffff\1\2\1\uffff\41\2\1\uffff\30\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_39 = DFA.unpackEncodedString(dfa_39s);
+    static final short[] dfa_40 = DFA.unpackEncodedString(dfa_40s);
+    static final char[] dfa_41 = DFA.unpackEncodedStringToUnsignedChars(dfa_41s);
+    static final char[] dfa_42 = DFA.unpackEncodedStringToUnsignedChars(dfa_42s);
+    static final short[] dfa_43 = DFA.unpackEncodedString(dfa_43s);
+    static final short[] dfa_44 = DFA.unpackEncodedString(dfa_44s);
+    static final short[][] dfa_45 = unpackEncodedStringArray(dfa_45s);
+
+    class DFA98 extends DFA {
+
+        public DFA98(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 98;
+            this.eot = dfa_39;
+            this.eof = dfa_40;
+            this.min = dfa_41;
+            this.max = dfa_42;
+            this.accept = dfa_43;
+            this.special = dfa_44;
+            this.transition = dfa_45;
+        }
+        public String getDescription() {
+            return "7647:5: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA98_1 = input.LA(1);
+
+                         
+                        int index98_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred22_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index98_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 98, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_46s = "\1\4\2\0\41\uffff";
+    static final String dfa_47s = "\1\u00a6\2\0\41\uffff";
+    static final String dfa_48s = "\3\uffff\2\1\1\2\35\uffff\1\3";
+    static final String dfa_49s = "\1\0\1\1\1\2\41\uffff}>";
+    static final String[] dfa_50s = {
+            "\1\1\1\5\1\uffff\3\5\6\uffff\1\5\114\uffff\1\2\1\43\6\uffff\5\5\5\uffff\2\5\6\uffff\1\5\14\uffff\1\3\5\uffff\1\5\4\uffff\1\4\1\5\1\uffff\1\5\3\uffff\3\5\2\uffff\12\5\1\uffff\1\5",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final char[] dfa_46 = DFA.unpackEncodedStringToUnsignedChars(dfa_46s);
+    static final char[] dfa_47 = DFA.unpackEncodedStringToUnsignedChars(dfa_47s);
+    static final short[] dfa_48 = DFA.unpackEncodedString(dfa_48s);
+    static final short[] dfa_49 = DFA.unpackEncodedString(dfa_49s);
+    static final short[][] dfa_50 = unpackEncodedStringArray(dfa_50s);
+
+    class DFA97 extends DFA {
+
+        public DFA97(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 97;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_46;
+            this.max = dfa_47;
+            this.accept = dfa_48;
+            this.special = dfa_49;
+            this.transition = dfa_50;
+        }
+        public String getDescription() {
+            return "7666:6: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA97_0 = input.LA(1);
+
+                         
+                        int index97_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA97_0==RULE_ID) ) {s = 1;}
+
+                        else if ( (LA97_0==93) ) {s = 2;}
+
+                        else if ( (LA97_0==132) && (synpred23_InternalTableDSL())) {s = 3;}
+
+                        else if ( (LA97_0==143) && (synpred23_InternalTableDSL())) {s = 4;}
+
+                        else if ( (LA97_0==RULE_STRING||(LA97_0>=RULE_INT && LA97_0<=RULE_DECIMAL)||LA97_0==16||(LA97_0>=101 && LA97_0<=105)||(LA97_0>=111 && LA97_0<=112)||LA97_0==119||LA97_0==138||LA97_0==144||LA97_0==146||(LA97_0>=150 && LA97_0<=152)||(LA97_0>=155 && LA97_0<=164)||LA97_0==166) ) {s = 5;}
+
+                        else if ( (LA97_0==94) ) {s = 35;}
+
+                         
+                        input.seek(index97_0);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA97_1 = input.LA(1);
+
+                         
+                        int index97_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred23_InternalTableDSL()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index97_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA97_2 = input.LA(1);
+
+                         
+                        int index97_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred23_InternalTableDSL()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index97_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 97, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String[] dfa_51s = {
+            "\2\2\1\uffff\3\2\6\uffff\2\2\2\uffff\1\2\71\uffff\1\2\16\uffff\2\2\6\uffff\6\2\1\uffff\1\2\1\uffff\2\2\1\1\36\2\1\uffff\30\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final short[][] dfa_51 = unpackEncodedStringArray(dfa_51s);
+
+    class DFA99 extends DFA {
+
+        public DFA99(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 99;
+            this.eot = dfa_39;
+            this.eof = dfa_40;
+            this.min = dfa_41;
+            this.max = dfa_42;
+            this.accept = dfa_43;
+            this.special = dfa_44;
+            this.transition = dfa_51;
+        }
+        public String getDescription() {
+            return "7764:5: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA99_1 = input.LA(1);
+
+                         
+                        int index99_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred24_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index99_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 99, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_52s = "\40\uffff";
+    static final String dfa_53s = "\1\4\26\uffff\1\0\10\uffff";
+    static final String dfa_54s = "\1\u00a6\26\uffff\1\0\10\uffff";
+    static final String dfa_55s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\6\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
+    static final String dfa_56s = "\1\0\26\uffff\1\1\10\uffff}>";
+    static final String[] dfa_57s = {
+            "\1\5\1\14\1\uffff\3\14\6\uffff\1\2\114\uffff\1\35\11\uffff\3\5\5\uffff\2\14\6\uffff\1\5\30\uffff\1\26\1\uffff\1\3\3\uffff\1\27\1\30\1\31\2\uffff\2\5\1\1\4\14\1\32\1\33\1\34\1\uffff\1\4",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_52 = DFA.unpackEncodedString(dfa_52s);
+    static final char[] dfa_53 = DFA.unpackEncodedStringToUnsignedChars(dfa_53s);
+    static final char[] dfa_54 = DFA.unpackEncodedStringToUnsignedChars(dfa_54s);
+    static final short[] dfa_55 = DFA.unpackEncodedString(dfa_55s);
+    static final short[] dfa_56 = DFA.unpackEncodedString(dfa_56s);
+    static final short[][] dfa_57 = unpackEncodedStringArray(dfa_57s);
+
+    class DFA101 extends DFA {
+
+        public DFA101(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 101;
+            this.eot = dfa_52;
+            this.eof = dfa_52;
+            this.min = dfa_53;
+            this.max = dfa_54;
+            this.accept = dfa_55;
+            this.special = dfa_56;
+            this.transition = dfa_57;
+        }
+        public String getDescription() {
+            return "7809:2: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | ( ( ( () 'synchronized' '(' ) )=>this_XSynchronizedExpression_3= ruleXSynchronizedExpression ) | this_XFeatureCall_4= ruleXFeatureCall | this_XLiteral_5= ruleXLiteral | this_XIfExpression_6= ruleXIfExpression | ( ( ( () 'for' '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=>this_XForLoopExpression_7= ruleXForLoopExpression ) | this_XBasicForLoopExpression_8= ruleXBasicForLoopExpression | this_XWhileExpression_9= ruleXWhileExpression | this_XDoWhileExpression_10= ruleXDoWhileExpression | this_XThrowExpression_11= ruleXThrowExpression | this_XReturnExpression_12= ruleXReturnExpression | this_XTryCatchFinallyExpression_13= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_14= ruleXParenthesizedExpression )";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA101_0 = input.LA(1);
+
+                         
+                        int index101_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA101_0==157) ) {s = 1;}
+
+                        else if ( (LA101_0==16) ) {s = 2;}
+
+                        else if ( (LA101_0==146) ) {s = 3;}
+
+                        else if ( (LA101_0==166) && (synpred25_InternalTableDSL())) {s = 4;}
+
+                        else if ( (LA101_0==RULE_ID||(LA101_0>=103 && LA101_0<=105)||LA101_0==119||(LA101_0>=155 && LA101_0<=156)) ) {s = 5;}
+
+                        else if ( (LA101_0==RULE_STRING||(LA101_0>=RULE_INT && LA101_0<=RULE_DECIMAL)||(LA101_0>=111 && LA101_0<=112)||(LA101_0>=158 && LA101_0<=161)) ) {s = 12;}
+
+                        else if ( (LA101_0==144) ) {s = 22;}
+
+                        else if ( (LA101_0==150) ) {s = 23;}
+
+                        else if ( (LA101_0==151) ) {s = 24;}
+
+                        else if ( (LA101_0==152) ) {s = 25;}
+
+                        else if ( (LA101_0==162) ) {s = 26;}
+
+                        else if ( (LA101_0==163) ) {s = 27;}
+
+                        else if ( (LA101_0==164) ) {s = 28;}
+
+                        else if ( (LA101_0==93) ) {s = 29;}
+
+                         
+                        input.seek(index101_0);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA101_23 = input.LA(1);
+
+                         
+                        int index101_23 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred26_InternalTableDSL()) ) {s = 30;}
+
+                        else if ( (true) ) {s = 31;}
+
+                         
+                        input.seek(index101_23);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 101, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_58s = "\46\uffff";
+    static final String dfa_59s = "\1\4\2\0\43\uffff";
+    static final String dfa_60s = "\1\u00a6\2\0\43\uffff";
+    static final String dfa_61s = "\3\uffff\2\1\1\2\40\uffff";
+    static final String dfa_62s = "\1\0\1\1\1\2\43\uffff}>";
+    static final String[] dfa_63s = {
+            "\1\1\1\5\1\uffff\3\5\6\uffff\1\5\114\uffff\1\2\7\uffff\5\5\5\uffff\3\5\5\uffff\1\5\14\uffff\1\3\5\uffff\1\5\4\uffff\1\4\1\5\1\uffff\1\5\3\uffff\17\5\1\uffff\1\5",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_58 = DFA.unpackEncodedString(dfa_58s);
+    static final char[] dfa_59 = DFA.unpackEncodedStringToUnsignedChars(dfa_59s);
+    static final char[] dfa_60 = DFA.unpackEncodedStringToUnsignedChars(dfa_60s);
+    static final short[] dfa_61 = DFA.unpackEncodedString(dfa_61s);
+    static final short[] dfa_62 = DFA.unpackEncodedString(dfa_62s);
+    static final short[][] dfa_63 = unpackEncodedStringArray(dfa_63s);
+
+    class DFA110 extends DFA {
+
+        public DFA110(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 110;
+            this.eot = dfa_58;
+            this.eof = dfa_58;
+            this.min = dfa_59;
+            this.max = dfa_60;
+            this.accept = dfa_61;
+            this.special = dfa_62;
+            this.transition = dfa_63;
+        }
+        public String getDescription() {
+            return "8301:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA110_0 = input.LA(1);
+
+                         
+                        int index110_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA110_0==RULE_ID) ) {s = 1;}
+
+                        else if ( (LA110_0==93) ) {s = 2;}
+
+                        else if ( (LA110_0==132) && (synpred29_InternalTableDSL())) {s = 3;}
+
+                        else if ( (LA110_0==143) && (synpred29_InternalTableDSL())) {s = 4;}
+
+                        else if ( (LA110_0==RULE_STRING||(LA110_0>=RULE_INT && LA110_0<=RULE_DECIMAL)||LA110_0==16||(LA110_0>=101 && LA110_0<=105)||(LA110_0>=111 && LA110_0<=113)||LA110_0==119||LA110_0==138||LA110_0==144||LA110_0==146||(LA110_0>=150 && LA110_0<=164)||LA110_0==166) ) {s = 5;}
+
+                         
+                        input.seek(index110_0);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA110_1 = input.LA(1);
+
+                         
+                        int index110_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred29_InternalTableDSL()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index110_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA110_2 = input.LA(1);
+
+                         
+                        int index110_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred29_InternalTableDSL()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index110_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 110, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String[] dfa_64s = {
+            "\2\2\1\uffff\3\2\6\uffff\1\2\114\uffff\1\1\7\uffff\5\2\5\uffff\2\2\6\uffff\1\2\14\uffff\1\2\5\uffff\1\2\5\uffff\1\2\1\uffff\1\2\3\uffff\3\2\2\uffff\12\2\1\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final short[][] dfa_64 = unpackEncodedStringArray(dfa_64s);
+
+    class DFA117 extends DFA {
+
+        public DFA117(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 117;
+            this.eot = dfa_14;
+            this.eof = dfa_14;
+            this.min = dfa_15;
+            this.max = dfa_16;
+            this.accept = dfa_17;
+            this.special = dfa_18;
+            this.transition = dfa_64;
+        }
+        public String getDescription() {
+            return "8767:3: ( ( ( ( ( '(' ( ( ruleJvmFormalParameter ) ) ':' ) )=> (otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ) ) ( (lv_switch_5_0= ruleXExpression ) ) otherlv_6= ')' ) | ( ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )? ( (lv_switch_9_0= ruleXExpression ) ) ) )";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA117_1 = input.LA(1);
+
+                         
+                        int index117_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred32_InternalTableDSL()) ) {s = 34;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index117_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 117, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_65s = "\42\uffff";
+    static final String dfa_66s = "\1\4\2\0\37\uffff";
+    static final String dfa_67s = "\1\u00a6\2\0\37\uffff";
+    static final String dfa_68s = "\3\uffff\1\1\1\2\35\uffff";
+    static final String dfa_69s = "\1\0\1\1\1\2\37\uffff}>";
+    static final String[] dfa_70s = {
+            "\1\1\1\4\1\uffff\3\4\6\uffff\1\4\114\uffff\1\2\7\uffff\5\4\5\uffff\2\4\6\uffff\1\4\14\uffff\1\3\5\uffff\1\4\5\uffff\1\4\1\uffff\1\4\3\uffff\3\4\2\uffff\12\4\1\uffff\1\4",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_65 = DFA.unpackEncodedString(dfa_65s);
+    static final char[] dfa_66 = DFA.unpackEncodedStringToUnsignedChars(dfa_66s);
+    static final char[] dfa_67 = DFA.unpackEncodedStringToUnsignedChars(dfa_67s);
+    static final short[] dfa_68 = DFA.unpackEncodedString(dfa_68s);
+    static final short[] dfa_69 = DFA.unpackEncodedString(dfa_69s);
+    static final short[][] dfa_70 = unpackEncodedStringArray(dfa_70s);
+
+    class DFA116 extends DFA {
+
+        public DFA116(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 116;
+            this.eot = dfa_65;
+            this.eof = dfa_65;
+            this.min = dfa_66;
+            this.max = dfa_67;
+            this.accept = dfa_68;
+            this.special = dfa_69;
+            this.transition = dfa_70;
+        }
+        public String getDescription() {
+            return "8836:5: ( ( ( ( ( ruleJvmFormalParameter ) ) ':' ) )=> ( ( (lv_declaredParam_7_0= ruleJvmFormalParameter ) ) otherlv_8= ':' ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA116_0 = input.LA(1);
+
+                         
+                        int index116_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA116_0==RULE_ID) ) {s = 1;}
+
+                        else if ( (LA116_0==93) ) {s = 2;}
+
+                        else if ( (LA116_0==132) && (synpred33_InternalTableDSL())) {s = 3;}
+
+                        else if ( (LA116_0==RULE_STRING||(LA116_0>=RULE_INT && LA116_0<=RULE_DECIMAL)||LA116_0==16||(LA116_0>=101 && LA116_0<=105)||(LA116_0>=111 && LA116_0<=112)||LA116_0==119||LA116_0==138||LA116_0==144||LA116_0==146||(LA116_0>=150 && LA116_0<=152)||(LA116_0>=155 && LA116_0<=164)||LA116_0==166) ) {s = 4;}
+
+                         
+                        input.seek(index116_0);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA116_1 = input.LA(1);
+
+                         
+                        int index116_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred33_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 4;}
+
+                         
+                        input.seek(index116_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA116_2 = input.LA(1);
+
+                         
+                        int index116_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred33_InternalTableDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 4;}
+
+                         
+                        input.seek(index116_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 116, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA139 extends DFA {
+
+        public DFA139(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 139;
+            this.eot = dfa_39;
+            this.eof = dfa_40;
+            this.min = dfa_41;
+            this.max = dfa_42;
+            this.accept = dfa_43;
+            this.special = dfa_44;
+            this.transition = dfa_45;
+        }
+        public String getDescription() {
+            return "9965:3: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA139_1 = input.LA(1);
+
+                         
+                        int index139_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred36_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index139_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 139, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA138 extends DFA {
+
+        public DFA138(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 138;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_46;
+            this.max = dfa_47;
+            this.accept = dfa_48;
+            this.special = dfa_49;
+            this.transition = dfa_50;
+        }
+        public String getDescription() {
+            return "9984:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA138_0 = input.LA(1);
+
+                         
+                        int index138_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA138_0==RULE_ID) ) {s = 1;}
+
+                        else if ( (LA138_0==93) ) {s = 2;}
+
+                        else if ( (LA138_0==132) && (synpred37_InternalTableDSL())) {s = 3;}
+
+                        else if ( (LA138_0==143) && (synpred37_InternalTableDSL())) {s = 4;}
+
+                        else if ( (LA138_0==RULE_STRING||(LA138_0>=RULE_INT && LA138_0<=RULE_DECIMAL)||LA138_0==16||(LA138_0>=101 && LA138_0<=105)||(LA138_0>=111 && LA138_0<=112)||LA138_0==119||LA138_0==138||LA138_0==144||LA138_0==146||(LA138_0>=150 && LA138_0<=152)||(LA138_0>=155 && LA138_0<=164)||LA138_0==166) ) {s = 5;}
+
+                        else if ( (LA138_0==94) ) {s = 35;}
+
+                         
+                        input.seek(index138_0);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA138_1 = input.LA(1);
+
+                         
+                        int index138_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred37_InternalTableDSL()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index138_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA138_2 = input.LA(1);
+
+                         
+                        int index138_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred37_InternalTableDSL()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index138_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 138, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA140 extends DFA {
+
+        public DFA140(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 140;
+            this.eot = dfa_39;
+            this.eof = dfa_40;
+            this.min = dfa_41;
+            this.max = dfa_42;
+            this.accept = dfa_43;
+            this.special = dfa_44;
+            this.transition = dfa_51;
+        }
+        public String getDescription() {
+            return "10082:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA140_1 = input.LA(1);
+
+                         
+                        int index140_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred38_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index140_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 140, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String[] dfa_71s = {
+            "\2\2\1\uffff\3\2\6\uffff\2\2\2\uffff\1\2\71\uffff\1\2\16\uffff\2\2\6\uffff\6\2\1\uffff\1\2\1\uffff\11\2\1\1\27\2\1\uffff\30\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final short[][] dfa_71 = unpackEncodedStringArray(dfa_71s);
+
+    class DFA144 extends DFA {
+
+        public DFA144(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 144;
+            this.eot = dfa_39;
+            this.eof = dfa_40;
+            this.min = dfa_41;
+            this.max = dfa_42;
+            this.accept = dfa_43;
+            this.special = dfa_44;
+            this.transition = dfa_71;
+        }
+        public String getDescription() {
+            return "10241:3: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA144_1 = input.LA(1);
+
+                         
+                        int index144_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred39_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index144_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 144, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA147 extends DFA {
+
+        public DFA147(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 147;
+            this.eot = dfa_39;
+            this.eof = dfa_40;
+            this.min = dfa_41;
+            this.max = dfa_42;
+            this.accept = dfa_43;
+            this.special = dfa_44;
+            this.transition = dfa_45;
+        }
+        public String getDescription() {
+            return "10298:3: ( ( ( ( '(' ) )=> (lv_explicitConstructorCall_8_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA147_1 = input.LA(1);
+
+                         
+                        int index147_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred40_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index147_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 147, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA146 extends DFA {
+
+        public DFA146(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 146;
+            this.eot = dfa_8;
+            this.eof = dfa_8;
+            this.min = dfa_46;
+            this.max = dfa_47;
+            this.accept = dfa_48;
+            this.special = dfa_49;
+            this.transition = dfa_50;
+        }
+        public String getDescription() {
+            return "10317:4: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA146_0 = input.LA(1);
+
+                         
+                        int index146_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (LA146_0==RULE_ID) ) {s = 1;}
+
+                        else if ( (LA146_0==93) ) {s = 2;}
+
+                        else if ( (LA146_0==132) && (synpred41_InternalTableDSL())) {s = 3;}
+
+                        else if ( (LA146_0==143) && (synpred41_InternalTableDSL())) {s = 4;}
+
+                        else if ( (LA146_0==RULE_STRING||(LA146_0>=RULE_INT && LA146_0<=RULE_DECIMAL)||LA146_0==16||(LA146_0>=101 && LA146_0<=105)||(LA146_0>=111 && LA146_0<=112)||LA146_0==119||LA146_0==138||LA146_0==144||LA146_0==146||(LA146_0>=150 && LA146_0<=152)||(LA146_0>=155 && LA146_0<=164)||LA146_0==166) ) {s = 5;}
+
+                        else if ( (LA146_0==94) ) {s = 35;}
+
+                         
+                        input.seek(index146_0);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA146_1 = input.LA(1);
+
+                         
+                        int index146_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred41_InternalTableDSL()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index146_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA146_2 = input.LA(1);
+
+                         
+                        int index146_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred41_InternalTableDSL()) ) {s = 4;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index146_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 146, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA148 extends DFA {
+
+        public DFA148(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 148;
+            this.eot = dfa_39;
+            this.eof = dfa_40;
+            this.min = dfa_41;
+            this.max = dfa_42;
+            this.accept = dfa_43;
+            this.special = dfa_44;
+            this.transition = dfa_51;
+        }
+        public String getDescription() {
+            return "10415:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA148_1 = input.LA(1);
+
+                         
+                        int index148_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred42_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index148_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 148, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_72s = "\1\41\115\uffff";
+    static final String dfa_73s = "\1\4\40\0\55\uffff";
+    static final String dfa_74s = "\1\u00a7\40\0\55\uffff";
+    static final String dfa_75s = "\41\uffff\1\2\53\uffff\1\1";
+    static final String dfa_76s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\55\uffff}>";
+    static final String[] dfa_77s = {
+            "\1\1\1\27\1\uffff\1\24\1\23\1\25\6\uffff\1\12\1\41\2\uffff\1\41\71\uffff\1\41\16\uffff\1\40\1\41\6\uffff\1\10\1\7\1\4\1\3\1\5\1\41\1\uffff\1\41\1\uffff\1\41\1\17\1\20\6\41\1\15\22\41\1\6\4\41\1\uffff\1\31\1\41\1\13\3\41\1\32\1\33\1\34\2\41\1\2\1\16\1\11\1\21\1\22\1\26\1\30\1\35\1\36\1\37\1\41\1\14\1\41",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+    static final short[] dfa_72 = DFA.unpackEncodedString(dfa_72s);
+    static final char[] dfa_73 = DFA.unpackEncodedStringToUnsignedChars(dfa_73s);
+    static final char[] dfa_74 = DFA.unpackEncodedStringToUnsignedChars(dfa_74s);
+    static final short[] dfa_75 = DFA.unpackEncodedString(dfa_75s);
+    static final short[] dfa_76 = DFA.unpackEncodedString(dfa_76s);
+    static final short[][] dfa_77 = unpackEncodedStringArray(dfa_77s);
+
+    class DFA151 extends DFA {
+
+        public DFA151(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 151;
+            this.eot = dfa_39;
+            this.eof = dfa_72;
+            this.min = dfa_73;
+            this.max = dfa_74;
+            this.accept = dfa_75;
+            this.special = dfa_76;
+            this.transition = dfa_77;
+        }
+        public String getDescription() {
+            return "10758:3: ( ( 'extends' | 'static' | 'import' | 'extension' | '!' | '-' | '+' | 'new' | '{' | 'switch' | 'synchronized' | '<' | 'super' | '#' | '[' | 'false' | 'true' | 'null' | 'typeof' | 'if' | 'for' | 'while' | 'do' | 'throw' | 'return' | 'try' | '(' | RULE_ID | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_STRING )=> (lv_expression_2_0= ruleXExpression ) )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA151_1 = input.LA(1);
+
+                         
+                        int index151_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA151_2 = input.LA(1);
+
+                         
+                        int index151_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA151_3 = input.LA(1);
+
+                         
+                        int index151_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA151_4 = input.LA(1);
+
+                         
+                        int index151_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA151_5 = input.LA(1);
+
+                         
+                        int index151_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA151_6 = input.LA(1);
+
+                         
+                        int index151_6 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_6);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA151_7 = input.LA(1);
+
+                         
+                        int index151_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 7 : 
+                        int LA151_8 = input.LA(1);
+
+                         
+                        int index151_8 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_8);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 8 : 
+                        int LA151_9 = input.LA(1);
+
+                         
+                        int index151_9 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_9);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 9 : 
+                        int LA151_10 = input.LA(1);
+
+                         
+                        int index151_10 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_10);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 10 : 
+                        int LA151_11 = input.LA(1);
+
+                         
+                        int index151_11 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_11);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 11 : 
+                        int LA151_12 = input.LA(1);
+
+                         
+                        int index151_12 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_12);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 12 : 
+                        int LA151_13 = input.LA(1);
+
+                         
+                        int index151_13 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_13);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 13 : 
+                        int LA151_14 = input.LA(1);
+
+                         
+                        int index151_14 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_14);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 14 : 
+                        int LA151_15 = input.LA(1);
+
+                         
+                        int index151_15 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_15);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 15 : 
+                        int LA151_16 = input.LA(1);
+
+                         
+                        int index151_16 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_16);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 16 : 
+                        int LA151_17 = input.LA(1);
+
+                         
+                        int index151_17 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_17);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 17 : 
+                        int LA151_18 = input.LA(1);
+
+                         
+                        int index151_18 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_18);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 18 : 
+                        int LA151_19 = input.LA(1);
+
+                         
+                        int index151_19 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_19);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 19 : 
+                        int LA151_20 = input.LA(1);
+
+                         
+                        int index151_20 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_20);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 20 : 
+                        int LA151_21 = input.LA(1);
+
+                         
+                        int index151_21 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_21);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 21 : 
+                        int LA151_22 = input.LA(1);
+
+                         
+                        int index151_22 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_22);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 22 : 
+                        int LA151_23 = input.LA(1);
+
+                         
+                        int index151_23 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_23);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 23 : 
+                        int LA151_24 = input.LA(1);
+
+                         
+                        int index151_24 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_24);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 24 : 
+                        int LA151_25 = input.LA(1);
+
+                         
+                        int index151_25 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_25);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 25 : 
+                        int LA151_26 = input.LA(1);
+
+                         
+                        int index151_26 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_26);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 26 : 
+                        int LA151_27 = input.LA(1);
+
+                         
+                        int index151_27 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_27);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 27 : 
+                        int LA151_28 = input.LA(1);
+
+                         
+                        int index151_28 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_28);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 28 : 
+                        int LA151_29 = input.LA(1);
+
+                         
+                        int index151_29 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_29);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 29 : 
+                        int LA151_30 = input.LA(1);
+
+                         
+                        int index151_30 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_30);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 30 : 
+                        int LA151_31 = input.LA(1);
+
+                         
+                        int index151_31 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_31);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 31 : 
+                        int LA151_32 = input.LA(1);
+
+                         
+                        int index151_32 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred43_InternalTableDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index151_32);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 151, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String dfa_78s = "\117\uffff";
+    static final String dfa_79s = "\1\2\116\uffff";
+    static final String dfa_80s = "\1\4\1\0\115\uffff";
+    static final String dfa_81s = "\1\u00a9\1\0\115\uffff";
+    static final String dfa_82s = "\2\uffff\1\2\113\uffff\1\1";
+    static final String dfa_83s = "\1\uffff\1\0\115\uffff}>";
+    static final String[] dfa_84s = {
+            "\2\2\1\uffff\3\2\6\uffff\2\2\2\uffff\1\2\71\uffff\1\2\16\uffff\2\2\6\uffff\6\2\1\uffff\1\2\1\uffff\11\2\1\1\27\2\1\uffff\30\2\1\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_78 = DFA.unpackEncodedString(dfa_78s);
+    static final short[] dfa_79 = DFA.unpackEncodedString(dfa_79s);
+    static final char[] dfa_80 = DFA.unpackEncodedStringToUnsignedChars(dfa_80s);
+    static final char[] dfa_81 = DFA.unpackEncodedStringToUnsignedChars(dfa_81s);
+    static final short[] dfa_82 = DFA.unpackEncodedString(dfa_82s);
+    static final short[] dfa_83 = DFA.unpackEncodedString(dfa_83s);
+    static final short[][] dfa_84 = unpackEncodedStringArray(dfa_84s);
+
+    class DFA169 extends DFA {
+
+        public DFA169(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 169;
+            this.eot = dfa_78;
+            this.eof = dfa_79;
+            this.min = dfa_80;
+            this.max = dfa_81;
+            this.accept = dfa_82;
+            this.special = dfa_83;
+            this.transition = dfa_84;
+        }
+        public String getDescription() {
+            return "11416:3: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' ( ( ( ( () '.' ) )=> ( () otherlv_7= '.' ) ) ( ( ruleValidID ) ) ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )? )* )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA169_1 = input.LA(1);
+
+                         
+                        int index169_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred50_InternalTableDSL()) ) {s = 78;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index169_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 169, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+
+    class DFA167 extends DFA {
+
+        public DFA167(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 167;
+            this.eot = dfa_78;
+            this.eof = dfa_79;
+            this.min = dfa_80;
+            this.max = dfa_81;
+            this.accept = dfa_82;
+            this.special = dfa_83;
+            this.transition = dfa_84;
+        }
+        public String getDescription() {
+            return "11510:5: ( ( ( '<' )=>otherlv_9= '<' ) ( (lv_arguments_10_0= ruleJvmArgumentTypeReference ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleJvmArgumentTypeReference ) ) )* otherlv_13= '>' )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA167_1 = input.LA(1);
+
+                         
+                        int index167_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred52_InternalTableDSL()) ) {s = 78;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index167_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 167, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+    public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000008002L});
+    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000010002L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000060000L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000180000L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000100240000L,0x0000000000000080L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000C00000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x000000007F000002L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x00E0000000000000L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000380L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x4000000000000000L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x00000000FF000002L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x00FF800000000000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x000046F000000002L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000010000010000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0700000000020000L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000028000000002L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x3C00000000020000L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000310000000002L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000380L,0x0000004000000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000002000000000L,0x0000000000000078L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000080L,0x0000004000000000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x8000000000020000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x1F00000000100000L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000200000002L,0x0000000000000007L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000800020000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x00FF800000020000L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x001F000000000000L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x000000007C000002L,0x0000000000000300L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x000000007C000002L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000000L,0x0000000D096E8000L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000020000L,0x0000000000000C00L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000080L,0x0000006000000000L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000800000020L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000000L,0x00000000A0000000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000220000000L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000010000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x3000000000020000L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000FC0000000000L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000010L,0x0000090000000000L});
+    public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000010L,0x0000020000000000L});
+    public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000000010L,0x0000040000000000L});
+    public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+    public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000000L});
+    public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x00000000000103B0L,0x0081A3E060000000L,0x0000005FF9C50400L});
+    public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000000000000L,0x0000400040000000L});
+    public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x00000000000103B0L,0x0081A3E020000000L,0x0000005FF9C50400L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x00000000000103B0L,0x0083A3E020000000L,0x0000005FF9C50400L});
+    public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000000000L,0x0002400000000000L});
+    public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000000002L,0x01FC000000000000L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
+    public static final BitSet FOLLOW_79 = new BitSet(new long[]{0x0000000000000000L,0x0300000000000000L});
+    public static final BitSet FOLLOW_80 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
+    public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000000000002L,0x0400000000000000L});
+    public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000002L,0x0800000000000000L});
+    public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000000002L,0xF000000000000000L});
+    public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000002L,0x0380000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000010L,0x0000000020000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000000000002L,0x0180000000000000L,0x000000000000007EL});
+    public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000000000000L,0x0100000000000000L});
+    public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000000002L,0x0000006000000000L});
+    public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000000002L,0x0000040000000000L,0x0000000000000380L});
+    public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000100002L});
+    public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000001800L});
+    public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L,0x0000000000006000L});
+    public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000010L,0x0000038000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000010L,0x0080038000000000L,0x0000000018000000L});
+    public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000000000010L,0x0000000020000000L,0x0000010000000010L});
+    public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x0000000000000000L,0x0100400000000000L});
+    public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000002L,0x0001000020004000L,0x0000000000006000L});
+    public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x00000000000103B0L,0x0081A3E060000000L,0x0000005FF9C58410L});
+    public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x0000000000000002L,0x0001000000004000L,0x0000000000006000L});
+    public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x00000000000303B0L,0x0081A3E020000000L,0x0000005FF9C50400L});
+    public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000020000L,0x0000400000000000L});
+    public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x00000000000103B0L,0x0083A3E020000000L,0x0000005FFFC58410L});
+    public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x00000000000103B0L,0x0083A3E020000000L,0x0000005FFFC50400L});
+    public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x00000000000103B2L,0x0081B3E020000000L,0x0000005FFFC50400L});
+    public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x00000000000103B2L,0x0081A3E020000000L,0x0000005FFFC50400L});
+    public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x00000000000103B0L,0x0081A3E020000000L,0x0000005FF9C50410L});
+    public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
+    public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000000020010L,0x0000400020000000L,0x0000000000380010L});
+    public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L,0x0000000000280000L});
+    public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L,0x0000000000080000L});
+    public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x00000000000103B0L,0x0081B3E020000000L,0x0000005FFFC50400L});
+    public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x0000000000000000L,0x0000500000000000L});
+    public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x00000000000103B0L,0x0081A3E020000000L,0x0000005FFFC50400L});
+    public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x00000000000103B0L,0x0081B3E020000000L,0x0000005FF9C50400L});
+    public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
+    public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000800000L});
+    public static final BitSet FOLLOW_124 = new BitSet(new long[]{0x00000000000303B0L,0x0081A3E020000000L,0x0000005FFFC50400L});
+    public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x00000000000303B0L,0x0081B3E020000000L,0x0000005FFFC50400L});
+    public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0000000000000002L,0x0000000010000000L});
+    public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x0000000000000002L,0x0001000020000000L});
+    public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x0000000000000002L,0x0001000000000000L});
+    public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x0000000000000002L,0x0081000020000000L});
+    public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0000000000000000L,0x0001000040000000L});
+    public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x00000000000103B2L,0x0081A3E020000000L,0x0000005FF9C50400L});
+    public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x000000A000000000L});
+    public static final BitSet FOLLOW_133 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x000000A000000000L});
+    public static final BitSet FOLLOW_134 = new BitSet(new long[]{0x0000000000000280L});
+    public static final BitSet FOLLOW_135 = new BitSet(new long[]{0x0000000000000010L,0x0000000060000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_136 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_137 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
+    public static final BitSet FOLLOW_138 = new BitSet(new long[]{0x0000000000000002L,0x0080000000004000L});
+    public static final BitSet FOLLOW_139 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000018000000L});
+    public static final BitSet FOLLOW_140 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_141 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_142 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
+    public static final BitSet FOLLOW_143 = new BitSet(new long[]{0x0000000000000002L,0x0000008000000000L});
+    public static final BitSet FOLLOW_144 = new BitSet(new long[]{0x0000000000000012L});
+
+}
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/scoping/AbstractTableDSLScopeProvider.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/scoping/AbstractTableDSLScopeProvider.java
new file mode 100644
index 0000000..581c121
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/scoping/AbstractTableDSLScopeProvider.java
@@ -0,0 +1,9 @@
+/*
+ * generated by Xtext 2.11.0
+ */
+package org.eclipse.osbp.xtext.table.scoping;
+
+import org.eclipse.osbp.xtext.oxtype.scoping.OXtypeScopeProvider;
+
+public abstract class AbstractTableDSLScopeProvider extends OXtypeScopeProvider {
+}
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/serializer/TableDSLSemanticSequencer.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/serializer/TableDSLSemanticSequencer.java
index 07fadaf..17744b4 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/serializer/TableDSLSemanticSequencer.java
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/serializer/TableDSLSemanticSequencer.java
@@ -1,23 +1,12 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table.serializer;
 
 import com.google.inject.Inject;
-import com.google.inject.Provider;
+import java.util.Set;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.osbp.dsl.semantic.common.types.LImport;
-import org.eclipse.osbp.dsl.semantic.common.types.OSBPTypesPackage;
+import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField;
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath;
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
@@ -36,11 +25,15 @@
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource;
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource;
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+import org.eclipse.osbp.xtext.oxtype.oxtype.OXImportDeclaration;
+import org.eclipse.osbp.xtext.oxtype.oxtype.OXtypePackage;
+import org.eclipse.osbp.xtext.oxtype.serializer.OXtypeSemanticSequencer;
 import org.eclipse.osbp.xtext.table.Table;
 import org.eclipse.osbp.xtext.table.TableAggregation;
 import org.eclipse.osbp.xtext.table.TableAllColumns;
+import org.eclipse.osbp.xtext.table.TableAttribute;
 import org.eclipse.osbp.xtext.table.TableAxis;
-import org.eclipse.osbp.xtext.table.TableBrokerDatamart;
+import org.eclipse.osbp.xtext.table.TableBean;
 import org.eclipse.osbp.xtext.table.TableCellColor;
 import org.eclipse.osbp.xtext.table.TableColumn;
 import org.eclipse.osbp.xtext.table.TableDSLPackage;
@@ -55,6 +48,8 @@
 import org.eclipse.osbp.xtext.table.TableHierarchy;
 import org.eclipse.osbp.xtext.table.TableIcon;
 import org.eclipse.osbp.xtext.table.TableImage;
+import org.eclipse.osbp.xtext.table.TableIntInterval;
+import org.eclipse.osbp.xtext.table.TableIntLookup;
 import org.eclipse.osbp.xtext.table.TableMeasure;
 import org.eclipse.osbp.xtext.table.TableModel;
 import org.eclipse.osbp.xtext.table.TableNumberInterval;
@@ -62,7 +57,6 @@
 import org.eclipse.osbp.xtext.table.TableOrdinal;
 import org.eclipse.osbp.xtext.table.TablePackage;
 import org.eclipse.osbp.xtext.table.TablePreorder;
-import org.eclipse.osbp.xtext.table.TableProperty;
 import org.eclipse.osbp.xtext.table.TableSelection;
 import org.eclipse.osbp.xtext.table.TableStringLookup;
 import org.eclipse.osbp.xtext.table.TableTable;
@@ -73,6 +67,9 @@
 import org.eclipse.osbp.xtext.table.TableTrend;
 import org.eclipse.osbp.xtext.table.TableValue;
 import org.eclipse.osbp.xtext.table.services.TableDSLGrammarAccess;
+import org.eclipse.xtext.Action;
+import org.eclipse.xtext.Parameter;
+import org.eclipse.xtext.ParserRule;
 import org.eclipse.xtext.common.types.JvmFormalParameter;
 import org.eclipse.xtext.common.types.JvmGenericArrayTypeReference;
 import org.eclipse.xtext.common.types.JvmInnerTypeReference;
@@ -82,14 +79,8 @@
 import org.eclipse.xtext.common.types.JvmUpperBound;
 import org.eclipse.xtext.common.types.JvmWildcardTypeReference;
 import org.eclipse.xtext.common.types.TypesPackage;
-import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor;
+import org.eclipse.xtext.serializer.ISerializationContext;
 import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
-import org.eclipse.xtext.serializer.diagnostic.ISemanticSequencerDiagnosticProvider;
-import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
-import org.eclipse.xtext.serializer.sequencer.GenericSequencer;
-import org.eclipse.xtext.serializer.sequencer.ISemanticNodeProvider.INodesForEObjectProvider;
-import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
-import org.eclipse.xtext.serializer.sequencer.ITransientValueService;
 import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
 import org.eclipse.xtext.xbase.XAssignment;
 import org.eclipse.xtext.xbase.XBasicForLoopExpression;
@@ -123,1666 +114,564 @@
 import org.eclipse.xtext.xbase.XVariableDeclaration;
 import org.eclipse.xtext.xbase.XWhileExpression;
 import org.eclipse.xtext.xbase.XbasePackage;
-import org.eclipse.xtext.xbase.annotations.serializer.XbaseWithAnnotationsSemanticSequencer;
 import org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotation;
 import org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotationElementValuePair;
 import org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotationsPackage;
 import org.eclipse.xtext.xtype.XFunctionTypeRef;
-import org.eclipse.xtext.xtype.XImportDeclaration;
 import org.eclipse.xtext.xtype.XImportSection;
 import org.eclipse.xtext.xtype.XtypePackage;
 
 @SuppressWarnings("all")
-public class TableDSLSemanticSequencer extends XbaseWithAnnotationsSemanticSequencer {
+public class TableDSLSemanticSequencer extends OXtypeSemanticSequencer {
 
 	@Inject
 	private TableDSLGrammarAccess grammarAccess;
 	
-	public void createSequence(EObject context, EObject semanticObject) {
-		if(semanticObject.eClass().getEPackage() == CxGridSourcePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+	@Override
+	public void sequence(ISerializationContext context, EObject semanticObject) {
+		EPackage epackage = semanticObject.eClass().getEPackage();
+		ParserRule rule = context.getParserRule();
+		Action action = context.getAssignedAction();
+		Set<Parameter> parameters = context.getEnabledBooleanParameters();
+		if (epackage == CxGridSourcePackage.eINSTANCE)
+			switch (semanticObject.eClass().getClassifierID()) {
 			case CxGridSourcePackage.CX_GRID_NESTED_FIELD:
-				if(context == grammarAccess.getNestedFieldRule()) {
-					sequence_NestedField(context, (CxGridNestedField) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_NestedField(context, (CxGridNestedField) semanticObject); 
+				return; 
 			case CxGridSourcePackage.CX_GRID_NESTED_PATH:
-				if(context == grammarAccess.getNestedPathRule()) {
-					sequence_NestedPath(context, (CxGridNestedPath) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_NestedPath(context, (CxGridNestedPath) semanticObject); 
+				return; 
 			case CxGridSourcePackage.CX_GRID_PROPERTY:
-				if(context == grammarAccess.getPropertyRule()) {
-					sequence_Property(context, (CxGridProperty) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_Property(context, (CxGridProperty) semanticObject); 
+				return; 
 			}
-		else if(semanticObject.eClass().getEPackage() == CxGridStylePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+		else if (epackage == OXtypePackage.eINSTANCE)
+			switch (semanticObject.eClass().getClassifierID()) {
+			case OXtypePackage.OX_IMPORT_DECLARATION:
+				sequence_XImportDeclaration(context, (OXImportDeclaration) semanticObject); 
+				return; 
+			}
+		else if (epackage == CxGridStylePackage.eINSTANCE)
+			switch (semanticObject.eClass().getClassifierID()) {
 			case CxGridStylePackage.CX_GRID_PROP_BOOLEAN_STYLE:
-				if(context == grammarAccess.getPropertyBooleanStyleRule() ||
-				   context == grammarAccess.getPropertyStyleRule()) {
-					sequence_PropertyBooleanStyle(context, (CxGridPropBooleanStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_PropertyBooleanStyle(context, (CxGridPropBooleanStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE:
-				if(context == grammarAccess.getPropertyButtonStyleRule() ||
-				   context == grammarAccess.getPropertyStyleRule()) {
-					sequence_PropertyButtonStyle(context, (CxGridPropButtonStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_PropertyButtonStyle(context, (CxGridPropButtonStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_PROP_DATE_STYLE:
-				if(context == grammarAccess.getPropertyDateStyleRule() ||
-				   context == grammarAccess.getPropertyStyleRule()) {
-					sequence_PropertyDateStyle(context, (CxGridPropDateStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_PropertyDateStyle(context, (CxGridPropDateStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_PROP_HTML_STYLE:
-				if(context == grammarAccess.getPropertyHtmlStyleRule() ||
-				   context == grammarAccess.getPropertyStyleRule()) {
-					sequence_PropertyHtmlStyle(context, (CxGridPropHtmlStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_PropertyHtmlStyle(context, (CxGridPropHtmlStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE:
-				if(context == grammarAccess.getPropertyImageStyleRule() ||
-				   context == grammarAccess.getPropertyStyleRule()) {
-					sequence_PropertyImageStyle(context, (CxGridPropImageStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_PropertyImageStyle(context, (CxGridPropImageStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE:
-				if(context == grammarAccess.getGridPropIndicatorStyleRule() ||
-				   context == grammarAccess.getPropertyStyleRule()) {
-					sequence_GridPropIndicatorStyle(context, (CxGridPropIndicatorStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_GridPropIndicatorStyle(context, (CxGridPropIndicatorStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE:
-				if(context == grammarAccess.getPropertyNumberStyleRule() ||
-				   context == grammarAccess.getPropertyStyleRule()) {
-					sequence_PropertyNumberStyle(context, (CxGridPropNumberStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_PropertyNumberStyle(context, (CxGridPropNumberStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE:
-				if(context == grammarAccess.getPropertyPriceStyleRule() ||
-				   context == grammarAccess.getPropertyStyleRule()) {
-					sequence_PropertyPriceStyle(context, (CxGridPropPriceStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_PropertyPriceStyle(context, (CxGridPropPriceStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE:
-				if(context == grammarAccess.getPropertyProgressbarStyleRule() ||
-				   context == grammarAccess.getPropertyStyleRule()) {
-					sequence_PropertyProgressbarStyle(context, (CxGridPropProgressbarStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_PropertyProgressbarStyle(context, (CxGridPropProgressbarStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE:
-				if(context == grammarAccess.getPropertyQuantityStyleRule() ||
-				   context == grammarAccess.getPropertyStyleRule()) {
-					sequence_PropertyQuantityStyle(context, (CxGridPropQuantityStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_PropertyQuantityStyle(context, (CxGridPropQuantityStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_PROP_TEXT_STYLE:
-				if(context == grammarAccess.getPropertyStyleRule() ||
-				   context == grammarAccess.getPropertyTextStyleRule()) {
-					sequence_PropertyTextStyle(context, (CxGridPropTextStyle) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_PropertyTextStyle(context, (CxGridPropTextStyle) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE:
-				if(context == grammarAccess.getNumericToResourceStyleConfigRule() ||
-				   context == grammarAccess.getStyleConfigRule()) {
-					sequence_NumericToResourceStyleConfig(context, (CxGridStyleConfigNumericToResource) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_NumericToResourceStyleConfig(context, (CxGridStyleConfigNumericToResource) semanticObject); 
+				return; 
 			case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE:
-				if(context == grammarAccess.getStringToResourceStyleConfigRule() ||
-				   context == grammarAccess.getStyleConfigRule()) {
-					sequence_StringToResourceStyleConfig(context, (CxGridStyleConfigStringToResource) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_StringToResourceStyleConfig(context, (CxGridStyleConfigStringToResource) semanticObject); 
+				return; 
 			}
-		else if(semanticObject.eClass().getEPackage() == TableDSLPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+		else if (epackage == TableDSLPackage.eINSTANCE)
+			switch (semanticObject.eClass().getClassifierID()) {
 			case TableDSLPackage.TABLE:
-				if(context == grammarAccess.getTableRule()) {
-					sequence_Table(context, (Table) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_Table(context, (Table) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_AGGREGATION:
-				if(context == grammarAccess.getTableAggregationRule() ||
-				   context == grammarAccess.getTableValueElementRule()) {
-					sequence_TableAggregation(context, (TableAggregation) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableAggregation(context, (TableAggregation) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_ALL_COLUMNS:
-				if(context == grammarAccess.getTableAllColumnsRule() ||
-				   context == grammarAccess.getTableValueElementRule()) {
-					sequence_TableAllColumns(context, (TableAllColumns) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableAllColumns(context, (TableAllColumns) semanticObject); 
+				return; 
+			case TableDSLPackage.TABLE_ATTRIBUTE:
+				sequence_TableAttribute(context, (TableAttribute) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_AXIS:
-				if(context == grammarAccess.getTableAxisRule() ||
-				   context == grammarAccess.getTableElementRule()) {
-					sequence_TableAxis(context, (TableAxis) semanticObject); 
-					return; 
-				}
-				else break;
-			case TableDSLPackage.TABLE_BROKER_DATAMART:
-				if(context == grammarAccess.getTableBrokerDatamartRule()) {
-					sequence_TableBrokerDatamart(context, (TableBrokerDatamart) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableAxis(context, (TableAxis) semanticObject); 
+				return; 
+			case TableDSLPackage.TABLE_BEAN:
+				sequence_TableBean(context, (TableBean) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_CELL_COLOR:
-				if(context == grammarAccess.getTableCellColorRule() ||
-				   context == grammarAccess.getTableRangeElementRule()) {
-					sequence_TableCellColor(context, (TableCellColor) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableCellColor(context, (TableCellColor) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_COLUMN:
-				if(context == grammarAccess.getTableColumnRule() ||
-				   context == grammarAccess.getTableValueElementRule()) {
-					sequence_TableColumn(context, (TableColumn) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableColumn(context, (TableColumn) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_DATAMART:
-				if(context == grammarAccess.getTableDatamartRule()) {
-					sequence_TableDatamart(context, (TableDatamart) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableDatamart(context, (TableDatamart) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_DATE_DAY_INTERVAL:
-				if(context == grammarAccess.getTableDateDayIntervalRule() ||
-				   context == grammarAccess.getTableIntervalRule()) {
-					sequence_TableDateDayInterval(context, (TableDateDayInterval) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableDateDayInterval(context, (TableDateDayInterval) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_DATE_DAY_LOOKUP:
-				if(context == grammarAccess.getTableDateDayLookupRule() ||
-				   context == grammarAccess.getTableLookupRule()) {
-					sequence_TableDateDayLookup(context, (TableDateDayLookup) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableDateDayLookup(context, (TableDateDayLookup) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_DERIVED:
-				if(context == grammarAccess.getTableDerivedRule() ||
-				   context == grammarAccess.getTableValueElementRule()) {
-					sequence_TableDerived(context, (TableDerived) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableDerived(context, (TableDerived) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_DTO_DATASOURCE:
-				if(context == grammarAccess.getTableDtoDatasourceRule()) {
-					sequence_TableDtoDatasource(context, (TableDtoDatasource) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableDtoDatasource(context, (TableDtoDatasource) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_EVENT:
-				if(context == grammarAccess.getTableEventRule()) {
-					sequence_TableEvent(context, (TableEvent) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableEvent(context, (TableEvent) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_FORMATTER:
-				if(context == grammarAccess.getTableFormatterRule()) {
-					sequence_TableFormatter(context, (TableFormatter) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableFormatter(context, (TableFormatter) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_GRID:
-				if(context == grammarAccess.getTableGridRule() ||
-				   context == grammarAccess.getTableOptionRule()) {
-					sequence_TableGrid(context, (TableGrid) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableGrid(context, (TableGrid) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_HIERARCHY:
-				if(context == grammarAccess.getTableHierarchyRule() ||
-				   context == grammarAccess.getTableValueElementRule()) {
-					sequence_TableHierarchy(context, (TableHierarchy) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableHierarchy(context, (TableHierarchy) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_ICON:
-				if(context == grammarAccess.getTableIconRule() ||
-				   context == grammarAccess.getTableRangeElementRule()) {
-					sequence_TableIcon(context, (TableIcon) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableIcon(context, (TableIcon) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_IMAGE:
-				if(context == grammarAccess.getTableImageRule()) {
-					sequence_TableImage(context, (TableImage) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableImage(context, (TableImage) semanticObject); 
+				return; 
+			case TableDSLPackage.TABLE_INT_INTERVAL:
+				sequence_TableIntInterval(context, (TableIntInterval) semanticObject); 
+				return; 
+			case TableDSLPackage.TABLE_INT_LOOKUP:
+				sequence_TableIntLookup(context, (TableIntLookup) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_MEASURE:
-				if(context == grammarAccess.getTableMeasureRule() ||
-				   context == grammarAccess.getTableValueElementRule()) {
-					sequence_TableMeasure(context, (TableMeasure) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableMeasure(context, (TableMeasure) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_MODEL:
-				if(context == grammarAccess.getTableModelRule()) {
-					sequence_TableModel(context, (TableModel) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableModel(context, (TableModel) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_NUMBER_INTERVAL:
-				if(context == grammarAccess.getTableIntervalRule() ||
-				   context == grammarAccess.getTableNumberIntervalRule()) {
-					sequence_TableNumberInterval(context, (TableNumberInterval) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableNumberInterval(context, (TableNumberInterval) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_NUMBER_LOOKUP:
-				if(context == grammarAccess.getTableLookupRule() ||
-				   context == grammarAccess.getTableNumberLookupRule()) {
-					sequence_TableNumberLookup(context, (TableNumberLookup) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableNumberLookup(context, (TableNumberLookup) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_ORDINAL:
-				if(context == grammarAccess.getTableOrdinalRule() ||
-				   context == grammarAccess.getTableValueElementRule()) {
-					sequence_TableOrdinal(context, (TableOrdinal) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableOrdinal(context, (TableOrdinal) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_PACKAGE:
-				if(context == grammarAccess.getTablePackageRule()) {
-					sequence_TablePackage(context, (TablePackage) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TablePackage(context, (TablePackage) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_PREORDER:
-				if(context == grammarAccess.getTablePreorderRule()) {
-					sequence_TablePreorder(context, (TablePreorder) semanticObject); 
-					return; 
-				}
-				else break;
-			case TableDSLPackage.TABLE_PROPERTY:
-				if(context == grammarAccess.getTablePropertyRule() ||
-				   context == grammarAccess.getTableValueElementRule()) {
-					sequence_TableProperty(context, (TableProperty) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TablePreorder(context, (TablePreorder) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_SELECTION:
-				if(context == grammarAccess.getTableOptionRule() ||
-				   context == grammarAccess.getTableSelectionRule()) {
-					sequence_TableSelection(context, (TableSelection) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableSelection(context, (TableSelection) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_STRING_LOOKUP:
-				if(context == grammarAccess.getTableLookupRule() ||
-				   context == grammarAccess.getTableStringLookupRule()) {
-					sequence_TableStringLookup(context, (TableStringLookup) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableStringLookup(context, (TableStringLookup) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_TABLE:
-				if(context == grammarAccess.getTableOptionRule() ||
-				   context == grammarAccess.getTableTableRule()) {
-					sequence_TableTable(context, (TableTable) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableTable(context, (TableTable) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_TASK:
-				if(context == grammarAccess.getTableTaskRule() ||
-				   context == grammarAccess.getTableValueElementRule()) {
-					sequence_TableTask(context, (TableTask) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableTask(context, (TableTask) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_TEXT_COLOR:
-				if(context == grammarAccess.getTableRangeElementRule() ||
-				   context == grammarAccess.getTableTextColorRule()) {
-					sequence_TableTextColor(context, (TableTextColor) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableTextColor(context, (TableTextColor) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_TOOLTIP:
-				if(context == grammarAccess.getTableRangeElementRule() ||
-				   context == grammarAccess.getTableTooltipRule()) {
-					sequence_TableTooltip(context, (TableTooltip) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableTooltip(context, (TableTooltip) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_TOOLTIP_PATTERN:
-				if(context == grammarAccess.getTableTooltipPatternRule()) {
-					sequence_TableTooltipPattern(context, (TableTooltipPattern) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableTooltipPattern(context, (TableTooltipPattern) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_TREND:
-				if(context == grammarAccess.getTableRangeElementRule() ||
-				   context == grammarAccess.getTableTrendRule()) {
-					sequence_TableTrend(context, (TableTrend) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableTrend(context, (TableTrend) semanticObject); 
+				return; 
 			case TableDSLPackage.TABLE_VALUE:
-				if(context == grammarAccess.getTableValueRule()) {
-					sequence_TableValue(context, (TableValue) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_TableValue(context, (TableValue) semanticObject); 
+				return; 
 			}
-		else if(semanticObject.eClass().getEPackage() == OSBPTypesPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
-			case OSBPTypesPackage.LIMPORT:
-				if(context == grammarAccess.getTableImportRule()) {
-					sequence_TableImport(context, (LImport) semanticObject); 
-					return; 
-				}
-				else break;
-			}
-		else if(semanticObject.eClass().getEPackage() == TypesPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+		else if (epackage == TypesPackage.eINSTANCE)
+			switch (semanticObject.eClass().getClassifierID()) {
 			case TypesPackage.JVM_FORMAL_PARAMETER:
-				if(context == grammarAccess.getFullJvmFormalParameterRule()) {
+				if (rule == grammarAccess.getFullJvmFormalParameterRule()) {
 					sequence_FullJvmFormalParameter(context, (JvmFormalParameter) semanticObject); 
 					return; 
 				}
-				else if(context == grammarAccess.getJvmFormalParameterRule()) {
+				else if (rule == grammarAccess.getJvmFormalParameterRule()) {
 					sequence_JvmFormalParameter(context, (JvmFormalParameter) semanticObject); 
 					return; 
 				}
 				else break;
 			case TypesPackage.JVM_GENERIC_ARRAY_TYPE_REFERENCE:
-				if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
-				   context == grammarAccess.getJvmTypeReferenceRule() ||
-				   context == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()) {
-					sequence_JvmTypeReference(context, (JvmGenericArrayTypeReference) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_JvmTypeReference(context, (JvmGenericArrayTypeReference) semanticObject); 
+				return; 
 			case TypesPackage.JVM_INNER_TYPE_REFERENCE:
-				if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
-				   context == grammarAccess.getJvmParameterizedTypeReferenceRule() ||
-				   context == grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0() ||
-				   context == grammarAccess.getJvmTypeReferenceRule() ||
-				   context == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()) {
-					sequence_JvmParameterizedTypeReference(context, (JvmInnerTypeReference) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_JvmParameterizedTypeReference(context, (JvmInnerTypeReference) semanticObject); 
+				return; 
 			case TypesPackage.JVM_LOWER_BOUND:
-				if(context == grammarAccess.getJvmLowerBoundAndedRule()) {
+				if (rule == grammarAccess.getJvmLowerBoundAndedRule()) {
 					sequence_JvmLowerBoundAnded(context, (JvmLowerBound) semanticObject); 
 					return; 
 				}
-				else if(context == grammarAccess.getJvmLowerBoundRule()) {
+				else if (rule == grammarAccess.getJvmLowerBoundRule()) {
 					sequence_JvmLowerBound(context, (JvmLowerBound) semanticObject); 
 					return; 
 				}
 				else break;
 			case TypesPackage.JVM_PARAMETERIZED_TYPE_REFERENCE:
-				if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
-				   context == grammarAccess.getJvmParameterizedTypeReferenceRule() ||
-				   context == grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0() ||
-				   context == grammarAccess.getJvmTypeReferenceRule() ||
-				   context == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()) {
+				if (action == grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()) {
+					sequence_JvmParameterizedTypeReference_JvmInnerTypeReference_1_4_0_0_0(context, (JvmParameterizedTypeReference) semanticObject); 
+					return; 
+				}
+				else if (rule == grammarAccess.getJvmTypeReferenceRule()
+						|| action == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()
+						|| rule == grammarAccess.getJvmParameterizedTypeReferenceRule()
+						|| rule == grammarAccess.getJvmArgumentTypeReferenceRule()) {
 					sequence_JvmParameterizedTypeReference(context, (JvmParameterizedTypeReference) semanticObject); 
 					return; 
 				}
 				else break;
 			case TypesPackage.JVM_TYPE_PARAMETER:
-				if(context == grammarAccess.getJvmTypeParameterRule()) {
-					sequence_JvmTypeParameter(context, (JvmTypeParameter) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_JvmTypeParameter(context, (JvmTypeParameter) semanticObject); 
+				return; 
 			case TypesPackage.JVM_UPPER_BOUND:
-				if(context == grammarAccess.getJvmUpperBoundAndedRule()) {
+				if (rule == grammarAccess.getJvmUpperBoundAndedRule()) {
 					sequence_JvmUpperBoundAnded(context, (JvmUpperBound) semanticObject); 
 					return; 
 				}
-				else if(context == grammarAccess.getJvmUpperBoundRule()) {
+				else if (rule == grammarAccess.getJvmUpperBoundRule()) {
 					sequence_JvmUpperBound(context, (JvmUpperBound) semanticObject); 
 					return; 
 				}
 				else break;
 			case TypesPackage.JVM_WILDCARD_TYPE_REFERENCE:
-				if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
-				   context == grammarAccess.getJvmWildcardTypeReferenceRule()) {
-					sequence_JvmWildcardTypeReference(context, (JvmWildcardTypeReference) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_JvmWildcardTypeReference(context, (JvmWildcardTypeReference) semanticObject); 
+				return; 
 			}
-		else if(semanticObject.eClass().getEPackage() == XAnnotationsPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+		else if (epackage == XAnnotationsPackage.eINSTANCE)
+			switch (semanticObject.eClass().getClassifierID()) {
 			case XAnnotationsPackage.XANNOTATION:
-				if(context == grammarAccess.getXAnnotationRule() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule()) {
-					sequence_XAnnotation(context, (XAnnotation) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XAnnotation(context, (XAnnotation) semanticObject); 
+				return; 
 			case XAnnotationsPackage.XANNOTATION_ELEMENT_VALUE_PAIR:
-				if(context == grammarAccess.getXAnnotationElementValuePairRule()) {
-					sequence_XAnnotationElementValuePair(context, (XAnnotationElementValuePair) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XAnnotationElementValuePair(context, (XAnnotationElementValuePair) semanticObject); 
+				return; 
 			}
-		else if(semanticObject.eClass().getEPackage() == XbasePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+		else if (epackage == XbasePackage.eINSTANCE)
+			switch (semanticObject.eClass().getClassifierID()) {
 			case XbasePackage.XASSIGNMENT:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XAssignment_XMemberFeatureCall(context, (XAssignment) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XAssignment_XMemberFeatureCall(context, (XAssignment) semanticObject); 
+				return; 
 			case XbasePackage.XBASIC_FOR_LOOP_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXBasicForLoopExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XBasicForLoopExpression(context, (XBasicForLoopExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XBasicForLoopExpression(context, (XBasicForLoopExpression) semanticObject); 
+				return; 
 			case XbasePackage.XBINARY_OPERATION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XAdditiveExpression_XAndExpression_XAssignment_XEqualityExpression_XMultiplicativeExpression_XOrExpression_XOtherOperatorExpression_XRelationalExpression(context, (XBinaryOperation) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XAdditiveExpression_XAndExpression_XAssignment_XEqualityExpression_XMultiplicativeExpression_XOrExpression_XOtherOperatorExpression_XRelationalExpression(context, (XBinaryOperation) semanticObject); 
+				return; 
 			case XbasePackage.XBLOCK_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXBlockExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
+				if (rule == grammarAccess.getXAnnotationElementValueOrCommaListRule()
+						|| action == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()
+						|| rule == grammarAccess.getXAnnotationElementValueRule()
+						|| rule == grammarAccess.getXAnnotationOrExpressionRule()
+						|| rule == grammarAccess.getXExpressionRule()
+						|| rule == grammarAccess.getXAssignmentRule()
+						|| action == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()
+						|| rule == grammarAccess.getXOrExpressionRule()
+						|| action == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXAndExpressionRule()
+						|| action == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXEqualityExpressionRule()
+						|| action == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXRelationalExpressionRule()
+						|| action == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()
+						|| action == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()
+						|| rule == grammarAccess.getXOtherOperatorExpressionRule()
+						|| action == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXAdditiveExpressionRule()
+						|| action == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXMultiplicativeExpressionRule()
+						|| action == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXUnaryOperationRule()
+						|| rule == grammarAccess.getXCastedExpressionRule()
+						|| action == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()
+						|| rule == grammarAccess.getXPostfixOperationRule()
+						|| action == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()
+						|| rule == grammarAccess.getXMemberFeatureCallRule()
+						|| action == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()
+						|| action == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()
+						|| rule == grammarAccess.getXPrimaryExpressionRule()
+						|| rule == grammarAccess.getXParenthesizedExpressionRule()
+						|| rule == grammarAccess.getXBlockExpressionRule()
+						|| rule == grammarAccess.getXExpressionOrVarDeclarationRule()) {
 					sequence_XBlockExpression(context, (XBlockExpression) semanticObject); 
 					return; 
 				}
-				else if(context == grammarAccess.getXExpressionInClosureRule()) {
+				else if (rule == grammarAccess.getXExpressionInClosureRule()) {
 					sequence_XExpressionInClosure(context, (XBlockExpression) semanticObject); 
 					return; 
 				}
 				else break;
 			case XbasePackage.XBOOLEAN_LITERAL:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXBooleanLiteralRule() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXLiteralRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XBooleanLiteral(context, (XBooleanLiteral) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XBooleanLiteral(context, (XBooleanLiteral) semanticObject); 
+				return; 
 			case XbasePackage.XCASE_PART:
-				if(context == grammarAccess.getXCasePartRule()) {
-					sequence_XCasePart(context, (XCasePart) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XCasePart(context, (XCasePart) semanticObject); 
+				return; 
 			case XbasePackage.XCASTED_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XCastedExpression(context, (XCastedExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XCastedExpression(context, (XCastedExpression) semanticObject); 
+				return; 
 			case XbasePackage.XCATCH_CLAUSE:
-				if(context == grammarAccess.getXCatchClauseRule()) {
-					sequence_XCatchClause(context, (XCatchClause) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XCatchClause(context, (XCatchClause) semanticObject); 
+				return; 
 			case XbasePackage.XCLOSURE:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXClosureRule() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXLiteralRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
+				if (rule == grammarAccess.getXAnnotationElementValueOrCommaListRule()
+						|| action == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()
+						|| rule == grammarAccess.getXAnnotationElementValueRule()
+						|| rule == grammarAccess.getXAnnotationOrExpressionRule()
+						|| rule == grammarAccess.getXExpressionRule()
+						|| rule == grammarAccess.getXAssignmentRule()
+						|| action == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()
+						|| rule == grammarAccess.getXOrExpressionRule()
+						|| action == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXAndExpressionRule()
+						|| action == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXEqualityExpressionRule()
+						|| action == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXRelationalExpressionRule()
+						|| action == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()
+						|| action == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()
+						|| rule == grammarAccess.getXOtherOperatorExpressionRule()
+						|| action == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXAdditiveExpressionRule()
+						|| action == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXMultiplicativeExpressionRule()
+						|| action == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXUnaryOperationRule()
+						|| rule == grammarAccess.getXCastedExpressionRule()
+						|| action == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()
+						|| rule == grammarAccess.getXPostfixOperationRule()
+						|| action == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()
+						|| rule == grammarAccess.getXMemberFeatureCallRule()
+						|| action == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()
+						|| action == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()
+						|| rule == grammarAccess.getXPrimaryExpressionRule()
+						|| rule == grammarAccess.getXLiteralRule()
+						|| rule == grammarAccess.getXClosureRule()
+						|| rule == grammarAccess.getXParenthesizedExpressionRule()
+						|| rule == grammarAccess.getXExpressionOrVarDeclarationRule()) {
 					sequence_XClosure(context, (XClosure) semanticObject); 
 					return; 
 				}
-				else if(context == grammarAccess.getXShortClosureRule()) {
+				else if (rule == grammarAccess.getXShortClosureRule()) {
 					sequence_XShortClosure(context, (XClosure) semanticObject); 
 					return; 
 				}
 				else break;
 			case XbasePackage.XCONSTRUCTOR_CALL:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXConstructorCallRule() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XConstructorCall(context, (XConstructorCall) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XConstructorCall(context, (XConstructorCall) semanticObject); 
+				return; 
 			case XbasePackage.XDO_WHILE_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXDoWhileExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XDoWhileExpression(context, (XDoWhileExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XDoWhileExpression(context, (XDoWhileExpression) semanticObject); 
+				return; 
 			case XbasePackage.XFEATURE_CALL:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XFeatureCall(context, (XFeatureCall) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XFeatureCall(context, (XFeatureCall) semanticObject); 
+				return; 
 			case XbasePackage.XFOR_LOOP_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXForLoopExpressionRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XForLoopExpression(context, (XForLoopExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XForLoopExpression(context, (XForLoopExpression) semanticObject); 
+				return; 
 			case XbasePackage.XIF_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXIfExpressionRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XIfExpression(context, (XIfExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XIfExpression(context, (XIfExpression) semanticObject); 
+				return; 
 			case XbasePackage.XINSTANCE_OF_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XRelationalExpression(context, (XInstanceOfExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XRelationalExpression(context, (XInstanceOfExpression) semanticObject); 
+				return; 
 			case XbasePackage.XLIST_LITERAL:
-				if(context == grammarAccess.getXAnnotationElementValueOrCommaListRule()) {
+				if (rule == grammarAccess.getXAnnotationElementValueOrCommaListRule()) {
 					sequence_XAnnotationElementValueOrCommaList_XListLiteral(context, (XListLiteral) semanticObject); 
 					return; 
 				}
-				else if(context == grammarAccess.getXAnnotationElementValueRule()) {
+				else if (rule == grammarAccess.getXAnnotationElementValueRule()) {
 					sequence_XAnnotationElementValue_XListLiteral(context, (XListLiteral) semanticObject); 
 					return; 
 				}
-				else if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXCollectionLiteralRule() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXListLiteralRule() ||
-				   context == grammarAccess.getXLiteralRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
+				else if (action == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()
+						|| rule == grammarAccess.getXAnnotationOrExpressionRule()
+						|| rule == grammarAccess.getXExpressionRule()
+						|| rule == grammarAccess.getXAssignmentRule()
+						|| action == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()
+						|| rule == grammarAccess.getXOrExpressionRule()
+						|| action == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXAndExpressionRule()
+						|| action == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXEqualityExpressionRule()
+						|| action == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXRelationalExpressionRule()
+						|| action == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()
+						|| action == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()
+						|| rule == grammarAccess.getXOtherOperatorExpressionRule()
+						|| action == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXAdditiveExpressionRule()
+						|| action == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXMultiplicativeExpressionRule()
+						|| action == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
+						|| rule == grammarAccess.getXUnaryOperationRule()
+						|| rule == grammarAccess.getXCastedExpressionRule()
+						|| action == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()
+						|| rule == grammarAccess.getXPostfixOperationRule()
+						|| action == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()
+						|| rule == grammarAccess.getXMemberFeatureCallRule()
+						|| action == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()
+						|| action == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()
+						|| rule == grammarAccess.getXPrimaryExpressionRule()
+						|| rule == grammarAccess.getXLiteralRule()
+						|| rule == grammarAccess.getXCollectionLiteralRule()
+						|| rule == grammarAccess.getXListLiteralRule()
+						|| rule == grammarAccess.getXParenthesizedExpressionRule()
+						|| rule == grammarAccess.getXExpressionOrVarDeclarationRule()) {
 					sequence_XListLiteral(context, (XListLiteral) semanticObject); 
 					return; 
 				}
 				else break;
 			case XbasePackage.XMEMBER_FEATURE_CALL:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XMemberFeatureCall(context, (XMemberFeatureCall) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XMemberFeatureCall(context, (XMemberFeatureCall) semanticObject); 
+				return; 
 			case XbasePackage.XNULL_LITERAL:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXLiteralRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXNullLiteralRule() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XNullLiteral(context, (XNullLiteral) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XNullLiteral(context, (XNullLiteral) semanticObject); 
+				return; 
 			case XbasePackage.XNUMBER_LITERAL:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXLiteralRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXNumberLiteralRule() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XNumberLiteral(context, (XNumberLiteral) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XNumberLiteral(context, (XNumberLiteral) semanticObject); 
+				return; 
 			case XbasePackage.XPOSTFIX_OPERATION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XPostfixOperation(context, (XPostfixOperation) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XPostfixOperation(context, (XPostfixOperation) semanticObject); 
+				return; 
 			case XbasePackage.XRETURN_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXReturnExpressionRule() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XReturnExpression(context, (XReturnExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XReturnExpression(context, (XReturnExpression) semanticObject); 
+				return; 
 			case XbasePackage.XSET_LITERAL:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXCollectionLiteralRule() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXLiteralRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXSetLiteralRule() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XSetLiteral(context, (XSetLiteral) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XSetLiteral(context, (XSetLiteral) semanticObject); 
+				return; 
 			case XbasePackage.XSTRING_LITERAL:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXLiteralRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXStringLiteralRule() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XStringLiteral(context, (XStringLiteral) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XStringLiteral(context, (XStringLiteral) semanticObject); 
+				return; 
 			case XbasePackage.XSWITCH_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXSwitchExpressionRule() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XSwitchExpression(context, (XSwitchExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XSwitchExpression(context, (XSwitchExpression) semanticObject); 
+				return; 
 			case XbasePackage.XSYNCHRONIZED_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXSynchronizedExpressionRule() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XSynchronizedExpression(context, (XSynchronizedExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XSynchronizedExpression(context, (XSynchronizedExpression) semanticObject); 
+				return; 
 			case XbasePackage.XTHROW_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXThrowExpressionRule() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XThrowExpression(context, (XThrowExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XThrowExpression(context, (XThrowExpression) semanticObject); 
+				return; 
 			case XbasePackage.XTRY_CATCH_FINALLY_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXTryCatchFinallyExpressionRule() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XTryCatchFinallyExpression(context, (XTryCatchFinallyExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XTryCatchFinallyExpression(context, (XTryCatchFinallyExpression) semanticObject); 
+				return; 
 			case XbasePackage.XTYPE_LITERAL:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXLiteralRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXTypeLiteralRule() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XTypeLiteral(context, (XTypeLiteral) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XTypeLiteral(context, (XTypeLiteral) semanticObject); 
+				return; 
 			case XbasePackage.XUNARY_OPERATION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule()) {
-					sequence_XUnaryOperation(context, (XUnaryOperation) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XUnaryOperation(context, (XUnaryOperation) semanticObject); 
+				return; 
 			case XbasePackage.XVARIABLE_DECLARATION:
-				if(context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXVariableDeclarationRule()) {
-					sequence_XVariableDeclaration(context, (XVariableDeclaration) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XVariableDeclaration(context, (XVariableDeclaration) semanticObject); 
+				return; 
 			case XbasePackage.XWHILE_EXPRESSION:
-				if(context == grammarAccess.getXAdditiveExpressionRule() ||
-				   context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAndExpressionRule() ||
-				   context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXAnnotationElementValueRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListRule() ||
-				   context == grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0() ||
-				   context == grammarAccess.getXAnnotationOrExpressionRule() ||
-				   context == grammarAccess.getXAssignmentRule() ||
-				   context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXCastedExpressionRule() ||
-				   context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
-				   context == grammarAccess.getXEqualityExpressionRule() ||
-				   context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXExpressionRule() ||
-				   context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
-				   context == grammarAccess.getXMemberFeatureCallRule() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXMultiplicativeExpressionRule() ||
-				   context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOrExpressionRule() ||
-				   context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXOtherOperatorExpressionRule() ||
-				   context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
-				   context == grammarAccess.getXParenthesizedExpressionRule() ||
-				   context == grammarAccess.getXPostfixOperationRule() ||
-				   context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
-				   context == grammarAccess.getXPrimaryExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionRule() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
-				   context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
-				   context == grammarAccess.getXUnaryOperationRule() ||
-				   context == grammarAccess.getXWhileExpressionRule()) {
-					sequence_XWhileExpression(context, (XWhileExpression) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XWhileExpression(context, (XWhileExpression) semanticObject); 
+				return; 
 			}
-		else if(semanticObject.eClass().getEPackage() == XtypePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+		else if (epackage == XtypePackage.eINSTANCE)
+			switch (semanticObject.eClass().getClassifierID()) {
 			case XtypePackage.XFUNCTION_TYPE_REF:
-				if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
-				   context == grammarAccess.getJvmTypeReferenceRule() ||
-				   context == grammarAccess.getXFunctionTypeRefRule()) {
-					sequence_XFunctionTypeRef(context, (XFunctionTypeRef) semanticObject); 
-					return; 
-				}
-				else break;
-			case XtypePackage.XIMPORT_DECLARATION:
-				if(context == grammarAccess.getXImportDeclarationRule()) {
-					sequence_XImportDeclaration(context, (XImportDeclaration) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XFunctionTypeRef(context, (XFunctionTypeRef) semanticObject); 
+				return; 
 			case XtypePackage.XIMPORT_SECTION:
-				if(context == grammarAccess.getXImportSectionRule()) {
-					sequence_XImportSection(context, (XImportSection) semanticObject); 
-					return; 
-				}
-				else break;
+				sequence_XImportSection(context, (XImportSection) semanticObject); 
+				return; 
 			}
-		if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+		if (errorAcceptor != null)
+			errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
 	}
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropIndicatorStyle
+	 *     GridPropIndicatorStyle returns CxGridPropIndicatorStyle
+	 *
 	 * Constraint:
 	 *     (greenStarts=LDouble redEnds=LDouble)
 	 */
-	protected void sequence_GridPropIndicatorStyle(EObject context, CxGridPropIndicatorStyle semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
+	protected void sequence_GridPropIndicatorStyle(ISerializationContext context, CxGridPropIndicatorStyle semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS));
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getGridPropIndicatorStyleAccess().getGreenStartsLDoubleParserRuleCall_3_0(), semanticObject.getGreenStarts());
+		feeder.accept(grammarAccess.getGridPropIndicatorStyleAccess().getRedEndsLDoubleParserRuleCall_5_0(), semanticObject.getRedEnds());
+		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     NestedField returns CxGridNestedField
+	 *
 	 * Constraint:
 	 *     (field=[JvmOperation|ID] path=NestedPath?)
 	 */
-	protected void sequence_NestedField(EObject context, CxGridNestedField semanticObject) {
+	protected void sequence_NestedField(ISerializationContext context, CxGridNestedField semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     NestedPath returns CxGridNestedPath
+	 *
 	 * Constraint:
 	 *     (field=[JvmOperation|ID] path=NestedPath?)
 	 */
-	protected void sequence_NestedPath(EObject context, CxGridNestedPath semanticObject) {
+	protected void sequence_NestedPath(ISerializationContext context, CxGridNestedPath semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     StyleConfig returns CxGridStyleConfigNumericToResource
+	 *     NumericToResourceStyleConfig returns CxGridStyleConfigNumericToResource
+	 *
 	 * Constraint:
 	 *     (compare=StyleCompare value=LDouble resourceThemePath=THEME_RESOURCE)
 	 */
-	protected void sequence_NumericToResourceStyleConfig(EObject context, CxGridStyleConfigNumericToResource semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE));
-			if(transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE) == ValueTransient.YES)
+	protected void sequence_NumericToResourceStyleConfig(ISerializationContext context, CxGridStyleConfigNumericToResource semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE));
-			if(transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH) == ValueTransient.YES)
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE));
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getNumericToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0(), semanticObject.getCompare());
 		feeder.accept(grammarAccess.getNumericToResourceStyleConfigAccess().getValueLDoubleParserRuleCall_2_0(), semanticObject.getValue());
 		feeder.accept(grammarAccess.getNumericToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0(), semanticObject.getResourceThemePath());
@@ -1791,147 +680,189 @@
 	
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropBooleanStyle
+	 *     PropertyBooleanStyle returns CxGridPropBooleanStyle
+	 *
 	 * Constraint:
 	 *     {CxGridPropBooleanStyle}
 	 */
-	protected void sequence_PropertyBooleanStyle(EObject context, CxGridPropBooleanStyle semanticObject) {
+	protected void sequence_PropertyBooleanStyle(ISerializationContext context, CxGridPropBooleanStyle semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropButtonStyle
+	 *     PropertyButtonStyle returns CxGridPropButtonStyle
+	 *
 	 * Constraint:
 	 *     eventTopic=STRING
 	 */
-	protected void sequence_PropertyButtonStyle(EObject context, CxGridPropButtonStyle semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC) == ValueTransient.YES)
+	protected void sequence_PropertyButtonStyle(ISerializationContext context, CxGridPropButtonStyle semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getPropertyButtonStyleAccess().getEventTopicSTRINGTerminalRuleCall_3_0(), semanticObject.getEventTopic());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropDateStyle
+	 *     PropertyDateStyle returns CxGridPropDateStyle
+	 *
 	 * Constraint:
 	 *     dateFormat=STRING
 	 */
-	protected void sequence_PropertyDateStyle(EObject context, CxGridPropDateStyle semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_DATE_STYLE__DATE_FORMAT) == ValueTransient.YES)
+	protected void sequence_PropertyDateStyle(ISerializationContext context, CxGridPropDateStyle semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_DATE_STYLE__DATE_FORMAT) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_DATE_STYLE__DATE_FORMAT));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getPropertyDateStyleAccess().getDateFormatSTRINGTerminalRuleCall_3_0(), semanticObject.getDateFormat());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropHtmlStyle
+	 *     PropertyHtmlStyle returns CxGridPropHtmlStyle
+	 *
 	 * Constraint:
 	 *     {CxGridPropHtmlStyle}
 	 */
-	protected void sequence_PropertyHtmlStyle(EObject context, CxGridPropHtmlStyle semanticObject) {
+	protected void sequence_PropertyHtmlStyle(ISerializationContext context, CxGridPropHtmlStyle semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropImageStyle
+	 *     PropertyImageStyle returns CxGridPropImageStyle
+	 *
 	 * Constraint:
 	 *     (eventTopic=STRING? configs+=StyleConfig*)
 	 */
-	protected void sequence_PropertyImageStyle(EObject context, CxGridPropImageStyle semanticObject) {
+	protected void sequence_PropertyImageStyle(ISerializationContext context, CxGridPropImageStyle semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropNumberStyle
+	 *     PropertyNumberStyle returns CxGridPropNumberStyle
+	 *
 	 * Constraint:
 	 *     numberFormat=STRING
 	 */
-	protected void sequence_PropertyNumberStyle(EObject context, CxGridPropNumberStyle semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT) == ValueTransient.YES)
+	protected void sequence_PropertyNumberStyle(ISerializationContext context, CxGridPropNumberStyle semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getPropertyNumberStyleAccess().getNumberFormatSTRINGTerminalRuleCall_3_0(), semanticObject.getNumberFormat());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropPriceStyle
+	 *     PropertyPriceStyle returns CxGridPropPriceStyle
+	 *
 	 * Constraint:
 	 *     (htmlPattern=STRING? valuePropertyPath=NestedField valueNumberFormat=STRING? currencyPropertyPath=NestedField)
 	 */
-	protected void sequence_PropertyPriceStyle(EObject context, CxGridPropPriceStyle semanticObject) {
+	protected void sequence_PropertyPriceStyle(ISerializationContext context, CxGridPropPriceStyle semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropProgressbarStyle
+	 *     PropertyProgressbarStyle returns CxGridPropProgressbarStyle
+	 *
 	 * Constraint:
 	 *     maxValue=LDouble
 	 */
-	protected void sequence_PropertyProgressbarStyle(EObject context, CxGridPropProgressbarStyle semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE) == ValueTransient.YES)
+	protected void sequence_PropertyProgressbarStyle(ISerializationContext context, CxGridPropProgressbarStyle semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getPropertyProgressbarStyleAccess().getMaxValueLDoubleParserRuleCall_3_0(), semanticObject.getMaxValue());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropQuantityStyle
+	 *     PropertyQuantityStyle returns CxGridPropQuantityStyle
+	 *
 	 * Constraint:
 	 *     (htmlPattern=STRING? valuePropertyPath=NestedField valueNumberFormat=STRING? uomPropertyPath=NestedField)
 	 */
-	protected void sequence_PropertyQuantityStyle(EObject context, CxGridPropQuantityStyle semanticObject) {
+	protected void sequence_PropertyQuantityStyle(ISerializationContext context, CxGridPropQuantityStyle semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     PropertyStyle returns CxGridPropTextStyle
+	 *     PropertyTextStyle returns CxGridPropTextStyle
+	 *
 	 * Constraint:
 	 *     {CxGridPropTextStyle}
 	 */
-	protected void sequence_PropertyTextStyle(EObject context, CxGridPropTextStyle semanticObject) {
+	protected void sequence_PropertyTextStyle(ISerializationContext context, CxGridPropTextStyle semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     Property returns CxGridProperty
+	 *
 	 * Constraint:
 	 *     (editable?='editable'? path=NestedField style=PropertyStyle)
 	 */
-	protected void sequence_Property(EObject context, CxGridProperty semanticObject) {
+	protected void sequence_Property(ISerializationContext context, CxGridProperty semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     StyleConfig returns CxGridStyleConfigStringToResource
+	 *     StringToResourceStyleConfig returns CxGridStyleConfigStringToResource
+	 *
 	 * Constraint:
 	 *     (compare=StyleCompare value=STRING resourceThemePath=THEME_RESOURCE)
 	 */
-	protected void sequence_StringToResourceStyleConfig(EObject context, CxGridStyleConfigStringToResource semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE));
-			if(transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE) == ValueTransient.YES)
+	protected void sequence_StringToResourceStyleConfig(ISerializationContext context, CxGridStyleConfigStringToResource semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE));
-			if(transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH) == ValueTransient.YES)
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE));
+			if (transientValues.isValueTransient(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getStringToResourceStyleConfigAccess().getCompareStyleCompareEnumRuleCall_1_0(), semanticObject.getCompare());
 		feeder.accept(grammarAccess.getStringToResourceStyleConfigAccess().getValueSTRINGTerminalRuleCall_2_0(), semanticObject.getValue());
 		feeder.accept(grammarAccess.getStringToResourceStyleConfigAccess().getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0(), semanticObject.getResourceThemePath());
@@ -1940,260 +871,420 @@
 	
 	
 	/**
+	 * Contexts:
+	 *     TableValueElement returns TableAggregation
+	 *     TableAggregation returns TableAggregation
+	 *
 	 * Constraint:
 	 *     valueRef=[DatamartSetAggregationFunction|ID]
 	 */
-	protected void sequence_TableAggregation(EObject context, TableAggregation semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
+	protected void sequence_TableAggregation(ISerializationContext context, TableAggregation semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_AGGREGATION__VALUE_REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_AGGREGATION__VALUE_REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableAggregationAccess().getValueRefDatamartSetAggregationFunctionIDTerminalRuleCall_1_0_1(), semanticObject.eGet(TableDSLPackage.Literals.TABLE_AGGREGATION__VALUE_REF, false));
+		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableValueElement returns TableAllColumns
+	 *     TableAllColumns returns TableAllColumns
+	 *
 	 * Constraint:
 	 *     {TableAllColumns}
 	 */
-	protected void sequence_TableAllColumns(EObject context, TableAllColumns semanticObject) {
+	protected void sequence_TableAllColumns(ISerializationContext context, TableAllColumns semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableValueElement returns TableAttribute
+	 *     TableAttribute returns TableAttribute
+	 *
+	 * Constraint:
+	 *     valueRef=[DatamartAttribute|ID]
+	 */
+	protected void sequence_TableAttribute(ISerializationContext context, TableAttribute semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_ATTRIBUTE__VALUE_REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_ATTRIBUTE__VALUE_REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableAttributeAccess().getValueRefDatamartAttributeIDTerminalRuleCall_2_0_1(), semanticObject.eGet(TableDSLPackage.Literals.TABLE_ATTRIBUTE__VALUE_REF, false));
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     TableElement returns TableAxis
+	 *     TableAxis returns TableAxis
+	 *
 	 * Constraint:
 	 *     (
 	 *         axis=AxisEnum 
-	 *         (hasRowHeight?='rowheight' rowHeight=Number)? 
-	 *         preOrder=TablePreorder? 
+	 *         (preOrder=TablePreorder? (hasRowHeight?='rowheight' rowHeight=Number)?)+ 
 	 *         (hasDetails?='details' values+=TableValue*)? 
-	 *         (hasEvents?='events' events+=TableEvent*)?
+	 *         (hasEvents?='notifyOnSelect' events+=TableEvent*)?
 	 *     )
 	 */
-	protected void sequence_TableAxis(EObject context, TableAxis semanticObject) {
+	protected void sequence_TableAxis(ISerializationContext context, TableAxis semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableOption returns TableBean
+	 *     TableBean returns TableBean
+	 *
 	 * Constraint:
-	 *     (datamartDef=[DatamartDefinition|ID] (filter=STRING | reference=[LEntityReference|ID]))
+	 *     (
+	 *         (
+	 *             (
+	 *                 selectalways?='alwaysSelected' | 
+	 *                 selectById?='selectById' | 
+	 *                 headerMode=RowHeaderMode | 
+	 *                 filtering?='filtering' | 
+	 *                 embedded?='embedded' | 
+	 *                 toolbar=[ActionToolbar|ID]
+	 *             )? 
+	 *             (polling?='polling' pollingTime=Number)?
+	 *         )+ 
+	 *         source=TableDatamart?
+	 *     )
 	 */
-	protected void sequence_TableBrokerDatamart(EObject context, TableBrokerDatamart semanticObject) {
+	protected void sequence_TableBean(ISerializationContext context, TableBean semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableRangeElement returns TableCellColor
+	 *     TableCellColor returns TableCellColor
+	 *
 	 * Constraint:
 	 *     rgb=STRING
 	 */
-	protected void sequence_TableCellColor(EObject context, TableCellColor semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_CELL_COLOR__RGB) == ValueTransient.YES)
+	protected void sequence_TableCellColor(ISerializationContext context, TableCellColor semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_CELL_COLOR__RGB) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_CELL_COLOR__RGB));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getTableCellColorAccess().getRgbSTRINGTerminalRuleCall_1_0(), semanticObject.getRgb());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableValueElement returns TableColumn
+	 *     TableColumn returns TableColumn
+	 *
 	 * Constraint:
 	 *     valueRef=[DatamartColumn|ID]
 	 */
-	protected void sequence_TableColumn(EObject context, TableColumn semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
+	protected void sequence_TableColumn(ISerializationContext context, TableColumn semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_COLUMN__VALUE_REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_COLUMN__VALUE_REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableColumnAccess().getValueRefDatamartColumnIDTerminalRuleCall_1_0_1(), semanticObject.eGet(TableDSLPackage.Literals.TABLE_COLUMN__VALUE_REF, false));
+		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableDatamart returns TableDatamart
+	 *
 	 * Constraint:
 	 *     (datamartRef=[DatamartDefinition|ID] elements+=TableElement*)
 	 */
-	protected void sequence_TableDatamart(EObject context, TableDatamart semanticObject) {
+	protected void sequence_TableDatamart(ISerializationContext context, TableDatamart semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableInterval returns TableDateDayInterval
+	 *     TableDateDayInterval returns TableDateDayInterval
+	 *
 	 * Constraint:
-	 *     (dateIntervalValue=SignedNumber dateRange=TableRangeElement)
+	 *     (dateIntervalValue=SignedInt dateRange=TableRangeElement)
 	 */
-	protected void sequence_TableDateDayInterval(EObject context, TableDateDayInterval semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE) == ValueTransient.YES)
+	protected void sequence_TableDateDayInterval(ISerializationContext context, TableDateDayInterval semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE));
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_INTERVAL__DATE_RANGE) == ValueTransient.YES)
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_INTERVAL__DATE_RANGE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_INTERVAL__DATE_RANGE));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
-		feeder.accept(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueSignedNumberParserRuleCall_2_0(), semanticObject.getDateIntervalValue());
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueSignedIntParserRuleCall_2_0(), semanticObject.getDateIntervalValue());
 		feeder.accept(grammarAccess.getTableDateDayIntervalAccess().getDateRangeTableRangeElementParserRuleCall_3_0(), semanticObject.getDateRange());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableLookup returns TableDateDayLookup
+	 *     TableDateDayLookup returns TableDateDayLookup
+	 *
 	 * Constraint:
-	 *     (lookupValue=SignedNumber discrete=TableRangeElement)
+	 *     (lookupValue=SignedInt discrete=TableRangeElement)
 	 */
-	protected void sequence_TableDateDayLookup(EObject context, TableDateDayLookup semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE) == ValueTransient.YES)
+	protected void sequence_TableDateDayLookup(ISerializationContext context, TableDateDayLookup semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE));
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP__DISCRETE) == ValueTransient.YES)
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP__DISCRETE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP__DISCRETE));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
-		feeder.accept(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0(), semanticObject.getLookupValue());
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedIntParserRuleCall_2_0(), semanticObject.getLookupValue());
 		feeder.accept(grammarAccess.getTableDateDayLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0(), semanticObject.getDiscrete());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableValueElement returns TableDerived
+	 *     TableDerived returns TableDerived
+	 *
 	 * Constraint:
 	 *     valueRef=[DatamartDerivedMeasure|ID]
 	 */
-	protected void sequence_TableDerived(EObject context, TableDerived semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
+	protected void sequence_TableDerived(ISerializationContext context, TableDerived semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_DERIVED__VALUE_REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_DERIVED__VALUE_REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableDerivedAccess().getValueRefDatamartDerivedMeasureIDTerminalRuleCall_1_0_1(), semanticObject.eGet(TableDSLPackage.Literals.TABLE_DERIVED__VALUE_REF, false));
+		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableDtoDatasource returns TableDtoDatasource
+	 *
 	 * Constraint:
 	 *     (dtoSource=[LDto|ID] properties+=Property*)
 	 */
-	protected void sequence_TableDtoDatasource(EObject context, TableDtoDatasource semanticObject) {
+	protected void sequence_TableDtoDatasource(ISerializationContext context, TableDtoDatasource semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableEvent returns TableEvent
+	 *
 	 * Constraint:
-	 *     (source=TableValueElement brokerDatamarts+=TableBrokerDatamart*)
+	 *     source=TableValueElement
 	 */
-	protected void sequence_TableEvent(EObject context, TableEvent semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
+	protected void sequence_TableEvent(ISerializationContext context, TableEvent semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_EVENT__SOURCE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_EVENT__SOURCE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableEventAccess().getSourceTableValueElementParserRuleCall_0(), semanticObject.getSource());
+		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableFormatter returns TableFormatter
+	 *
 	 * Constraint:
 	 *     format=STRING
 	 */
-	protected void sequence_TableFormatter(EObject context, TableFormatter semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_FORMATTER__FORMAT) == ValueTransient.YES)
+	protected void sequence_TableFormatter(ISerializationContext context, TableFormatter semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_FORMATTER__FORMAT) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_FORMATTER__FORMAT));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getTableFormatterAccess().getFormatSTRINGTerminalRuleCall_2_0(), semanticObject.getFormat());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableOption returns TableGrid
+	 *     TableGrid returns TableGrid
+	 *
 	 * Constraint:
 	 *     (
-	 *         selectalways?='selectalways'? 
-	 *         headerMode=RowHeaderMode? 
-	 *         (polling?='polling' pollingTime=Number)? 
-	 *         filtering?='filtering'? 
+	 *         (selectalways?='selectalways' | headerMode=RowHeaderMode)* 
 	 *         embedded?='embedded'? 
-	 *         toolbar=[ActionToolbar|ID]? 
+	 *         (((polling?='polling' pollingTime=Number) | filtering?='filtering' | toolbar=[ActionToolbar|ID])? embedded?='embedded'?)* 
 	 *         source=TableDtoDatasource?
 	 *     )
 	 */
-	protected void sequence_TableGrid(EObject context, TableGrid semanticObject) {
+	protected void sequence_TableGrid(ISerializationContext context, TableGrid semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableValueElement returns TableHierarchy
+	 *     TableHierarchy returns TableHierarchy
+	 *
 	 * Constraint:
 	 *     valueRef=[CubeLevel|ID]
 	 */
-	protected void sequence_TableHierarchy(EObject context, TableHierarchy semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
+	protected void sequence_TableHierarchy(ISerializationContext context, TableHierarchy semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_HIERARCHY__VALUE_REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_HIERARCHY__VALUE_REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableHierarchyAccess().getValueRefCubeLevelIDTerminalRuleCall_1_0_1(), semanticObject.eGet(TableDSLPackage.Literals.TABLE_HIERARCHY__VALUE_REF, false));
+		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableRangeElement returns TableIcon
+	 *     TableIcon returns TableIcon
+	 *
 	 * Constraint:
 	 *     icon=STRING
 	 */
-	protected void sequence_TableIcon(EObject context, TableIcon semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_ICON__ICON) == ValueTransient.YES)
+	protected void sequence_TableIcon(ISerializationContext context, TableIcon semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_ICON__ICON) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_ICON__ICON));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0(), semanticObject.getIcon());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableImage returns TableImage
+	 *
 	 * Constraint:
-	 *     (imagePathPattern=STRING hasParameter?='dynamic'? hideImageLabel?='hidelabel'? (resize?='resize' resizeString=STRING)?)
+	 *     (imagePathPattern=STRING ((hasParameter?='dynamic' | hideImageLabel?='hidelabel')? (resize?='resize' resizeString=STRING)?)+)
 	 */
-	protected void sequence_TableImage(EObject context, TableImage semanticObject) {
+	protected void sequence_TableImage(ISerializationContext context, TableImage semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableInterval returns TableIntInterval
+	 *     TableIntInterval returns TableIntInterval
+	 *
 	 * Constraint:
-	 *     importedNamespace=TableQualifiedNameWithWildCard
+	 *     (intIntervalValue=SignedInt intRange=TableRangeElement)
 	 */
-	protected void sequence_TableImport(EObject context, LImport semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, OSBPTypesPackage.Literals.LIMPORT__IMPORTED_NAMESPACE) == ValueTransient.YES)
-				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, OSBPTypesPackage.Literals.LIMPORT__IMPORTED_NAMESPACE));
+	protected void sequence_TableIntInterval(ISerializationContext context, TableIntInterval semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_INT_INTERVAL__INT_INTERVAL_VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_INT_INTERVAL__INT_INTERVAL_VALUE));
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_INT_INTERVAL__INT_RANGE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_INT_INTERVAL__INT_RANGE));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
-		feeder.accept(grammarAccess.getTableImportAccess().getImportedNamespaceTableQualifiedNameWithWildCardParserRuleCall_1_0(), semanticObject.getImportedNamespace());
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableIntIntervalAccess().getIntIntervalValueSignedIntParserRuleCall_2_0(), semanticObject.getIntIntervalValue());
+		feeder.accept(grammarAccess.getTableIntIntervalAccess().getIntRangeTableRangeElementParserRuleCall_3_0(), semanticObject.getIntRange());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableLookup returns TableIntLookup
+	 *     TableIntLookup returns TableIntLookup
+	 *
+	 * Constraint:
+	 *     (lookupValue=SignedInt discrete=TableRangeElement)
+	 */
+	protected void sequence_TableIntLookup(ISerializationContext context, TableIntLookup semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_INT_LOOKUP__LOOKUP_VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_INT_LOOKUP__LOOKUP_VALUE));
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_INT_LOOKUP__DISCRETE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_INT_LOOKUP__DISCRETE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableIntLookupAccess().getLookupValueSignedIntParserRuleCall_2_0(), semanticObject.getLookupValue());
+		feeder.accept(grammarAccess.getTableIntLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0(), semanticObject.getDiscrete());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     TableValueElement returns TableMeasure
+	 *     TableMeasure returns TableMeasure
+	 *
 	 * Constraint:
 	 *     valueRef=[DatamartMeasure|ID]
 	 */
-	protected void sequence_TableMeasure(EObject context, TableMeasure semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
+	protected void sequence_TableMeasure(ISerializationContext context, TableMeasure semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_MEASURE__VALUE_REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_MEASURE__VALUE_REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableMeasureAccess().getValueRefDatamartMeasureIDTerminalRuleCall_1_0_1(), semanticObject.eGet(TableDSLPackage.Literals.TABLE_MEASURE__VALUE_REF, false));
+		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableModel returns TableModel
+	 *
 	 * Constraint:
-	 *     packages+=TablePackage*
+	 *     ((importSection=XImportSection packages+=TablePackage+) | packages+=TablePackage+)?
 	 */
-	protected void sequence_TableModel(EObject context, TableModel semanticObject) {
+	protected void sequence_TableModel(ISerializationContext context, TableModel semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableInterval returns TableNumberInterval
+	 *     TableNumberInterval returns TableNumberInterval
+	 *
 	 * Constraint:
 	 *     (numberIntervalValue=SignedNumber numberRange=TableRangeElement)
 	 */
-	protected void sequence_TableNumberInterval(EObject context, TableNumberInterval semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE) == ValueTransient.YES)
+	protected void sequence_TableNumberInterval(ISerializationContext context, TableNumberInterval semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE));
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_INTERVAL__NUMBER_RANGE) == ValueTransient.YES)
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_INTERVAL__NUMBER_RANGE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_INTERVAL__NUMBER_RANGE));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0(), semanticObject.getNumberIntervalValue());
 		feeder.accept(grammarAccess.getTableNumberIntervalAccess().getNumberRangeTableRangeElementParserRuleCall_3_0(), semanticObject.getNumberRange());
 		feeder.finish();
@@ -2201,18 +1292,21 @@
 	
 	
 	/**
+	 * Contexts:
+	 *     TableLookup returns TableNumberLookup
+	 *     TableNumberLookup returns TableNumberLookup
+	 *
 	 * Constraint:
 	 *     (lookupValue=SignedNumber discrete=TableRangeElement)
 	 */
-	protected void sequence_TableNumberLookup(EObject context, TableNumberLookup semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_LOOKUP__LOOKUP_VALUE) == ValueTransient.YES)
+	protected void sequence_TableNumberLookup(ISerializationContext context, TableNumberLookup semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_LOOKUP__LOOKUP_VALUE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_LOOKUP__LOOKUP_VALUE));
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_LOOKUP__DISCRETE) == ValueTransient.YES)
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_LOOKUP__DISCRETE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_NUMBER_LOOKUP__DISCRETE));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getTableNumberLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0(), semanticObject.getLookupValue());
 		feeder.accept(grammarAccess.getTableNumberLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0(), semanticObject.getDiscrete());
 		feeder.finish();
@@ -2220,72 +1314,84 @@
 	
 	
 	/**
+	 * Contexts:
+	 *     TableValueElement returns TableOrdinal
+	 *     TableOrdinal returns TableOrdinal
+	 *
 	 * Constraint:
 	 *     valueRef=Number
 	 */
-	protected void sequence_TableOrdinal(EObject context, TableOrdinal semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
+	protected void sequence_TableOrdinal(ISerializationContext context, TableOrdinal semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_ORDINAL__VALUE_REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_ORDINAL__VALUE_REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getTableOrdinalAccess().getValueRefNumberParserRuleCall_1_0(), semanticObject.getValueRef());
+		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TablePackage returns TablePackage
+	 *
 	 * Constraint:
-	 *     (name=QualifiedName (imports+=TableImport* tables+=Table*)?)
+	 *     (name=QualifiedName tables+=Table*)
 	 */
-	protected void sequence_TablePackage(EObject context, TablePackage semanticObject) {
+	protected void sequence_TablePackage(ISerializationContext context, TablePackage semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TablePreorder returns TablePreorder
+	 *
 	 * Constraint:
 	 *     (column=TableValueElement ascending?='ascending'?)
 	 */
-	protected void sequence_TablePreorder(EObject context, TablePreorder semanticObject) {
+	protected void sequence_TablePreorder(ISerializationContext context, TablePreorder semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
-	 * Constraint:
-	 *     valueRef=[DatamartProperty|ID]
-	 */
-	protected void sequence_TableProperty(EObject context, TableProperty semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
-	}
-	
-	
-	/**
+	 * Contexts:
+	 *     TableOption returns TableSelection
+	 *     TableSelection returns TableSelection
+	 *
 	 * Constraint:
 	 *     (
-	 *         multiSelection?='multiselection'? 
-	 *         selectalways?='selectalways'? 
-	 *         headerMode=RowHeaderMode? 
-	 *         (polling?='polling' pollingTime=Number)? 
-	 *         filtering?='filtering'? 
-	 *         embedded?='embedded'? 
-	 *         toolbar=[ActionToolbar|ID]? 
+	 *         multiSelection?='multiple'? 
+	 *         (
+	 *             (selectalways?='alwaysSelected' | headerMode=RowHeaderMode | filtering?='filtering' | embedded?='embedded' | toolbar=[ActionToolbar|ID])? 
+	 *             (polling?='polling' pollingTime=Number)?
+	 *         )+ 
 	 *         source=TableDatamart?
 	 *     )
 	 */
-	protected void sequence_TableSelection(EObject context, TableSelection semanticObject) {
+	protected void sequence_TableSelection(ISerializationContext context, TableSelection semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableLookup returns TableStringLookup
+	 *     TableStringLookup returns TableStringLookup
+	 *
 	 * Constraint:
 	 *     (lookupValue=STRING discrete=TableRangeElement)
 	 */
-	protected void sequence_TableStringLookup(EObject context, TableStringLookup semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_STRING_LOOKUP__LOOKUP_VALUE) == ValueTransient.YES)
+	protected void sequence_TableStringLookup(ISerializationContext context, TableStringLookup semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_STRING_LOOKUP__LOOKUP_VALUE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_STRING_LOOKUP__LOOKUP_VALUE));
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_STRING_LOOKUP__DISCRETE) == ValueTransient.YES)
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_STRING_LOOKUP__DISCRETE) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_STRING_LOOKUP__DISCRETE));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0(), semanticObject.getLookupValue());
 		feeder.accept(grammarAccess.getTableStringLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0(), semanticObject.getDiscrete());
 		feeder.finish();
@@ -2293,118 +1399,149 @@
 	
 	
 	/**
+	 * Contexts:
+	 *     TableOption returns TableTable
+	 *     TableTable returns TableTable
+	 *
 	 * Constraint:
 	 *     (
-	 *         selectalways?='selectalways'? 
-	 *         headerMode=RowHeaderMode? 
-	 *         (polling?='polling' pollingTime=Number)? 
-	 *         filtering?='filtering'? 
-	 *         embedded?='embedded'? 
-	 *         toolbar=[ActionToolbar|ID]? 
+	 *         (
+	 *             (
+	 *                 selectalways?='alwaysSelected' | 
+	 *                 selectById?='selectById' | 
+	 *                 headerMode=RowHeaderMode | 
+	 *                 filtering?='filtering' | 
+	 *                 embedded?='embedded' | 
+	 *                 toolbar=[ActionToolbar|ID]
+	 *             )? 
+	 *             (polling?='polling' pollingTime=Number)?
+	 *         )+ 
 	 *         source=TableDatamart?
 	 *     )
 	 */
-	protected void sequence_TableTable(EObject context, TableTable semanticObject) {
+	protected void sequence_TableTable(ISerializationContext context, TableTable semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableValueElement returns TableTask
+	 *     TableTask returns TableTask
+	 *
 	 * Constraint:
 	 *     {TableTask}
 	 */
-	protected void sequence_TableTask(EObject context, TableTask semanticObject) {
+	protected void sequence_TableTask(ISerializationContext context, TableTask semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableRangeElement returns TableTextColor
+	 *     TableTextColor returns TableTextColor
+	 *
 	 * Constraint:
 	 *     rgb=STRING
 	 */
-	protected void sequence_TableTextColor(EObject context, TableTextColor semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_TEXT_COLOR__RGB) == ValueTransient.YES)
+	protected void sequence_TableTextColor(ISerializationContext context, TableTextColor semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_TEXT_COLOR__RGB) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_TEXT_COLOR__RGB));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getTableTextColorAccess().getRgbSTRINGTerminalRuleCall_1_0(), semanticObject.getRgb());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableTooltipPattern returns TableTooltipPattern
+	 *
 	 * Constraint:
 	 *     tooltipPattern=TRANSLATABLESTRING
 	 */
-	protected void sequence_TableTooltipPattern(EObject context, TableTooltipPattern semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_TOOLTIP_PATTERN__TOOLTIP_PATTERN) == ValueTransient.YES)
+	protected void sequence_TableTooltipPattern(ISerializationContext context, TableTooltipPattern semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_TOOLTIP_PATTERN__TOOLTIP_PATTERN) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_TOOLTIP_PATTERN__TOOLTIP_PATTERN));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getTableTooltipPatternAccess().getTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0(), semanticObject.getTooltipPattern());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableRangeElement returns TableTooltip
+	 *     TableTooltip returns TableTooltip
+	 *
 	 * Constraint:
 	 *     tooltip=TRANSLATABLESTRING
 	 */
-	protected void sequence_TableTooltip(EObject context, TableTooltip semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_TOOLTIP__TOOLTIP) == ValueTransient.YES)
+	protected void sequence_TableTooltip(ISerializationContext context, TableTooltip semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_TOOLTIP__TOOLTIP) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_TOOLTIP__TOOLTIP));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getTableTooltipAccess().getTooltipTRANSLATABLESTRINGParserRuleCall_1_0(), semanticObject.getTooltip());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableRangeElement returns TableTrend
+	 *     TableTrend returns TableTrend
+	 *
 	 * Constraint:
 	 *     icon=TrendIconEnum
 	 */
-	protected void sequence_TableTrend(EObject context, TableTrend semanticObject) {
-		if(errorAcceptor != null) {
-			if(transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_TREND__ICON) == ValueTransient.YES)
+	protected void sequence_TableTrend(ISerializationContext context, TableTrend semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TableDSLPackage.Literals.TABLE_TREND__ICON) == ValueTransient.YES)
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TableDSLPackage.Literals.TABLE_TREND__ICON));
 		}
-		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
-		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
 		feeder.accept(grammarAccess.getTableTrendAccess().getIconTrendIconEnumEnumRuleCall_1_0(), semanticObject.getIcon());
 		feeder.finish();
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     TableValue returns TableValue
+	 *
 	 * Constraint:
 	 *     (
 	 *         column=TableValueElement 
-	 *         collapsed?='collapse'? 
-	 *         iconName=STRING? 
-	 *         formatter=TableFormatter? 
-	 *         (hasImage?='image' image=TableImage)? 
-	 *         tooltipPattern=TableTooltipPattern? 
-	 *         (hideLabelInterval?='hidelabel'? intervals+=TableInterval*)? 
-	 *         (hideLabelLookup?='hidelabel'? lookups+=TableLookup*)?
+	 *         (
+	 *             (collapsed?='collapse' | iconName=STRING | formatter=TableFormatter | tooltipPattern=TableTooltipPattern)? 
+	 *             (hasImage?='image' image=TableImage)?
+	 *         )+ 
+	 *         hideLabelInterval?='hidelabel'? 
+	 *         ((intervals+=TableInterval | hideLabelLookup?='hidelabel' | lookups+=TableLookup)? hideLabelInterval?='hidelabel'?)*
 	 *     )
 	 */
-	protected void sequence_TableValue(EObject context, TableValue semanticObject) {
+	protected void sequence_TableValue(ISerializationContext context, TableValue semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
 	
 	
 	/**
+	 * Contexts:
+	 *     Table returns Table
+	 *
 	 * Constraint:
-	 *     (name=TRANSLATABLEID (description?='described by' descriptionValue=TRANSLATABLESTRING)? tabletype=TableOption)
+	 *     (name=ID (description?='describedBy' descriptionValue=TRANSLATABLESTRING)? tabletype=TableOption)
 	 */
-	protected void sequence_Table(EObject context, Table semanticObject) {
+	protected void sequence_Table(ISerializationContext context, Table semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
 	}
+	
+	
 }
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/serializer/TableDSLSyntacticSequencer.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/serializer/TableDSLSyntacticSequencer.java
index 89fdb80..7c70413 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/serializer/TableDSLSyntacticSequencer.java
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/serializer/TableDSLSyntacticSequencer.java
@@ -1,15 +1,5 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table.serializer;
 
@@ -34,11 +24,12 @@
 	protected TableDSLGrammarAccess grammarAccess;
 	protected AbstractElementAlias match_TableDatamart___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q;
 	protected AbstractElementAlias match_TableDtoDatasource___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q;
-	protected AbstractElementAlias match_TablePackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_3__q;
+	protected AbstractElementAlias match_TablePackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q;
+	protected AbstractElementAlias match_TableValue_IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0___or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0______;
+	protected AbstractElementAlias match_TableValue_LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_______or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__;
 	protected AbstractElementAlias match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a;
 	protected AbstractElementAlias match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a;
 	protected AbstractElementAlias match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a__a__;
-	protected AbstractElementAlias match_TableValue___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_______or___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0____;
 	protected AbstractElementAlias match_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__a;
 	protected AbstractElementAlias match_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__p;
 	protected AbstractElementAlias match_TableValue___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0__a;
@@ -46,19 +37,18 @@
 	protected AbstractElementAlias match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a;
 	protected AbstractElementAlias match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a;
 	protected AbstractElementAlias match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a__a__;
-	protected AbstractElementAlias match_TableValue___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_______or___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0____;
+	protected AbstractElementAlias match_TableValue___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or_______RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0______;
 	protected AbstractElementAlias match_TableValue___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a;
+	protected AbstractElementAlias match_TableValue___RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or___RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or_______RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0______;
 	protected AbstractElementAlias match_TableValue___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a;
 	protected AbstractElementAlias match_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4____a;
 	protected AbstractElementAlias match_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q__p;
 	protected AbstractElementAlias match_TableValue_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q__p;
-	protected AbstractElementAlias match_TableValue_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or_____RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or_______RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0______;
-	protected AbstractElementAlias match_TableValue_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or_______RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0______;
 	protected AbstractElementAlias match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q;
 	protected AbstractElementAlias match_XBlockExpression_SemicolonKeyword_2_1_q;
 	protected AbstractElementAlias match_XExpressionInClosure_SemicolonKeyword_1_1_q;
 	protected AbstractElementAlias match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q;
-	protected AbstractElementAlias match_XImportDeclaration_SemicolonKeyword_2_q;
+	protected AbstractElementAlias match_XImportDeclaration_SemicolonKeyword_3_q;
 	protected AbstractElementAlias match_XParenthesizedExpression_LeftParenthesisKeyword_0_a;
 	protected AbstractElementAlias match_XParenthesizedExpression_LeftParenthesisKeyword_0_p;
 	
@@ -67,11 +57,12 @@
 		grammarAccess = (TableDSLGrammarAccess) access;
 		match_TableDatamart___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTableDatamartAccess().getLeftCurlyBracketKeyword_2_0()), new TokenAlias(false, false, grammarAccess.getTableDatamartAccess().getRightCurlyBracketKeyword_2_2()));
 		match_TableDtoDatasource___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTableDtoDatasourceAccess().getLeftCurlyBracketKeyword_2_0()), new TokenAlias(false, false, grammarAccess.getTableDtoDatasourceAccess().getRightCurlyBracketKeyword_2_2()));
-		match_TablePackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTablePackageAccess().getLeftCurlyBracketKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getTablePackageAccess().getRightCurlyBracketKeyword_3_3()));
+		match_TablePackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTablePackageAccess().getLeftCurlyBracketKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getTablePackageAccess().getRightCurlyBracketKeyword_3_2()));
+		match_TableValue_IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0___or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0______ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()))), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()));
+		match_TableValue_LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_______or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()));
 		match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())));
 		match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()));
 		match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a__a__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()))));
-		match_TableValue___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_______or___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0____ = new AlternativeAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()))));
 		match_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()));
 		match_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()));
 		match_TableValue___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()));
@@ -79,28 +70,27 @@
 		match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())));
 		match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()));
 		match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a__a__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()))));
-		match_TableValue___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_______or___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0____ = new AlternativeAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()))));
+		match_TableValue___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or_______RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0______ = new AlternativeAlias(false, false, new GroupAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())))), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()))));
 		match_TableValue___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()));
+		match_TableValue___RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or___RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or_______RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0______ = new AlternativeAlias(false, false, new GroupAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())))), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())));
 		match_TableValue___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()));
 		match_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4____a = new AlternativeAlias(true, true, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())));
 		match_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q__p = new GroupAlias(true, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())));
 		match_TableValue_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q__p = new GroupAlias(true, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())));
-		match_TableValue_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or_____RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or_______RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0______ = new AlternativeAlias(false, false, new AlternativeAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())))), new GroupAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())))), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()))));
-		match_TableValue_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or_______RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0______ = new AlternativeAlias(false, false, new AlternativeAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())))), new GroupAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())))), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_0_2()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_0_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLookupsKeyword_4_1_0()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getLeftCurlyBracketKeyword_4_1_2())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getRightCurlyBracketKeyword_4_1_4()), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0())), new TokenAlias(false, false, grammarAccess.getTableValueAccess().getIntervalsKeyword_4_0_0()))));
 		match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()));
 		match_XBlockExpression_SemicolonKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
 		match_XExpressionInClosure_SemicolonKeyword_1_1_q = new TokenAlias(false, true, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
 		match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()), new TokenAlias(false, false, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()));
-		match_XImportDeclaration_SemicolonKeyword_2_q = new TokenAlias(false, true, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2());
+		match_XImportDeclaration_SemicolonKeyword_3_q = new TokenAlias(false, true, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_3());
 		match_XParenthesizedExpression_LeftParenthesisKeyword_0_a = new TokenAlias(true, true, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
 		match_XParenthesizedExpression_LeftParenthesisKeyword_0_p = new TokenAlias(true, false, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
 	}
 	
 	@Override
 	protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
-		if(ruleCall.getRule() == grammarAccess.getArrayBracketsRule())
+		if (ruleCall.getRule() == grammarAccess.getArrayBracketsRule())
 			return getArrayBracketsToken(semanticObject, ruleCall, node);
-		else if(ruleCall.getRule() == grammarAccess.getOpSingleAssignRule())
+		else if (ruleCall.getRule() == grammarAccess.getOpSingleAssignRule())
 			return getOpSingleAssignToken(semanticObject, ruleCall, node);
 		return "";
 	}
@@ -133,487 +123,755 @@
 		List<INode> transitionNodes = collectNodes(fromNode, toNode);
 		for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
 			List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
-			if(match_TableDatamart___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q.equals(syntax))
+			if (match_TableDatamart___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q.equals(syntax))
 				emit_TableDatamart___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableDtoDatasource___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q.equals(syntax))
+			else if (match_TableDtoDatasource___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q.equals(syntax))
 				emit_TableDtoDatasource___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TablePackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_3__q.equals(syntax))
-				emit_TablePackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a.equals(syntax))
+			else if (match_TablePackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q.equals(syntax))
+				emit_TablePackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_TableValue_IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0___or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0______.equals(syntax))
+				emit_TableValue_IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0___or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0______(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_TableValue_LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_______or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__.equals(syntax))
+				emit_TableValue_LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_______or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a.equals(syntax))
 				emit_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a.equals(syntax))
+			else if (match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a.equals(syntax))
 				emit_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a__a__.equals(syntax))
+			else if (match_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a__a__.equals(syntax))
 				emit_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a__a__(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_______or___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0____.equals(syntax))
-				emit_TableValue___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_______or___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0____(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__a.equals(syntax))
+			else if (match_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__a.equals(syntax))
 				emit_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__p.equals(syntax))
+			else if (match_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__p.equals(syntax))
 				emit_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0__a.equals(syntax))
+			else if (match_TableValue___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0__a.equals(syntax))
 				emit_TableValue___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0__p.equals(syntax))
+			else if (match_TableValue___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0__p.equals(syntax))
 				emit_TableValue___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a.equals(syntax))
+			else if (match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a.equals(syntax))
 				emit_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a.equals(syntax))
+			else if (match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a.equals(syntax))
 				emit_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a__a__.equals(syntax))
+			else if (match_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a__a__.equals(syntax))
 				emit_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a__a__(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_______or___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0____.equals(syntax))
-				emit_TableValue___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_______or___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0____(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a.equals(syntax))
+			else if (match_TableValue___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or_______RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0______.equals(syntax))
+				emit_TableValue___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or_______RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0______(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_TableValue___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a.equals(syntax))
 				emit_TableValue___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a.equals(syntax))
+			else if (match_TableValue___RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or___RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or_______RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0______.equals(syntax))
+				emit_TableValue___RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or___RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or_______RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0______(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_TableValue___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a.equals(syntax))
 				emit_TableValue___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4____a.equals(syntax))
+			else if (match_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4____a.equals(syntax))
 				emit_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4____a(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q__p.equals(syntax))
+			else if (match_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q__p.equals(syntax))
 				emit_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q__p(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q__p.equals(syntax))
+			else if (match_TableValue_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q__p.equals(syntax))
 				emit_TableValue_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q__p(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or_____RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or_______RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0______.equals(syntax))
-				emit_TableValue_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or_____RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or_______RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0______(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_TableValue_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or_______RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0______.equals(syntax))
-				emit_TableValue_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or_______RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0______(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q.equals(syntax))
+			else if (match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q.equals(syntax))
 				emit_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_XBlockExpression_SemicolonKeyword_2_1_q.equals(syntax))
+			else if (match_XBlockExpression_SemicolonKeyword_2_1_q.equals(syntax))
 				emit_XBlockExpression_SemicolonKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_XExpressionInClosure_SemicolonKeyword_1_1_q.equals(syntax))
+			else if (match_XExpressionInClosure_SemicolonKeyword_1_1_q.equals(syntax))
 				emit_XExpressionInClosure_SemicolonKeyword_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q.equals(syntax))
+			else if (match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q.equals(syntax))
 				emit_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_XImportDeclaration_SemicolonKeyword_2_q.equals(syntax))
-				emit_XImportDeclaration_SemicolonKeyword_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_XParenthesizedExpression_LeftParenthesisKeyword_0_a.equals(syntax))
+			else if (match_XImportDeclaration_SemicolonKeyword_3_q.equals(syntax))
+				emit_XImportDeclaration_SemicolonKeyword_3_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_XParenthesizedExpression_LeftParenthesisKeyword_0_a.equals(syntax))
 				emit_XParenthesizedExpression_LeftParenthesisKeyword_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if(match_XParenthesizedExpression_LeftParenthesisKeyword_0_p.equals(syntax))
+			else if (match_XParenthesizedExpression_LeftParenthesisKeyword_0_p.equals(syntax))
 				emit_XParenthesizedExpression_LeftParenthesisKeyword_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
 			else acceptNodes(getLastNavigableState(), syntaxNodes);
 		}
 	}
 
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('{' '}')?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     datamartRef=[DatamartDefinition|ID] (ambiguity) (rule end)
 	 */
 	protected void emit_TableDatamart___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('{' '}')?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     dtoSource=[LDto|ID] (ambiguity) (rule end)
 	 */
 	protected void emit_TableDtoDatasource___LeftCurlyBracketKeyword_2_0_RightCurlyBracketKeyword_2_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('{' '}')?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     name=QualifiedName (ambiguity) (rule end)
 	 */
-	protected void emit_TablePackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+	protected void emit_TablePackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
+	 *     (
+	  *         (
+	  *             'intervals' 
+	  *             ('{' '}' 'intervals')* 
+	  *             '{' 
+	  *             '}' 
+	  *             'lookups' 
+	  *             '{' 
+	  *             '}' 
+	  *             ('lookups' '{' '}')* 
+	  *             (
+	  *                 'intervals' 
+	  *                 ('{' '}' 'intervals')* 
+	  *                 '{' 
+	  *                 '}' 
+	  *                 'lookups' 
+	  *                 '{' 
+	  *                 '}' 
+	  *                 ('lookups' '{' '}')*
+	  *             )* 
+	  *             ('intervals' | ('intervals' ('{' '}' 'intervals')* '{' '}' 'intervals'))
+	  *         ) | 
+	  *         'intervals' | 
+	  *         ('intervals' ('{' '}' 'intervals')* '{' '}' 'intervals')
+	  *     )
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     hideLabelLookup?='hidelabel' '{' '}' ('lookups' '{' '}')* (ambiguity) hideLabelInterval?='hidelabel'
+	 */
+	protected void emit_TableValue_IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0___or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0______(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
+	 *     (
+	  *         (
+	  *             'lookups' 
+	  *             ('{' '}' 'lookups')* 
+	  *             '{' 
+	  *             '}' 
+	  *             'intervals' 
+	  *             '{' 
+	  *             '}' 
+	  *             ('intervals' '{' '}')* 
+	  *             (
+	  *                 'lookups' 
+	  *                 ('{' '}' 'lookups')* 
+	  *                 '{' 
+	  *                 '}' 
+	  *                 'intervals' 
+	  *                 '{' 
+	  *                 '}' 
+	  *                 ('intervals' '{' '}')*
+	  *             )* 
+	  *             ('lookups' | ('lookups' ('{' '}' 'lookups')* '{' '}' 'lookups'))
+	  *         ) | 
+	  *         'lookups' | 
+	  *         ('lookups' ('{' '}' 'lookups')* '{' '}' 'lookups')
+	  *     )
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     hideLabelInterval?='hidelabel' '{' '}' ('intervals' '{' '}')* (ambiguity) hideLabelLookup?='hidelabel'
+	 */
+	protected void emit_TableValue_LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_______or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
 	 *     ('intervals' '{' '}' ('lookups' '{' '}')*)*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     hideLabelInterval?='hidelabel' '{' '}' ('lookups' '{' '}')* (ambiguity) (rule end)
+	 *     intervals+=TableInterval '}' ('lookups' '{' '}')* (ambiguity) (rule end)
 	 */
 	protected void emit_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('intervals' '{' '}')*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     (
+	 *         hideLabelInterval?='hidelabel' 
+	 *         '{' 
+	 *         '}' 
+	 *         (ambiguity) 
+	 *         (
+	 *             ('lookups' ('{' '}' 'lookups')* '{' '}' 'intervals' '{' '}' (ambiguity) ('lookups' ('{' '}' 'lookups')* '{' '}' 'intervals' '{' '}' (ambiguity))* ('lookups' | ('lookups' ('{' '}' 'lookups')* '{' '}' 'lookups'))) | 
+	 *             'lookups' | 
+	 *             ('lookups' ('{' '}' 'lookups')* '{' '}' 'lookups')
+	 *         ) 
+	 *         hideLabelLookup?='hidelabel'
+	 *     )
+	 *     collapsed?='collapse' (ambiguity) 'lookups' '{' ('}' (ambiguity) 'lookups' '{')* lookups+=TableLookup
+	 *     collapsed?='collapse' (ambiguity) 'lookups' ('{' '}' (ambiguity) 'lookups')* hideLabelLookup?='hidelabel'
+	 *     column=TableValueElement (ambiguity) 'lookups' '{' ('}' (ambiguity) 'lookups' '{')* lookups+=TableLookup
+	 *     column=TableValueElement (ambiguity) 'lookups' ('{' '}' (ambiguity) 'lookups')* hideLabelLookup?='hidelabel'
+	 *     formatter=TableFormatter (ambiguity) 'lookups' '{' ('}' (ambiguity) 'lookups' '{')* lookups+=TableLookup
+	 *     formatter=TableFormatter (ambiguity) 'lookups' ('{' '}' (ambiguity) 'lookups')* hideLabelLookup?='hidelabel'
+	 *     hideLabelInterval?='hidelabel' '{' '}' (ambiguity) (('lookups' '{' '}')? ('lookups' '{' '}' 'intervals' '{' '}')?)+ 'lookups' '{' lookups+=TableLookup
+	 *     hideLabelLookup?='hidelabel' '{' '}' (ambiguity) ('lookups' '{' '}' (ambiguity))* (rule end)
+	 *     iconName=STRING (ambiguity) 'lookups' '{' ('}' (ambiguity) 'lookups' '{')* lookups+=TableLookup
+	 *     iconName=STRING (ambiguity) 'lookups' ('{' '}' (ambiguity) 'lookups')* hideLabelLookup?='hidelabel'
+	 *     image=TableImage (ambiguity) 'lookups' '{' ('}' (ambiguity) 'lookups' '{')* lookups+=TableLookup
+	 *     image=TableImage (ambiguity) 'lookups' ('{' '}' (ambiguity) 'lookups')* hideLabelLookup?='hidelabel'
+	 *     lookups+=TableLookup '}' (ambiguity) 'lookups' ('{' '}' (ambiguity) 'lookups')* hideLabelLookup?='hidelabel'
+	 *     lookups+=TableLookup '}' (ambiguity) ('lookups' '{' '}' (ambiguity))* (rule end)
+	 *     tooltipPattern=TableTooltipPattern (ambiguity) 'lookups' '{' ('}' (ambiguity) 'lookups' '{')* lookups+=TableLookup
+	 *     tooltipPattern=TableTooltipPattern (ambiguity) 'lookups' ('{' '}' (ambiguity) 'lookups')* hideLabelLookup?='hidelabel'
 	 */
 	protected void emit_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     (
-	     ('intervals' '{' ('}' 'intervals' '{')*) | 
-	     (
-	         ('intervals' '{' ('}' 'intervals' '{')* '}')? 
-	         ('lookups' '{' '}')+ 
-	         'intervals' 
-	         '{' 
-	         ('}' 'intervals' '{')* 
-	         ('}' ('lookups' '{' '}')+ 'intervals' '{' ('}' 'intervals' '{')*)*
-	     )
-	 )
+	  *         ('intervals' '{' ('}' 'intervals' '{')*) | 
+	  *         (
+	  *             ('intervals' '{' ('}' 'intervals' '{')* '}')? 
+	  *             ('lookups' '{' '}')+ 
+	  *             'intervals' 
+	  *             '{' 
+	  *             ('}' 'intervals' '{')* 
+	  *             ('}' ('lookups' '{' '}')+ 'intervals' '{' ('}' 'intervals' '{')*)*
+	  *         )
+	  *     )
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     lookups+=TableLookup '}' (ambiguity) intervals+=TableInterval
 	 */
 	protected void emit_TableValue___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__p_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a__a__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
-	 *     (
-	     (
-	         'intervals' 
-	         ('{' '}' 'intervals')* 
-	         '{' 
-	         '}' 
-	         'lookups' 
-	         '{' 
-	         '}' 
-	         ('lookups' '{' '}')* 
-	         (
-	             'intervals' 
-	             ('{' '}' 'intervals')* 
-	             '{' 
-	             '}' 
-	             'lookups' 
-	             '{' 
-	             '}' 
-	             ('lookups' '{' '}')*
-	         )* 
-	         ('intervals' | ('intervals' ('{' '}' 'intervals')* '{' '}' 'intervals'))
-	     ) | 
-	     ('intervals' | ('intervals' ('{' '}' 'intervals')* '{' '}' 'intervals'))
-	 )
-	 */
-	protected void emit_TableValue___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_______or___IntervalsKeyword_4_0_0_or___IntervalsKeyword_4_0_0___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0__a_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0____(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
-		acceptNodes(transition, nodes);
-	}
-	
-	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('{' '}' ('lookups' '{' '}')* 'intervals')*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     collapsed?='collapse' ('lookups' '{' '}')* 'intervals' (ambiguity) hideLabelInterval?='hidelabel'
+	 *     column=TableValueElement ('lookups' '{' '}')* 'intervals' (ambiguity) hideLabelInterval?='hidelabel'
+	 *     formatter=TableFormatter ('lookups' '{' '}')* 'intervals' (ambiguity) hideLabelInterval?='hidelabel'
+	 *     iconName=STRING ('lookups' '{' '}')* 'intervals' (ambiguity) hideLabelInterval?='hidelabel'
+	 *     image=TableImage ('lookups' '{' '}')* 'intervals' (ambiguity) hideLabelInterval?='hidelabel'
+	 *     intervals+=TableInterval '}' ('lookups' '{' '}')* 'intervals' (ambiguity) hideLabelInterval?='hidelabel'
+	 *     tooltipPattern=TableTooltipPattern ('lookups' '{' '}')* 'intervals' (ambiguity) hideLabelInterval?='hidelabel'
 	 */
 	protected void emit_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('{' '}' ('lookups' '{' '}')* 'intervals')+
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     hideLabelInterval?='hidelabel' (ambiguity) hideLabelInterval?='hidelabel'
 	 */
 	protected void emit_TableValue___LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('{' '}' ('intervals' '{' '}')* 'lookups')*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     collapsed?='collapse' ('intervals' '{' '}')* 'lookups' (ambiguity) hideLabelLookup?='hidelabel'
+	 *     column=TableValueElement ('intervals' '{' '}')* 'lookups' (ambiguity) hideLabelLookup?='hidelabel'
+	 *     formatter=TableFormatter ('intervals' '{' '}')* 'lookups' (ambiguity) hideLabelLookup?='hidelabel'
+	 *     iconName=STRING ('intervals' '{' '}')* 'lookups' (ambiguity) hideLabelLookup?='hidelabel'
+	 *     image=TableImage ('intervals' '{' '}')* 'lookups' (ambiguity) hideLabelLookup?='hidelabel'
+	 *     lookups+=TableLookup '}' ('intervals' '{' '}')* 'lookups' (ambiguity) hideLabelLookup?='hidelabel'
+	 *     tooltipPattern=TableTooltipPattern ('intervals' '{' '}')* 'lookups' (ambiguity) hideLabelLookup?='hidelabel'
 	 */
 	protected void emit_TableValue___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('{' '}' ('intervals' '{' '}')* 'lookups')+
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     hideLabelLookup?='hidelabel' (ambiguity) hideLabelLookup?='hidelabel'
 	 */
 	protected void emit_TableValue___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('lookups' '{' '}' ('intervals' '{' '}')*)*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     hideLabelLookup?='hidelabel' '{' '}' ('intervals' '{' '}')* (ambiguity) (rule end)
+	 *     lookups+=TableLookup '}' ('intervals' '{' '}')* (ambiguity) (rule end)
 	 */
 	protected void emit_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('lookups' '{' '}')*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     (
+	 *         hideLabelLookup?='hidelabel' 
+	 *         '{' 
+	 *         '}' 
+	 *         (ambiguity) 
+	 *         (
+	 *             (
+	 *                 'intervals' 
+	 *                 ('{' '}' 'intervals')* 
+	 *                 '{' 
+	 *                 '}' 
+	 *                 'lookups' 
+	 *                 '{' 
+	 *                 '}' 
+	 *                 (ambiguity) 
+	 *                 ('intervals' ('{' '}' 'intervals')* '{' '}' 'lookups' '{' '}' (ambiguity))* 
+	 *                 ('intervals' | ('intervals' ('{' '}' 'intervals')* '{' '}' 'intervals'))
+	 *             ) | 
+	 *             'intervals' | 
+	 *             ('intervals' ('{' '}' 'intervals')* '{' '}' 'intervals')
+	 *         ) 
+	 *         hideLabelInterval?='hidelabel'
+	 *     )
+	 *     collapsed?='collapse' (ambiguity) 'intervals' '{' ('}' (ambiguity) 'intervals' '{')* intervals+=TableInterval
+	 *     collapsed?='collapse' (ambiguity) 'intervals' ('{' '}' (ambiguity) 'intervals')* hideLabelInterval?='hidelabel'
+	 *     column=TableValueElement (ambiguity) 'intervals' '{' ('}' (ambiguity) 'intervals' '{')* intervals+=TableInterval
+	 *     column=TableValueElement (ambiguity) 'intervals' ('{' '}' (ambiguity) 'intervals')* hideLabelInterval?='hidelabel'
+	 *     formatter=TableFormatter (ambiguity) 'intervals' '{' ('}' (ambiguity) 'intervals' '{')* intervals+=TableInterval
+	 *     formatter=TableFormatter (ambiguity) 'intervals' ('{' '}' (ambiguity) 'intervals')* hideLabelInterval?='hidelabel'
+	 *     hideLabelInterval?='hidelabel' '{' '}' (ambiguity) ('intervals' '{' '}' (ambiguity))* (rule end)
+	 *     hideLabelLookup?='hidelabel' '{' '}' (ambiguity) (('intervals' '{' '}')? ('intervals' '{' '}' 'lookups' '{' '}')?)+ 'intervals' '{' intervals+=TableInterval
+	 *     iconName=STRING (ambiguity) 'intervals' '{' ('}' (ambiguity) 'intervals' '{')* intervals+=TableInterval
+	 *     iconName=STRING (ambiguity) 'intervals' ('{' '}' (ambiguity) 'intervals')* hideLabelInterval?='hidelabel'
+	 *     image=TableImage (ambiguity) 'intervals' '{' ('}' (ambiguity) 'intervals' '{')* intervals+=TableInterval
+	 *     image=TableImage (ambiguity) 'intervals' ('{' '}' (ambiguity) 'intervals')* hideLabelInterval?='hidelabel'
+	 *     intervals+=TableInterval '}' (ambiguity) 'intervals' ('{' '}' (ambiguity) 'intervals')* hideLabelInterval?='hidelabel'
+	 *     intervals+=TableInterval '}' (ambiguity) ('intervals' '{' '}' (ambiguity))* (rule end)
+	 *     tooltipPattern=TableTooltipPattern (ambiguity) 'intervals' '{' ('}' (ambiguity) 'intervals' '{')* intervals+=TableInterval
+	 *     tooltipPattern=TableTooltipPattern (ambiguity) 'intervals' ('{' '}' (ambiguity) 'intervals')* hideLabelInterval?='hidelabel'
 	 */
 	protected void emit_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     (
-	     ('lookups' '{' ('}' 'lookups' '{')*) | 
-	     (
-	         ('lookups' '{' ('}' 'lookups' '{')* '}')? 
-	         ('intervals' '{' '}')+ 
-	         'lookups' 
-	         '{' 
-	         ('}' 'lookups' '{')* 
-	         ('}' ('intervals' '{' '}')+ 'lookups' '{' ('}' 'lookups' '{')*)*
-	     )
-	 )
+	  *         ('lookups' '{' ('}' 'lookups' '{')*) | 
+	  *         (
+	  *             ('lookups' '{' ('}' 'lookups' '{')* '}')? 
+	  *             ('intervals' '{' '}')+ 
+	  *             'lookups' 
+	  *             '{' 
+	  *             ('}' 'lookups' '{')* 
+	  *             ('}' ('intervals' '{' '}')+ 'lookups' '{' ('}' 'lookups' '{')*)*
+	  *         )
+	  *     )
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     intervals+=TableInterval '}' (ambiguity) lookups+=TableLookup
 	 */
 	protected void emit_TableValue___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__p_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a__a__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     (
-	     (
-	         'lookups' 
-	         ('{' '}' 'lookups')* 
-	         '{' 
-	         '}' 
-	         'intervals' 
-	         '{' 
-	         '}' 
-	         ('intervals' '{' '}')* 
-	         (
-	             'lookups' 
-	             ('{' '}' 'lookups')* 
-	             '{' 
-	             '}' 
-	             'intervals' 
-	             '{' 
-	             '}' 
-	             ('intervals' '{' '}')*
-	         )* 
-	         ('lookups' | ('lookups' ('{' '}' 'lookups')* '{' '}' 'lookups'))
-	     ) | 
-	     ('lookups' | ('lookups' ('{' '}' 'lookups')* '{' '}' 'lookups'))
-	 )
+	  *         (
+	  *             (
+	  *                 ('}' 'intervals' '{' ('}' 'intervals' '{')*) | 
+	  *                 (
+	  *                     '}' 
+	  *                     'lookups' 
+	  *                     '{' 
+	  *                     '}' 
+	  *                     ('lookups' '{' '}')* 
+	  *                     'intervals' 
+	  *                     '{' 
+	  *                     ('}' 'intervals' '{')*
+	  *                 )
+	  *             ) 
+	  *             '}' 
+	  *             'lookups' 
+	  *             '{' 
+	  *             '}' 
+	  *             ('lookups' '{' '}')* 
+	  *             (
+	  *                 'intervals' 
+	  *                 '{' 
+	  *                 ('}' 'intervals' '{')* 
+	  *                 '}' 
+	  *                 'lookups' 
+	  *                 '{' 
+	  *                 '}' 
+	  *                 ('lookups' '{' '}')*
+	  *             )* 
+	  *             ('lookups' | ('intervals' '{' ('}' 'intervals' '{')* '}' 'lookups'))
+	  *         ) | 
+	  *         ('}' 'lookups') | 
+	  *         (
+	  *             '}' 
+	  *             'intervals' 
+	  *             '{' 
+	  *             ('}' 'intervals' '{')* 
+	  *             '}' 
+	  *             'lookups'
+	  *         ) | 
+	  *         (
+	  *             '}' 
+	  *             'lookups' 
+	  *             '{' 
+	  *             '}' 
+	  *             ('lookups' '{' '}')* 
+	  *             ('lookups' | ('intervals' '{' ('}' 'intervals' '{')* '}' 'lookups'))
+	  *         )
+	  *     )
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     intervals+=TableInterval (ambiguity) hideLabelLookup?='hidelabel'
 	 */
-	protected void emit_TableValue___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_______or___LookupsKeyword_4_1_0_or___LookupsKeyword_4_1_0___LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0__a_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0____(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+	protected void emit_TableValue___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or_______RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0______(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('}' ('lookups' '{' '}')* 'intervals' '{')*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     collapsed?='collapse' ('lookups' '{' '}')* 'intervals' '{' (ambiguity) intervals+=TableInterval
+	 *     column=TableValueElement ('lookups' '{' '}')* 'intervals' '{' (ambiguity) intervals+=TableInterval
+	 *     formatter=TableFormatter ('lookups' '{' '}')* 'intervals' '{' (ambiguity) intervals+=TableInterval
+	 *     hideLabelInterval?='hidelabel' '{' (ambiguity) intervals+=TableInterval
+	 *     iconName=STRING ('lookups' '{' '}')* 'intervals' '{' (ambiguity) intervals+=TableInterval
+	 *     image=TableImage ('lookups' '{' '}')* 'intervals' '{' (ambiguity) intervals+=TableInterval
+	 *     intervals+=TableInterval (ambiguity) intervals+=TableInterval
+	 *     tooltipPattern=TableTooltipPattern ('lookups' '{' '}')* 'intervals' '{' (ambiguity) intervals+=TableInterval
 	 */
 	protected void emit_TableValue___RightCurlyBracketKeyword_4_0_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
+	 *     (
+	  *         (
+	  *             (
+	  *                 ('}' 'lookups' '{' ('}' 'lookups' '{')*) | 
+	  *                 (
+	  *                     '}' 
+	  *                     'intervals' 
+	  *                     '{' 
+	  *                     '}' 
+	  *                     ('intervals' '{' '}')* 
+	  *                     'lookups' 
+	  *                     '{' 
+	  *                     ('}' 'lookups' '{')*
+	  *                 )
+	  *             ) 
+	  *             '}' 
+	  *             'intervals' 
+	  *             '{' 
+	  *             '}' 
+	  *             ('intervals' '{' '}')* 
+	  *             (
+	  *                 'lookups' 
+	  *                 '{' 
+	  *                 ('}' 'lookups' '{')* 
+	  *                 '}' 
+	  *                 'intervals' 
+	  *                 '{' 
+	  *                 '}' 
+	  *                 ('intervals' '{' '}')*
+	  *             )* 
+	  *             ('intervals' | ('lookups' '{' ('}' 'lookups' '{')* '}' 'intervals'))
+	  *         ) | 
+	  *         ('}' 'intervals') | 
+	  *         (
+	  *             '}' 
+	  *             'lookups' 
+	  *             '{' 
+	  *             ('}' 'lookups' '{')* 
+	  *             '}' 
+	  *             'intervals'
+	  *         ) | 
+	  *         (
+	  *             '}' 
+	  *             'intervals' 
+	  *             '{' 
+	  *             '}' 
+	  *             ('intervals' '{' '}')* 
+	  *             ('intervals' | ('lookups' '{' ('}' 'lookups' '{')* '}' 'intervals'))
+	  *         )
+	  *     )
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     lookups+=TableLookup (ambiguity) hideLabelInterval?='hidelabel'
+	 */
+	protected void emit_TableValue___RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or___RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or_______RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0______(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
 	 *     ('}' ('intervals' '{' '}')* 'lookups' '{')*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     collapsed?='collapse' ('intervals' '{' '}')* 'lookups' '{' (ambiguity) lookups+=TableLookup
+	 *     column=TableValueElement ('intervals' '{' '}')* 'lookups' '{' (ambiguity) lookups+=TableLookup
+	 *     formatter=TableFormatter ('intervals' '{' '}')* 'lookups' '{' (ambiguity) lookups+=TableLookup
+	 *     hideLabelLookup?='hidelabel' '{' (ambiguity) lookups+=TableLookup
+	 *     iconName=STRING ('intervals' '{' '}')* 'lookups' '{' (ambiguity) lookups+=TableLookup
+	 *     image=TableImage ('intervals' '{' '}')* 'lookups' '{' (ambiguity) lookups+=TableLookup
+	 *     lookups+=TableLookup (ambiguity) lookups+=TableLookup
+	 *     tooltipPattern=TableTooltipPattern ('intervals' '{' '}')* 'lookups' '{' (ambiguity) lookups+=TableLookup
 	 */
 	protected void emit_TableValue___RightCurlyBracketKeyword_4_1_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     (('intervals' '{' '}') | ('lookups' '{' '}'))*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     collapsed?='collapse' (ambiguity) (rule end)
+	 *     column=TableValueElement (ambiguity) (rule end)
+	 *     formatter=TableFormatter (ambiguity) (rule end)
+	 *     iconName=STRING (ambiguity) (rule end)
+	 *     image=TableImage (ambiguity) (rule end)
+	 *     tooltipPattern=TableTooltipPattern (ambiguity) (rule end)
 	 */
 	protected void emit_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4____a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     (
-	     ('intervals' '{' '}')? 
-	     (
-	         'intervals' 
-	         '{' 
-	         '}' 
-	         'lookups' 
-	         '{' 
-	         '}'
-	     )?
-	 )+
+	  *         ('intervals' '{' '}')? 
+	  *         (
+	  *             'intervals' 
+	  *             '{' 
+	  *             '}' 
+	  *             'lookups' 
+	  *             '{' 
+	  *             '}'
+	  *         )?
+	  *     )+
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     hideLabelLookup?='hidelabel' '{' '}' ('lookups' '{' '}')* (ambiguity) 'intervals' '{' intervals+=TableInterval
 	 */
 	protected void emit_TableValue_____IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     (
-	     ('lookups' '{' '}')? 
-	     (
-	         'lookups' 
-	         '{' 
-	         '}' 
-	         'intervals' 
-	         '{' 
-	         '}'
-	     )?
-	 )+
+	  *         ('lookups' '{' '}')? 
+	  *         (
+	  *             'lookups' 
+	  *             '{' 
+	  *             '}' 
+	  *             'intervals' 
+	  *             '{' 
+	  *             '}'
+	  *         )?
+	  *     )+
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     hideLabelInterval?='hidelabel' '{' '}' ('intervals' '{' '}')* (ambiguity) 'lookups' '{' lookups+=TableLookup
 	 */
 	protected void emit_TableValue_____LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__q___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__q__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
-	 *     (
-	     (
-	         (
-	             ('}' 'intervals' '{' ('}' 'intervals' '{')*) | 
-	             (
-	                 '}' 
-	                 'lookups' 
-	                 '{' 
-	                 '}' 
-	                 ('lookups' '{' '}')* 
-	                 'intervals' 
-	                 '{' 
-	                 ('}' 'intervals' '{')*
-	             )
-	         ) 
-	         '}' 
-	         'lookups' 
-	         '{' 
-	         '}' 
-	         ('lookups' '{' '}')* 
-	         (
-	             'intervals' 
-	             '{' 
-	             ('}' 'intervals' '{')* 
-	             '}' 
-	             'lookups' 
-	             '{' 
-	             '}' 
-	             ('lookups' '{' '}')*
-	         )* 
-	         ('lookups' | ('intervals' '{' ('}' 'intervals' '{')* '}' 'lookups'))
-	     ) | 
-	     (
-	         (
-	             ('}' 'lookups') | 
-	             (
-	                 '}' 
-	                 'intervals' 
-	                 '{' 
-	                 ('}' 'intervals' '{')* 
-	                 '}' 
-	                 'lookups'
-	             )
-	         ) | 
-	         (
-	             '}' 
-	             'lookups' 
-	             '{' 
-	             '}' 
-	             ('lookups' '{' '}')* 
-	             ('lookups' | ('intervals' '{' ('}' 'intervals' '{')* '}' 'lookups'))
-	         )
-	     )
-	 )
-	 */
-	protected void emit_TableValue_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or_____RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_______or_______RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a___or___RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_____RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2_RightCurlyBracketKeyword_4_1_4__a__a___LookupsKeyword_4_1_0_or___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2___RightCurlyBracketKeyword_4_0_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2__a_RightCurlyBracketKeyword_4_0_4_LookupsKeyword_4_1_0______(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
-		acceptNodes(transition, nodes);
-	}
-	
-	/**
-	 * Syntax:
-	 *     (
-	     (
-	         (
-	             ('}' 'lookups' '{' ('}' 'lookups' '{')*) | 
-	             (
-	                 '}' 
-	                 'intervals' 
-	                 '{' 
-	                 '}' 
-	                 ('intervals' '{' '}')* 
-	                 'lookups' 
-	                 '{' 
-	                 ('}' 'lookups' '{')*
-	             )
-	         ) 
-	         '}' 
-	         'intervals' 
-	         '{' 
-	         '}' 
-	         ('intervals' '{' '}')* 
-	         (
-	             'lookups' 
-	             '{' 
-	             ('}' 'lookups' '{')* 
-	             '}' 
-	             'intervals' 
-	             '{' 
-	             '}' 
-	             ('intervals' '{' '}')*
-	         )* 
-	         ('intervals' | ('lookups' '{' ('}' 'lookups' '{')* '}' 'intervals'))
-	     ) | 
-	     (
-	         (
-	             ('}' 'intervals') | 
-	             (
-	                 '}' 
-	                 'lookups' 
-	                 '{' 
-	                 ('}' 'lookups' '{')* 
-	                 '}' 
-	                 'intervals'
-	             )
-	         ) | 
-	         (
-	             '}' 
-	             'intervals' 
-	             '{' 
-	             '}' 
-	             ('intervals' '{' '}')* 
-	             ('intervals' | ('lookups' '{' ('}' 'lookups' '{')* '}' 'intervals'))
-	         )
-	     )
-	 )
-	 */
-	protected void emit_TableValue_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_______or_______RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a___or___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_____RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4___IntervalsKeyword_4_0_0_LeftCurlyBracketKeyword_4_0_2_RightCurlyBracketKeyword_4_0_4__a__a___IntervalsKeyword_4_0_0_or___LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2___RightCurlyBracketKeyword_4_1_4_LookupsKeyword_4_1_0_LeftCurlyBracketKeyword_4_1_2__a_RightCurlyBracketKeyword_4_1_4_IntervalsKeyword_4_0_0______(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
-		acceptNodes(transition, nodes);
-	}
-	
-	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('(' ')')?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     annotationType=[JvmAnnotationType|QualifiedName] (ambiguity) (rule end)
 	 */
 	protected void emit_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ';'?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     expressions+=XExpressionOrVarDeclaration (ambiguity) '}' ')' (rule end)
+	 *     expressions+=XExpressionOrVarDeclaration (ambiguity) '}' (rule end)
+	 *     expressions+=XExpressionOrVarDeclaration (ambiguity) expressions+=XExpressionOrVarDeclaration
 	 */
 	protected void emit_XBlockExpression_SemicolonKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ';'?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     expressions+=XExpressionOrVarDeclaration (ambiguity) (rule end)
+	 *     expressions+=XExpressionOrVarDeclaration (ambiguity) expressions+=XExpressionOrVarDeclaration
 	 */
 	protected void emit_XExpressionInClosure_SemicolonKeyword_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ('(' ')')?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     (rule start) (ambiguity) '=>' returnType=JvmTypeReference
 	 */
 	protected void emit_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     ';'?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     importedFullyQualifiedName=QualifiedName (ambiguity) (rule end)
+	 *     importedNamespace=QualifiedNameWithWildcard (ambiguity) (rule end)
+	 *     importedType=[JvmDeclaredType|QualifiedName] (ambiguity) (rule end)
+	 *     memberName=ValidID (ambiguity) (rule end)
+	 *     wildcard?='*' (ambiguity) (rule end)
 	 */
-	protected void emit_XImportDeclaration_SemicolonKeyword_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+	protected void emit_XImportDeclaration_SemicolonKeyword_3_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     '('*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     (rule start) (ambiguity) '#' '[' ']' (rule start)
+	 *     (rule start) (ambiguity) '#' '[' elements+=XExpression
+	 *     (rule start) (ambiguity) '#' '{' '}' (rule start)
+	 *     (rule start) (ambiguity) '#' '{' elements+=XExpression
+	 *     (rule start) (ambiguity) '<' typeArguments+=JvmArgumentTypeReference
+	 *     (rule start) (ambiguity) '[' declaredFormalParameters+=JvmFormalParameter
+	 *     (rule start) (ambiguity) '[' explicitSyntax?='|'
+	 *     (rule start) (ambiguity) '[' expression=XExpressionInClosure
+	 *     (rule start) (ambiguity) 'do' body=XExpression
+	 *     (rule start) (ambiguity) 'false' (rule start)
+	 *     (rule start) (ambiguity) 'for' '(' ';' ';' ')' eachExpression=XExpression
+	 *     (rule start) (ambiguity) 'for' '(' ';' ';' updateExpressions+=XExpression
+	 *     (rule start) (ambiguity) 'for' '(' ';' expression=XExpression
+	 *     (rule start) (ambiguity) 'for' '(' declaredParam=JvmFormalParameter
+	 *     (rule start) (ambiguity) 'for' '(' initExpressions+=XExpressionOrVarDeclaration
+	 *     (rule start) (ambiguity) 'if' '(' if=XExpression
+	 *     (rule start) (ambiguity) 'new' constructor=[JvmConstructor|QualifiedName]
+	 *     (rule start) (ambiguity) 'null' (rule start)
+	 *     (rule start) (ambiguity) 'return' (rule start)
+	 *     (rule start) (ambiguity) 'return' expression=XExpression
+	 *     (rule start) (ambiguity) 'switch' '(' declaredParam=JvmFormalParameter
+	 *     (rule start) (ambiguity) 'switch' declaredParam=JvmFormalParameter
+	 *     (rule start) (ambiguity) 'switch' switch=XExpression
+	 *     (rule start) (ambiguity) 'synchronized' '(' param=XExpression
+	 *     (rule start) (ambiguity) 'throw' expression=XExpression
+	 *     (rule start) (ambiguity) 'try' expression=XExpression
+	 *     (rule start) (ambiguity) 'typeof' '(' type=[JvmType|QualifiedName]
+	 *     (rule start) (ambiguity) 'while' '(' predicate=XExpression
+	 *     (rule start) (ambiguity) '{' '}' (rule start)
+	 *     (rule start) (ambiguity) '{' expressions+=XExpressionOrVarDeclaration
+	 *     (rule start) (ambiguity) feature=[JvmIdentifiableElement|FeatureCallID]
+	 *     (rule start) (ambiguity) feature=[JvmIdentifiableElement|IdOrSuper]
+	 *     (rule start) (ambiguity) feature=[JvmIdentifiableElement|OpUnary]
+	 *     (rule start) (ambiguity) isTrue?='true'
+	 *     (rule start) (ambiguity) value=Number
+	 *     (rule start) (ambiguity) value=STRING
+	 *     (rule start) (ambiguity) {XAssignment.assignable=}
+	 *     (rule start) (ambiguity) {XBinaryOperation.leftOperand=}
+	 *     (rule start) (ambiguity) {XCastedExpression.target=}
+	 *     (rule start) (ambiguity) {XInstanceOfExpression.expression=}
+	 *     (rule start) (ambiguity) {XMemberFeatureCall.memberCallTarget=}
+	 *     (rule start) (ambiguity) {XPostfixOperation.operand=}
 	 */
 	protected void emit_XParenthesizedExpression_LeftParenthesisKeyword_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
 	/**
-	 * Syntax:
+	 * Ambiguous syntax:
 	 *     '('+
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     (rule start) (ambiguity) '#' '[' ']' ')' (rule start)
+	 *     (rule start) (ambiguity) '#' '[' elements+=XExpression
+	 *     (rule start) (ambiguity) '#' '{' '}' ')' (rule start)
+	 *     (rule start) (ambiguity) '#' '{' elements+=XExpression
+	 *     (rule start) (ambiguity) '<' typeArguments+=JvmArgumentTypeReference
+	 *     (rule start) (ambiguity) '[' declaredFormalParameters+=JvmFormalParameter
+	 *     (rule start) (ambiguity) '[' explicitSyntax?='|'
+	 *     (rule start) (ambiguity) '[' expression=XExpressionInClosure
+	 *     (rule start) (ambiguity) 'do' body=XExpression
+	 *     (rule start) (ambiguity) 'false' ')' (rule start)
+	 *     (rule start) (ambiguity) 'for' '(' ';' ';' ')' eachExpression=XExpression
+	 *     (rule start) (ambiguity) 'for' '(' ';' ';' updateExpressions+=XExpression
+	 *     (rule start) (ambiguity) 'for' '(' ';' expression=XExpression
+	 *     (rule start) (ambiguity) 'for' '(' declaredParam=JvmFormalParameter
+	 *     (rule start) (ambiguity) 'for' '(' initExpressions+=XExpressionOrVarDeclaration
+	 *     (rule start) (ambiguity) 'if' '(' if=XExpression
+	 *     (rule start) (ambiguity) 'new' constructor=[JvmConstructor|QualifiedName]
+	 *     (rule start) (ambiguity) 'null' ')' (rule start)
+	 *     (rule start) (ambiguity) 'return' ')' (rule start)
+	 *     (rule start) (ambiguity) 'return' expression=XExpression
+	 *     (rule start) (ambiguity) 'switch' '(' declaredParam=JvmFormalParameter
+	 *     (rule start) (ambiguity) 'switch' declaredParam=JvmFormalParameter
+	 *     (rule start) (ambiguity) 'switch' switch=XExpression
+	 *     (rule start) (ambiguity) 'synchronized' '(' param=XExpression
+	 *     (rule start) (ambiguity) 'throw' expression=XExpression
+	 *     (rule start) (ambiguity) 'try' expression=XExpression
+	 *     (rule start) (ambiguity) 'typeof' '(' type=[JvmType|QualifiedName]
+	 *     (rule start) (ambiguity) 'while' '(' predicate=XExpression
+	 *     (rule start) (ambiguity) '{' '}' ')' (rule start)
+	 *     (rule start) (ambiguity) '{' expressions+=XExpressionOrVarDeclaration
+	 *     (rule start) (ambiguity) feature=[JvmIdentifiableElement|FeatureCallID]
+	 *     (rule start) (ambiguity) feature=[JvmIdentifiableElement|IdOrSuper]
+	 *     (rule start) (ambiguity) feature=[JvmIdentifiableElement|OpUnary]
+	 *     (rule start) (ambiguity) isTrue?='true'
+	 *     (rule start) (ambiguity) value=Number
+	 *     (rule start) (ambiguity) value=STRING
+	 *     (rule start) (ambiguity) {XAssignment.assignable=}
+	 *     (rule start) (ambiguity) {XBinaryOperation.leftOperand=}
+	 *     (rule start) (ambiguity) {XCastedExpression.target=}
+	 *     (rule start) (ambiguity) {XInstanceOfExpression.expression=}
+	 *     (rule start) (ambiguity) {XMemberFeatureCall.memberCallTarget=}
+	 *     (rule start) (ambiguity) {XPostfixOperation.operand=}
 	 */
 	protected void emit_XParenthesizedExpression_LeftParenthesisKeyword_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/services/TableDSLGrammarAccess.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/services/TableDSLGrammarAccess.java
index 4ed6534..8fa384c 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/services/TableDSLGrammarAccess.java
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/services/TableDSLGrammarAccess.java
@@ -1,27 +1,29 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table.services;
 
-import com.google.inject.Singleton;
 import com.google.inject.Inject;
-
+import com.google.inject.Singleton;
 import java.util.List;
-
-import org.eclipse.xtext.*;
+import org.eclipse.osbp.xtext.oxtype.services.OXtypeGrammarAccess;
+import org.eclipse.xtext.Action;
+import org.eclipse.xtext.Alternatives;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.CrossReference;
+import org.eclipse.xtext.EnumLiteralDeclaration;
+import org.eclipse.xtext.EnumRule;
+import org.eclipse.xtext.Grammar;
+import org.eclipse.xtext.GrammarUtil;
+import org.eclipse.xtext.Group;
+import org.eclipse.xtext.Keyword;
+import org.eclipse.xtext.ParserRule;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.TerminalRule;
+import org.eclipse.xtext.UnorderedGroup;
+import org.eclipse.xtext.service.AbstractElementFinder.AbstractEnumRuleElementFinder;
+import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder;
 import org.eclipse.xtext.service.GrammarProvider;
-import org.eclipse.xtext.service.AbstractElementFinder.*;
-
 import org.eclipse.xtext.xbase.annotations.services.XbaseWithAnnotationsGrammarAccess;
 import org.eclipse.xtext.xbase.services.XbaseGrammarAccess;
 import org.eclipse.xtext.xbase.services.XtypeGrammarAccess;
@@ -29,25 +31,36 @@
 @Singleton
 public class TableDSLGrammarAccess extends AbstractGrammarElementFinder {
 	
-	
 	public class TableModelElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableModel");
-		private final Assignment cPackagesAssignment = (Assignment)rule.eContents().get(1);
-		private final RuleCall cPackagesTablePackageParserRuleCall_0 = (RuleCall)cPackagesAssignment.eContents().get(0);
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableModel");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cImportSectionAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cImportSectionXImportSectionParserRuleCall_0_0 = (RuleCall)cImportSectionAssignment_0.eContents().get(0);
+		private final Assignment cPackagesAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cPackagesTablePackageParserRuleCall_1_0 = (RuleCall)cPackagesAssignment_1.eContents().get(0);
 		
 		//TableModel:
+		//	importSection=XImportSection?
 		//	packages+=TablePackage*;
-		public ParserRule getRule() { return rule; }
-
+		@Override public ParserRule getRule() { return rule; }
+		
+		//importSection=XImportSection? packages+=TablePackage*
+		public Group getGroup() { return cGroup; }
+		
+		//importSection=XImportSection?
+		public Assignment getImportSectionAssignment_0() { return cImportSectionAssignment_0; }
+		
+		//XImportSection
+		public RuleCall getImportSectionXImportSectionParserRuleCall_0_0() { return cImportSectionXImportSectionParserRuleCall_0_0; }
+		
 		//packages+=TablePackage*
-		public Assignment getPackagesAssignment() { return cPackagesAssignment; }
-
+		public Assignment getPackagesAssignment_1() { return cPackagesAssignment_1; }
+		
 		//TablePackage
-		public RuleCall getPackagesTablePackageParserRuleCall_0() { return cPackagesTablePackageParserRuleCall_0; }
+		public RuleCall getPackagesTablePackageParserRuleCall_1_0() { return cPackagesTablePackageParserRuleCall_1_0; }
 	}
-
 	public class TablePackageElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TablePackage");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TablePackage");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTablePackageAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cPackageKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -55,60 +68,51 @@
 		private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
 		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
 		private final Keyword cLeftCurlyBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
-		private final Assignment cImportsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
-		private final RuleCall cImportsTableImportParserRuleCall_3_1_0 = (RuleCall)cImportsAssignment_3_1.eContents().get(0);
-		private final Assignment cTablesAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
-		private final RuleCall cTablesTableParserRuleCall_3_2_0 = (RuleCall)cTablesAssignment_3_2.eContents().get(0);
-		private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+		private final Assignment cTablesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cTablesTableParserRuleCall_3_1_0 = (RuleCall)cTablesAssignment_3_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
 		
 		//TablePackage:
-		//	{TablePackage} "package" name=QualifiedName ("{" imports+=TableImport* tables+=Table* "}")?;
-		public ParserRule getRule() { return rule; }
-
-		//{TablePackage} "package" name=QualifiedName ("{" imports+=TableImport* tables+=Table* "}")?
+		//	{TablePackage} 'package' name=QualifiedName ('{' tables+=Table* '}')?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TablePackage} 'package' name=QualifiedName ('{' tables+=Table* '}')?
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TablePackage}
 		public Action getTablePackageAction_0() { return cTablePackageAction_0; }
-
-		//"package"
+		
+		//'package'
 		public Keyword getPackageKeyword_1() { return cPackageKeyword_1; }
-
+		
 		//name=QualifiedName
 		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
-
+		
 		//QualifiedName
 		public RuleCall getNameQualifiedNameParserRuleCall_2_0() { return cNameQualifiedNameParserRuleCall_2_0; }
-
-		//("{" imports+=TableImport* tables+=Table* "}")?
+		
+		//('{' tables+=Table* '}')?
 		public Group getGroup_3() { return cGroup_3; }
-
-		//"{"
+		
+		//'{'
 		public Keyword getLeftCurlyBracketKeyword_3_0() { return cLeftCurlyBracketKeyword_3_0; }
-
-		//imports+=TableImport*
-		public Assignment getImportsAssignment_3_1() { return cImportsAssignment_3_1; }
-
-		//TableImport
-		public RuleCall getImportsTableImportParserRuleCall_3_1_0() { return cImportsTableImportParserRuleCall_3_1_0; }
-
+		
 		//tables+=Table*
-		public Assignment getTablesAssignment_3_2() { return cTablesAssignment_3_2; }
-
+		public Assignment getTablesAssignment_3_1() { return cTablesAssignment_3_1; }
+		
 		//Table
-		public RuleCall getTablesTableParserRuleCall_3_2_0() { return cTablesTableParserRuleCall_3_2_0; }
-
-		//"}"
-		public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+		public RuleCall getTablesTableParserRuleCall_3_1_0() { return cTablesTableParserRuleCall_3_1_0; }
+		
+		//'}'
+		public Keyword getRightCurlyBracketKeyword_3_2() { return cRightCurlyBracketKeyword_3_2; }
 	}
-
 	public class TableElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Table");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.Table");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cTableKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
-		private final RuleCall cNameTRANSLATABLEIDParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
 		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
 		private final Assignment cDescriptionAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
 		private final Keyword cDescriptionDescribedByKeyword_3_0_0 = (Keyword)cDescriptionAssignment_3_0.eContents().get(0);
@@ -119,347 +123,484 @@
 		private final RuleCall cTabletypeTableOptionParserRuleCall_5_0 = (RuleCall)cTabletypeAssignment_5.eContents().get(0);
 		
 		//Table:
-		//	{Table} "table" name=TRANSLATABLEID (description?="described by" descriptionValue=TRANSLATABLESTRING)? "as"
-		//	tabletype=TableOption;
-		public ParserRule getRule() { return rule; }
-
-		//{Table} "table" name=TRANSLATABLEID (description?="described by" descriptionValue=TRANSLATABLESTRING)? "as"
-		//tabletype=TableOption
+		//	{Table} 'table' name=ID (description?='describedBy' descriptionValue=TRANSLATABLESTRING)?
+		//	'as' tabletype=TableOption;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{Table} 'table' name=ID (description?='describedBy' descriptionValue=TRANSLATABLESTRING)? 'as' tabletype=TableOption
 		public Group getGroup() { return cGroup; }
-
+		
 		//{Table}
 		public Action getTableAction_0() { return cTableAction_0; }
-
-		//"table"
+		
+		//'table'
 		public Keyword getTableKeyword_1() { return cTableKeyword_1; }
-
-		//name=TRANSLATABLEID
+		
+		//name=ID
 		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
-
-		//TRANSLATABLEID
-		public RuleCall getNameTRANSLATABLEIDParserRuleCall_2_0() { return cNameTRANSLATABLEIDParserRuleCall_2_0; }
-
-		//(description?="described by" descriptionValue=TRANSLATABLESTRING)?
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
+		
+		//(description?='describedBy' descriptionValue=TRANSLATABLESTRING)?
 		public Group getGroup_3() { return cGroup_3; }
-
-		//description?="described by"
+		
+		//description?='describedBy'
 		public Assignment getDescriptionAssignment_3_0() { return cDescriptionAssignment_3_0; }
-
-		//"described by"
+		
+		//'describedBy'
 		public Keyword getDescriptionDescribedByKeyword_3_0_0() { return cDescriptionDescribedByKeyword_3_0_0; }
-
+		
 		//descriptionValue=TRANSLATABLESTRING
 		public Assignment getDescriptionValueAssignment_3_1() { return cDescriptionValueAssignment_3_1; }
-
+		
 		//TRANSLATABLESTRING
 		public RuleCall getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0() { return cDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0; }
-
-		//"as"
+		
+		//'as'
 		public Keyword getAsKeyword_4() { return cAsKeyword_4; }
-
+		
 		//tabletype=TableOption
 		public Assignment getTabletypeAssignment_5() { return cTabletypeAssignment_5; }
-
+		
 		//TableOption
 		public RuleCall getTabletypeTableOptionParserRuleCall_5_0() { return cTabletypeTableOptionParserRuleCall_5_0; }
 	}
-
 	public class TableOptionElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableOption");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableOption");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final RuleCall cTableSelectionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cTableTableParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		private final RuleCall cTableGridParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cTableBeanParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
 		
 		//TableOption:
-		//	TableSelection | TableTable | TableGrid;
-		public ParserRule getRule() { return rule; }
-
-		//TableSelection | TableTable | TableGrid
+		//	TableSelection | TableTable | TableGrid | TableBean;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//TableSelection | TableTable | TableGrid | TableBean
 		public Alternatives getAlternatives() { return cAlternatives; }
-
+		
 		//TableSelection
 		public RuleCall getTableSelectionParserRuleCall_0() { return cTableSelectionParserRuleCall_0; }
-
+		
 		//TableTable
 		public RuleCall getTableTableParserRuleCall_1() { return cTableTableParserRuleCall_1; }
-
+		
 		//TableGrid
 		public RuleCall getTableGridParserRuleCall_2() { return cTableGridParserRuleCall_2; }
+		
+		//TableBean
+		public RuleCall getTableBeanParserRuleCall_3() { return cTableBeanParserRuleCall_3; }
 	}
-
 	public class TableSelectionElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableSelection");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableSelection");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableSelectionAction_0 = (Action)cGroup.eContents().get(0);
-		private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
-		private final Assignment cMultiSelectionAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
-		private final Keyword cMultiSelectionMultiselectionKeyword_1_0_0 = (Keyword)cMultiSelectionAssignment_1_0.eContents().get(0);
-		private final Keyword cSingleselectionKeyword_1_1 = (Keyword)cAlternatives_1.eContents().get(1);
-		private final UnorderedGroup cUnorderedGroup_2 = (UnorderedGroup)cGroup.eContents().get(2);
-		private final Assignment cSelectalwaysAssignment_2_0 = (Assignment)cUnorderedGroup_2.eContents().get(0);
-		private final Keyword cSelectalwaysSelectalwaysKeyword_2_0_0 = (Keyword)cSelectalwaysAssignment_2_0.eContents().get(0);
-		private final Group cGroup_2_1 = (Group)cUnorderedGroup_2.eContents().get(1);
-		private final Keyword cRowheaderKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
-		private final Assignment cHeaderModeAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
-		private final RuleCall cHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0 = (RuleCall)cHeaderModeAssignment_2_1_1.eContents().get(0);
+		private final Keyword cSelectionKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
+		private final Assignment cMultiSelectionAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0);
+		private final Keyword cMultiSelectionMultipleKeyword_2_0_0 = (Keyword)cMultiSelectionAssignment_2_0.eContents().get(0);
+		private final Keyword cSingleKeyword_2_1 = (Keyword)cAlternatives_2.eContents().get(1);
 		private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
-		private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
-		private final Assignment cPollingAssignment_3_0_0 = (Assignment)cGroup_3_0.eContents().get(0);
-		private final Keyword cPollingPollingKeyword_3_0_0_0 = (Keyword)cPollingAssignment_3_0_0.eContents().get(0);
-		private final Assignment cPollingTimeAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
-		private final RuleCall cPollingTimeNumberParserRuleCall_3_0_1_0 = (RuleCall)cPollingTimeAssignment_3_0_1.eContents().get(0);
-		private final Assignment cFilteringAssignment_3_1 = (Assignment)cUnorderedGroup_3.eContents().get(1);
-		private final Keyword cFilteringFilteringKeyword_3_1_0 = (Keyword)cFilteringAssignment_3_1.eContents().get(0);
-		private final Assignment cEmbeddedAssignment_3_2 = (Assignment)cUnorderedGroup_3.eContents().get(2);
-		private final Keyword cEmbeddedEmbeddedKeyword_3_2_0 = (Keyword)cEmbeddedAssignment_3_2.eContents().get(0);
-		private final Group cGroup_3_3 = (Group)cUnorderedGroup_3.eContents().get(3);
-		private final Keyword cToolbarKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0);
-		private final Assignment cToolbarAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1);
-		private final CrossReference cToolbarActionToolbarCrossReference_3_3_1_0 = (CrossReference)cToolbarAssignment_3_3_1.eContents().get(0);
-		private final RuleCall cToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1 = (RuleCall)cToolbarActionToolbarCrossReference_3_3_1_0.eContents().get(1);
+		private final Assignment cSelectalwaysAssignment_3_0 = (Assignment)cUnorderedGroup_3.eContents().get(0);
+		private final Keyword cSelectalwaysAlwaysSelectedKeyword_3_0_0 = (Keyword)cSelectalwaysAssignment_3_0.eContents().get(0);
+		private final Group cGroup_3_1 = (Group)cUnorderedGroup_3.eContents().get(1);
+		private final Keyword cRowHeaderKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
+		private final Assignment cHeaderModeAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
+		private final RuleCall cHeaderModeRowHeaderModeEnumRuleCall_3_1_1_0 = (RuleCall)cHeaderModeAssignment_3_1_1.eContents().get(0);
+		private final Group cGroup_3_2 = (Group)cUnorderedGroup_3.eContents().get(2);
+		private final Assignment cPollingAssignment_3_2_0 = (Assignment)cGroup_3_2.eContents().get(0);
+		private final Keyword cPollingPollingKeyword_3_2_0_0 = (Keyword)cPollingAssignment_3_2_0.eContents().get(0);
+		private final Assignment cPollingTimeAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+		private final RuleCall cPollingTimeNumberParserRuleCall_3_2_1_0 = (RuleCall)cPollingTimeAssignment_3_2_1.eContents().get(0);
+		private final Assignment cFilteringAssignment_3_3 = (Assignment)cUnorderedGroup_3.eContents().get(3);
+		private final Keyword cFilteringFilteringKeyword_3_3_0 = (Keyword)cFilteringAssignment_3_3.eContents().get(0);
+		private final Assignment cEmbeddedAssignment_3_4 = (Assignment)cUnorderedGroup_3.eContents().get(4);
+		private final Keyword cEmbeddedEmbeddedKeyword_3_4_0 = (Keyword)cEmbeddedAssignment_3_4.eContents().get(0);
+		private final Group cGroup_3_5 = (Group)cUnorderedGroup_3.eContents().get(5);
+		private final Keyword cToolbarKeyword_3_5_0 = (Keyword)cGroup_3_5.eContents().get(0);
+		private final Assignment cToolbarAssignment_3_5_1 = (Assignment)cGroup_3_5.eContents().get(1);
+		private final CrossReference cToolbarActionToolbarCrossReference_3_5_1_0 = (CrossReference)cToolbarAssignment_3_5_1.eContents().get(0);
+		private final RuleCall cToolbarActionToolbarIDTerminalRuleCall_3_5_1_0_1 = (RuleCall)cToolbarActionToolbarCrossReference_3_5_1_0.eContents().get(1);
 		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
 		private final Keyword cUsingKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
 		private final Assignment cSourceAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
 		private final RuleCall cSourceTableDatamartParserRuleCall_4_1_0 = (RuleCall)cSourceAssignment_4_1.eContents().get(0);
 		
 		//TableSelection:
-		//	{TableSelection} (multiSelection?="multiselection" | "singleselection") (selectalways?="selectalways"? & ("rowheader"
-		//	headerMode=RowHeaderMode)?) ((polling?="polling" pollingTime=Number)? & filtering?="filtering"? &
-		//	embedded?="embedded"? & ("toolbar" toolbar=[action::ActionToolbar])?) ("using" source=TableDatamart)?;
-		public ParserRule getRule() { return rule; }
-
-		//{TableSelection} (multiSelection?="multiselection" | "singleselection") (selectalways?="selectalways"? & ("rowheader"
-		//headerMode=RowHeaderMode)?) ((polling?="polling" pollingTime=Number)? & filtering?="filtering"? &
-		//embedded?="embedded"? & ("toolbar" toolbar=[action::ActionToolbar])?) ("using" source=TableDatamart)?
+		//	{TableSelection} 'selection' (multiSelection?='multiple' | 'single') (selectalways?='alwaysSelected'? & ('rowHeader'
+		//	headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & filtering?='filtering'? &
+		//	embedded?='embedded'? & ('toolbar' toolbar=[action::ActionToolbar])?) ('using' source=TableDatamart)?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableSelection} 'selection' (multiSelection?='multiple' | 'single') (selectalways?='alwaysSelected'? & ('rowHeader'
+		//headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & filtering?='filtering'? & embedded?='embedded'?
+		//& ('toolbar' toolbar=[action::ActionToolbar])?) ('using' source=TableDatamart)?
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableSelection}
 		public Action getTableSelectionAction_0() { return cTableSelectionAction_0; }
-
-		//multiSelection?="multiselection" | "singleselection"
-		public Alternatives getAlternatives_1() { return cAlternatives_1; }
-
-		//multiSelection?="multiselection"
-		public Assignment getMultiSelectionAssignment_1_0() { return cMultiSelectionAssignment_1_0; }
-
-		//"multiselection"
-		public Keyword getMultiSelectionMultiselectionKeyword_1_0_0() { return cMultiSelectionMultiselectionKeyword_1_0_0; }
-
-		//"singleselection"
-		public Keyword getSingleselectionKeyword_1_1() { return cSingleselectionKeyword_1_1; }
-
-		//selectalways?="selectalways"? & ("rowheader" headerMode=RowHeaderMode)?
-		public UnorderedGroup getUnorderedGroup_2() { return cUnorderedGroup_2; }
-
-		//selectalways?="selectalways"?
-		public Assignment getSelectalwaysAssignment_2_0() { return cSelectalwaysAssignment_2_0; }
-
-		//"selectalways"
-		public Keyword getSelectalwaysSelectalwaysKeyword_2_0_0() { return cSelectalwaysSelectalwaysKeyword_2_0_0; }
-
-		//("rowheader" headerMode=RowHeaderMode)?
-		public Group getGroup_2_1() { return cGroup_2_1; }
-
-		//"rowheader"
-		public Keyword getRowheaderKeyword_2_1_0() { return cRowheaderKeyword_2_1_0; }
-
-		//headerMode=RowHeaderMode
-		public Assignment getHeaderModeAssignment_2_1_1() { return cHeaderModeAssignment_2_1_1; }
-
-		//RowHeaderMode
-		public RuleCall getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0() { return cHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0; }
-
-		//(polling?="polling" pollingTime=Number)? & filtering?="filtering"? & embedded?="embedded"? & ("toolbar"
-		//toolbar=[action::ActionToolbar])?
+		
+		//'selection'
+		public Keyword getSelectionKeyword_1() { return cSelectionKeyword_1; }
+		
+		//multiSelection?='multiple' | 'single'
+		public Alternatives getAlternatives_2() { return cAlternatives_2; }
+		
+		//multiSelection?='multiple'
+		public Assignment getMultiSelectionAssignment_2_0() { return cMultiSelectionAssignment_2_0; }
+		
+		//'multiple'
+		public Keyword getMultiSelectionMultipleKeyword_2_0_0() { return cMultiSelectionMultipleKeyword_2_0_0; }
+		
+		//'single'
+		public Keyword getSingleKeyword_2_1() { return cSingleKeyword_2_1; }
+		
+		//selectalways?='alwaysSelected'? & ('rowHeader' headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? &
+		//filtering?='filtering'? & embedded?='embedded'? & ('toolbar' toolbar=[action::ActionToolbar])?
 		public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
-
-		//(polling?="polling" pollingTime=Number)?
-		public Group getGroup_3_0() { return cGroup_3_0; }
-
-		//polling?="polling"
-		public Assignment getPollingAssignment_3_0_0() { return cPollingAssignment_3_0_0; }
-
-		//"polling"
-		public Keyword getPollingPollingKeyword_3_0_0_0() { return cPollingPollingKeyword_3_0_0_0; }
-
+		
+		//selectalways?='alwaysSelected'?
+		public Assignment getSelectalwaysAssignment_3_0() { return cSelectalwaysAssignment_3_0; }
+		
+		//'alwaysSelected'
+		public Keyword getSelectalwaysAlwaysSelectedKeyword_3_0_0() { return cSelectalwaysAlwaysSelectedKeyword_3_0_0; }
+		
+		//('rowHeader' headerMode=RowHeaderMode)?
+		public Group getGroup_3_1() { return cGroup_3_1; }
+		
+		//'rowHeader'
+		public Keyword getRowHeaderKeyword_3_1_0() { return cRowHeaderKeyword_3_1_0; }
+		
+		//headerMode=RowHeaderMode
+		public Assignment getHeaderModeAssignment_3_1_1() { return cHeaderModeAssignment_3_1_1; }
+		
+		//RowHeaderMode
+		public RuleCall getHeaderModeRowHeaderModeEnumRuleCall_3_1_1_0() { return cHeaderModeRowHeaderModeEnumRuleCall_3_1_1_0; }
+		
+		//(polling?='polling' pollingTime=Number)?
+		public Group getGroup_3_2() { return cGroup_3_2; }
+		
+		//polling?='polling'
+		public Assignment getPollingAssignment_3_2_0() { return cPollingAssignment_3_2_0; }
+		
+		//'polling'
+		public Keyword getPollingPollingKeyword_3_2_0_0() { return cPollingPollingKeyword_3_2_0_0; }
+		
 		//pollingTime=Number
-		public Assignment getPollingTimeAssignment_3_0_1() { return cPollingTimeAssignment_3_0_1; }
-
+		public Assignment getPollingTimeAssignment_3_2_1() { return cPollingTimeAssignment_3_2_1; }
+		
 		//Number
-		public RuleCall getPollingTimeNumberParserRuleCall_3_0_1_0() { return cPollingTimeNumberParserRuleCall_3_0_1_0; }
-
-		//filtering?="filtering"?
-		public Assignment getFilteringAssignment_3_1() { return cFilteringAssignment_3_1; }
-
-		//"filtering"
-		public Keyword getFilteringFilteringKeyword_3_1_0() { return cFilteringFilteringKeyword_3_1_0; }
-
-		//embedded?="embedded"?
-		public Assignment getEmbeddedAssignment_3_2() { return cEmbeddedAssignment_3_2; }
-
-		//"embedded"
-		public Keyword getEmbeddedEmbeddedKeyword_3_2_0() { return cEmbeddedEmbeddedKeyword_3_2_0; }
-
-		//("toolbar" toolbar=[action::ActionToolbar])?
-		public Group getGroup_3_3() { return cGroup_3_3; }
-
-		//"toolbar"
-		public Keyword getToolbarKeyword_3_3_0() { return cToolbarKeyword_3_3_0; }
-
+		public RuleCall getPollingTimeNumberParserRuleCall_3_2_1_0() { return cPollingTimeNumberParserRuleCall_3_2_1_0; }
+		
+		//filtering?='filtering'?
+		public Assignment getFilteringAssignment_3_3() { return cFilteringAssignment_3_3; }
+		
+		//'filtering'
+		public Keyword getFilteringFilteringKeyword_3_3_0() { return cFilteringFilteringKeyword_3_3_0; }
+		
+		//embedded?='embedded'?
+		public Assignment getEmbeddedAssignment_3_4() { return cEmbeddedAssignment_3_4; }
+		
+		//'embedded'
+		public Keyword getEmbeddedEmbeddedKeyword_3_4_0() { return cEmbeddedEmbeddedKeyword_3_4_0; }
+		
+		//('toolbar' toolbar=[action::ActionToolbar])?
+		public Group getGroup_3_5() { return cGroup_3_5; }
+		
+		//'toolbar'
+		public Keyword getToolbarKeyword_3_5_0() { return cToolbarKeyword_3_5_0; }
+		
 		//toolbar=[action::ActionToolbar]
-		public Assignment getToolbarAssignment_3_3_1() { return cToolbarAssignment_3_3_1; }
-
+		public Assignment getToolbarAssignment_3_5_1() { return cToolbarAssignment_3_5_1; }
+		
 		//[action::ActionToolbar]
-		public CrossReference getToolbarActionToolbarCrossReference_3_3_1_0() { return cToolbarActionToolbarCrossReference_3_3_1_0; }
-
+		public CrossReference getToolbarActionToolbarCrossReference_3_5_1_0() { return cToolbarActionToolbarCrossReference_3_5_1_0; }
+		
 		//ID
-		public RuleCall getToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1() { return cToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1; }
-
-		//("using" source=TableDatamart)?
+		public RuleCall getToolbarActionToolbarIDTerminalRuleCall_3_5_1_0_1() { return cToolbarActionToolbarIDTerminalRuleCall_3_5_1_0_1; }
+		
+		//('using' source=TableDatamart)?
 		public Group getGroup_4() { return cGroup_4; }
-
-		//"using"
+		
+		//'using'
 		public Keyword getUsingKeyword_4_0() { return cUsingKeyword_4_0; }
-
+		
 		//source=TableDatamart
 		public Assignment getSourceAssignment_4_1() { return cSourceAssignment_4_1; }
-
+		
 		//TableDatamart
 		public RuleCall getSourceTableDatamartParserRuleCall_4_1_0() { return cSourceTableDatamartParserRuleCall_4_1_0; }
 	}
-
 	public class TableTableElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableTable");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableTable");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableTableAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cTableKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		private final UnorderedGroup cUnorderedGroup_2 = (UnorderedGroup)cGroup.eContents().get(2);
 		private final Assignment cSelectalwaysAssignment_2_0 = (Assignment)cUnorderedGroup_2.eContents().get(0);
-		private final Keyword cSelectalwaysSelectalwaysKeyword_2_0_0 = (Keyword)cSelectalwaysAssignment_2_0.eContents().get(0);
-		private final Group cGroup_2_1 = (Group)cUnorderedGroup_2.eContents().get(1);
-		private final Keyword cRowheaderKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
-		private final Assignment cHeaderModeAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
-		private final RuleCall cHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0 = (RuleCall)cHeaderModeAssignment_2_1_1.eContents().get(0);
-		private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
-		private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
-		private final Assignment cPollingAssignment_3_0_0 = (Assignment)cGroup_3_0.eContents().get(0);
-		private final Keyword cPollingPollingKeyword_3_0_0_0 = (Keyword)cPollingAssignment_3_0_0.eContents().get(0);
-		private final Assignment cPollingTimeAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
-		private final RuleCall cPollingTimeNumberParserRuleCall_3_0_1_0 = (RuleCall)cPollingTimeAssignment_3_0_1.eContents().get(0);
-		private final Assignment cFilteringAssignment_3_1 = (Assignment)cUnorderedGroup_3.eContents().get(1);
-		private final Keyword cFilteringFilteringKeyword_3_1_0 = (Keyword)cFilteringAssignment_3_1.eContents().get(0);
-		private final Assignment cEmbeddedAssignment_3_2 = (Assignment)cUnorderedGroup_3.eContents().get(2);
-		private final Keyword cEmbeddedEmbeddedKeyword_3_2_0 = (Keyword)cEmbeddedAssignment_3_2.eContents().get(0);
-		private final Group cGroup_3_3 = (Group)cUnorderedGroup_3.eContents().get(3);
-		private final Keyword cToolbarKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0);
-		private final Assignment cToolbarAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1);
-		private final CrossReference cToolbarActionToolbarCrossReference_3_3_1_0 = (CrossReference)cToolbarAssignment_3_3_1.eContents().get(0);
-		private final RuleCall cToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1 = (RuleCall)cToolbarActionToolbarCrossReference_3_3_1_0.eContents().get(1);
-		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
-		private final Keyword cUsingKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
-		private final Assignment cSourceAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
-		private final RuleCall cSourceTableDatamartParserRuleCall_4_1_0 = (RuleCall)cSourceAssignment_4_1.eContents().get(0);
+		private final Keyword cSelectalwaysAlwaysSelectedKeyword_2_0_0 = (Keyword)cSelectalwaysAssignment_2_0.eContents().get(0);
+		private final Assignment cSelectByIdAssignment_2_1 = (Assignment)cUnorderedGroup_2.eContents().get(1);
+		private final Keyword cSelectByIdSelectByIdKeyword_2_1_0 = (Keyword)cSelectByIdAssignment_2_1.eContents().get(0);
+		private final Group cGroup_2_2 = (Group)cUnorderedGroup_2.eContents().get(2);
+		private final Keyword cRowHeaderKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0);
+		private final Assignment cHeaderModeAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1);
+		private final RuleCall cHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0 = (RuleCall)cHeaderModeAssignment_2_2_1.eContents().get(0);
+		private final Group cGroup_2_3 = (Group)cUnorderedGroup_2.eContents().get(3);
+		private final Assignment cPollingAssignment_2_3_0 = (Assignment)cGroup_2_3.eContents().get(0);
+		private final Keyword cPollingPollingKeyword_2_3_0_0 = (Keyword)cPollingAssignment_2_3_0.eContents().get(0);
+		private final Assignment cPollingTimeAssignment_2_3_1 = (Assignment)cGroup_2_3.eContents().get(1);
+		private final RuleCall cPollingTimeNumberParserRuleCall_2_3_1_0 = (RuleCall)cPollingTimeAssignment_2_3_1.eContents().get(0);
+		private final Assignment cFilteringAssignment_2_4 = (Assignment)cUnorderedGroup_2.eContents().get(4);
+		private final Keyword cFilteringFilteringKeyword_2_4_0 = (Keyword)cFilteringAssignment_2_4.eContents().get(0);
+		private final Assignment cEmbeddedAssignment_2_5 = (Assignment)cUnorderedGroup_2.eContents().get(5);
+		private final Keyword cEmbeddedEmbeddedKeyword_2_5_0 = (Keyword)cEmbeddedAssignment_2_5.eContents().get(0);
+		private final Group cGroup_2_6 = (Group)cUnorderedGroup_2.eContents().get(6);
+		private final Keyword cToolbarKeyword_2_6_0 = (Keyword)cGroup_2_6.eContents().get(0);
+		private final Assignment cToolbarAssignment_2_6_1 = (Assignment)cGroup_2_6.eContents().get(1);
+		private final CrossReference cToolbarActionToolbarCrossReference_2_6_1_0 = (CrossReference)cToolbarAssignment_2_6_1.eContents().get(0);
+		private final RuleCall cToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1 = (RuleCall)cToolbarActionToolbarCrossReference_2_6_1_0.eContents().get(1);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cUsingKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cSourceAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cSourceTableDatamartParserRuleCall_3_1_0 = (RuleCall)cSourceAssignment_3_1.eContents().get(0);
 		
 		//TableTable:
-		//	{TableTable} "table" (selectalways?="selectalways"? & ("rowheader" headerMode=RowHeaderMode)?) ((polling?="polling"
-		//	pollingTime=Number)? & filtering?="filtering"? & embedded?="embedded"? & ("toolbar"
-		//	toolbar=[action::ActionToolbar])?) ("using" source=TableDatamart)?;
-		public ParserRule getRule() { return rule; }
-
-		//{TableTable} "table" (selectalways?="selectalways"? & ("rowheader" headerMode=RowHeaderMode)?) ((polling?="polling"
-		//pollingTime=Number)? & filtering?="filtering"? & embedded?="embedded"? & ("toolbar" toolbar=[action::ActionToolbar])?)
-		//("using" source=TableDatamart)?
+		//	{TableTable} 'table' (selectalways?='alwaysSelected'? & selectById?='selectById'? & ('rowHeader'
+		//	headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & filtering?='filtering'? &
+		//	embedded?='embedded'? & ('toolbar' toolbar=[action::ActionToolbar])?) ('using' source=TableDatamart)?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableTable} 'table' (selectalways?='alwaysSelected'? & selectById?='selectById'? & ('rowHeader'
+		//headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & filtering?='filtering'? & embedded?='embedded'?
+		//& ('toolbar' toolbar=[action::ActionToolbar])?) ('using' source=TableDatamart)?
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableTable}
 		public Action getTableTableAction_0() { return cTableTableAction_0; }
-
-		//"table"
+		
+		//'table'
 		public Keyword getTableKeyword_1() { return cTableKeyword_1; }
-
-		//selectalways?="selectalways"? & ("rowheader" headerMode=RowHeaderMode)?
-		public UnorderedGroup getUnorderedGroup_2() { return cUnorderedGroup_2; }
-
-		//selectalways?="selectalways"?
-		public Assignment getSelectalwaysAssignment_2_0() { return cSelectalwaysAssignment_2_0; }
-
-		//"selectalways"
-		public Keyword getSelectalwaysSelectalwaysKeyword_2_0_0() { return cSelectalwaysSelectalwaysKeyword_2_0_0; }
-
-		//("rowheader" headerMode=RowHeaderMode)?
-		public Group getGroup_2_1() { return cGroup_2_1; }
-
-		//"rowheader"
-		public Keyword getRowheaderKeyword_2_1_0() { return cRowheaderKeyword_2_1_0; }
-
-		//headerMode=RowHeaderMode
-		public Assignment getHeaderModeAssignment_2_1_1() { return cHeaderModeAssignment_2_1_1; }
-
-		//RowHeaderMode
-		public RuleCall getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0() { return cHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0; }
-
-		//(polling?="polling" pollingTime=Number)? & filtering?="filtering"? & embedded?="embedded"? & ("toolbar"
+		
+		//selectalways?='alwaysSelected'? & selectById?='selectById'? & ('rowHeader' headerMode=RowHeaderMode)? &
+		//(polling?='polling' pollingTime=Number)? & filtering?='filtering'? & embedded?='embedded'? & ('toolbar'
 		//toolbar=[action::ActionToolbar])?
-		public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
-
-		//(polling?="polling" pollingTime=Number)?
-		public Group getGroup_3_0() { return cGroup_3_0; }
-
-		//polling?="polling"
-		public Assignment getPollingAssignment_3_0_0() { return cPollingAssignment_3_0_0; }
-
-		//"polling"
-		public Keyword getPollingPollingKeyword_3_0_0_0() { return cPollingPollingKeyword_3_0_0_0; }
-
+		public UnorderedGroup getUnorderedGroup_2() { return cUnorderedGroup_2; }
+		
+		//selectalways?='alwaysSelected'?
+		public Assignment getSelectalwaysAssignment_2_0() { return cSelectalwaysAssignment_2_0; }
+		
+		//'alwaysSelected'
+		public Keyword getSelectalwaysAlwaysSelectedKeyword_2_0_0() { return cSelectalwaysAlwaysSelectedKeyword_2_0_0; }
+		
+		//selectById?='selectById'?
+		public Assignment getSelectByIdAssignment_2_1() { return cSelectByIdAssignment_2_1; }
+		
+		//'selectById'
+		public Keyword getSelectByIdSelectByIdKeyword_2_1_0() { return cSelectByIdSelectByIdKeyword_2_1_0; }
+		
+		//('rowHeader' headerMode=RowHeaderMode)?
+		public Group getGroup_2_2() { return cGroup_2_2; }
+		
+		//'rowHeader'
+		public Keyword getRowHeaderKeyword_2_2_0() { return cRowHeaderKeyword_2_2_0; }
+		
+		//headerMode=RowHeaderMode
+		public Assignment getHeaderModeAssignment_2_2_1() { return cHeaderModeAssignment_2_2_1; }
+		
+		//RowHeaderMode
+		public RuleCall getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0() { return cHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0; }
+		
+		//(polling?='polling' pollingTime=Number)?
+		public Group getGroup_2_3() { return cGroup_2_3; }
+		
+		//polling?='polling'
+		public Assignment getPollingAssignment_2_3_0() { return cPollingAssignment_2_3_0; }
+		
+		//'polling'
+		public Keyword getPollingPollingKeyword_2_3_0_0() { return cPollingPollingKeyword_2_3_0_0; }
+		
 		//pollingTime=Number
-		public Assignment getPollingTimeAssignment_3_0_1() { return cPollingTimeAssignment_3_0_1; }
-
+		public Assignment getPollingTimeAssignment_2_3_1() { return cPollingTimeAssignment_2_3_1; }
+		
 		//Number
-		public RuleCall getPollingTimeNumberParserRuleCall_3_0_1_0() { return cPollingTimeNumberParserRuleCall_3_0_1_0; }
-
-		//filtering?="filtering"?
-		public Assignment getFilteringAssignment_3_1() { return cFilteringAssignment_3_1; }
-
-		//"filtering"
-		public Keyword getFilteringFilteringKeyword_3_1_0() { return cFilteringFilteringKeyword_3_1_0; }
-
-		//embedded?="embedded"?
-		public Assignment getEmbeddedAssignment_3_2() { return cEmbeddedAssignment_3_2; }
-
-		//"embedded"
-		public Keyword getEmbeddedEmbeddedKeyword_3_2_0() { return cEmbeddedEmbeddedKeyword_3_2_0; }
-
-		//("toolbar" toolbar=[action::ActionToolbar])?
-		public Group getGroup_3_3() { return cGroup_3_3; }
-
-		//"toolbar"
-		public Keyword getToolbarKeyword_3_3_0() { return cToolbarKeyword_3_3_0; }
-
+		public RuleCall getPollingTimeNumberParserRuleCall_2_3_1_0() { return cPollingTimeNumberParserRuleCall_2_3_1_0; }
+		
+		//filtering?='filtering'?
+		public Assignment getFilteringAssignment_2_4() { return cFilteringAssignment_2_4; }
+		
+		//'filtering'
+		public Keyword getFilteringFilteringKeyword_2_4_0() { return cFilteringFilteringKeyword_2_4_0; }
+		
+		//embedded?='embedded'?
+		public Assignment getEmbeddedAssignment_2_5() { return cEmbeddedAssignment_2_5; }
+		
+		//'embedded'
+		public Keyword getEmbeddedEmbeddedKeyword_2_5_0() { return cEmbeddedEmbeddedKeyword_2_5_0; }
+		
+		//('toolbar' toolbar=[action::ActionToolbar])?
+		public Group getGroup_2_6() { return cGroup_2_6; }
+		
+		//'toolbar'
+		public Keyword getToolbarKeyword_2_6_0() { return cToolbarKeyword_2_6_0; }
+		
 		//toolbar=[action::ActionToolbar]
-		public Assignment getToolbarAssignment_3_3_1() { return cToolbarAssignment_3_3_1; }
-
+		public Assignment getToolbarAssignment_2_6_1() { return cToolbarAssignment_2_6_1; }
+		
 		//[action::ActionToolbar]
-		public CrossReference getToolbarActionToolbarCrossReference_3_3_1_0() { return cToolbarActionToolbarCrossReference_3_3_1_0; }
-
+		public CrossReference getToolbarActionToolbarCrossReference_2_6_1_0() { return cToolbarActionToolbarCrossReference_2_6_1_0; }
+		
 		//ID
-		public RuleCall getToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1() { return cToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1; }
-
-		//("using" source=TableDatamart)?
-		public Group getGroup_4() { return cGroup_4; }
-
-		//"using"
-		public Keyword getUsingKeyword_4_0() { return cUsingKeyword_4_0; }
-
+		public RuleCall getToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1() { return cToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1; }
+		
+		//('using' source=TableDatamart)?
+		public Group getGroup_3() { return cGroup_3; }
+		
+		//'using'
+		public Keyword getUsingKeyword_3_0() { return cUsingKeyword_3_0; }
+		
 		//source=TableDatamart
-		public Assignment getSourceAssignment_4_1() { return cSourceAssignment_4_1; }
-
+		public Assignment getSourceAssignment_3_1() { return cSourceAssignment_3_1; }
+		
 		//TableDatamart
-		public RuleCall getSourceTableDatamartParserRuleCall_4_1_0() { return cSourceTableDatamartParserRuleCall_4_1_0; }
+		public RuleCall getSourceTableDatamartParserRuleCall_3_1_0() { return cSourceTableDatamartParserRuleCall_3_1_0; }
 	}
-
+	public class TableBeanElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableBean");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cTableBeanAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cBeanKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final UnorderedGroup cUnorderedGroup_2 = (UnorderedGroup)cGroup.eContents().get(2);
+		private final Assignment cSelectalwaysAssignment_2_0 = (Assignment)cUnorderedGroup_2.eContents().get(0);
+		private final Keyword cSelectalwaysAlwaysSelectedKeyword_2_0_0 = (Keyword)cSelectalwaysAssignment_2_0.eContents().get(0);
+		private final Assignment cSelectByIdAssignment_2_1 = (Assignment)cUnorderedGroup_2.eContents().get(1);
+		private final Keyword cSelectByIdSelectByIdKeyword_2_1_0 = (Keyword)cSelectByIdAssignment_2_1.eContents().get(0);
+		private final Group cGroup_2_2 = (Group)cUnorderedGroup_2.eContents().get(2);
+		private final Keyword cRowHeaderKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0);
+		private final Assignment cHeaderModeAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1);
+		private final RuleCall cHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0 = (RuleCall)cHeaderModeAssignment_2_2_1.eContents().get(0);
+		private final Group cGroup_2_3 = (Group)cUnorderedGroup_2.eContents().get(3);
+		private final Assignment cPollingAssignment_2_3_0 = (Assignment)cGroup_2_3.eContents().get(0);
+		private final Keyword cPollingPollingKeyword_2_3_0_0 = (Keyword)cPollingAssignment_2_3_0.eContents().get(0);
+		private final Assignment cPollingTimeAssignment_2_3_1 = (Assignment)cGroup_2_3.eContents().get(1);
+		private final RuleCall cPollingTimeNumberParserRuleCall_2_3_1_0 = (RuleCall)cPollingTimeAssignment_2_3_1.eContents().get(0);
+		private final Assignment cFilteringAssignment_2_4 = (Assignment)cUnorderedGroup_2.eContents().get(4);
+		private final Keyword cFilteringFilteringKeyword_2_4_0 = (Keyword)cFilteringAssignment_2_4.eContents().get(0);
+		private final Assignment cEmbeddedAssignment_2_5 = (Assignment)cUnorderedGroup_2.eContents().get(5);
+		private final Keyword cEmbeddedEmbeddedKeyword_2_5_0 = (Keyword)cEmbeddedAssignment_2_5.eContents().get(0);
+		private final Group cGroup_2_6 = (Group)cUnorderedGroup_2.eContents().get(6);
+		private final Keyword cToolbarKeyword_2_6_0 = (Keyword)cGroup_2_6.eContents().get(0);
+		private final Assignment cToolbarAssignment_2_6_1 = (Assignment)cGroup_2_6.eContents().get(1);
+		private final CrossReference cToolbarActionToolbarCrossReference_2_6_1_0 = (CrossReference)cToolbarAssignment_2_6_1.eContents().get(0);
+		private final RuleCall cToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1 = (RuleCall)cToolbarActionToolbarCrossReference_2_6_1_0.eContents().get(1);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cUsingKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cSourceAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cSourceTableDatamartParserRuleCall_3_1_0 = (RuleCall)cSourceAssignment_3_1.eContents().get(0);
+		
+		//TableBean:
+		//	{TableBean} 'bean' (selectalways?='alwaysSelected'? & selectById?='selectById'? & ('rowHeader'
+		//	headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & filtering?='filtering'? &
+		//	embedded?='embedded'? & ('toolbar' toolbar=[action::ActionToolbar])?) ('using' source=TableDatamart)?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableBean} 'bean' (selectalways?='alwaysSelected'? & selectById?='selectById'? & ('rowHeader'
+		//headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & filtering?='filtering'? & embedded?='embedded'?
+		//& ('toolbar' toolbar=[action::ActionToolbar])?) ('using' source=TableDatamart)?
+		public Group getGroup() { return cGroup; }
+		
+		//{TableBean}
+		public Action getTableBeanAction_0() { return cTableBeanAction_0; }
+		
+		//'bean'
+		public Keyword getBeanKeyword_1() { return cBeanKeyword_1; }
+		
+		//selectalways?='alwaysSelected'? & selectById?='selectById'? & ('rowHeader' headerMode=RowHeaderMode)? &
+		//(polling?='polling' pollingTime=Number)? & filtering?='filtering'? & embedded?='embedded'? & ('toolbar'
+		//toolbar=[action::ActionToolbar])?
+		public UnorderedGroup getUnorderedGroup_2() { return cUnorderedGroup_2; }
+		
+		//selectalways?='alwaysSelected'?
+		public Assignment getSelectalwaysAssignment_2_0() { return cSelectalwaysAssignment_2_0; }
+		
+		//'alwaysSelected'
+		public Keyword getSelectalwaysAlwaysSelectedKeyword_2_0_0() { return cSelectalwaysAlwaysSelectedKeyword_2_0_0; }
+		
+		//selectById?='selectById'?
+		public Assignment getSelectByIdAssignment_2_1() { return cSelectByIdAssignment_2_1; }
+		
+		//'selectById'
+		public Keyword getSelectByIdSelectByIdKeyword_2_1_0() { return cSelectByIdSelectByIdKeyword_2_1_0; }
+		
+		//('rowHeader' headerMode=RowHeaderMode)?
+		public Group getGroup_2_2() { return cGroup_2_2; }
+		
+		//'rowHeader'
+		public Keyword getRowHeaderKeyword_2_2_0() { return cRowHeaderKeyword_2_2_0; }
+		
+		//headerMode=RowHeaderMode
+		public Assignment getHeaderModeAssignment_2_2_1() { return cHeaderModeAssignment_2_2_1; }
+		
+		//RowHeaderMode
+		public RuleCall getHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0() { return cHeaderModeRowHeaderModeEnumRuleCall_2_2_1_0; }
+		
+		//(polling?='polling' pollingTime=Number)?
+		public Group getGroup_2_3() { return cGroup_2_3; }
+		
+		//polling?='polling'
+		public Assignment getPollingAssignment_2_3_0() { return cPollingAssignment_2_3_0; }
+		
+		//'polling'
+		public Keyword getPollingPollingKeyword_2_3_0_0() { return cPollingPollingKeyword_2_3_0_0; }
+		
+		//pollingTime=Number
+		public Assignment getPollingTimeAssignment_2_3_1() { return cPollingTimeAssignment_2_3_1; }
+		
+		//Number
+		public RuleCall getPollingTimeNumberParserRuleCall_2_3_1_0() { return cPollingTimeNumberParserRuleCall_2_3_1_0; }
+		
+		//filtering?='filtering'?
+		public Assignment getFilteringAssignment_2_4() { return cFilteringAssignment_2_4; }
+		
+		//'filtering'
+		public Keyword getFilteringFilteringKeyword_2_4_0() { return cFilteringFilteringKeyword_2_4_0; }
+		
+		//embedded?='embedded'?
+		public Assignment getEmbeddedAssignment_2_5() { return cEmbeddedAssignment_2_5; }
+		
+		//'embedded'
+		public Keyword getEmbeddedEmbeddedKeyword_2_5_0() { return cEmbeddedEmbeddedKeyword_2_5_0; }
+		
+		//('toolbar' toolbar=[action::ActionToolbar])?
+		public Group getGroup_2_6() { return cGroup_2_6; }
+		
+		//'toolbar'
+		public Keyword getToolbarKeyword_2_6_0() { return cToolbarKeyword_2_6_0; }
+		
+		//toolbar=[action::ActionToolbar]
+		public Assignment getToolbarAssignment_2_6_1() { return cToolbarAssignment_2_6_1; }
+		
+		//[action::ActionToolbar]
+		public CrossReference getToolbarActionToolbarCrossReference_2_6_1_0() { return cToolbarActionToolbarCrossReference_2_6_1_0; }
+		
+		//ID
+		public RuleCall getToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1() { return cToolbarActionToolbarIDTerminalRuleCall_2_6_1_0_1; }
+		
+		//('using' source=TableDatamart)?
+		public Group getGroup_3() { return cGroup_3; }
+		
+		//'using'
+		public Keyword getUsingKeyword_3_0() { return cUsingKeyword_3_0; }
+		
+		//source=TableDatamart
+		public Assignment getSourceAssignment_3_1() { return cSourceAssignment_3_1; }
+		
+		//TableDatamart
+		public RuleCall getSourceTableDatamartParserRuleCall_3_1_0() { return cSourceTableDatamartParserRuleCall_3_1_0; }
+	}
 	public class TablePreorderElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TablePreorder");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TablePreorder");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTablePreorderAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cPreorderKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -469,33 +610,32 @@
 		private final Keyword cAscendingAscendingKeyword_3_0 = (Keyword)cAscendingAssignment_3.eContents().get(0);
 		
 		//TablePreorder:
-		//	{TablePreorder} "preorder" column=TableValueElement ascending?="ascending"?;
-		public ParserRule getRule() { return rule; }
-
-		//{TablePreorder} "preorder" column=TableValueElement ascending?="ascending"?
+		//	{TablePreorder} 'preorder' column=TableValueElement ascending?='ascending'?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TablePreorder} 'preorder' column=TableValueElement ascending?='ascending'?
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TablePreorder}
 		public Action getTablePreorderAction_0() { return cTablePreorderAction_0; }
-
-		//"preorder"
+		
+		//'preorder'
 		public Keyword getPreorderKeyword_1() { return cPreorderKeyword_1; }
-
+		
 		//column=TableValueElement
 		public Assignment getColumnAssignment_2() { return cColumnAssignment_2; }
-
+		
 		//TableValueElement
 		public RuleCall getColumnTableValueElementParserRuleCall_2_0() { return cColumnTableValueElementParserRuleCall_2_0; }
-
-		//ascending?="ascending"?
+		
+		//ascending?='ascending'?
 		public Assignment getAscendingAssignment_3() { return cAscendingAssignment_3; }
-
-		//"ascending"
+		
+		//'ascending'
 		public Keyword getAscendingAscendingKeyword_3_0() { return cAscendingAscendingKeyword_3_0; }
 	}
-
 	public class TableValueElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableValue");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableValue");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableValueAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cValueKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -536,134 +676,133 @@
 		private final Keyword cRightCurlyBracketKeyword_4_1_4 = (Keyword)cGroup_4_1.eContents().get(4);
 		
 		//TableValue:
-		//	{TableValue} "value" column=TableValueElement (collapsed?="collapse"? & ("icon" iconName=STRING)? &
-		//	formatter=TableFormatter? & (hasImage?="image" image=TableImage)? & tooltipPattern=TableTooltipPattern?)
-		//	(("intervals" hideLabelInterval?="hidelabel"? "{" intervals+=TableInterval* "}")? & ("lookups"
-		//	hideLabelLookup?="hidelabel"? "{" lookups+=TableLookup* "}")?);
-		public ParserRule getRule() { return rule; }
-
-		//{TableValue} "value" column=TableValueElement (collapsed?="collapse"? & ("icon" iconName=STRING)? &
-		//formatter=TableFormatter? & (hasImage?="image" image=TableImage)? & tooltipPattern=TableTooltipPattern?) (("intervals"
-		//hideLabelInterval?="hidelabel"? "{" intervals+=TableInterval* "}")? & ("lookups" hideLabelLookup?="hidelabel"? "{"
-		//lookups+=TableLookup* "}")?)
+		//	{TableValue} 'value' column=TableValueElement (collapsed?='collapse'? & ('icon' iconName=STRING)? &
+		//	formatter=TableFormatter? & (hasImage?='image' image=TableImage)? & tooltipPattern=TableTooltipPattern?) (('intervals'
+		//	hideLabelInterval?='hidelabel'? '{' intervals+=TableInterval* '}')? & ('lookups'
+		//	hideLabelLookup?='hidelabel'? '{' lookups+=TableLookup* '}')?);
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableValue} 'value' column=TableValueElement (collapsed?='collapse'? & ('icon' iconName=STRING)? &
+		//formatter=TableFormatter? & (hasImage?='image' image=TableImage)? & tooltipPattern=TableTooltipPattern?) (('intervals'
+		//hideLabelInterval?='hidelabel'? '{' intervals+=TableInterval* '}')? & ('lookups' hideLabelLookup?='hidelabel'? '{'
+		//lookups+=TableLookup* '}')?)
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableValue}
 		public Action getTableValueAction_0() { return cTableValueAction_0; }
-
-		//"value"
+		
+		//'value'
 		public Keyword getValueKeyword_1() { return cValueKeyword_1; }
-
+		
 		//column=TableValueElement
 		public Assignment getColumnAssignment_2() { return cColumnAssignment_2; }
-
+		
 		//TableValueElement
 		public RuleCall getColumnTableValueElementParserRuleCall_2_0() { return cColumnTableValueElementParserRuleCall_2_0; }
-
-		//collapsed?="collapse"? & ("icon" iconName=STRING)? & formatter=TableFormatter? & (hasImage?="image" image=TableImage)? &
+		
+		//collapsed?='collapse'? & ('icon' iconName=STRING)? & formatter=TableFormatter? & (hasImage?='image' image=TableImage)? &
 		//tooltipPattern=TableTooltipPattern?
 		public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
-
-		//collapsed?="collapse"?
+		
+		//collapsed?='collapse'?
 		public Assignment getCollapsedAssignment_3_0() { return cCollapsedAssignment_3_0; }
-
-		//"collapse"
+		
+		//'collapse'
 		public Keyword getCollapsedCollapseKeyword_3_0_0() { return cCollapsedCollapseKeyword_3_0_0; }
-
-		//("icon" iconName=STRING)?
+		
+		//('icon' iconName=STRING)?
 		public Group getGroup_3_1() { return cGroup_3_1; }
-
-		//"icon"
+		
+		//'icon'
 		public Keyword getIconKeyword_3_1_0() { return cIconKeyword_3_1_0; }
-
+		
 		//iconName=STRING
 		public Assignment getIconNameAssignment_3_1_1() { return cIconNameAssignment_3_1_1; }
-
+		
 		//STRING
 		public RuleCall getIconNameSTRINGTerminalRuleCall_3_1_1_0() { return cIconNameSTRINGTerminalRuleCall_3_1_1_0; }
-
+		
 		//formatter=TableFormatter?
 		public Assignment getFormatterAssignment_3_2() { return cFormatterAssignment_3_2; }
-
+		
 		//TableFormatter
 		public RuleCall getFormatterTableFormatterParserRuleCall_3_2_0() { return cFormatterTableFormatterParserRuleCall_3_2_0; }
-
-		//(hasImage?="image" image=TableImage)?
+		
+		//(hasImage?='image' image=TableImage)?
 		public Group getGroup_3_3() { return cGroup_3_3; }
-
-		//hasImage?="image"
+		
+		//hasImage?='image'
 		public Assignment getHasImageAssignment_3_3_0() { return cHasImageAssignment_3_3_0; }
-
-		//"image"
+		
+		//'image'
 		public Keyword getHasImageImageKeyword_3_3_0_0() { return cHasImageImageKeyword_3_3_0_0; }
-
+		
 		//image=TableImage
 		public Assignment getImageAssignment_3_3_1() { return cImageAssignment_3_3_1; }
-
+		
 		//TableImage
 		public RuleCall getImageTableImageParserRuleCall_3_3_1_0() { return cImageTableImageParserRuleCall_3_3_1_0; }
-
+		
 		//tooltipPattern=TableTooltipPattern?
 		public Assignment getTooltipPatternAssignment_3_4() { return cTooltipPatternAssignment_3_4; }
-
+		
 		//TableTooltipPattern
 		public RuleCall getTooltipPatternTableTooltipPatternParserRuleCall_3_4_0() { return cTooltipPatternTableTooltipPatternParserRuleCall_3_4_0; }
-
-		//("intervals" hideLabelInterval?="hidelabel"? "{" intervals+=TableInterval* "}")? & ("lookups"
-		//hideLabelLookup?="hidelabel"? "{" lookups+=TableLookup* "}")?
+		
+		//('intervals' hideLabelInterval?='hidelabel'? '{' intervals+=TableInterval* '}')? & ('lookups'
+		//hideLabelLookup?='hidelabel'? '{' lookups+=TableLookup* '}')?
 		public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
-
-		//("intervals" hideLabelInterval?="hidelabel"? "{" intervals+=TableInterval* "}")?
+		
+		//('intervals' hideLabelInterval?='hidelabel'? '{' intervals+=TableInterval* '}')?
 		public Group getGroup_4_0() { return cGroup_4_0; }
-
-		//"intervals"
+		
+		//'intervals'
 		public Keyword getIntervalsKeyword_4_0_0() { return cIntervalsKeyword_4_0_0; }
-
-		//hideLabelInterval?="hidelabel"?
+		
+		//hideLabelInterval?='hidelabel'?
 		public Assignment getHideLabelIntervalAssignment_4_0_1() { return cHideLabelIntervalAssignment_4_0_1; }
-
-		//"hidelabel"
+		
+		//'hidelabel'
 		public Keyword getHideLabelIntervalHidelabelKeyword_4_0_1_0() { return cHideLabelIntervalHidelabelKeyword_4_0_1_0; }
-
-		//"{"
+		
+		//'{'
 		public Keyword getLeftCurlyBracketKeyword_4_0_2() { return cLeftCurlyBracketKeyword_4_0_2; }
-
+		
 		//intervals+=TableInterval*
 		public Assignment getIntervalsAssignment_4_0_3() { return cIntervalsAssignment_4_0_3; }
-
+		
 		//TableInterval
 		public RuleCall getIntervalsTableIntervalParserRuleCall_4_0_3_0() { return cIntervalsTableIntervalParserRuleCall_4_0_3_0; }
-
-		//"}"
+		
+		//'}'
 		public Keyword getRightCurlyBracketKeyword_4_0_4() { return cRightCurlyBracketKeyword_4_0_4; }
-
-		//("lookups" hideLabelLookup?="hidelabel"? "{" lookups+=TableLookup* "}")?
+		
+		//('lookups' hideLabelLookup?='hidelabel'? '{' lookups+=TableLookup* '}')?
 		public Group getGroup_4_1() { return cGroup_4_1; }
-
-		//"lookups"
+		
+		//'lookups'
 		public Keyword getLookupsKeyword_4_1_0() { return cLookupsKeyword_4_1_0; }
-
-		//hideLabelLookup?="hidelabel"?
+		
+		//hideLabelLookup?='hidelabel'?
 		public Assignment getHideLabelLookupAssignment_4_1_1() { return cHideLabelLookupAssignment_4_1_1; }
-
-		//"hidelabel"
+		
+		//'hidelabel'
 		public Keyword getHideLabelLookupHidelabelKeyword_4_1_1_0() { return cHideLabelLookupHidelabelKeyword_4_1_1_0; }
-
-		//"{"
+		
+		//'{'
 		public Keyword getLeftCurlyBracketKeyword_4_1_2() { return cLeftCurlyBracketKeyword_4_1_2; }
-
+		
 		//lookups+=TableLookup*
 		public Assignment getLookupsAssignment_4_1_3() { return cLookupsAssignment_4_1_3; }
-
+		
 		//TableLookup
 		public RuleCall getLookupsTableLookupParserRuleCall_4_1_3_0() { return cLookupsTableLookupParserRuleCall_4_1_3_0; }
-
-		//"}"
+		
+		//'}'
 		public Keyword getRightCurlyBracketKeyword_4_1_4() { return cRightCurlyBracketKeyword_4_1_4; }
 	}
-
 	public class TableFormatterElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableFormatter");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableFormatter");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableFormatterAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cFormatterKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -671,27 +810,26 @@
 		private final RuleCall cFormatSTRINGTerminalRuleCall_2_0 = (RuleCall)cFormatAssignment_2.eContents().get(0);
 		
 		//TableFormatter:
-		//	{TableFormatter} "formatter" format=STRING;
-		public ParserRule getRule() { return rule; }
-
-		//{TableFormatter} "formatter" format=STRING
+		//	{TableFormatter} 'formatter' format=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableFormatter} 'formatter' format=STRING
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableFormatter}
 		public Action getTableFormatterAction_0() { return cTableFormatterAction_0; }
-
-		//"formatter"
+		
+		//'formatter'
 		public Keyword getFormatterKeyword_1() { return cFormatterKeyword_1; }
-
+		
 		//format=STRING
 		public Assignment getFormatAssignment_2() { return cFormatAssignment_2; }
-
+		
 		//STRING
 		public RuleCall getFormatSTRINGTerminalRuleCall_2_0() { return cFormatSTRINGTerminalRuleCall_2_0; }
 	}
-
 	public class TableImageElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableImage");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableImage");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableImageAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cPathKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -709,59 +847,58 @@
 		private final RuleCall cResizeStringSTRINGTerminalRuleCall_3_2_1_0 = (RuleCall)cResizeStringAssignment_3_2_1.eContents().get(0);
 		
 		//TableImage:
-		//	{TableImage} "path" imagePathPattern=STRING (hasParameter?="dynamic"? & hideImageLabel?="hidelabel"? &
-		//	(resize?="resize" resizeString=STRING)?);
-		public ParserRule getRule() { return rule; }
-
-		//{TableImage} "path" imagePathPattern=STRING (hasParameter?="dynamic"? & hideImageLabel?="hidelabel"? & (resize?="resize"
+		//	{TableImage} 'path' imagePathPattern=STRING (hasParameter?='dynamic'? & hideImageLabel?='hidelabel'? &
+		//	(resize?='resize' resizeString=STRING)?);
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableImage} 'path' imagePathPattern=STRING (hasParameter?='dynamic'? & hideImageLabel?='hidelabel'? & (resize?='resize'
 		//resizeString=STRING)?)
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableImage}
 		public Action getTableImageAction_0() { return cTableImageAction_0; }
-
-		//"path"
+		
+		//'path'
 		public Keyword getPathKeyword_1() { return cPathKeyword_1; }
-
+		
 		//imagePathPattern=STRING
 		public Assignment getImagePathPatternAssignment_2() { return cImagePathPatternAssignment_2; }
-
+		
 		//STRING
 		public RuleCall getImagePathPatternSTRINGTerminalRuleCall_2_0() { return cImagePathPatternSTRINGTerminalRuleCall_2_0; }
-
-		//hasParameter?="dynamic"? & hideImageLabel?="hidelabel"? & (resize?="resize" resizeString=STRING)?
+		
+		//hasParameter?='dynamic'? & hideImageLabel?='hidelabel'? & (resize?='resize' resizeString=STRING)?
 		public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
-
-		//hasParameter?="dynamic"?
+		
+		//hasParameter?='dynamic'?
 		public Assignment getHasParameterAssignment_3_0() { return cHasParameterAssignment_3_0; }
-
-		//"dynamic"
+		
+		//'dynamic'
 		public Keyword getHasParameterDynamicKeyword_3_0_0() { return cHasParameterDynamicKeyword_3_0_0; }
-
-		//hideImageLabel?="hidelabel"?
+		
+		//hideImageLabel?='hidelabel'?
 		public Assignment getHideImageLabelAssignment_3_1() { return cHideImageLabelAssignment_3_1; }
-
-		//"hidelabel"
+		
+		//'hidelabel'
 		public Keyword getHideImageLabelHidelabelKeyword_3_1_0() { return cHideImageLabelHidelabelKeyword_3_1_0; }
-
-		//(resize?="resize" resizeString=STRING)?
+		
+		//(resize?='resize' resizeString=STRING)?
 		public Group getGroup_3_2() { return cGroup_3_2; }
-
-		//resize?="resize"
+		
+		//resize?='resize'
 		public Assignment getResizeAssignment_3_2_0() { return cResizeAssignment_3_2_0; }
-
-		//"resize"
+		
+		//'resize'
 		public Keyword getResizeResizeKeyword_3_2_0_0() { return cResizeResizeKeyword_3_2_0_0; }
-
+		
 		//resizeString=STRING
 		public Assignment getResizeStringAssignment_3_2_1() { return cResizeStringAssignment_3_2_1; }
-
+		
 		//STRING
 		public RuleCall getResizeStringSTRINGTerminalRuleCall_3_2_1_0() { return cResizeStringSTRINGTerminalRuleCall_3_2_1_0; }
 	}
-
 	public class TableTooltipPatternElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableTooltipPattern");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableTooltipPattern");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableTooltipPatternAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cTooltipPatternKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -769,32 +906,31 @@
 		private final RuleCall cTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0 = (RuleCall)cTooltipPatternAssignment_2.eContents().get(0);
 		
 		//TableTooltipPattern:
-		//	{TableTooltipPattern} "tooltipPattern" tooltipPattern=TRANSLATABLESTRING;
-		public ParserRule getRule() { return rule; }
-
-		//{TableTooltipPattern} "tooltipPattern" tooltipPattern=TRANSLATABLESTRING
+		//	{TableTooltipPattern} 'tooltipPattern' tooltipPattern=TRANSLATABLESTRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableTooltipPattern} 'tooltipPattern' tooltipPattern=TRANSLATABLESTRING
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableTooltipPattern}
 		public Action getTableTooltipPatternAction_0() { return cTableTooltipPatternAction_0; }
-
-		//"tooltipPattern"
+		
+		//'tooltipPattern'
 		public Keyword getTooltipPatternKeyword_1() { return cTooltipPatternKeyword_1; }
-
+		
 		//tooltipPattern=TRANSLATABLESTRING
 		public Assignment getTooltipPatternAssignment_2() { return cTooltipPatternAssignment_2; }
-
+		
 		//TRANSLATABLESTRING
 		public RuleCall getTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0() { return cTooltipPatternTRANSLATABLESTRINGParserRuleCall_2_0; }
 	}
-
 	public class TableValueElementElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableValueElement");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableValueElement");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final RuleCall cTableMeasureParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cTableDerivedParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		private final RuleCall cTableHierarchyParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
-		private final RuleCall cTablePropertyParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		private final RuleCall cTableAttributeParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
 		private final RuleCall cTableAggregationParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
 		private final RuleCall cTableOrdinalParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
 		private final RuleCall cTableColumnParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
@@ -802,108 +938,104 @@
 		private final RuleCall cTableAllColumnsParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
 		
 		//TableValueElement:
-		//	TableMeasure | TableDerived | TableHierarchy | TableProperty | TableAggregation | TableOrdinal | TableColumn |
+		//	TableMeasure | TableDerived | TableHierarchy | TableAttribute | TableAggregation | TableOrdinal | TableColumn |
 		//	TableTask | TableAllColumns;
-		public ParserRule getRule() { return rule; }
-
-		//TableMeasure | TableDerived | TableHierarchy | TableProperty | TableAggregation | TableOrdinal | TableColumn | TableTask
-		//| TableAllColumns
+		@Override public ParserRule getRule() { return rule; }
+		
+		//TableMeasure | TableDerived | TableHierarchy | TableAttribute | TableAggregation | TableOrdinal | TableColumn |
+		//TableTask | TableAllColumns
 		public Alternatives getAlternatives() { return cAlternatives; }
-
+		
 		//TableMeasure
 		public RuleCall getTableMeasureParserRuleCall_0() { return cTableMeasureParserRuleCall_0; }
-
+		
 		//TableDerived
 		public RuleCall getTableDerivedParserRuleCall_1() { return cTableDerivedParserRuleCall_1; }
-
+		
 		//TableHierarchy
 		public RuleCall getTableHierarchyParserRuleCall_2() { return cTableHierarchyParserRuleCall_2; }
-
-		//TableProperty
-		public RuleCall getTablePropertyParserRuleCall_3() { return cTablePropertyParserRuleCall_3; }
-
+		
+		//TableAttribute
+		public RuleCall getTableAttributeParserRuleCall_3() { return cTableAttributeParserRuleCall_3; }
+		
 		//TableAggregation
 		public RuleCall getTableAggregationParserRuleCall_4() { return cTableAggregationParserRuleCall_4; }
-
+		
 		//TableOrdinal
 		public RuleCall getTableOrdinalParserRuleCall_5() { return cTableOrdinalParserRuleCall_5; }
-
+		
 		//TableColumn
 		public RuleCall getTableColumnParserRuleCall_6() { return cTableColumnParserRuleCall_6; }
-
+		
 		//TableTask
 		public RuleCall getTableTaskParserRuleCall_7() { return cTableTaskParserRuleCall_7; }
-
+		
 		//TableAllColumns
 		public RuleCall getTableAllColumnsParserRuleCall_8() { return cTableAllColumnsParserRuleCall_8; }
 	}
-
 	public class TableTaskElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableTask");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableTask");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableTaskAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cTaskIdKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		
 		//TableTask:
-		//	{TableTask} "taskId";
-		public ParserRule getRule() { return rule; }
-
-		//{TableTask} "taskId"
+		//	{TableTask} 'taskId';
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableTask} 'taskId'
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableTask}
 		public Action getTableTaskAction_0() { return cTableTaskAction_0; }
-
-		//"taskId"
+		
+		//'taskId'
 		public Keyword getTaskIdKeyword_1() { return cTaskIdKeyword_1; }
 	}
-
 	public class TableAllColumnsElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableAllColumns");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableAllColumns");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableAllColumnsAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cAllColumnsKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		
 		//TableAllColumns:
-		//	{TableAllColumns} "allColumns";
-		public ParserRule getRule() { return rule; }
-
-		//{TableAllColumns} "allColumns"
+		//	{TableAllColumns} 'allColumns';
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableAllColumns} 'allColumns'
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableAllColumns}
 		public Action getTableAllColumnsAction_0() { return cTableAllColumnsAction_0; }
-
-		//"allColumns"
+		
+		//'allColumns'
 		public Keyword getAllColumnsKeyword_1() { return cAllColumnsKeyword_1; }
 	}
-
 	public class TableOrdinalElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableOrdinal");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableOrdinal");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cOrdinalKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cValueRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final RuleCall cValueRefNumberParserRuleCall_1_0 = (RuleCall)cValueRefAssignment_1.eContents().get(0);
 		
 		//TableOrdinal:
-		//	"ordinal" valueRef=Number;
-		public ParserRule getRule() { return rule; }
-
-		//"ordinal" valueRef=Number
+		//	'ordinal' valueRef=Number;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'ordinal' valueRef=Number
 		public Group getGroup() { return cGroup; }
-
-		//"ordinal"
+		
+		//'ordinal'
 		public Keyword getOrdinalKeyword_0() { return cOrdinalKeyword_0; }
-
+		
 		//valueRef=Number
 		public Assignment getValueRefAssignment_1() { return cValueRefAssignment_1; }
-
+		
 		//Number
 		public RuleCall getValueRefNumberParserRuleCall_1_0() { return cValueRefNumberParserRuleCall_1_0; }
 	}
-
 	public class TableColumnElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableColumn");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableColumn");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cColumnKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cValueRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -911,27 +1043,26 @@
 		private final RuleCall cValueRefDatamartColumnIDTerminalRuleCall_1_0_1 = (RuleCall)cValueRefDatamartColumnCrossReference_1_0.eContents().get(1);
 		
 		//TableColumn:
-		//	"column" valueRef=[datamart::DatamartColumn];
-		public ParserRule getRule() { return rule; }
-
-		//"column" valueRef=[datamart::DatamartColumn]
+		//	'column' valueRef=[datamart::DatamartColumn];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'column' valueRef=[datamart::DatamartColumn]
 		public Group getGroup() { return cGroup; }
-
-		//"column"
+		
+		//'column'
 		public Keyword getColumnKeyword_0() { return cColumnKeyword_0; }
-
+		
 		//valueRef=[datamart::DatamartColumn]
 		public Assignment getValueRefAssignment_1() { return cValueRefAssignment_1; }
-
+		
 		//[datamart::DatamartColumn]
 		public CrossReference getValueRefDatamartColumnCrossReference_1_0() { return cValueRefDatamartColumnCrossReference_1_0; }
-
+		
 		//ID
 		public RuleCall getValueRefDatamartColumnIDTerminalRuleCall_1_0_1() { return cValueRefDatamartColumnIDTerminalRuleCall_1_0_1; }
 	}
-
 	public class TableMeasureElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableMeasure");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableMeasure");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cMeasureKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cValueRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -939,27 +1070,26 @@
 		private final RuleCall cValueRefDatamartMeasureIDTerminalRuleCall_1_0_1 = (RuleCall)cValueRefDatamartMeasureCrossReference_1_0.eContents().get(1);
 		
 		//TableMeasure:
-		//	"measure" valueRef=[datamart::DatamartMeasure];
-		public ParserRule getRule() { return rule; }
-
-		//"measure" valueRef=[datamart::DatamartMeasure]
+		//	'measure' valueRef=[datamart::DatamartMeasure];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'measure' valueRef=[datamart::DatamartMeasure]
 		public Group getGroup() { return cGroup; }
-
-		//"measure"
+		
+		//'measure'
 		public Keyword getMeasureKeyword_0() { return cMeasureKeyword_0; }
-
+		
 		//valueRef=[datamart::DatamartMeasure]
 		public Assignment getValueRefAssignment_1() { return cValueRefAssignment_1; }
-
+		
 		//[datamart::DatamartMeasure]
 		public CrossReference getValueRefDatamartMeasureCrossReference_1_0() { return cValueRefDatamartMeasureCrossReference_1_0; }
-
+		
 		//ID
 		public RuleCall getValueRefDatamartMeasureIDTerminalRuleCall_1_0_1() { return cValueRefDatamartMeasureIDTerminalRuleCall_1_0_1; }
 	}
-
 	public class TableDerivedElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableDerived");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableDerived");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cDerivedKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cValueRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -967,27 +1097,26 @@
 		private final RuleCall cValueRefDatamartDerivedMeasureIDTerminalRuleCall_1_0_1 = (RuleCall)cValueRefDatamartDerivedMeasureCrossReference_1_0.eContents().get(1);
 		
 		//TableDerived:
-		//	"derived" valueRef=[datamart::DatamartDerivedMeasure];
-		public ParserRule getRule() { return rule; }
-
-		//"derived" valueRef=[datamart::DatamartDerivedMeasure]
+		//	'derived' valueRef=[datamart::DatamartDerivedMeasure];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'derived' valueRef=[datamart::DatamartDerivedMeasure]
 		public Group getGroup() { return cGroup; }
-
-		//"derived"
+		
+		//'derived'
 		public Keyword getDerivedKeyword_0() { return cDerivedKeyword_0; }
-
+		
 		//valueRef=[datamart::DatamartDerivedMeasure]
 		public Assignment getValueRefAssignment_1() { return cValueRefAssignment_1; }
-
+		
 		//[datamart::DatamartDerivedMeasure]
 		public CrossReference getValueRefDatamartDerivedMeasureCrossReference_1_0() { return cValueRefDatamartDerivedMeasureCrossReference_1_0; }
-
+		
 		//ID
 		public RuleCall getValueRefDatamartDerivedMeasureIDTerminalRuleCall_1_0_1() { return cValueRefDatamartDerivedMeasureIDTerminalRuleCall_1_0_1; }
 	}
-
 	public class TableHierarchyElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableHierarchy");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableHierarchy");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cLevelKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cValueRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -995,59 +1124,57 @@
 		private final RuleCall cValueRefCubeLevelIDTerminalRuleCall_1_0_1 = (RuleCall)cValueRefCubeLevelCrossReference_1_0.eContents().get(1);
 		
 		//TableHierarchy:
-		//	"level" valueRef=[cube::CubeLevel];
-		public ParserRule getRule() { return rule; }
-
-		//"level" valueRef=[cube::CubeLevel]
+		//	'level' valueRef=[cube::CubeLevel];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'level' valueRef=[cube::CubeLevel]
 		public Group getGroup() { return cGroup; }
-
-		//"level"
+		
+		//'level'
 		public Keyword getLevelKeyword_0() { return cLevelKeyword_0; }
-
+		
 		//valueRef=[cube::CubeLevel]
 		public Assignment getValueRefAssignment_1() { return cValueRefAssignment_1; }
-
+		
 		//[cube::CubeLevel]
 		public CrossReference getValueRefCubeLevelCrossReference_1_0() { return cValueRefCubeLevelCrossReference_1_0; }
-
+		
 		//ID
 		public RuleCall getValueRefCubeLevelIDTerminalRuleCall_1_0_1() { return cValueRefCubeLevelIDTerminalRuleCall_1_0_1; }
 	}
-
-	public class TablePropertyElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableProperty");
+	public class TableAttributeElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableAttribute");
 		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Action cTablePropertyAction_0 = (Action)cGroup.eContents().get(0);
+		private final Action cTableAttributeAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cPropertyKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		private final Assignment cValueRefAssignment_2 = (Assignment)cGroup.eContents().get(2);
-		private final CrossReference cValueRefDatamartPropertyCrossReference_2_0 = (CrossReference)cValueRefAssignment_2.eContents().get(0);
-		private final RuleCall cValueRefDatamartPropertyIDTerminalRuleCall_2_0_1 = (RuleCall)cValueRefDatamartPropertyCrossReference_2_0.eContents().get(1);
+		private final CrossReference cValueRefDatamartAttributeCrossReference_2_0 = (CrossReference)cValueRefAssignment_2.eContents().get(0);
+		private final RuleCall cValueRefDatamartAttributeIDTerminalRuleCall_2_0_1 = (RuleCall)cValueRefDatamartAttributeCrossReference_2_0.eContents().get(1);
 		
-		//TableProperty:
-		//	{TableProperty} "property" valueRef=[datamart::DatamartProperty];
-		public ParserRule getRule() { return rule; }
-
-		//{TableProperty} "property" valueRef=[datamart::DatamartProperty]
+		//TableAttribute:
+		//	{TableAttribute} 'property' valueRef=[datamart::DatamartAttribute];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableAttribute} 'property' valueRef=[datamart::DatamartAttribute]
 		public Group getGroup() { return cGroup; }
-
-		//{TableProperty}
-		public Action getTablePropertyAction_0() { return cTablePropertyAction_0; }
-
-		//"property"
+		
+		//{TableAttribute}
+		public Action getTableAttributeAction_0() { return cTableAttributeAction_0; }
+		
+		//'property'
 		public Keyword getPropertyKeyword_1() { return cPropertyKeyword_1; }
-
-		//valueRef=[datamart::DatamartProperty]
+		
+		//valueRef=[datamart::DatamartAttribute]
 		public Assignment getValueRefAssignment_2() { return cValueRefAssignment_2; }
-
-		//[datamart::DatamartProperty]
-		public CrossReference getValueRefDatamartPropertyCrossReference_2_0() { return cValueRefDatamartPropertyCrossReference_2_0; }
-
+		
+		//[datamart::DatamartAttribute]
+		public CrossReference getValueRefDatamartAttributeCrossReference_2_0() { return cValueRefDatamartAttributeCrossReference_2_0; }
+		
 		//ID
-		public RuleCall getValueRefDatamartPropertyIDTerminalRuleCall_2_0_1() { return cValueRefDatamartPropertyIDTerminalRuleCall_2_0_1; }
+		public RuleCall getValueRefDatamartAttributeIDTerminalRuleCall_2_0_1() { return cValueRefDatamartAttributeIDTerminalRuleCall_2_0_1; }
 	}
-
 	public class TableAggregationElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableAggregation");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableAggregation");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cAggregationKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cValueRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -1055,143 +1182,216 @@
 		private final RuleCall cValueRefDatamartSetAggregationFunctionIDTerminalRuleCall_1_0_1 = (RuleCall)cValueRefDatamartSetAggregationFunctionCrossReference_1_0.eContents().get(1);
 		
 		//TableAggregation:
-		//	"aggregation" valueRef=[datamart::DatamartSetAggregationFunction];
-		public ParserRule getRule() { return rule; }
-
-		//"aggregation" valueRef=[datamart::DatamartSetAggregationFunction]
+		//	'aggregation' valueRef=[datamart::DatamartSetAggregationFunction];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'aggregation' valueRef=[datamart::DatamartSetAggregationFunction]
 		public Group getGroup() { return cGroup; }
-
-		//"aggregation"
+		
+		//'aggregation'
 		public Keyword getAggregationKeyword_0() { return cAggregationKeyword_0; }
-
+		
 		//valueRef=[datamart::DatamartSetAggregationFunction]
 		public Assignment getValueRefAssignment_1() { return cValueRefAssignment_1; }
-
+		
 		//[datamart::DatamartSetAggregationFunction]
 		public CrossReference getValueRefDatamartSetAggregationFunctionCrossReference_1_0() { return cValueRefDatamartSetAggregationFunctionCrossReference_1_0; }
-
+		
 		//ID
 		public RuleCall getValueRefDatamartSetAggregationFunctionIDTerminalRuleCall_1_0_1() { return cValueRefDatamartSetAggregationFunctionIDTerminalRuleCall_1_0_1; }
 	}
-
 	public class TableIntervalElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableInterval");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableInterval");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final RuleCall cTableNumberIntervalParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
-		private final RuleCall cTableDateDayIntervalParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cTableIntIntervalParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cTableDateDayIntervalParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
 		
 		//TableInterval:
-		//	TableNumberInterval | TableDateDayInterval;
-		public ParserRule getRule() { return rule; }
-
-		//TableNumberInterval | TableDateDayInterval
+		//	TableNumberInterval | TableIntInterval | TableDateDayInterval;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//TableNumberInterval | TableIntInterval | TableDateDayInterval
 		public Alternatives getAlternatives() { return cAlternatives; }
-
+		
 		//TableNumberInterval
 		public RuleCall getTableNumberIntervalParserRuleCall_0() { return cTableNumberIntervalParserRuleCall_0; }
-
+		
+		//TableIntInterval
+		public RuleCall getTableIntIntervalParserRuleCall_1() { return cTableIntIntervalParserRuleCall_1; }
+		
 		//TableDateDayInterval
-		public RuleCall getTableDateDayIntervalParserRuleCall_1() { return cTableDateDayIntervalParserRuleCall_1; }
+		public RuleCall getTableDateDayIntervalParserRuleCall_2() { return cTableDateDayIntervalParserRuleCall_2; }
 	}
-
 	public class TableNumberIntervalElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableNumberInterval");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableNumberInterval");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableNumberIntervalAction_0 = (Action)cGroup.eContents().get(0);
-		private final Keyword cUpToKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cUpToNumberKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		private final Assignment cNumberIntervalValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
 		private final RuleCall cNumberIntervalValueSignedNumberParserRuleCall_2_0 = (RuleCall)cNumberIntervalValueAssignment_2.eContents().get(0);
 		private final Assignment cNumberRangeAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cNumberRangeTableRangeElementParserRuleCall_3_0 = (RuleCall)cNumberRangeAssignment_3.eContents().get(0);
 		
 		//TableNumberInterval:
-		//	{TableNumberInterval} "up to" numberIntervalValue=SignedNumber numberRange=TableRangeElement;
-		public ParserRule getRule() { return rule; }
-
-		//{TableNumberInterval} "up to" numberIntervalValue=SignedNumber numberRange=TableRangeElement
+		//	{TableNumberInterval} 'upToNumber' numberIntervalValue=SignedNumber numberRange=TableRangeElement;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableNumberInterval} 'upToNumber' numberIntervalValue=SignedNumber numberRange=TableRangeElement
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableNumberInterval}
 		public Action getTableNumberIntervalAction_0() { return cTableNumberIntervalAction_0; }
-
-		//"up to"
-		public Keyword getUpToKeyword_1() { return cUpToKeyword_1; }
-
+		
+		//'upToNumber'
+		public Keyword getUpToNumberKeyword_1() { return cUpToNumberKeyword_1; }
+		
 		//numberIntervalValue=SignedNumber
 		public Assignment getNumberIntervalValueAssignment_2() { return cNumberIntervalValueAssignment_2; }
-
+		
 		//SignedNumber
 		public RuleCall getNumberIntervalValueSignedNumberParserRuleCall_2_0() { return cNumberIntervalValueSignedNumberParserRuleCall_2_0; }
-
+		
 		//numberRange=TableRangeElement
 		public Assignment getNumberRangeAssignment_3() { return cNumberRangeAssignment_3; }
-
+		
 		//TableRangeElement
 		public RuleCall getNumberRangeTableRangeElementParserRuleCall_3_0() { return cNumberRangeTableRangeElementParserRuleCall_3_0; }
 	}
-
+	public class TableIntIntervalElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableIntInterval");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cTableIntIntervalAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cUpToIntegerKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cIntIntervalValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cIntIntervalValueSignedIntParserRuleCall_2_0 = (RuleCall)cIntIntervalValueAssignment_2.eContents().get(0);
+		private final Assignment cIntRangeAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cIntRangeTableRangeElementParserRuleCall_3_0 = (RuleCall)cIntRangeAssignment_3.eContents().get(0);
+		
+		//TableIntInterval:
+		//	{TableIntInterval} 'upToInteger' intIntervalValue=SignedInt intRange=TableRangeElement;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableIntInterval} 'upToInteger' intIntervalValue=SignedInt intRange=TableRangeElement
+		public Group getGroup() { return cGroup; }
+		
+		//{TableIntInterval}
+		public Action getTableIntIntervalAction_0() { return cTableIntIntervalAction_0; }
+		
+		//'upToInteger'
+		public Keyword getUpToIntegerKeyword_1() { return cUpToIntegerKeyword_1; }
+		
+		//intIntervalValue=SignedInt
+		public Assignment getIntIntervalValueAssignment_2() { return cIntIntervalValueAssignment_2; }
+		
+		//SignedInt
+		public RuleCall getIntIntervalValueSignedIntParserRuleCall_2_0() { return cIntIntervalValueSignedIntParserRuleCall_2_0; }
+		
+		//intRange=TableRangeElement
+		public Assignment getIntRangeAssignment_3() { return cIntRangeAssignment_3; }
+		
+		//TableRangeElement
+		public RuleCall getIntRangeTableRangeElementParserRuleCall_3_0() { return cIntRangeTableRangeElementParserRuleCall_3_0; }
+	}
 	public class TableDateDayIntervalElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableDateDayInterval");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableDateDayInterval");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableDateDayIntervalAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cDaysInPastKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		private final Assignment cDateIntervalValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
-		private final RuleCall cDateIntervalValueSignedNumberParserRuleCall_2_0 = (RuleCall)cDateIntervalValueAssignment_2.eContents().get(0);
+		private final RuleCall cDateIntervalValueSignedIntParserRuleCall_2_0 = (RuleCall)cDateIntervalValueAssignment_2.eContents().get(0);
 		private final Assignment cDateRangeAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cDateRangeTableRangeElementParserRuleCall_3_0 = (RuleCall)cDateRangeAssignment_3.eContents().get(0);
 		
 		//TableDateDayInterval:
-		//	{TableDateDayInterval} "days in past" dateIntervalValue=SignedNumber dateRange=TableRangeElement;
-		public ParserRule getRule() { return rule; }
-
-		//{TableDateDayInterval} "days in past" dateIntervalValue=SignedNumber dateRange=TableRangeElement
+		//	{TableDateDayInterval} 'daysInPast' dateIntervalValue=SignedInt dateRange=TableRangeElement;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableDateDayInterval} 'daysInPast' dateIntervalValue=SignedInt dateRange=TableRangeElement
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableDateDayInterval}
 		public Action getTableDateDayIntervalAction_0() { return cTableDateDayIntervalAction_0; }
-
-		//"days in past"
+		
+		//'daysInPast'
 		public Keyword getDaysInPastKeyword_1() { return cDaysInPastKeyword_1; }
-
-		//dateIntervalValue=SignedNumber
+		
+		//dateIntervalValue=SignedInt
 		public Assignment getDateIntervalValueAssignment_2() { return cDateIntervalValueAssignment_2; }
-
-		//SignedNumber
-		public RuleCall getDateIntervalValueSignedNumberParserRuleCall_2_0() { return cDateIntervalValueSignedNumberParserRuleCall_2_0; }
-
+		
+		//SignedInt
+		public RuleCall getDateIntervalValueSignedIntParserRuleCall_2_0() { return cDateIntervalValueSignedIntParserRuleCall_2_0; }
+		
 		//dateRange=TableRangeElement
 		public Assignment getDateRangeAssignment_3() { return cDateRangeAssignment_3; }
-
+		
 		//TableRangeElement
 		public RuleCall getDateRangeTableRangeElementParserRuleCall_3_0() { return cDateRangeTableRangeElementParserRuleCall_3_0; }
 	}
-
 	public class TableLookupElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableLookup");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableLookup");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final RuleCall cTableNumberLookupParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
-		private final RuleCall cTableStringLookupParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
-		private final RuleCall cTableDateDayLookupParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cTableIntLookupParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cTableStringLookupParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cTableDateDayLookupParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
 		
 		//TableLookup:
-		//	TableNumberLookup | TableStringLookup | TableDateDayLookup;
-		public ParserRule getRule() { return rule; }
-
-		//TableNumberLookup | TableStringLookup | TableDateDayLookup
+		//	TableNumberLookup | TableIntLookup | TableStringLookup | TableDateDayLookup;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//TableNumberLookup | TableIntLookup | TableStringLookup | TableDateDayLookup
 		public Alternatives getAlternatives() { return cAlternatives; }
-
+		
 		//TableNumberLookup
 		public RuleCall getTableNumberLookupParserRuleCall_0() { return cTableNumberLookupParserRuleCall_0; }
-
+		
+		//TableIntLookup
+		public RuleCall getTableIntLookupParserRuleCall_1() { return cTableIntLookupParserRuleCall_1; }
+		
 		//TableStringLookup
-		public RuleCall getTableStringLookupParserRuleCall_1() { return cTableStringLookupParserRuleCall_1; }
-
+		public RuleCall getTableStringLookupParserRuleCall_2() { return cTableStringLookupParserRuleCall_2; }
+		
 		//TableDateDayLookup
-		public RuleCall getTableDateDayLookupParserRuleCall_2() { return cTableDateDayLookupParserRuleCall_2; }
+		public RuleCall getTableDateDayLookupParserRuleCall_3() { return cTableDateDayLookupParserRuleCall_3; }
 	}
-
+	public class TableIntLookupElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableIntLookup");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cTableIntLookupAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cIntegerKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cLookupValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cLookupValueSignedIntParserRuleCall_2_0 = (RuleCall)cLookupValueAssignment_2.eContents().get(0);
+		private final Assignment cDiscreteAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cDiscreteTableRangeElementParserRuleCall_3_0 = (RuleCall)cDiscreteAssignment_3.eContents().get(0);
+		
+		//TableIntLookup:
+		//	{TableIntLookup} 'integer' lookupValue=SignedInt discrete=TableRangeElement;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableIntLookup} 'integer' lookupValue=SignedInt discrete=TableRangeElement
+		public Group getGroup() { return cGroup; }
+		
+		//{TableIntLookup}
+		public Action getTableIntLookupAction_0() { return cTableIntLookupAction_0; }
+		
+		//'integer'
+		public Keyword getIntegerKeyword_1() { return cIntegerKeyword_1; }
+		
+		//lookupValue=SignedInt
+		public Assignment getLookupValueAssignment_2() { return cLookupValueAssignment_2; }
+		
+		//SignedInt
+		public RuleCall getLookupValueSignedIntParserRuleCall_2_0() { return cLookupValueSignedIntParserRuleCall_2_0; }
+		
+		//discrete=TableRangeElement
+		public Assignment getDiscreteAssignment_3() { return cDiscreteAssignment_3; }
+		
+		//TableRangeElement
+		public RuleCall getDiscreteTableRangeElementParserRuleCall_3_0() { return cDiscreteTableRangeElementParserRuleCall_3_0; }
+	}
 	public class TableNumberLookupElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableNumberLookup");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableNumberLookup");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableNumberLookupAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cNumberKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -1201,33 +1401,32 @@
 		private final RuleCall cDiscreteTableRangeElementParserRuleCall_3_0 = (RuleCall)cDiscreteAssignment_3.eContents().get(0);
 		
 		//TableNumberLookup:
-		//	{TableNumberLookup} "number" lookupValue=SignedNumber discrete=TableRangeElement;
-		public ParserRule getRule() { return rule; }
-
-		//{TableNumberLookup} "number" lookupValue=SignedNumber discrete=TableRangeElement
+		//	{TableNumberLookup} 'number' lookupValue=SignedNumber discrete=TableRangeElement;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableNumberLookup} 'number' lookupValue=SignedNumber discrete=TableRangeElement
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableNumberLookup}
 		public Action getTableNumberLookupAction_0() { return cTableNumberLookupAction_0; }
-
-		//"number"
+		
+		//'number'
 		public Keyword getNumberKeyword_1() { return cNumberKeyword_1; }
-
+		
 		//lookupValue=SignedNumber
 		public Assignment getLookupValueAssignment_2() { return cLookupValueAssignment_2; }
-
+		
 		//SignedNumber
 		public RuleCall getLookupValueSignedNumberParserRuleCall_2_0() { return cLookupValueSignedNumberParserRuleCall_2_0; }
-
+		
 		//discrete=TableRangeElement
 		public Assignment getDiscreteAssignment_3() { return cDiscreteAssignment_3; }
-
+		
 		//TableRangeElement
 		public RuleCall getDiscreteTableRangeElementParserRuleCall_3_0() { return cDiscreteTableRangeElementParserRuleCall_3_0; }
 	}
-
 	public class TableStringLookupElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableStringLookup");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableStringLookup");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableStringLookupAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cStringKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -1237,69 +1436,67 @@
 		private final RuleCall cDiscreteTableRangeElementParserRuleCall_3_0 = (RuleCall)cDiscreteAssignment_3.eContents().get(0);
 		
 		//TableStringLookup:
-		//	{TableStringLookup} "string" lookupValue=STRING discrete=TableRangeElement;
-		public ParserRule getRule() { return rule; }
-
-		//{TableStringLookup} "string" lookupValue=STRING discrete=TableRangeElement
+		//	{TableStringLookup} 'string' lookupValue=STRING discrete=TableRangeElement;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableStringLookup} 'string' lookupValue=STRING discrete=TableRangeElement
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableStringLookup}
 		public Action getTableStringLookupAction_0() { return cTableStringLookupAction_0; }
-
-		//"string"
+		
+		//'string'
 		public Keyword getStringKeyword_1() { return cStringKeyword_1; }
-
+		
 		//lookupValue=STRING
 		public Assignment getLookupValueAssignment_2() { return cLookupValueAssignment_2; }
-
+		
 		//STRING
 		public RuleCall getLookupValueSTRINGTerminalRuleCall_2_0() { return cLookupValueSTRINGTerminalRuleCall_2_0; }
-
+		
 		//discrete=TableRangeElement
 		public Assignment getDiscreteAssignment_3() { return cDiscreteAssignment_3; }
-
+		
 		//TableRangeElement
 		public RuleCall getDiscreteTableRangeElementParserRuleCall_3_0() { return cDiscreteTableRangeElementParserRuleCall_3_0; }
 	}
-
 	public class TableDateDayLookupElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableDateDayLookup");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableDateDayLookup");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableDateDayLookupAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cDaysInPastKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		private final Assignment cLookupValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
-		private final RuleCall cLookupValueSignedNumberParserRuleCall_2_0 = (RuleCall)cLookupValueAssignment_2.eContents().get(0);
+		private final RuleCall cLookupValueSignedIntParserRuleCall_2_0 = (RuleCall)cLookupValueAssignment_2.eContents().get(0);
 		private final Assignment cDiscreteAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cDiscreteTableRangeElementParserRuleCall_3_0 = (RuleCall)cDiscreteAssignment_3.eContents().get(0);
 		
 		//TableDateDayLookup:
-		//	{TableDateDayLookup} "days in past" lookupValue=SignedNumber discrete=TableRangeElement;
-		public ParserRule getRule() { return rule; }
-
-		//{TableDateDayLookup} "days in past" lookupValue=SignedNumber discrete=TableRangeElement
+		//	{TableDateDayLookup} 'daysInPast' lookupValue=SignedInt discrete=TableRangeElement;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableDateDayLookup} 'daysInPast' lookupValue=SignedInt discrete=TableRangeElement
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableDateDayLookup}
 		public Action getTableDateDayLookupAction_0() { return cTableDateDayLookupAction_0; }
-
-		//"days in past"
+		
+		//'daysInPast'
 		public Keyword getDaysInPastKeyword_1() { return cDaysInPastKeyword_1; }
-
-		//lookupValue=SignedNumber
+		
+		//lookupValue=SignedInt
 		public Assignment getLookupValueAssignment_2() { return cLookupValueAssignment_2; }
-
-		//SignedNumber
-		public RuleCall getLookupValueSignedNumberParserRuleCall_2_0() { return cLookupValueSignedNumberParserRuleCall_2_0; }
-
+		
+		//SignedInt
+		public RuleCall getLookupValueSignedIntParserRuleCall_2_0() { return cLookupValueSignedIntParserRuleCall_2_0; }
+		
 		//discrete=TableRangeElement
 		public Assignment getDiscreteAssignment_3() { return cDiscreteAssignment_3; }
-
+		
 		//TableRangeElement
 		public RuleCall getDiscreteTableRangeElementParserRuleCall_3_0() { return cDiscreteTableRangeElementParserRuleCall_3_0; }
 	}
-
 	public class TableDatamartElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableDatamart");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableDatamart");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cDatamartKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cDatamartRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -1312,168 +1509,67 @@
 		private final Keyword cRightCurlyBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
 		
 		//TableDatamart:
-		//	"datamart" datamartRef=[datamart::DatamartDefinition] ("{" elements+=TableElement* "}")?;
-		public ParserRule getRule() { return rule; }
-
-		//"datamart" datamartRef=[datamart::DatamartDefinition] ("{" elements+=TableElement* "}")?
+		//	'datamart' datamartRef=[datamart::DatamartDefinition] ('{' elements+=TableElement* '}')?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'datamart' datamartRef=[datamart::DatamartDefinition] ('{' elements+=TableElement* '}')?
 		public Group getGroup() { return cGroup; }
-
-		//"datamart"
+		
+		//'datamart'
 		public Keyword getDatamartKeyword_0() { return cDatamartKeyword_0; }
-
+		
 		//datamartRef=[datamart::DatamartDefinition]
 		public Assignment getDatamartRefAssignment_1() { return cDatamartRefAssignment_1; }
-
+		
 		//[datamart::DatamartDefinition]
 		public CrossReference getDatamartRefDatamartDefinitionCrossReference_1_0() { return cDatamartRefDatamartDefinitionCrossReference_1_0; }
-
+		
 		//ID
 		public RuleCall getDatamartRefDatamartDefinitionIDTerminalRuleCall_1_0_1() { return cDatamartRefDatamartDefinitionIDTerminalRuleCall_1_0_1; }
-
-		//("{" elements+=TableElement* "}")?
+		
+		//('{' elements+=TableElement* '}')?
 		public Group getGroup_2() { return cGroup_2; }
-
-		//"{"
+		
+		//'{'
 		public Keyword getLeftCurlyBracketKeyword_2_0() { return cLeftCurlyBracketKeyword_2_0; }
-
+		
 		//elements+=TableElement*
 		public Assignment getElementsAssignment_2_1() { return cElementsAssignment_2_1; }
-
+		
 		//TableElement
 		public RuleCall getElementsTableElementParserRuleCall_2_1_0() { return cElementsTableElementParserRuleCall_2_1_0; }
-
-		//"}"
+		
+		//'}'
 		public Keyword getRightCurlyBracketKeyword_2_2() { return cRightCurlyBracketKeyword_2_2; }
 	}
-
 	public class TableElementElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableElement");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableElement");
 		private final RuleCall cTableAxisParserRuleCall = (RuleCall)rule.eContents().get(1);
 		
 		//TableElement:
 		//	TableAxis;
-		public ParserRule getRule() { return rule; }
-
+		@Override public ParserRule getRule() { return rule; }
+		
 		//TableAxis
 		public RuleCall getTableAxisParserRuleCall() { return cTableAxisParserRuleCall; }
 	}
-
 	public class TableEventElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableEvent");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Keyword cBrokerKeyword_0 = (Keyword)cGroup.eContents().get(0);
-		private final Assignment cSourceAssignment_1 = (Assignment)cGroup.eContents().get(1);
-		private final RuleCall cSourceTableValueElementParserRuleCall_1_0 = (RuleCall)cSourceAssignment_1.eContents().get(0);
-		private final Keyword cToKeyword_2 = (Keyword)cGroup.eContents().get(2);
-		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
-		private final Assignment cBrokerDatamartsAssignment_4 = (Assignment)cGroup.eContents().get(4);
-		private final RuleCall cBrokerDatamartsTableBrokerDatamartParserRuleCall_4_0 = (RuleCall)cBrokerDatamartsAssignment_4.eContents().get(0);
-		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableEvent");
+		private final Assignment cSourceAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cSourceTableValueElementParserRuleCall_0 = (RuleCall)cSourceAssignment.eContents().get(0);
 		
 		//TableEvent:
-		//	"broker" source=TableValueElement "to" "{" brokerDatamarts+=TableBrokerDatamart* "}";
-		public ParserRule getRule() { return rule; }
-
-		//"broker" source=TableValueElement "to" "{" brokerDatamarts+=TableBrokerDatamart* "}"
-		public Group getGroup() { return cGroup; }
-
-		//"broker"
-		public Keyword getBrokerKeyword_0() { return cBrokerKeyword_0; }
-
-		//source=TableValueElement
-		public Assignment getSourceAssignment_1() { return cSourceAssignment_1; }
-
-		//TableValueElement
-		public RuleCall getSourceTableValueElementParserRuleCall_1_0() { return cSourceTableValueElementParserRuleCall_1_0; }
-
-		//"to"
-		public Keyword getToKeyword_2() { return cToKeyword_2; }
-
-		//"{"
-		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
-
-		//brokerDatamarts+=TableBrokerDatamart*
-		public Assignment getBrokerDatamartsAssignment_4() { return cBrokerDatamartsAssignment_4; }
-
-		//TableBrokerDatamart
-		public RuleCall getBrokerDatamartsTableBrokerDatamartParserRuleCall_4_0() { return cBrokerDatamartsTableBrokerDatamartParserRuleCall_4_0; }
-
-		//"}"
-		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
-	}
-
-	public class TableBrokerDatamartElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableBrokerDatamart");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Keyword cDatamartKeyword_0 = (Keyword)cGroup.eContents().get(0);
-		private final Assignment cDatamartDefAssignment_1 = (Assignment)cGroup.eContents().get(1);
-		private final CrossReference cDatamartDefDatamartDefinitionCrossReference_1_0 = (CrossReference)cDatamartDefAssignment_1.eContents().get(0);
-		private final RuleCall cDatamartDefDatamartDefinitionIDTerminalRuleCall_1_0_1 = (RuleCall)cDatamartDefDatamartDefinitionCrossReference_1_0.eContents().get(1);
-		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
-		private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
-		private final Keyword cFilterKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
-		private final Assignment cFilterAssignment_2_0_1 = (Assignment)cGroup_2_0.eContents().get(1);
-		private final RuleCall cFilterSTRINGTerminalRuleCall_2_0_1_0 = (RuleCall)cFilterAssignment_2_0_1.eContents().get(0);
-		private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1);
-		private final Keyword cReferencedKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
-		private final Assignment cReferenceAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
-		private final CrossReference cReferenceLEntityReferenceCrossReference_2_1_1_0 = (CrossReference)cReferenceAssignment_2_1_1.eContents().get(0);
-		private final RuleCall cReferenceLEntityReferenceIDTerminalRuleCall_2_1_1_0_1 = (RuleCall)cReferenceLEntityReferenceCrossReference_2_1_1_0.eContents().get(1);
+		//	source=TableValueElement;
+		@Override public ParserRule getRule() { return rule; }
 		
-		//TableBrokerDatamart:
-		//	"datamart" datamartDef=[datamart::DatamartDefinition] ("filter" filter=STRING | "referenced"
-		//	reference=[entity::LEntityReference]);
-		public ParserRule getRule() { return rule; }
-
-		//"datamart" datamartDef=[datamart::DatamartDefinition] ("filter" filter=STRING | "referenced"
-		//reference=[entity::LEntityReference])
-		public Group getGroup() { return cGroup; }
-
-		//"datamart"
-		public Keyword getDatamartKeyword_0() { return cDatamartKeyword_0; }
-
-		//datamartDef=[datamart::DatamartDefinition]
-		public Assignment getDatamartDefAssignment_1() { return cDatamartDefAssignment_1; }
-
-		//[datamart::DatamartDefinition]
-		public CrossReference getDatamartDefDatamartDefinitionCrossReference_1_0() { return cDatamartDefDatamartDefinitionCrossReference_1_0; }
-
-		//ID
-		public RuleCall getDatamartDefDatamartDefinitionIDTerminalRuleCall_1_0_1() { return cDatamartDefDatamartDefinitionIDTerminalRuleCall_1_0_1; }
-
-		//"filter" filter=STRING | "referenced" reference=[entity::LEntityReference]
-		public Alternatives getAlternatives_2() { return cAlternatives_2; }
-
-		//"filter" filter=STRING
-		public Group getGroup_2_0() { return cGroup_2_0; }
-
-		//"filter"
-		public Keyword getFilterKeyword_2_0_0() { return cFilterKeyword_2_0_0; }
-
-		//filter=STRING
-		public Assignment getFilterAssignment_2_0_1() { return cFilterAssignment_2_0_1; }
-
-		//STRING
-		public RuleCall getFilterSTRINGTerminalRuleCall_2_0_1_0() { return cFilterSTRINGTerminalRuleCall_2_0_1_0; }
-
-		//"referenced" reference=[entity::LEntityReference]
-		public Group getGroup_2_1() { return cGroup_2_1; }
-
-		//"referenced"
-		public Keyword getReferencedKeyword_2_1_0() { return cReferencedKeyword_2_1_0; }
-
-		//reference=[entity::LEntityReference]
-		public Assignment getReferenceAssignment_2_1_1() { return cReferenceAssignment_2_1_1; }
-
-		//[entity::LEntityReference]
-		public CrossReference getReferenceLEntityReferenceCrossReference_2_1_1_0() { return cReferenceLEntityReferenceCrossReference_2_1_1_0; }
-
-		//ID
-		public RuleCall getReferenceLEntityReferenceIDTerminalRuleCall_2_1_1_0_1() { return cReferenceLEntityReferenceIDTerminalRuleCall_2_1_1_0_1; }
+		//source=TableValueElement
+		public Assignment getSourceAssignment() { return cSourceAssignment; }
+		
+		//TableValueElement
+		public RuleCall getSourceTableValueElementParserRuleCall_0() { return cSourceTableValueElementParserRuleCall_0; }
 	}
-
 	public class TableAxisElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableAxis");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableAxis");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cAxisKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cAxisAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -1495,99 +1591,98 @@
 		private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
 		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
 		private final Assignment cHasEventsAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
-		private final Keyword cHasEventsEventsKeyword_4_0_0 = (Keyword)cHasEventsAssignment_4_0.eContents().get(0);
+		private final Keyword cHasEventsNotifyOnSelectKeyword_4_0_0 = (Keyword)cHasEventsAssignment_4_0.eContents().get(0);
 		private final Keyword cLeftCurlyBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
 		private final Assignment cEventsAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
 		private final RuleCall cEventsTableEventParserRuleCall_4_2_0 = (RuleCall)cEventsAssignment_4_2.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_4_3 = (Keyword)cGroup_4.eContents().get(3);
 		
 		//TableAxis:
-		//	"axis" axis=AxisEnum ((hasRowHeight?="rowheight" rowHeight=Number)? & preOrder=TablePreorder?) (hasDetails?="details"
-		//	"{" values+=TableValue* "}")? (hasEvents?="events" "{" events+=TableEvent* "}")?;
-		public ParserRule getRule() { return rule; }
-
-		//"axis" axis=AxisEnum ((hasRowHeight?="rowheight" rowHeight=Number)? & preOrder=TablePreorder?) (hasDetails?="details"
-		//"{" values+=TableValue* "}")? (hasEvents?="events" "{" events+=TableEvent* "}")?
+		//	'axis' axis=AxisEnum ((hasRowHeight?='rowheight' rowHeight=Number)? & preOrder=TablePreorder?) (hasDetails?='details'
+		//	'{' values+=TableValue* '}')? (hasEvents?='notifyOnSelect' '{' events+=TableEvent* '}')?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'axis' axis=AxisEnum ((hasRowHeight?='rowheight' rowHeight=Number)? & preOrder=TablePreorder?) (hasDetails?='details'
+		//'{' values+=TableValue* '}')? (hasEvents?='notifyOnSelect' '{' events+=TableEvent* '}')?
 		public Group getGroup() { return cGroup; }
-
-		//"axis"
+		
+		//'axis'
 		public Keyword getAxisKeyword_0() { return cAxisKeyword_0; }
-
+		
 		//axis=AxisEnum
 		public Assignment getAxisAssignment_1() { return cAxisAssignment_1; }
-
+		
 		//AxisEnum
 		public RuleCall getAxisAxisEnumEnumRuleCall_1_0() { return cAxisAxisEnumEnumRuleCall_1_0; }
-
-		//(hasRowHeight?="rowheight" rowHeight=Number)? & preOrder=TablePreorder?
+		
+		//(hasRowHeight?='rowheight' rowHeight=Number)? & preOrder=TablePreorder?
 		public UnorderedGroup getUnorderedGroup_2() { return cUnorderedGroup_2; }
-
-		//(hasRowHeight?="rowheight" rowHeight=Number)?
+		
+		//(hasRowHeight?='rowheight' rowHeight=Number)?
 		public Group getGroup_2_0() { return cGroup_2_0; }
-
-		//hasRowHeight?="rowheight"
+		
+		//hasRowHeight?='rowheight'
 		public Assignment getHasRowHeightAssignment_2_0_0() { return cHasRowHeightAssignment_2_0_0; }
-
-		//"rowheight"
+		
+		//'rowheight'
 		public Keyword getHasRowHeightRowheightKeyword_2_0_0_0() { return cHasRowHeightRowheightKeyword_2_0_0_0; }
-
+		
 		//rowHeight=Number
 		public Assignment getRowHeightAssignment_2_0_1() { return cRowHeightAssignment_2_0_1; }
-
+		
 		//Number
 		public RuleCall getRowHeightNumberParserRuleCall_2_0_1_0() { return cRowHeightNumberParserRuleCall_2_0_1_0; }
-
+		
 		//preOrder=TablePreorder?
 		public Assignment getPreOrderAssignment_2_1() { return cPreOrderAssignment_2_1; }
-
+		
 		//TablePreorder
 		public RuleCall getPreOrderTablePreorderParserRuleCall_2_1_0() { return cPreOrderTablePreorderParserRuleCall_2_1_0; }
-
-		//(hasDetails?="details" "{" values+=TableValue* "}")?
+		
+		//(hasDetails?='details' '{' values+=TableValue* '}')?
 		public Group getGroup_3() { return cGroup_3; }
-
-		//hasDetails?="details"
+		
+		//hasDetails?='details'
 		public Assignment getHasDetailsAssignment_3_0() { return cHasDetailsAssignment_3_0; }
-
-		//"details"
+		
+		//'details'
 		public Keyword getHasDetailsDetailsKeyword_3_0_0() { return cHasDetailsDetailsKeyword_3_0_0; }
-
-		//"{"
+		
+		//'{'
 		public Keyword getLeftCurlyBracketKeyword_3_1() { return cLeftCurlyBracketKeyword_3_1; }
-
+		
 		//values+=TableValue*
 		public Assignment getValuesAssignment_3_2() { return cValuesAssignment_3_2; }
-
+		
 		//TableValue
 		public RuleCall getValuesTableValueParserRuleCall_3_2_0() { return cValuesTableValueParserRuleCall_3_2_0; }
-
-		//"}"
+		
+		//'}'
 		public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
-
-		//(hasEvents?="events" "{" events+=TableEvent* "}")?
+		
+		//(hasEvents?='notifyOnSelect' '{' events+=TableEvent* '}')?
 		public Group getGroup_4() { return cGroup_4; }
-
-		//hasEvents?="events"
+		
+		//hasEvents?='notifyOnSelect'
 		public Assignment getHasEventsAssignment_4_0() { return cHasEventsAssignment_4_0; }
-
-		//"events"
-		public Keyword getHasEventsEventsKeyword_4_0_0() { return cHasEventsEventsKeyword_4_0_0; }
-
-		//"{"
+		
+		//'notifyOnSelect'
+		public Keyword getHasEventsNotifyOnSelectKeyword_4_0_0() { return cHasEventsNotifyOnSelectKeyword_4_0_0; }
+		
+		//'{'
 		public Keyword getLeftCurlyBracketKeyword_4_1() { return cLeftCurlyBracketKeyword_4_1; }
-
+		
 		//events+=TableEvent*
 		public Assignment getEventsAssignment_4_2() { return cEventsAssignment_4_2; }
-
+		
 		//TableEvent
 		public RuleCall getEventsTableEventParserRuleCall_4_2_0() { return cEventsTableEventParserRuleCall_4_2_0; }
-
-		//"}"
+		
+		//'}'
 		public Keyword getRightCurlyBracketKeyword_4_3() { return cRightCurlyBracketKeyword_4_3; }
 	}
-
 	public class TableRangeElementElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableRangeElement");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableRangeElement");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final RuleCall cTableTextColorParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cTableCellColorParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
@@ -1597,173 +1692,143 @@
 		
 		//TableRangeElement:
 		//	TableTextColor | TableCellColor | TableIcon | TableTrend | TableTooltip;
-		public ParserRule getRule() { return rule; }
-
+		@Override public ParserRule getRule() { return rule; }
+		
 		//TableTextColor | TableCellColor | TableIcon | TableTrend | TableTooltip
 		public Alternatives getAlternatives() { return cAlternatives; }
-
+		
 		//TableTextColor
 		public RuleCall getTableTextColorParserRuleCall_0() { return cTableTextColorParserRuleCall_0; }
-
+		
 		//TableCellColor
 		public RuleCall getTableCellColorParserRuleCall_1() { return cTableCellColorParserRuleCall_1; }
-
+		
 		//TableIcon
 		public RuleCall getTableIconParserRuleCall_2() { return cTableIconParserRuleCall_2; }
-
+		
 		//TableTrend
 		public RuleCall getTableTrendParserRuleCall_3() { return cTableTrendParserRuleCall_3; }
-
+		
 		//TableTooltip
 		public RuleCall getTableTooltipParserRuleCall_4() { return cTableTooltipParserRuleCall_4; }
 	}
-
 	public class TableTextColorElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableTextColor");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableTextColor");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cTextcolorKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cRgbAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final RuleCall cRgbSTRINGTerminalRuleCall_1_0 = (RuleCall)cRgbAssignment_1.eContents().get(0);
 		
 		//TableTextColor:
-		//	"textcolor" rgb=STRING;
-		public ParserRule getRule() { return rule; }
-
-		//"textcolor" rgb=STRING
+		//	'textcolor' rgb=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'textcolor' rgb=STRING
 		public Group getGroup() { return cGroup; }
-
-		//"textcolor"
+		
+		//'textcolor'
 		public Keyword getTextcolorKeyword_0() { return cTextcolorKeyword_0; }
-
+		
 		//rgb=STRING
 		public Assignment getRgbAssignment_1() { return cRgbAssignment_1; }
-
+		
 		//STRING
 		public RuleCall getRgbSTRINGTerminalRuleCall_1_0() { return cRgbSTRINGTerminalRuleCall_1_0; }
 	}
-
 	public class TableCellColorElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableCellColor");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableCellColor");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cCellcolorKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cRgbAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final RuleCall cRgbSTRINGTerminalRuleCall_1_0 = (RuleCall)cRgbAssignment_1.eContents().get(0);
 		
 		//TableCellColor:
-		//	"cellcolor" rgb=STRING;
-		public ParserRule getRule() { return rule; }
-
-		//"cellcolor" rgb=STRING
+		//	'cellcolor' rgb=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'cellcolor' rgb=STRING
 		public Group getGroup() { return cGroup; }
-
-		//"cellcolor"
+		
+		//'cellcolor'
 		public Keyword getCellcolorKeyword_0() { return cCellcolorKeyword_0; }
-
+		
 		//rgb=STRING
 		public Assignment getRgbAssignment_1() { return cRgbAssignment_1; }
-
+		
 		//STRING
 		public RuleCall getRgbSTRINGTerminalRuleCall_1_0() { return cRgbSTRINGTerminalRuleCall_1_0; }
 	}
-
 	public class TableIconElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableIcon");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableIcon");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cIconKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cIconAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final RuleCall cIconSTRINGTerminalRuleCall_1_0 = (RuleCall)cIconAssignment_1.eContents().get(0);
 		
 		//TableIcon:
-		//	"icon" icon=STRING;
-		public ParserRule getRule() { return rule; }
-
-		//"icon" icon=STRING
+		//	'icon' icon=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'icon' icon=STRING
 		public Group getGroup() { return cGroup; }
-
-		//"icon"
+		
+		//'icon'
 		public Keyword getIconKeyword_0() { return cIconKeyword_0; }
-
+		
 		//icon=STRING
 		public Assignment getIconAssignment_1() { return cIconAssignment_1; }
-
+		
 		//STRING
 		public RuleCall getIconSTRINGTerminalRuleCall_1_0() { return cIconSTRINGTerminalRuleCall_1_0; }
 	}
-
 	public class TableTrendElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableTrend");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableTrend");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cTrendKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cIconAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final RuleCall cIconTrendIconEnumEnumRuleCall_1_0 = (RuleCall)cIconAssignment_1.eContents().get(0);
 		
 		//TableTrend:
-		//	"trend" icon=TrendIconEnum;
-		public ParserRule getRule() { return rule; }
-
-		//"trend" icon=TrendIconEnum
+		//	'trend' icon=TrendIconEnum;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'trend' icon=TrendIconEnum
 		public Group getGroup() { return cGroup; }
-
-		//"trend"
+		
+		//'trend'
 		public Keyword getTrendKeyword_0() { return cTrendKeyword_0; }
-
+		
 		//icon=TrendIconEnum
 		public Assignment getIconAssignment_1() { return cIconAssignment_1; }
-
+		
 		//TrendIconEnum
 		public RuleCall getIconTrendIconEnumEnumRuleCall_1_0() { return cIconTrendIconEnumEnumRuleCall_1_0; }
 	}
-
 	public class TableTooltipElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableTooltip");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableTooltip");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cTooltipKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cTooltipAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final RuleCall cTooltipTRANSLATABLESTRINGParserRuleCall_1_0 = (RuleCall)cTooltipAssignment_1.eContents().get(0);
 		
 		//TableTooltip:
-		//	"tooltip" tooltip=TRANSLATABLESTRING;
-		public ParserRule getRule() { return rule; }
-
-		//"tooltip" tooltip=TRANSLATABLESTRING
+		//	'tooltip' tooltip=TRANSLATABLESTRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'tooltip' tooltip=TRANSLATABLESTRING
 		public Group getGroup() { return cGroup; }
-
-		//"tooltip"
+		
+		//'tooltip'
 		public Keyword getTooltipKeyword_0() { return cTooltipKeyword_0; }
-
+		
 		//tooltip=TRANSLATABLESTRING
 		public Assignment getTooltipAssignment_1() { return cTooltipAssignment_1; }
-
+		
 		//TRANSLATABLESTRING
 		public RuleCall getTooltipTRANSLATABLESTRINGParserRuleCall_1_0() { return cTooltipTRANSLATABLESTRINGParserRuleCall_1_0; }
 	}
-
-	public class TableImportElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableImport");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
-		private final Assignment cImportedNamespaceAssignment_1 = (Assignment)cGroup.eContents().get(1);
-		private final RuleCall cImportedNamespaceTableQualifiedNameWithWildCardParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0);
-		
-		//TableImport returns types::LImport:
-		//	"import" importedNamespace=TableQualifiedNameWithWildCard;
-		public ParserRule getRule() { return rule; }
-
-		//"import" importedNamespace=TableQualifiedNameWithWildCard
-		public Group getGroup() { return cGroup; }
-
-		//"import"
-		public Keyword getImportKeyword_0() { return cImportKeyword_0; }
-
-		//importedNamespace=TableQualifiedNameWithWildCard
-		public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; }
-
-		//TableQualifiedNameWithWildCard
-		public RuleCall getImportedNamespaceTableQualifiedNameWithWildCardParserRuleCall_1_0() { return cImportedNamespaceTableQualifiedNameWithWildCardParserRuleCall_1_0; }
-	}
-
 	public class TableGridElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableGrid");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableGrid");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cTableGridAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cGridKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -1796,104 +1861,146 @@
 		
 		//// ----------------------------- grid --------------------------------------
 		//TableGrid:
-		//	{TableGrid} "grid" (selectalways?="selectalways"? & ("rowheader" headerMode=RowHeaderMode)?) ((polling?="polling"
-		//	pollingTime=Number)? & filtering?="filtering"? & embedded?="embedded"? & ("toolbar"
-		//	toolbar=[action::ActionToolbar])?) ("using" source=TableDtoDatasource)?;
-		public ParserRule getRule() { return rule; }
-
-		//{TableGrid} "grid" (selectalways?="selectalways"? & ("rowheader" headerMode=RowHeaderMode)?) ((polling?="polling"
-		//pollingTime=Number)? & filtering?="filtering"? & embedded?="embedded"? & ("toolbar" toolbar=[action::ActionToolbar])?)
-		//("using" source=TableDtoDatasource)?
+		//	{TableGrid} 'grid' (selectalways?='selectalways'? & ('rowheader' headerMode=RowHeaderMode)?) ((polling?='polling'
+		//	pollingTime=Number)? & filtering?='filtering'? & embedded?='embedded'? & ('toolbar' toolbar=[action::ActionToolbar])?)
+		//	('using' source=TableDtoDatasource)?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{TableGrid} 'grid' (selectalways?='selectalways'? & ('rowheader' headerMode=RowHeaderMode)?) ((polling?='polling'
+		//pollingTime=Number)? & filtering?='filtering'? & embedded?='embedded'? & ('toolbar' toolbar=[action::ActionToolbar])?)
+		//('using' source=TableDtoDatasource)?
 		public Group getGroup() { return cGroup; }
-
+		
 		//{TableGrid}
 		public Action getTableGridAction_0() { return cTableGridAction_0; }
-
-		//"grid"
+		
+		//'grid'
 		public Keyword getGridKeyword_1() { return cGridKeyword_1; }
-
-		//selectalways?="selectalways"? & ("rowheader" headerMode=RowHeaderMode)?
+		
+		//selectalways?='selectalways'? & ('rowheader' headerMode=RowHeaderMode)?
 		public UnorderedGroup getUnorderedGroup_2() { return cUnorderedGroup_2; }
-
-		//selectalways?="selectalways"?
+		
+		//selectalways?='selectalways'?
 		public Assignment getSelectalwaysAssignment_2_0() { return cSelectalwaysAssignment_2_0; }
-
-		//"selectalways"
+		
+		//'selectalways'
 		public Keyword getSelectalwaysSelectalwaysKeyword_2_0_0() { return cSelectalwaysSelectalwaysKeyword_2_0_0; }
-
-		//("rowheader" headerMode=RowHeaderMode)?
+		
+		//('rowheader' headerMode=RowHeaderMode)?
 		public Group getGroup_2_1() { return cGroup_2_1; }
-
-		//"rowheader"
+		
+		//'rowheader'
 		public Keyword getRowheaderKeyword_2_1_0() { return cRowheaderKeyword_2_1_0; }
-
+		
 		//headerMode=RowHeaderMode
 		public Assignment getHeaderModeAssignment_2_1_1() { return cHeaderModeAssignment_2_1_1; }
-
+		
 		//RowHeaderMode
 		public RuleCall getHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0() { return cHeaderModeRowHeaderModeEnumRuleCall_2_1_1_0; }
-
-		//(polling?="polling" pollingTime=Number)? & filtering?="filtering"? & embedded?="embedded"? & ("toolbar"
+		
+		//(polling?='polling' pollingTime=Number)? & filtering?='filtering'? & embedded?='embedded'? & ('toolbar'
 		//toolbar=[action::ActionToolbar])?
 		public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
-
-		//(polling?="polling" pollingTime=Number)?
+		
+		//(polling?='polling' pollingTime=Number)?
 		public Group getGroup_3_0() { return cGroup_3_0; }
-
-		//polling?="polling"
+		
+		//polling?='polling'
 		public Assignment getPollingAssignment_3_0_0() { return cPollingAssignment_3_0_0; }
-
-		//"polling"
+		
+		//'polling'
 		public Keyword getPollingPollingKeyword_3_0_0_0() { return cPollingPollingKeyword_3_0_0_0; }
-
+		
 		//pollingTime=Number
 		public Assignment getPollingTimeAssignment_3_0_1() { return cPollingTimeAssignment_3_0_1; }
-
+		
 		//Number
 		public RuleCall getPollingTimeNumberParserRuleCall_3_0_1_0() { return cPollingTimeNumberParserRuleCall_3_0_1_0; }
-
-		//filtering?="filtering"?
+		
+		//filtering?='filtering'?
 		public Assignment getFilteringAssignment_3_1() { return cFilteringAssignment_3_1; }
-
-		//"filtering"
+		
+		//'filtering'
 		public Keyword getFilteringFilteringKeyword_3_1_0() { return cFilteringFilteringKeyword_3_1_0; }
-
-		//embedded?="embedded"?
+		
+		//embedded?='embedded'?
 		public Assignment getEmbeddedAssignment_3_2() { return cEmbeddedAssignment_3_2; }
-
-		//"embedded"
+		
+		//'embedded'
 		public Keyword getEmbeddedEmbeddedKeyword_3_2_0() { return cEmbeddedEmbeddedKeyword_3_2_0; }
-
-		//("toolbar" toolbar=[action::ActionToolbar])?
+		
+		//('toolbar' toolbar=[action::ActionToolbar])?
 		public Group getGroup_3_3() { return cGroup_3_3; }
-
-		//"toolbar"
+		
+		//'toolbar'
 		public Keyword getToolbarKeyword_3_3_0() { return cToolbarKeyword_3_3_0; }
-
+		
 		//toolbar=[action::ActionToolbar]
 		public Assignment getToolbarAssignment_3_3_1() { return cToolbarAssignment_3_3_1; }
-
+		
 		//[action::ActionToolbar]
 		public CrossReference getToolbarActionToolbarCrossReference_3_3_1_0() { return cToolbarActionToolbarCrossReference_3_3_1_0; }
-
+		
 		//ID
 		public RuleCall getToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1() { return cToolbarActionToolbarIDTerminalRuleCall_3_3_1_0_1; }
-
-		//("using" source=TableDtoDatasource)?
+		
+		//('using' source=TableDtoDatasource)?
 		public Group getGroup_4() { return cGroup_4; }
-
-		//"using"
+		
+		//'using'
 		public Keyword getUsingKeyword_4_0() { return cUsingKeyword_4_0; }
-
+		
 		//source=TableDtoDatasource
 		public Assignment getSourceAssignment_4_1() { return cSourceAssignment_4_1; }
-
+		
 		//TableDtoDatasource
 		public RuleCall getSourceTableDtoDatasourceParserRuleCall_4_1_0() { return cSourceTableDtoDatasourceParserRuleCall_4_1_0; }
 	}
-
+	public class PropertyElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.Property");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cEditableAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final Keyword cEditableEditableKeyword_0_0 = (Keyword)cEditableAssignment_0.eContents().get(0);
+		private final Keyword cPropKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cPathAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cPathNestedFieldParserRuleCall_2_0 = (RuleCall)cPathAssignment_2.eContents().get(0);
+		private final Keyword cStyleKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cStyleAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cStylePropertyStyleParserRuleCall_4_0 = (RuleCall)cStyleAssignment_4.eContents().get(0);
+		
+		//Property CxGridProperty:
+		//	editable?='editable'? 'prop' path=NestedField 'style' style=PropertyStyle;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//editable?='editable'? 'prop' path=NestedField 'style' style=PropertyStyle
+		public Group getGroup() { return cGroup; }
+		
+		//editable?='editable'?
+		public Assignment getEditableAssignment_0() { return cEditableAssignment_0; }
+		
+		//'editable'
+		public Keyword getEditableEditableKeyword_0_0() { return cEditableEditableKeyword_0_0; }
+		
+		//'prop'
+		public Keyword getPropKeyword_1() { return cPropKeyword_1; }
+		
+		//path=NestedField
+		public Assignment getPathAssignment_2() { return cPathAssignment_2; }
+		
+		//NestedField
+		public RuleCall getPathNestedFieldParserRuleCall_2_0() { return cPathNestedFieldParserRuleCall_2_0; }
+		
+		//'style'
+		public Keyword getStyleKeyword_3() { return cStyleKeyword_3; }
+		
+		//style=PropertyStyle
+		public Assignment getStyleAssignment_4() { return cStyleAssignment_4; }
+		
+		//PropertyStyle
+		public RuleCall getStylePropertyStyleParserRuleCall_4_0() { return cStylePropertyStyleParserRuleCall_4_0; }
+	}
 	public class TableDtoDatasourceElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableDtoDatasource");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TableDtoDatasource");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cDtoKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cDtoSourceAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -1905,89 +2012,42 @@
 		private final RuleCall cPropertiesPropertyParserRuleCall_2_1_0 = (RuleCall)cPropertiesAssignment_2_1.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
 		
-		//TableDtoDatasource: //	'dto' rootType=JvmTypeReference '{'
-		//	"dto" dtoSource=[dto::LDto] ("{" properties+=Property* "}")?;
-		public ParserRule getRule() { return rule; }
-
-		////	'dto' rootType=JvmTypeReference '{'
-		//"dto" dtoSource=[dto::LDto] ("{" properties+=Property* "}")?
+		//TableDtoDatasource:
+		//	'dto' dtoSource=[dto::LDto] ('{' properties+=Property* '}')?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'dto' dtoSource=[dto::LDto] ('{' properties+=Property* '}')?
 		public Group getGroup() { return cGroup; }
-
-		////	'dto' rootType=JvmTypeReference '{'
-		//"dto"
+		
+		//'dto'
 		public Keyword getDtoKeyword_0() { return cDtoKeyword_0; }
-
+		
 		//dtoSource=[dto::LDto]
 		public Assignment getDtoSourceAssignment_1() { return cDtoSourceAssignment_1; }
-
+		
 		//[dto::LDto]
 		public CrossReference getDtoSourceLDtoCrossReference_1_0() { return cDtoSourceLDtoCrossReference_1_0; }
-
+		
 		//ID
 		public RuleCall getDtoSourceLDtoIDTerminalRuleCall_1_0_1() { return cDtoSourceLDtoIDTerminalRuleCall_1_0_1; }
-
-		//("{" properties+=Property* "}")?
+		
+		//('{' properties+=Property* '}')?
 		public Group getGroup_2() { return cGroup_2; }
-
-		//"{"
+		
+		//'{'
 		public Keyword getLeftCurlyBracketKeyword_2_0() { return cLeftCurlyBracketKeyword_2_0; }
-
+		
 		//properties+=Property*
 		public Assignment getPropertiesAssignment_2_1() { return cPropertiesAssignment_2_1; }
-
+		
 		//Property
 		public RuleCall getPropertiesPropertyParserRuleCall_2_1_0() { return cPropertiesPropertyParserRuleCall_2_1_0; }
-
-		//"}"
+		
+		//'}'
 		public Keyword getRightCurlyBracketKeyword_2_2() { return cRightCurlyBracketKeyword_2_2; }
 	}
-
-	public class PropertyElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Property");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Assignment cEditableAssignment_0 = (Assignment)cGroup.eContents().get(0);
-		private final Keyword cEditableEditableKeyword_0_0 = (Keyword)cEditableAssignment_0.eContents().get(0);
-		private final Keyword cPropKeyword_1 = (Keyword)cGroup.eContents().get(1);
-		private final Assignment cPathAssignment_2 = (Assignment)cGroup.eContents().get(2);
-		private final RuleCall cPathNestedFieldParserRuleCall_2_0 = (RuleCall)cPathAssignment_2.eContents().get(0);
-		private final Keyword cStyleKeyword_3 = (Keyword)cGroup.eContents().get(3);
-		private final Assignment cStyleAssignment_4 = (Assignment)cGroup.eContents().get(4);
-		private final RuleCall cStylePropertyStyleParserRuleCall_4_0 = (RuleCall)cStyleAssignment_4.eContents().get(0);
-		
-		//Property returns CxGridProperty:
-		//	editable?="editable"? "prop" path=NestedField "style" style=PropertyStyle;
-		public ParserRule getRule() { return rule; }
-
-		//editable?="editable"? "prop" path=NestedField "style" style=PropertyStyle
-		public Group getGroup() { return cGroup; }
-
-		//editable?="editable"?
-		public Assignment getEditableAssignment_0() { return cEditableAssignment_0; }
-
-		//"editable"
-		public Keyword getEditableEditableKeyword_0_0() { return cEditableEditableKeyword_0_0; }
-
-		//"prop"
-		public Keyword getPropKeyword_1() { return cPropKeyword_1; }
-
-		//path=NestedField
-		public Assignment getPathAssignment_2() { return cPathAssignment_2; }
-
-		//NestedField
-		public RuleCall getPathNestedFieldParserRuleCall_2_0() { return cPathNestedFieldParserRuleCall_2_0; }
-
-		//"style"
-		public Keyword getStyleKeyword_3() { return cStyleKeyword_3; }
-
-		//style=PropertyStyle
-		public Assignment getStyleAssignment_4() { return cStyleAssignment_4; }
-
-		//PropertyStyle
-		public RuleCall getStylePropertyStyleParserRuleCall_4_0() { return cStylePropertyStyleParserRuleCall_4_0; }
-	}
-
 	public class NestedFieldElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NestedField");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.NestedField");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridNestedFieldAction_0 = (Action)cGroup.eContents().get(0);
 		private final Assignment cFieldAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -1996,34 +2056,33 @@
 		private final Assignment cPathAssignment_2 = (Assignment)cGroup.eContents().get(2);
 		private final RuleCall cPathNestedPathParserRuleCall_2_0 = (RuleCall)cPathAssignment_2.eContents().get(0);
 		
-		//NestedField returns CxGridNestedField:
+		//NestedField CxGridNestedField:
 		//	{CxGridNestedField} field=[JvmOperation] path=NestedPath?;
-		public ParserRule getRule() { return rule; }
-
+		@Override public ParserRule getRule() { return rule; }
+		
 		//{CxGridNestedField} field=[JvmOperation] path=NestedPath?
 		public Group getGroup() { return cGroup; }
-
+		
 		//{CxGridNestedField}
 		public Action getCxGridNestedFieldAction_0() { return cCxGridNestedFieldAction_0; }
-
+		
 		//field=[JvmOperation]
 		public Assignment getFieldAssignment_1() { return cFieldAssignment_1; }
-
+		
 		//[JvmOperation]
 		public CrossReference getFieldJvmOperationCrossReference_1_0() { return cFieldJvmOperationCrossReference_1_0; }
-
+		
 		//ID
 		public RuleCall getFieldJvmOperationIDTerminalRuleCall_1_0_1() { return cFieldJvmOperationIDTerminalRuleCall_1_0_1; }
-
+		
 		//path=NestedPath?
 		public Assignment getPathAssignment_2() { return cPathAssignment_2; }
-
+		
 		//NestedPath
 		public RuleCall getPathNestedPathParserRuleCall_2_0() { return cPathNestedPathParserRuleCall_2_0; }
 	}
-
 	public class NestedPathElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NestedPath");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.NestedPath");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridNestedPathAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -2033,37 +2092,37 @@
 		private final Assignment cPathAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cPathNestedPathParserRuleCall_3_0 = (RuleCall)cPathAssignment_3.eContents().get(0);
 		
-		//NestedPath returns CxGridNestedPath:
-		//	{CxGridNestedPath} "." field=[JvmOperation] path=NestedPath?;
-		public ParserRule getRule() { return rule; }
-
-		//{CxGridNestedPath} "." field=[JvmOperation] path=NestedPath?
+		//NestedPath CxGridNestedPath:
+		//	{CxGridNestedPath}
+		//	'.' field=[JvmOperation] path=NestedPath?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{CxGridNestedPath} '.' field=[JvmOperation] path=NestedPath?
 		public Group getGroup() { return cGroup; }
-
+		
 		//{CxGridNestedPath}
 		public Action getCxGridNestedPathAction_0() { return cCxGridNestedPathAction_0; }
-
-		//"."
+		
+		//'.'
 		public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
-
+		
 		//field=[JvmOperation]
 		public Assignment getFieldAssignment_2() { return cFieldAssignment_2; }
-
+		
 		//[JvmOperation]
 		public CrossReference getFieldJvmOperationCrossReference_2_0() { return cFieldJvmOperationCrossReference_2_0; }
-
+		
 		//ID
 		public RuleCall getFieldJvmOperationIDTerminalRuleCall_2_0_1() { return cFieldJvmOperationIDTerminalRuleCall_2_0_1; }
-
+		
 		//path=NestedPath?
 		public Assignment getPathAssignment_3() { return cPathAssignment_3; }
-
+		
 		//NestedPath
 		public RuleCall getPathNestedPathParserRuleCall_3_0() { return cPathNestedPathParserRuleCall_3_0; }
 	}
-
 	public class PropertyStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyStyle");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final RuleCall cPropertyButtonStyleParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cPropertyHtmlStyleParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
@@ -2077,53 +2136,52 @@
 		private final RuleCall cPropertyPriceStyleParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
 		private final RuleCall cGridPropIndicatorStyleParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
 		
-		//PropertyStyle returns style::CxGridPropStyle:
+		//PropertyStyle style::CxGridPropStyle:
 		//	PropertyButtonStyle | PropertyHtmlStyle | PropertyProgressbarStyle | PropertyTextStyle | PropertyBooleanStyle |
 		//	PropertyDateStyle | PropertyNumberStyle | PropertyImageStyle | PropertyQuantityStyle | PropertyPriceStyle |
 		//	GridPropIndicatorStyle;
-		public ParserRule getRule() { return rule; }
-
+		@Override public ParserRule getRule() { return rule; }
+		
 		//PropertyButtonStyle | PropertyHtmlStyle | PropertyProgressbarStyle | PropertyTextStyle | PropertyBooleanStyle |
 		//PropertyDateStyle | PropertyNumberStyle | PropertyImageStyle | PropertyQuantityStyle | PropertyPriceStyle |
 		//GridPropIndicatorStyle
 		public Alternatives getAlternatives() { return cAlternatives; }
-
+		
 		//PropertyButtonStyle
 		public RuleCall getPropertyButtonStyleParserRuleCall_0() { return cPropertyButtonStyleParserRuleCall_0; }
-
+		
 		//PropertyHtmlStyle
 		public RuleCall getPropertyHtmlStyleParserRuleCall_1() { return cPropertyHtmlStyleParserRuleCall_1; }
-
+		
 		//PropertyProgressbarStyle
 		public RuleCall getPropertyProgressbarStyleParserRuleCall_2() { return cPropertyProgressbarStyleParserRuleCall_2; }
-
+		
 		//PropertyTextStyle
 		public RuleCall getPropertyTextStyleParserRuleCall_3() { return cPropertyTextStyleParserRuleCall_3; }
-
+		
 		//PropertyBooleanStyle
 		public RuleCall getPropertyBooleanStyleParserRuleCall_4() { return cPropertyBooleanStyleParserRuleCall_4; }
-
+		
 		//PropertyDateStyle
 		public RuleCall getPropertyDateStyleParserRuleCall_5() { return cPropertyDateStyleParserRuleCall_5; }
-
+		
 		//PropertyNumberStyle
 		public RuleCall getPropertyNumberStyleParserRuleCall_6() { return cPropertyNumberStyleParserRuleCall_6; }
-
+		
 		//PropertyImageStyle
 		public RuleCall getPropertyImageStyleParserRuleCall_7() { return cPropertyImageStyleParserRuleCall_7; }
-
+		
 		//PropertyQuantityStyle
 		public RuleCall getPropertyQuantityStyleParserRuleCall_8() { return cPropertyQuantityStyleParserRuleCall_8; }
-
+		
 		//PropertyPriceStyle
 		public RuleCall getPropertyPriceStyleParserRuleCall_9() { return cPropertyPriceStyleParserRuleCall_9; }
-
+		
 		//GridPropIndicatorStyle
 		public RuleCall getGridPropIndicatorStyleParserRuleCall_10() { return cGridPropIndicatorStyleParserRuleCall_10; }
 	}
-
 	public class PropertyButtonStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyButtonStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyButtonStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropButtonStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cButtonStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -2131,71 +2189,71 @@
 		private final Assignment cEventTopicAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cEventTopicSTRINGTerminalRuleCall_3_0 = (RuleCall)cEventTopicAssignment_3.eContents().get(0);
 		
-		//PropertyButtonStyle returns style::CxGridPropButtonStyle:
-		//	{style::CxGridPropButtonStyle} "buttonStyle" "eventTopic" eventTopic=STRING;
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropButtonStyle} "buttonStyle" "eventTopic" eventTopic=STRING
+		//PropertyButtonStyle style::CxGridPropButtonStyle:
+		//	{style::CxGridPropButtonStyle}
+		//	'buttonStyle' 'eventTopic' eventTopic=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropButtonStyle} 'buttonStyle' 'eventTopic' eventTopic=STRING
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropButtonStyle}
 		public Action getCxGridPropButtonStyleAction_0() { return cCxGridPropButtonStyleAction_0; }
-
-		//"buttonStyle"
+		
+		//'buttonStyle'
 		public Keyword getButtonStyleKeyword_1() { return cButtonStyleKeyword_1; }
-
-		//"eventTopic"
+		
+		//'eventTopic'
 		public Keyword getEventTopicKeyword_2() { return cEventTopicKeyword_2; }
-
+		
 		//eventTopic=STRING
 		public Assignment getEventTopicAssignment_3() { return cEventTopicAssignment_3; }
-
+		
 		//STRING
 		public RuleCall getEventTopicSTRINGTerminalRuleCall_3_0() { return cEventTopicSTRINGTerminalRuleCall_3_0; }
 	}
-
 	public class PropertyHtmlStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyHtmlStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyHtmlStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropHtmlStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cHtmlStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		
-		//PropertyHtmlStyle returns style::CxGridPropHtmlStyle:
-		//	{style::CxGridPropHtmlStyle} "htmlStyle";
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropHtmlStyle} "htmlStyle"
+		//PropertyHtmlStyle style::CxGridPropHtmlStyle:
+		//	{style::CxGridPropHtmlStyle}
+		//	'htmlStyle';
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropHtmlStyle} 'htmlStyle'
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropHtmlStyle}
 		public Action getCxGridPropHtmlStyleAction_0() { return cCxGridPropHtmlStyleAction_0; }
-
-		//"htmlStyle"
+		
+		//'htmlStyle'
 		public Keyword getHtmlStyleKeyword_1() { return cHtmlStyleKeyword_1; }
 	}
-
 	public class PropertyBooleanStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyBooleanStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyBooleanStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropBooleanStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cBoolStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		
-		//PropertyBooleanStyle returns style::CxGridPropBooleanStyle:
-		//	{style::CxGridPropBooleanStyle} "boolStyle";
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropBooleanStyle} "boolStyle"
+		//PropertyBooleanStyle style::CxGridPropBooleanStyle:
+		//	{style::CxGridPropBooleanStyle}
+		//	'boolStyle';
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropBooleanStyle} 'boolStyle'
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropBooleanStyle}
 		public Action getCxGridPropBooleanStyleAction_0() { return cCxGridPropBooleanStyleAction_0; }
-
-		//"boolStyle"
+		
+		//'boolStyle'
 		public Keyword getBoolStyleKeyword_1() { return cBoolStyleKeyword_1; }
 	}
-
 	public class PropertyDateStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyDateStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyDateStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropDateStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cDateStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -2203,31 +2261,31 @@
 		private final Assignment cDateFormatAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cDateFormatSTRINGTerminalRuleCall_3_0 = (RuleCall)cDateFormatAssignment_3.eContents().get(0);
 		
-		//PropertyDateStyle returns style::CxGridPropDateStyle:
-		//	{style::CxGridPropDateStyle} "dateStyle" "format" dateFormat=STRING;
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropDateStyle} "dateStyle" "format" dateFormat=STRING
+		//PropertyDateStyle style::CxGridPropDateStyle:
+		//	{style::CxGridPropDateStyle}
+		//	'dateStyle' 'format' dateFormat=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropDateStyle} 'dateStyle' 'format' dateFormat=STRING
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropDateStyle}
 		public Action getCxGridPropDateStyleAction_0() { return cCxGridPropDateStyleAction_0; }
-
-		//"dateStyle"
+		
+		//'dateStyle'
 		public Keyword getDateStyleKeyword_1() { return cDateStyleKeyword_1; }
-
-		//"format"
+		
+		//'format'
 		public Keyword getFormatKeyword_2() { return cFormatKeyword_2; }
-
+		
 		//dateFormat=STRING
 		public Assignment getDateFormatAssignment_3() { return cDateFormatAssignment_3; }
-
+		
 		//STRING
 		public RuleCall getDateFormatSTRINGTerminalRuleCall_3_0() { return cDateFormatSTRINGTerminalRuleCall_3_0; }
 	}
-
 	public class PropertyNumberStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyNumberStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyNumberStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropNumberStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cNumberStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -2235,31 +2293,31 @@
 		private final Assignment cNumberFormatAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cNumberFormatSTRINGTerminalRuleCall_3_0 = (RuleCall)cNumberFormatAssignment_3.eContents().get(0);
 		
-		//PropertyNumberStyle returns style::CxGridPropNumberStyle:
-		//	{style::CxGridPropNumberStyle} "numberStyle" "format" numberFormat=STRING;
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropNumberStyle} "numberStyle" "format" numberFormat=STRING
+		//PropertyNumberStyle style::CxGridPropNumberStyle:
+		//	{style::CxGridPropNumberStyle}
+		//	'numberStyle' 'format' numberFormat=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropNumberStyle} 'numberStyle' 'format' numberFormat=STRING
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropNumberStyle}
 		public Action getCxGridPropNumberStyleAction_0() { return cCxGridPropNumberStyleAction_0; }
-
-		//"numberStyle"
+		
+		//'numberStyle'
 		public Keyword getNumberStyleKeyword_1() { return cNumberStyleKeyword_1; }
-
-		//"format"
+		
+		//'format'
 		public Keyword getFormatKeyword_2() { return cFormatKeyword_2; }
-
+		
 		//numberFormat=STRING
 		public Assignment getNumberFormatAssignment_3() { return cNumberFormatAssignment_3; }
-
+		
 		//STRING
 		public RuleCall getNumberFormatSTRINGTerminalRuleCall_3_0() { return cNumberFormatSTRINGTerminalRuleCall_3_0; }
 	}
-
 	public class PropertyProgressbarStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyProgressbarStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyProgressbarStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropProgressbarStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cProgressbarStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -2267,31 +2325,31 @@
 		private final Assignment cMaxValueAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cMaxValueLDoubleParserRuleCall_3_0 = (RuleCall)cMaxValueAssignment_3.eContents().get(0);
 		
-		//PropertyProgressbarStyle returns style::CxGridPropProgressbarStyle:
-		//	{style::CxGridPropProgressbarStyle} "progressbarStyle" "max" maxValue=LDouble;
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropProgressbarStyle} "progressbarStyle" "max" maxValue=LDouble
+		//PropertyProgressbarStyle style::CxGridPropProgressbarStyle:
+		//	{style::CxGridPropProgressbarStyle}
+		//	'progressbarStyle' 'max' maxValue=LDouble;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropProgressbarStyle} 'progressbarStyle' 'max' maxValue=LDouble
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropProgressbarStyle}
 		public Action getCxGridPropProgressbarStyleAction_0() { return cCxGridPropProgressbarStyleAction_0; }
-
-		//"progressbarStyle"
+		
+		//'progressbarStyle'
 		public Keyword getProgressbarStyleKeyword_1() { return cProgressbarStyleKeyword_1; }
-
-		//"max"
+		
+		//'max'
 		public Keyword getMaxKeyword_2() { return cMaxKeyword_2; }
-
+		
 		//maxValue=LDouble
 		public Assignment getMaxValueAssignment_3() { return cMaxValueAssignment_3; }
-
+		
 		//LDouble
 		public RuleCall getMaxValueLDoubleParserRuleCall_3_0() { return cMaxValueLDoubleParserRuleCall_3_0; }
 	}
-
 	public class GridPropIndicatorStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GridPropIndicatorStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.GridPropIndicatorStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropIndicatorStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cIndicatorStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -2302,40 +2360,40 @@
 		private final Assignment cRedEndsAssignment_5 = (Assignment)cGroup.eContents().get(5);
 		private final RuleCall cRedEndsLDoubleParserRuleCall_5_0 = (RuleCall)cRedEndsAssignment_5.eContents().get(0);
 		
-		//GridPropIndicatorStyle returns style::CxGridPropIndicatorStyle:
-		//	{style::CxGridPropIndicatorStyle} "indicatorStyle" "greenFrom" greenStarts=LDouble "redUntil" redEnds=LDouble;
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropIndicatorStyle} "indicatorStyle" "greenFrom" greenStarts=LDouble "redUntil" redEnds=LDouble
+		//GridPropIndicatorStyle style::CxGridPropIndicatorStyle:
+		//	{style::CxGridPropIndicatorStyle}
+		//	'indicatorStyle' 'greenFrom' greenStarts=LDouble 'redUntil' redEnds=LDouble;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropIndicatorStyle} 'indicatorStyle' 'greenFrom' greenStarts=LDouble 'redUntil' redEnds=LDouble
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropIndicatorStyle}
 		public Action getCxGridPropIndicatorStyleAction_0() { return cCxGridPropIndicatorStyleAction_0; }
-
-		//"indicatorStyle"
+		
+		//'indicatorStyle'
 		public Keyword getIndicatorStyleKeyword_1() { return cIndicatorStyleKeyword_1; }
-
-		//"greenFrom"
+		
+		//'greenFrom'
 		public Keyword getGreenFromKeyword_2() { return cGreenFromKeyword_2; }
-
+		
 		//greenStarts=LDouble
 		public Assignment getGreenStartsAssignment_3() { return cGreenStartsAssignment_3; }
-
+		
 		//LDouble
 		public RuleCall getGreenStartsLDoubleParserRuleCall_3_0() { return cGreenStartsLDoubleParserRuleCall_3_0; }
-
-		//"redUntil"
+		
+		//'redUntil'
 		public Keyword getRedUntilKeyword_4() { return cRedUntilKeyword_4; }
-
+		
 		//redEnds=LDouble
 		public Assignment getRedEndsAssignment_5() { return cRedEndsAssignment_5; }
-
+		
 		//LDouble
 		public RuleCall getRedEndsLDoubleParserRuleCall_5_0() { return cRedEndsLDoubleParserRuleCall_5_0; }
 	}
-
 	public class PropertyQuantityStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyQuantityStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyQuantityStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropQuantityStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cQuantityStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -2356,72 +2414,73 @@
 		private final Assignment cUomPropertyPathAssignment_9 = (Assignment)cGroup.eContents().get(9);
 		private final RuleCall cUomPropertyPathNestedFieldParserRuleCall_9_0 = (RuleCall)cUomPropertyPathAssignment_9.eContents().get(0);
 		
-		//PropertyQuantityStyle returns style::CxGridPropQuantityStyle:
-		//	{style::CxGridPropQuantityStyle} "quantityStyle" htmlPattern=STRING? "value" "=" valuePropertyPath=NestedField ("("
-		//	"format" valueNumberFormat=STRING ")")? "uom" "=" uomPropertyPath=NestedField;
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropQuantityStyle} "quantityStyle" htmlPattern=STRING? "value" "=" valuePropertyPath=NestedField ("("
-		//"format" valueNumberFormat=STRING ")")? "uom" "=" uomPropertyPath=NestedField
+		//PropertyQuantityStyle style::CxGridPropQuantityStyle:
+		//	{style::CxGridPropQuantityStyle}
+		//	'quantityStyle' htmlPattern=STRING? 'value' '=' valuePropertyPath=NestedField ('(' 'format' valueNumberFormat=STRING
+		//	')')? 'uom' '='
+		//	uomPropertyPath=NestedField;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropQuantityStyle} 'quantityStyle' htmlPattern=STRING? 'value' '=' valuePropertyPath=NestedField ('('
+		//'format' valueNumberFormat=STRING ')')? 'uom' '=' uomPropertyPath=NestedField
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropQuantityStyle}
 		public Action getCxGridPropQuantityStyleAction_0() { return cCxGridPropQuantityStyleAction_0; }
-
-		//"quantityStyle"
+		
+		//'quantityStyle'
 		public Keyword getQuantityStyleKeyword_1() { return cQuantityStyleKeyword_1; }
-
+		
 		//htmlPattern=STRING?
 		public Assignment getHtmlPatternAssignment_2() { return cHtmlPatternAssignment_2; }
-
+		
 		//STRING
 		public RuleCall getHtmlPatternSTRINGTerminalRuleCall_2_0() { return cHtmlPatternSTRINGTerminalRuleCall_2_0; }
-
-		//"value"
+		
+		//'value'
 		public Keyword getValueKeyword_3() { return cValueKeyword_3; }
-
-		//"="
+		
+		//'='
 		public Keyword getEqualsSignKeyword_4() { return cEqualsSignKeyword_4; }
-
+		
 		//valuePropertyPath=NestedField
 		public Assignment getValuePropertyPathAssignment_5() { return cValuePropertyPathAssignment_5; }
-
+		
 		//NestedField
 		public RuleCall getValuePropertyPathNestedFieldParserRuleCall_5_0() { return cValuePropertyPathNestedFieldParserRuleCall_5_0; }
-
-		//("(" "format" valueNumberFormat=STRING ")")?
+		
+		//('(' 'format' valueNumberFormat=STRING ')')?
 		public Group getGroup_6() { return cGroup_6; }
-
-		//"("
+		
+		//'('
 		public Keyword getLeftParenthesisKeyword_6_0() { return cLeftParenthesisKeyword_6_0; }
-
-		//"format"
+		
+		//'format'
 		public Keyword getFormatKeyword_6_1() { return cFormatKeyword_6_1; }
-
+		
 		//valueNumberFormat=STRING
 		public Assignment getValueNumberFormatAssignment_6_2() { return cValueNumberFormatAssignment_6_2; }
-
+		
 		//STRING
 		public RuleCall getValueNumberFormatSTRINGTerminalRuleCall_6_2_0() { return cValueNumberFormatSTRINGTerminalRuleCall_6_2_0; }
-
-		//")"
+		
+		//')'
 		public Keyword getRightParenthesisKeyword_6_3() { return cRightParenthesisKeyword_6_3; }
-
-		//"uom"
+		
+		//'uom'
 		public Keyword getUomKeyword_7() { return cUomKeyword_7; }
-
-		//"="
+		
+		//'='
 		public Keyword getEqualsSignKeyword_8() { return cEqualsSignKeyword_8; }
-
+		
 		//uomPropertyPath=NestedField
 		public Assignment getUomPropertyPathAssignment_9() { return cUomPropertyPathAssignment_9; }
-
+		
 		//NestedField
 		public RuleCall getUomPropertyPathNestedFieldParserRuleCall_9_0() { return cUomPropertyPathNestedFieldParserRuleCall_9_0; }
 	}
-
 	public class PropertyPriceStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyPriceStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyPriceStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropPriceStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cPriceStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -2442,92 +2501,93 @@
 		private final Assignment cCurrencyPropertyPathAssignment_9 = (Assignment)cGroup.eContents().get(9);
 		private final RuleCall cCurrencyPropertyPathNestedFieldParserRuleCall_9_0 = (RuleCall)cCurrencyPropertyPathAssignment_9.eContents().get(0);
 		
-		//PropertyPriceStyle returns style::CxGridPropPriceStyle:
-		//	{style::CxGridPropPriceStyle} "priceStyle" htmlPattern=STRING? "value" "=" valuePropertyPath=NestedField ("("
-		//	"format" valueNumberFormat=STRING ")")? "currency" "=" currencyPropertyPath=NestedField;
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropPriceStyle} "priceStyle" htmlPattern=STRING? "value" "=" valuePropertyPath=NestedField ("(" "format"
-		//valueNumberFormat=STRING ")")? "currency" "=" currencyPropertyPath=NestedField
+		//PropertyPriceStyle style::CxGridPropPriceStyle:
+		//	{style::CxGridPropPriceStyle}
+		//	'priceStyle' htmlPattern=STRING? 'value' '=' valuePropertyPath=NestedField ('(' 'format' valueNumberFormat=STRING
+		//	')')? 'currency' '='
+		//	currencyPropertyPath=NestedField;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropPriceStyle} 'priceStyle' htmlPattern=STRING? 'value' '=' valuePropertyPath=NestedField ('(' 'format'
+		//valueNumberFormat=STRING ')')? 'currency' '=' currencyPropertyPath=NestedField
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropPriceStyle}
 		public Action getCxGridPropPriceStyleAction_0() { return cCxGridPropPriceStyleAction_0; }
-
-		//"priceStyle"
+		
+		//'priceStyle'
 		public Keyword getPriceStyleKeyword_1() { return cPriceStyleKeyword_1; }
-
+		
 		//htmlPattern=STRING?
 		public Assignment getHtmlPatternAssignment_2() { return cHtmlPatternAssignment_2; }
-
+		
 		//STRING
 		public RuleCall getHtmlPatternSTRINGTerminalRuleCall_2_0() { return cHtmlPatternSTRINGTerminalRuleCall_2_0; }
-
-		//"value"
+		
+		//'value'
 		public Keyword getValueKeyword_3() { return cValueKeyword_3; }
-
-		//"="
+		
+		//'='
 		public Keyword getEqualsSignKeyword_4() { return cEqualsSignKeyword_4; }
-
+		
 		//valuePropertyPath=NestedField
 		public Assignment getValuePropertyPathAssignment_5() { return cValuePropertyPathAssignment_5; }
-
+		
 		//NestedField
 		public RuleCall getValuePropertyPathNestedFieldParserRuleCall_5_0() { return cValuePropertyPathNestedFieldParserRuleCall_5_0; }
-
-		//("(" "format" valueNumberFormat=STRING ")")?
+		
+		//('(' 'format' valueNumberFormat=STRING ')')?
 		public Group getGroup_6() { return cGroup_6; }
-
-		//"("
+		
+		//'('
 		public Keyword getLeftParenthesisKeyword_6_0() { return cLeftParenthesisKeyword_6_0; }
-
-		//"format"
+		
+		//'format'
 		public Keyword getFormatKeyword_6_1() { return cFormatKeyword_6_1; }
-
+		
 		//valueNumberFormat=STRING
 		public Assignment getValueNumberFormatAssignment_6_2() { return cValueNumberFormatAssignment_6_2; }
-
+		
 		//STRING
 		public RuleCall getValueNumberFormatSTRINGTerminalRuleCall_6_2_0() { return cValueNumberFormatSTRINGTerminalRuleCall_6_2_0; }
-
-		//")"
+		
+		//')'
 		public Keyword getRightParenthesisKeyword_6_3() { return cRightParenthesisKeyword_6_3; }
-
-		//"currency"
+		
+		//'currency'
 		public Keyword getCurrencyKeyword_7() { return cCurrencyKeyword_7; }
-
-		//"="
+		
+		//'='
 		public Keyword getEqualsSignKeyword_8() { return cEqualsSignKeyword_8; }
-
+		
 		//currencyPropertyPath=NestedField
 		public Assignment getCurrencyPropertyPathAssignment_9() { return cCurrencyPropertyPathAssignment_9; }
-
+		
 		//NestedField
 		public RuleCall getCurrencyPropertyPathNestedFieldParserRuleCall_9_0() { return cCurrencyPropertyPathNestedFieldParserRuleCall_9_0; }
 	}
-
 	public class PropertyTextStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyTextStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyTextStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropTextStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cTextStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		
-		//PropertyTextStyle returns style::CxGridPropTextStyle:
-		//	{style::CxGridPropTextStyle} "textStyle";
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropTextStyle} "textStyle"
+		//PropertyTextStyle style::CxGridPropTextStyle:
+		//	{style::CxGridPropTextStyle}
+		//	'textStyle';
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropTextStyle} 'textStyle'
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropTextStyle}
 		public Action getCxGridPropTextStyleAction_0() { return cCxGridPropTextStyleAction_0; }
-
-		//"textStyle"
+		
+		//'textStyle'
 		public Keyword getTextStyleKeyword_1() { return cTextStyleKeyword_1; }
 	}
-
 	public class PropertyImageStyleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyImageStyle");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.PropertyImageStyle");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Action cCxGridPropImageStyleAction_0 = (Action)cGroup.eContents().get(0);
 		private final Keyword cImageStyleKeyword_1 = (Keyword)cGroup.eContents().get(1);
@@ -2540,66 +2600,67 @@
 		private final RuleCall cConfigsStyleConfigParserRuleCall_4_0 = (RuleCall)cConfigsAssignment_4.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
 		
-		//PropertyImageStyle returns style::CxGridPropImageStyle:
-		//	{style::CxGridPropImageStyle} "imageStyle" ("eventTopic" eventTopic=STRING)? "{" configs+=StyleConfig* "}";
-		public ParserRule getRule() { return rule; }
-
-		//{style::CxGridPropImageStyle} "imageStyle" ("eventTopic" eventTopic=STRING)? "{" configs+=StyleConfig* "}"
+		//PropertyImageStyle style::CxGridPropImageStyle:
+		//	{style::CxGridPropImageStyle}
+		//	'imageStyle' ('eventTopic' eventTopic=STRING)? '{'
+		//	configs+=StyleConfig*
+		//	'}';
+		@Override public ParserRule getRule() { return rule; }
+		
+		//{style::CxGridPropImageStyle} 'imageStyle' ('eventTopic' eventTopic=STRING)? '{' configs+=StyleConfig* '}'
 		public Group getGroup() { return cGroup; }
-
+		
 		//{style::CxGridPropImageStyle}
 		public Action getCxGridPropImageStyleAction_0() { return cCxGridPropImageStyleAction_0; }
-
-		//"imageStyle"
+		
+		//'imageStyle'
 		public Keyword getImageStyleKeyword_1() { return cImageStyleKeyword_1; }
-
-		//("eventTopic" eventTopic=STRING)?
+		
+		//('eventTopic' eventTopic=STRING)?
 		public Group getGroup_2() { return cGroup_2; }
-
-		//"eventTopic"
+		
+		//'eventTopic'
 		public Keyword getEventTopicKeyword_2_0() { return cEventTopicKeyword_2_0; }
-
+		
 		//eventTopic=STRING
 		public Assignment getEventTopicAssignment_2_1() { return cEventTopicAssignment_2_1; }
-
+		
 		//STRING
 		public RuleCall getEventTopicSTRINGTerminalRuleCall_2_1_0() { return cEventTopicSTRINGTerminalRuleCall_2_1_0; }
-
-		//"{"
+		
+		//'{'
 		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
-
+		
 		//configs+=StyleConfig*
 		public Assignment getConfigsAssignment_4() { return cConfigsAssignment_4; }
-
+		
 		//StyleConfig
 		public RuleCall getConfigsStyleConfigParserRuleCall_4_0() { return cConfigsStyleConfigParserRuleCall_4_0; }
-
-		//"}"
+		
+		//'}'
 		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
 	}
-
 	public class StyleConfigElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StyleConfig");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.StyleConfig");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final RuleCall cNumericToResourceStyleConfigParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cStringToResourceStyleConfigParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//StyleConfig returns style::CxGridStyleConfig:
+		//StyleConfig style::CxGridStyleConfig:
 		//	NumericToResourceStyleConfig | StringToResourceStyleConfig;
-		public ParserRule getRule() { return rule; }
-
+		@Override public ParserRule getRule() { return rule; }
+		
 		//NumericToResourceStyleConfig | StringToResourceStyleConfig
 		public Alternatives getAlternatives() { return cAlternatives; }
-
+		
 		//NumericToResourceStyleConfig
 		public RuleCall getNumericToResourceStyleConfigParserRuleCall_0() { return cNumericToResourceStyleConfigParserRuleCall_0; }
-
+		
 		//StringToResourceStyleConfig
 		public RuleCall getStringToResourceStyleConfigParserRuleCall_1() { return cStringToResourceStyleConfigParserRuleCall_1; }
 	}
-
 	public class NumericToResourceStyleConfigElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NumericToResourceStyleConfig");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.NumericToResourceStyleConfig");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cNumberKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cCompareAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -2610,40 +2671,39 @@
 		private final Assignment cResourceThemePathAssignment_4 = (Assignment)cGroup.eContents().get(4);
 		private final RuleCall cResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0 = (RuleCall)cResourceThemePathAssignment_4.eContents().get(0);
 		
-		//NumericToResourceStyleConfig returns style::CxGridStyleConfigNumericToResource:
-		//	"number" compare=StyleCompare value=LDouble "then" resourceThemePath=THEME_RESOURCE;
-		public ParserRule getRule() { return rule; }
-
-		//"number" compare=StyleCompare value=LDouble "then" resourceThemePath=THEME_RESOURCE
+		//NumericToResourceStyleConfig style::CxGridStyleConfigNumericToResource:
+		//	'number' compare=StyleCompare value=LDouble 'then' resourceThemePath=THEME_RESOURCE;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'number' compare=StyleCompare value=LDouble 'then' resourceThemePath=THEME_RESOURCE
 		public Group getGroup() { return cGroup; }
-
-		//"number"
+		
+		//'number'
 		public Keyword getNumberKeyword_0() { return cNumberKeyword_0; }
-
+		
 		//compare=StyleCompare
 		public Assignment getCompareAssignment_1() { return cCompareAssignment_1; }
-
+		
 		//StyleCompare
 		public RuleCall getCompareStyleCompareEnumRuleCall_1_0() { return cCompareStyleCompareEnumRuleCall_1_0; }
-
+		
 		//value=LDouble
 		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
-
+		
 		//LDouble
 		public RuleCall getValueLDoubleParserRuleCall_2_0() { return cValueLDoubleParserRuleCall_2_0; }
-
-		//"then"
+		
+		//'then'
 		public Keyword getThenKeyword_3() { return cThenKeyword_3; }
-
+		
 		//resourceThemePath=THEME_RESOURCE
 		public Assignment getResourceThemePathAssignment_4() { return cResourceThemePathAssignment_4; }
-
+		
 		//THEME_RESOURCE
 		public RuleCall getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0() { return cResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0; }
 	}
-
 	public class StringToResourceStyleConfigElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StringToResourceStyleConfig");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.StringToResourceStyleConfig");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cStringKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cCompareAssignment_1 = (Assignment)cGroup.eContents().get(1);
@@ -2654,210 +2714,155 @@
 		private final Assignment cResourceThemePathAssignment_4 = (Assignment)cGroup.eContents().get(4);
 		private final RuleCall cResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0 = (RuleCall)cResourceThemePathAssignment_4.eContents().get(0);
 		
-		//StringToResourceStyleConfig returns style::CxGridStyleConfigStringToResource:
-		//	"string" compare=StyleCompare value=STRING "then" resourceThemePath=THEME_RESOURCE;
-		public ParserRule getRule() { return rule; }
-
-		//"string" compare=StyleCompare value=STRING "then" resourceThemePath=THEME_RESOURCE
+		//StringToResourceStyleConfig style::CxGridStyleConfigStringToResource:
+		//	'string' compare=StyleCompare value=STRING 'then' resourceThemePath=THEME_RESOURCE;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'string' compare=StyleCompare value=STRING 'then' resourceThemePath=THEME_RESOURCE
 		public Group getGroup() { return cGroup; }
-
-		//"string"
+		
+		//'string'
 		public Keyword getStringKeyword_0() { return cStringKeyword_0; }
-
+		
 		//compare=StyleCompare
 		public Assignment getCompareAssignment_1() { return cCompareAssignment_1; }
-
+		
 		//StyleCompare
 		public RuleCall getCompareStyleCompareEnumRuleCall_1_0() { return cCompareStyleCompareEnumRuleCall_1_0; }
-
+		
 		//value=STRING
 		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
-
+		
 		//STRING
 		public RuleCall getValueSTRINGTerminalRuleCall_2_0() { return cValueSTRINGTerminalRuleCall_2_0; }
-
-		//"then"
+		
+		//'then'
 		public Keyword getThenKeyword_3() { return cThenKeyword_3; }
-
+		
 		//resourceThemePath=THEME_RESOURCE
 		public Assignment getResourceThemePathAssignment_4() { return cResourceThemePathAssignment_4; }
-
+		
 		//THEME_RESOURCE
 		public RuleCall getResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0() { return cResourceThemePathTHEME_RESOURCETerminalRuleCall_4_0; }
 	}
-
 	public class LIntElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LInt");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.LInt");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
 		private final Keyword cPlusSignKeyword_0_0 = (Keyword)cAlternatives_0.eContents().get(0);
 		private final Keyword cHyphenMinusKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
 		private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
 		
-		//LInt returns ecore::EInt:
-		//	("+" | "-")? INT;
-		public ParserRule getRule() { return rule; }
-
-		//("+" | "-")? INT
+		//LInt ecore::EInt:
+		//	('+' | '-')? INT;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//('+' | '-')? INT
 		public Group getGroup() { return cGroup; }
-
-		//("+" | "-")?
+		
+		//('+' | '-')?
 		public Alternatives getAlternatives_0() { return cAlternatives_0; }
-
-		//"+"
+		
+		//'+'
 		public Keyword getPlusSignKeyword_0_0() { return cPlusSignKeyword_0_0; }
-
-		//"-"
+		
+		//'-'
 		public Keyword getHyphenMinusKeyword_0_1() { return cHyphenMinusKeyword_0_1; }
-
+		
 		//INT
 		public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; }
 	}
-
 	public class LDoubleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LDouble");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.LDouble");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final RuleCall cLIntParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
 		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
 		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
 		private final RuleCall cINTTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
 		
-		//LDouble returns ecore::EDouble:
-		//	LInt ("." INT)?;
-		public ParserRule getRule() { return rule; }
-
-		//LInt ("." INT)?
+		//LDouble ecore::EDouble:
+		//	LInt ('.' INT)?;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//LInt ('.' INT)?
 		public Group getGroup() { return cGroup; }
-
+		
 		//LInt
 		public RuleCall getLIntParserRuleCall_0() { return cLIntParserRuleCall_0; }
-
-		//("." INT)?
+		
+		//('.' INT)?
 		public Group getGroup_1() { return cGroup_1; }
-
-		//"."
+		
+		//'.'
 		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
-
+		
 		//INT
 		public RuleCall getINTTerminalRuleCall_1_1() { return cINTTerminalRuleCall_1_1; }
 	}
-
 	public class SignedNumberElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SignedNumber");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.SignedNumber");
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final RuleCall cNumberParserRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
 		
 		////  ----------------- grid ends ------------------------
-		//SignedNumber returns ecore::EDouble:
-		//	"-"? Number;
-		public ParserRule getRule() { return rule; }
-
-		//"-"? Number
+		//SignedNumber ecore::EDouble:
+		//	'-'? Number;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'-'? Number
 		public Group getGroup() { return cGroup; }
-
-		//"-"?
+		
+		//'-'?
 		public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
-
+		
 		//Number
 		public RuleCall getNumberParserRuleCall_1() { return cNumberParserRuleCall_1; }
 	}
-
-	public class TableQualifiedNameWithWildCardElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableQualifiedNameWithWildCard");
+	public class SignedIntElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.SignedInt");
 		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final RuleCall cQualifiedNameParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
-		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
-		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
-		private final Keyword cAsteriskKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1);
+		private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
 		
-		//TableQualifiedNameWithWildCard:
-		//	QualifiedName ("." "*")?;
-		public ParserRule getRule() { return rule; }
-
-		//QualifiedName ("." "*")?
+		//SignedInt ecore::EInt:
+		//	'-'? INT;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'-'? INT
 		public Group getGroup() { return cGroup; }
-
-		//QualifiedName
-		public RuleCall getQualifiedNameParserRuleCall_0() { return cQualifiedNameParserRuleCall_0; }
-
-		//("." "*")?
-		public Group getGroup_1() { return cGroup_1; }
-
-		//"."
-		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
-
-		//"*"
-		public Keyword getAsteriskKeyword_1_1() { return cAsteriskKeyword_1_1; }
-	}
-
-	public class QualifiedNameElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "QualifiedName");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final RuleCall cValidIDParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
-		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
-		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
-		private final RuleCall cValidIDParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
 		
-		//QualifiedName:
-		//	ValidID ("." ValidID)*;
-		public ParserRule getRule() { return rule; }
-
-		//ValidID ("." ValidID)*
-		public Group getGroup() { return cGroup; }
-
-		//ValidID
-		public RuleCall getValidIDParserRuleCall_0() { return cValidIDParserRuleCall_0; }
-
-		//(=> "." ValidID)*
-		public Group getGroup_1() { return cGroup_1; }
-
-		//=> "."
-		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
-
-		//ValidID
-		public RuleCall getValidIDParserRuleCall_1_1() { return cValidIDParserRuleCall_1_1; }
-	}
-
-	public class ValidIDElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ValidID");
-		private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
+		//'-'?
+		public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
 		
-		//ValidID:
-		//	ID;
-		public ParserRule getRule() { return rule; }
-
-		//ID
-		public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
+		//INT
+		public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; }
 	}
-
 	public class TRANSLATABLESTRINGElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TRANSLATABLESTRING");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TRANSLATABLESTRING");
 		private final RuleCall cSTRINGTerminalRuleCall = (RuleCall)rule.eContents().get(1);
 		
 		//TRANSLATABLESTRING:
 		//	STRING;
-		public ParserRule getRule() { return rule; }
-
+		@Override public ParserRule getRule() { return rule; }
+		
 		//STRING
 		public RuleCall getSTRINGTerminalRuleCall() { return cSTRINGTerminalRuleCall; }
 	}
-
 	public class TRANSLATABLEIDElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TRANSLATABLEID");
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TRANSLATABLEID");
 		private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
 		
 		//TRANSLATABLEID:
 		//	ID;
-		public ParserRule getRule() { return rule; }
-
+		@Override public ParserRule getRule() { return rule; }
+		
 		//ID
 		public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
 	}
 	
-	
 	public class StyleCompareElements extends AbstractEnumRuleElementFinder {
-		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "StyleCompare");
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.StyleCompare");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final EnumLiteralDeclaration cEqualEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
 		private final Keyword cEqualEqualKeyword_0_0 = (Keyword)cEqualEnumLiteralDeclaration_0.eContents().get(0);
@@ -2876,50 +2881,49 @@
 		//	Equal="equal" | GreaterEqual="greater equal" | GreaterThan="greater than" | LowerEqual="lower equal" |
 		//	LowerThan="lower than" | NotEqual="not equal";
 		public EnumRule getRule() { return rule; }
-
+		
 		//Equal="equal" | GreaterEqual="greater equal" | GreaterThan="greater than" | LowerEqual="lower equal" |
 		//LowerThan="lower than" | NotEqual="not equal"
 		public Alternatives getAlternatives() { return cAlternatives; }
-
+		
 		//Equal="equal"
 		public EnumLiteralDeclaration getEqualEnumLiteralDeclaration_0() { return cEqualEnumLiteralDeclaration_0; }
-
+		
 		//"equal"
 		public Keyword getEqualEqualKeyword_0_0() { return cEqualEqualKeyword_0_0; }
-
+		
 		//GreaterEqual="greater equal"
 		public EnumLiteralDeclaration getGreaterEqualEnumLiteralDeclaration_1() { return cGreaterEqualEnumLiteralDeclaration_1; }
-
+		
 		//"greater equal"
 		public Keyword getGreaterEqualGreaterEqualKeyword_1_0() { return cGreaterEqualGreaterEqualKeyword_1_0; }
-
+		
 		//GreaterThan="greater than"
 		public EnumLiteralDeclaration getGreaterThanEnumLiteralDeclaration_2() { return cGreaterThanEnumLiteralDeclaration_2; }
-
+		
 		//"greater than"
 		public Keyword getGreaterThanGreaterThanKeyword_2_0() { return cGreaterThanGreaterThanKeyword_2_0; }
-
+		
 		//LowerEqual="lower equal"
 		public EnumLiteralDeclaration getLowerEqualEnumLiteralDeclaration_3() { return cLowerEqualEnumLiteralDeclaration_3; }
-
+		
 		//"lower equal"
 		public Keyword getLowerEqualLowerEqualKeyword_3_0() { return cLowerEqualLowerEqualKeyword_3_0; }
-
+		
 		//LowerThan="lower than"
 		public EnumLiteralDeclaration getLowerThanEnumLiteralDeclaration_4() { return cLowerThanEnumLiteralDeclaration_4; }
-
+		
 		//"lower than"
 		public Keyword getLowerThanLowerThanKeyword_4_0() { return cLowerThanLowerThanKeyword_4_0; }
-
+		
 		//NotEqual="not equal"
 		public EnumLiteralDeclaration getNotEqualEnumLiteralDeclaration_5() { return cNotEqualEnumLiteralDeclaration_5; }
-
+		
 		//"not equal"
 		public Keyword getNotEqualNotEqualKeyword_5_0() { return cNotEqualNotEqualKeyword_5_0; }
 	}
-
 	public class TrendIconEnumElements extends AbstractEnumRuleElementFinder {
-		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "TrendIconEnum");
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.TrendIconEnum");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final EnumLiteralDeclaration cRISINGEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
 		private final Keyword cRISINGRisingKeyword_0_0 = (Keyword)cRISINGEnumLiteralDeclaration_0.eContents().get(0);
@@ -2933,45 +2937,44 @@
 		private final Keyword cSTAGNATINGStagnatingKeyword_4_0 = (Keyword)cSTAGNATINGEnumLiteralDeclaration_4.eContents().get(0);
 		
 		//enum TrendIconEnum:
-		//	RISING="rising" | BADRISING="bad-rising" | SLOPING="sloping" | GOODSLOPING="good-sloping" | STAGNATING="stagnating";
+		//	RISING='rising' | BADRISING='bad-rising' | SLOPING='sloping' | GOODSLOPING='good-sloping' | STAGNATING='stagnating';
 		public EnumRule getRule() { return rule; }
-
-		//RISING="rising" | BADRISING="bad-rising" | SLOPING="sloping" | GOODSLOPING="good-sloping" | STAGNATING="stagnating"
+		
+		//RISING='rising' | BADRISING='bad-rising' | SLOPING='sloping' | GOODSLOPING='good-sloping' | STAGNATING='stagnating'
 		public Alternatives getAlternatives() { return cAlternatives; }
-
-		//RISING="rising"
+		
+		//RISING='rising'
 		public EnumLiteralDeclaration getRISINGEnumLiteralDeclaration_0() { return cRISINGEnumLiteralDeclaration_0; }
-
-		//"rising"
+		
+		//'rising'
 		public Keyword getRISINGRisingKeyword_0_0() { return cRISINGRisingKeyword_0_0; }
-
-		//BADRISING="bad-rising"
+		
+		//BADRISING='bad-rising'
 		public EnumLiteralDeclaration getBADRISINGEnumLiteralDeclaration_1() { return cBADRISINGEnumLiteralDeclaration_1; }
-
-		//"bad-rising"
+		
+		//'bad-rising'
 		public Keyword getBADRISINGBadRisingKeyword_1_0() { return cBADRISINGBadRisingKeyword_1_0; }
-
-		//SLOPING="sloping"
+		
+		//SLOPING='sloping'
 		public EnumLiteralDeclaration getSLOPINGEnumLiteralDeclaration_2() { return cSLOPINGEnumLiteralDeclaration_2; }
-
-		//"sloping"
+		
+		//'sloping'
 		public Keyword getSLOPINGSlopingKeyword_2_0() { return cSLOPINGSlopingKeyword_2_0; }
-
-		//GOODSLOPING="good-sloping"
+		
+		//GOODSLOPING='good-sloping'
 		public EnumLiteralDeclaration getGOODSLOPINGEnumLiteralDeclaration_3() { return cGOODSLOPINGEnumLiteralDeclaration_3; }
-
-		//"good-sloping"
+		
+		//'good-sloping'
 		public Keyword getGOODSLOPINGGoodSlopingKeyword_3_0() { return cGOODSLOPINGGoodSlopingKeyword_3_0; }
-
-		//STAGNATING="stagnating"
+		
+		//STAGNATING='stagnating'
 		public EnumLiteralDeclaration getSTAGNATINGEnumLiteralDeclaration_4() { return cSTAGNATINGEnumLiteralDeclaration_4; }
-
-		//"stagnating"
+		
+		//'stagnating'
 		public Keyword getSTAGNATINGStagnatingKeyword_4_0() { return cSTAGNATINGStagnatingKeyword_4_0; }
 	}
-
 	public class RowHeaderModeElements extends AbstractEnumRuleElementFinder {
-		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "RowHeaderMode");
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.RowHeaderMode");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final EnumLiteralDeclaration cHIDDENEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
 		private final Keyword cHIDDENHiddenKeyword_0_0 = (Keyword)cHIDDENEnumLiteralDeclaration_0.eContents().get(0);
@@ -2981,33 +2984,32 @@
 		private final Keyword cINDEXIndexedKeyword_2_0 = (Keyword)cINDEXEnumLiteralDeclaration_2.eContents().get(0);
 		
 		//enum RowHeaderMode:
-		//	HIDDEN="hidden" | EXPLICIT_DEFAULTS_ID="explicit" | INDEX="indexed";
+		//	HIDDEN='hidden' | EXPLICIT_DEFAULTS_ID='explicit' | INDEX='indexed';
 		public EnumRule getRule() { return rule; }
-
-		//HIDDEN="hidden" | EXPLICIT_DEFAULTS_ID="explicit" | INDEX="indexed"
+		
+		//HIDDEN='hidden' | EXPLICIT_DEFAULTS_ID='explicit' | INDEX='indexed'
 		public Alternatives getAlternatives() { return cAlternatives; }
-
-		//HIDDEN="hidden"
+		
+		//HIDDEN='hidden'
 		public EnumLiteralDeclaration getHIDDENEnumLiteralDeclaration_0() { return cHIDDENEnumLiteralDeclaration_0; }
-
-		//"hidden"
+		
+		//'hidden'
 		public Keyword getHIDDENHiddenKeyword_0_0() { return cHIDDENHiddenKeyword_0_0; }
-
-		//EXPLICIT_DEFAULTS_ID="explicit"
+		
+		//EXPLICIT_DEFAULTS_ID='explicit'
 		public EnumLiteralDeclaration getEXPLICIT_DEFAULTS_IDEnumLiteralDeclaration_1() { return cEXPLICIT_DEFAULTS_IDEnumLiteralDeclaration_1; }
-
-		//"explicit"
+		
+		//'explicit'
 		public Keyword getEXPLICIT_DEFAULTS_IDExplicitKeyword_1_0() { return cEXPLICIT_DEFAULTS_IDExplicitKeyword_1_0; }
-
-		//INDEX="indexed"
+		
+		//INDEX='indexed'
 		public EnumLiteralDeclaration getINDEXEnumLiteralDeclaration_2() { return cINDEXEnumLiteralDeclaration_2; }
-
-		//"indexed"
+		
+		//'indexed'
 		public Keyword getINDEXIndexedKeyword_2_0() { return cINDEXIndexedKeyword_2_0; }
 	}
-
 	public class AxisEnumElements extends AbstractEnumRuleElementFinder {
-		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "AxisEnum");
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.AxisEnum");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
 		private final EnumLiteralDeclaration cDEFAULTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
 		private final Keyword cDEFAULTDefaultKeyword_0_0 = (Keyword)cDEFAULTEnumLiteralDeclaration_0.eContents().get(0);
@@ -3022,47 +3024,48 @@
 		private final EnumLiteralDeclaration cCHAPTERSEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
 		private final Keyword cCHAPTERSChaptersKeyword_5_0 = (Keyword)cCHAPTERSEnumLiteralDeclaration_5.eContents().get(0);
 		
-		/// * | AXIS(<index>)* / enum AxisEnum returns datamart::AxisEnum:
-		//	DEFAULT="default" | COLUMNS="columns" | ROWS="rows" | PAGES="pages" | SECTIONS="sections" | CHAPTERS="chapters";
+		//enum AxisEnum returns datamart::AxisEnum:
+		//	DEFAULT='default' | COLUMNS='columns' | ROWS='rows' | PAGES='pages' | SECTIONS='sections' | CHAPTERS='chapters'
+		//	/* | AXIS(<index>)*/;
 		public EnumRule getRule() { return rule; }
-
-		//DEFAULT="default" | COLUMNS="columns" | ROWS="rows" | PAGES="pages" | SECTIONS="sections" | CHAPTERS="chapters"
+		
+		//DEFAULT='default' | COLUMNS='columns' | ROWS='rows' | PAGES='pages' | SECTIONS='sections' | CHAPTERS='chapters'
 		public Alternatives getAlternatives() { return cAlternatives; }
-
-		//DEFAULT="default"
+		
+		//DEFAULT='default'
 		public EnumLiteralDeclaration getDEFAULTEnumLiteralDeclaration_0() { return cDEFAULTEnumLiteralDeclaration_0; }
-
-		//"default"
+		
+		//'default'
 		public Keyword getDEFAULTDefaultKeyword_0_0() { return cDEFAULTDefaultKeyword_0_0; }
-
-		//COLUMNS="columns"
+		
+		//COLUMNS='columns'
 		public EnumLiteralDeclaration getCOLUMNSEnumLiteralDeclaration_1() { return cCOLUMNSEnumLiteralDeclaration_1; }
-
-		//"columns"
+		
+		//'columns'
 		public Keyword getCOLUMNSColumnsKeyword_1_0() { return cCOLUMNSColumnsKeyword_1_0; }
-
-		//ROWS="rows"
+		
+		//ROWS='rows'
 		public EnumLiteralDeclaration getROWSEnumLiteralDeclaration_2() { return cROWSEnumLiteralDeclaration_2; }
-
-		//"rows"
+		
+		//'rows'
 		public Keyword getROWSRowsKeyword_2_0() { return cROWSRowsKeyword_2_0; }
-
-		//PAGES="pages"
+		
+		//PAGES='pages'
 		public EnumLiteralDeclaration getPAGESEnumLiteralDeclaration_3() { return cPAGESEnumLiteralDeclaration_3; }
-
-		//"pages"
+		
+		//'pages'
 		public Keyword getPAGESPagesKeyword_3_0() { return cPAGESPagesKeyword_3_0; }
-
-		//SECTIONS="sections"
+		
+		//SECTIONS='sections'
 		public EnumLiteralDeclaration getSECTIONSEnumLiteralDeclaration_4() { return cSECTIONSEnumLiteralDeclaration_4; }
-
-		//"sections"
+		
+		//'sections'
 		public Keyword getSECTIONSSectionsKeyword_4_0() { return cSECTIONSSectionsKeyword_4_0; }
-
-		//CHAPTERS="chapters"
+		
+		//CHAPTERS='chapters'
 		public EnumLiteralDeclaration getCHAPTERSEnumLiteralDeclaration_5() { return cCHAPTERSEnumLiteralDeclaration_5; }
-
-		//"chapters"
+		
+		//'chapters'
 		public Keyword getCHAPTERSChaptersKeyword_5_0() { return cCHAPTERSChaptersKeyword_5_0; }
 	}
 	
@@ -3072,6 +3075,7 @@
 	private final TableOptionElements pTableOption;
 	private final TableSelectionElements pTableSelection;
 	private final TableTableElements pTableTable;
+	private final TableBeanElements pTableBean;
 	private final TablePreorderElements pTablePreorder;
 	private final TableValueElements pTableValue;
 	private final TableFormatterElements pTableFormatter;
@@ -3085,19 +3089,20 @@
 	private final TableMeasureElements pTableMeasure;
 	private final TableDerivedElements pTableDerived;
 	private final TableHierarchyElements pTableHierarchy;
-	private final TablePropertyElements pTableProperty;
+	private final TableAttributeElements pTableAttribute;
 	private final TableAggregationElements pTableAggregation;
 	private final TableIntervalElements pTableInterval;
 	private final TableNumberIntervalElements pTableNumberInterval;
+	private final TableIntIntervalElements pTableIntInterval;
 	private final TableDateDayIntervalElements pTableDateDayInterval;
 	private final TableLookupElements pTableLookup;
+	private final TableIntLookupElements pTableIntLookup;
 	private final TableNumberLookupElements pTableNumberLookup;
 	private final TableStringLookupElements pTableStringLookup;
 	private final TableDateDayLookupElements pTableDateDayLookup;
 	private final TableDatamartElements pTableDatamart;
 	private final TableElementElements pTableElement;
 	private final TableEventElements pTableEvent;
-	private final TableBrokerDatamartElements pTableBrokerDatamart;
 	private final TableAxisElements pTableAxis;
 	private final TableRangeElementElements pTableRangeElement;
 	private final TableTextColorElements pTableTextColor;
@@ -3105,10 +3110,9 @@
 	private final TableIconElements pTableIcon;
 	private final TableTrendElements pTableTrend;
 	private final TableTooltipElements pTableTooltip;
-	private final TableImportElements pTableImport;
 	private final TableGridElements pTableGrid;
-	private final TableDtoDatasourceElements pTableDtoDatasource;
 	private final PropertyElements pProperty;
+	private final TableDtoDatasourceElements pTableDtoDatasource;
 	private final NestedFieldElements pNestedField;
 	private final NestedPathElements pNestedPath;
 	private final PropertyStyleElements pPropertyStyle;
@@ -3126,38 +3130,47 @@
 	private final StyleConfigElements pStyleConfig;
 	private final NumericToResourceStyleConfigElements pNumericToResourceStyleConfig;
 	private final StringToResourceStyleConfigElements pStringToResourceStyleConfig;
-	private final StyleCompareElements unknownRuleStyleCompare;
-	private final TerminalRule tID;
-	private final TerminalRule tINT;
+	private final StyleCompareElements eStyleCompare;
 	private final TerminalRule tTHEME_RESOURCE;
 	private final LIntElements pLInt;
 	private final LDoubleElements pLDouble;
 	private final TerminalRule tEVENT_TOPIC;
 	private final SignedNumberElements pSignedNumber;
-	private final TableQualifiedNameWithWildCardElements pTableQualifiedNameWithWildCard;
-	private final QualifiedNameElements pQualifiedName;
-	private final ValidIDElements pValidID;
+	private final SignedIntElements pSignedInt;
 	private final TRANSLATABLESTRINGElements pTRANSLATABLESTRING;
 	private final TRANSLATABLEIDElements pTRANSLATABLEID;
-	private final TrendIconEnumElements unknownRuleTrendIconEnum;
-	private final RowHeaderModeElements unknownRuleRowHeaderMode;
-	private final AxisEnumElements unknownRuleAxisEnum;
+	private final TrendIconEnumElements eTrendIconEnum;
+	private final RowHeaderModeElements eRowHeaderMode;
+	private final AxisEnumElements eAxisEnum;
 	
 	private final Grammar grammar;
-
+	
+	private final OXtypeGrammarAccess gaOXtype;
+	
 	private final XbaseWithAnnotationsGrammarAccess gaXbaseWithAnnotations;
+	
+	private final XbaseGrammarAccess gaXbase;
+	
+	private final XtypeGrammarAccess gaXtype;
 
 	@Inject
 	public TableDSLGrammarAccess(GrammarProvider grammarProvider,
-		XbaseWithAnnotationsGrammarAccess gaXbaseWithAnnotations) {
+			OXtypeGrammarAccess gaOXtype,
+			XbaseWithAnnotationsGrammarAccess gaXbaseWithAnnotations,
+			XbaseGrammarAccess gaXbase,
+			XtypeGrammarAccess gaXtype) {
 		this.grammar = internalFindGrammar(grammarProvider);
+		this.gaOXtype = gaOXtype;
 		this.gaXbaseWithAnnotations = gaXbaseWithAnnotations;
+		this.gaXbase = gaXbase;
+		this.gaXtype = gaXtype;
 		this.pTableModel = new TableModelElements();
 		this.pTablePackage = new TablePackageElements();
 		this.pTable = new TableElements();
 		this.pTableOption = new TableOptionElements();
 		this.pTableSelection = new TableSelectionElements();
 		this.pTableTable = new TableTableElements();
+		this.pTableBean = new TableBeanElements();
 		this.pTablePreorder = new TablePreorderElements();
 		this.pTableValue = new TableValueElements();
 		this.pTableFormatter = new TableFormatterElements();
@@ -3171,19 +3184,20 @@
 		this.pTableMeasure = new TableMeasureElements();
 		this.pTableDerived = new TableDerivedElements();
 		this.pTableHierarchy = new TableHierarchyElements();
-		this.pTableProperty = new TablePropertyElements();
+		this.pTableAttribute = new TableAttributeElements();
 		this.pTableAggregation = new TableAggregationElements();
 		this.pTableInterval = new TableIntervalElements();
 		this.pTableNumberInterval = new TableNumberIntervalElements();
+		this.pTableIntInterval = new TableIntIntervalElements();
 		this.pTableDateDayInterval = new TableDateDayIntervalElements();
 		this.pTableLookup = new TableLookupElements();
+		this.pTableIntLookup = new TableIntLookupElements();
 		this.pTableNumberLookup = new TableNumberLookupElements();
 		this.pTableStringLookup = new TableStringLookupElements();
 		this.pTableDateDayLookup = new TableDateDayLookupElements();
 		this.pTableDatamart = new TableDatamartElements();
 		this.pTableElement = new TableElementElements();
 		this.pTableEvent = new TableEventElements();
-		this.pTableBrokerDatamart = new TableBrokerDatamartElements();
 		this.pTableAxis = new TableAxisElements();
 		this.pTableRangeElement = new TableRangeElementElements();
 		this.pTableTextColor = new TableTextColorElements();
@@ -3191,10 +3205,9 @@
 		this.pTableIcon = new TableIconElements();
 		this.pTableTrend = new TableTrendElements();
 		this.pTableTooltip = new TableTooltipElements();
-		this.pTableImport = new TableImportElements();
 		this.pTableGrid = new TableGridElements();
-		this.pTableDtoDatasource = new TableDtoDatasourceElements();
 		this.pProperty = new PropertyElements();
+		this.pTableDtoDatasource = new TableDtoDatasourceElements();
 		this.pNestedField = new NestedFieldElements();
 		this.pNestedPath = new NestedPathElements();
 		this.pPropertyStyle = new PropertyStyleElements();
@@ -3212,22 +3225,18 @@
 		this.pStyleConfig = new StyleConfigElements();
 		this.pNumericToResourceStyleConfig = new NumericToResourceStyleConfigElements();
 		this.pStringToResourceStyleConfig = new StringToResourceStyleConfigElements();
-		this.unknownRuleStyleCompare = new StyleCompareElements();
-		this.tID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ID");
-		this.tINT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "INT");
-		this.tTHEME_RESOURCE = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "THEME_RESOURCE");
+		this.eStyleCompare = new StyleCompareElements();
+		this.tTHEME_RESOURCE = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.THEME_RESOURCE");
 		this.pLInt = new LIntElements();
 		this.pLDouble = new LDoubleElements();
-		this.tEVENT_TOPIC = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "EVENT_TOPIC");
+		this.tEVENT_TOPIC = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.osbp.xtext.table.TableDSL.EVENT_TOPIC");
 		this.pSignedNumber = new SignedNumberElements();
-		this.pTableQualifiedNameWithWildCard = new TableQualifiedNameWithWildCardElements();
-		this.pQualifiedName = new QualifiedNameElements();
-		this.pValidID = new ValidIDElements();
+		this.pSignedInt = new SignedIntElements();
 		this.pTRANSLATABLESTRING = new TRANSLATABLESTRINGElements();
 		this.pTRANSLATABLEID = new TRANSLATABLEIDElements();
-		this.unknownRuleTrendIconEnum = new TrendIconEnumElements();
-		this.unknownRuleRowHeaderMode = new RowHeaderModeElements();
-		this.unknownRuleAxisEnum = new AxisEnumElements();
+		this.eTrendIconEnum = new TrendIconEnumElements();
+		this.eRowHeaderMode = new RowHeaderModeElements();
+		this.eAxisEnum = new AxisEnumElements();
 	}
 	
 	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
@@ -3246,18 +3255,31 @@
 		return grammar;
 	}
 	
-	
+	@Override
 	public Grammar getGrammar() {
 		return grammar;
 	}
 	
-
+	
+	public OXtypeGrammarAccess getOXtypeGrammarAccess() {
+		return gaOXtype;
+	}
+	
 	public XbaseWithAnnotationsGrammarAccess getXbaseWithAnnotationsGrammarAccess() {
 		return gaXbaseWithAnnotations;
 	}
+	
+	public XbaseGrammarAccess getXbaseGrammarAccess() {
+		return gaXbase;
+	}
+	
+	public XtypeGrammarAccess getXtypeGrammarAccess() {
+		return gaXtype;
+	}
 
 	
 	//TableModel:
+	//	importSection=XImportSection?
 	//	packages+=TablePackage*;
 	public TableModelElements getTableModelAccess() {
 		return pTableModel;
@@ -3266,9 +3288,9 @@
 	public ParserRule getTableModelRule() {
 		return getTableModelAccess().getRule();
 	}
-
+	
 	//TablePackage:
-	//	{TablePackage} "package" name=QualifiedName ("{" imports+=TableImport* tables+=Table* "}")?;
+	//	{TablePackage} 'package' name=QualifiedName ('{' tables+=Table* '}')?;
 	public TablePackageElements getTablePackageAccess() {
 		return pTablePackage;
 	}
@@ -3276,10 +3298,10 @@
 	public ParserRule getTablePackageRule() {
 		return getTablePackageAccess().getRule();
 	}
-
+	
 	//Table:
-	//	{Table} "table" name=TRANSLATABLEID (description?="described by" descriptionValue=TRANSLATABLESTRING)? "as"
-	//	tabletype=TableOption;
+	//	{Table} 'table' name=ID (description?='describedBy' descriptionValue=TRANSLATABLESTRING)?
+	//	'as' tabletype=TableOption;
 	public TableElements getTableAccess() {
 		return pTable;
 	}
@@ -3287,9 +3309,9 @@
 	public ParserRule getTableRule() {
 		return getTableAccess().getRule();
 	}
-
+	
 	//TableOption:
-	//	TableSelection | TableTable | TableGrid;
+	//	TableSelection | TableTable | TableGrid | TableBean;
 	public TableOptionElements getTableOptionAccess() {
 		return pTableOption;
 	}
@@ -3297,11 +3319,11 @@
 	public ParserRule getTableOptionRule() {
 		return getTableOptionAccess().getRule();
 	}
-
+	
 	//TableSelection:
-	//	{TableSelection} (multiSelection?="multiselection" | "singleselection") (selectalways?="selectalways"? & ("rowheader"
-	//	headerMode=RowHeaderMode)?) ((polling?="polling" pollingTime=Number)? & filtering?="filtering"? &
-	//	embedded?="embedded"? & ("toolbar" toolbar=[action::ActionToolbar])?) ("using" source=TableDatamart)?;
+	//	{TableSelection} 'selection' (multiSelection?='multiple' | 'single') (selectalways?='alwaysSelected'? & ('rowHeader'
+	//	headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & filtering?='filtering'? &
+	//	embedded?='embedded'? & ('toolbar' toolbar=[action::ActionToolbar])?) ('using' source=TableDatamart)?;
 	public TableSelectionElements getTableSelectionAccess() {
 		return pTableSelection;
 	}
@@ -3309,11 +3331,11 @@
 	public ParserRule getTableSelectionRule() {
 		return getTableSelectionAccess().getRule();
 	}
-
+	
 	//TableTable:
-	//	{TableTable} "table" (selectalways?="selectalways"? & ("rowheader" headerMode=RowHeaderMode)?) ((polling?="polling"
-	//	pollingTime=Number)? & filtering?="filtering"? & embedded?="embedded"? & ("toolbar"
-	//	toolbar=[action::ActionToolbar])?) ("using" source=TableDatamart)?;
+	//	{TableTable} 'table' (selectalways?='alwaysSelected'? & selectById?='selectById'? & ('rowHeader'
+	//	headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & filtering?='filtering'? &
+	//	embedded?='embedded'? & ('toolbar' toolbar=[action::ActionToolbar])?) ('using' source=TableDatamart)?;
 	public TableTableElements getTableTableAccess() {
 		return pTableTable;
 	}
@@ -3321,9 +3343,21 @@
 	public ParserRule getTableTableRule() {
 		return getTableTableAccess().getRule();
 	}
-
+	
+	//TableBean:
+	//	{TableBean} 'bean' (selectalways?='alwaysSelected'? & selectById?='selectById'? & ('rowHeader'
+	//	headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & filtering?='filtering'? &
+	//	embedded?='embedded'? & ('toolbar' toolbar=[action::ActionToolbar])?) ('using' source=TableDatamart)?;
+	public TableBeanElements getTableBeanAccess() {
+		return pTableBean;
+	}
+	
+	public ParserRule getTableBeanRule() {
+		return getTableBeanAccess().getRule();
+	}
+	
 	//TablePreorder:
-	//	{TablePreorder} "preorder" column=TableValueElement ascending?="ascending"?;
+	//	{TablePreorder} 'preorder' column=TableValueElement ascending?='ascending'?;
 	public TablePreorderElements getTablePreorderAccess() {
 		return pTablePreorder;
 	}
@@ -3331,12 +3365,12 @@
 	public ParserRule getTablePreorderRule() {
 		return getTablePreorderAccess().getRule();
 	}
-
+	
 	//TableValue:
-	//	{TableValue} "value" column=TableValueElement (collapsed?="collapse"? & ("icon" iconName=STRING)? &
-	//	formatter=TableFormatter? & (hasImage?="image" image=TableImage)? & tooltipPattern=TableTooltipPattern?)
-	//	(("intervals" hideLabelInterval?="hidelabel"? "{" intervals+=TableInterval* "}")? & ("lookups"
-	//	hideLabelLookup?="hidelabel"? "{" lookups+=TableLookup* "}")?);
+	//	{TableValue} 'value' column=TableValueElement (collapsed?='collapse'? & ('icon' iconName=STRING)? &
+	//	formatter=TableFormatter? & (hasImage?='image' image=TableImage)? & tooltipPattern=TableTooltipPattern?) (('intervals'
+	//	hideLabelInterval?='hidelabel'? '{' intervals+=TableInterval* '}')? & ('lookups'
+	//	hideLabelLookup?='hidelabel'? '{' lookups+=TableLookup* '}')?);
 	public TableValueElements getTableValueAccess() {
 		return pTableValue;
 	}
@@ -3344,9 +3378,9 @@
 	public ParserRule getTableValueRule() {
 		return getTableValueAccess().getRule();
 	}
-
+	
 	//TableFormatter:
-	//	{TableFormatter} "formatter" format=STRING;
+	//	{TableFormatter} 'formatter' format=STRING;
 	public TableFormatterElements getTableFormatterAccess() {
 		return pTableFormatter;
 	}
@@ -3354,10 +3388,10 @@
 	public ParserRule getTableFormatterRule() {
 		return getTableFormatterAccess().getRule();
 	}
-
+	
 	//TableImage:
-	//	{TableImage} "path" imagePathPattern=STRING (hasParameter?="dynamic"? & hideImageLabel?="hidelabel"? &
-	//	(resize?="resize" resizeString=STRING)?);
+	//	{TableImage} 'path' imagePathPattern=STRING (hasParameter?='dynamic'? & hideImageLabel?='hidelabel'? &
+	//	(resize?='resize' resizeString=STRING)?);
 	public TableImageElements getTableImageAccess() {
 		return pTableImage;
 	}
@@ -3365,9 +3399,9 @@
 	public ParserRule getTableImageRule() {
 		return getTableImageAccess().getRule();
 	}
-
+	
 	//TableTooltipPattern:
-	//	{TableTooltipPattern} "tooltipPattern" tooltipPattern=TRANSLATABLESTRING;
+	//	{TableTooltipPattern} 'tooltipPattern' tooltipPattern=TRANSLATABLESTRING;
 	public TableTooltipPatternElements getTableTooltipPatternAccess() {
 		return pTableTooltipPattern;
 	}
@@ -3375,9 +3409,9 @@
 	public ParserRule getTableTooltipPatternRule() {
 		return getTableTooltipPatternAccess().getRule();
 	}
-
+	
 	//TableValueElement:
-	//	TableMeasure | TableDerived | TableHierarchy | TableProperty | TableAggregation | TableOrdinal | TableColumn |
+	//	TableMeasure | TableDerived | TableHierarchy | TableAttribute | TableAggregation | TableOrdinal | TableColumn |
 	//	TableTask | TableAllColumns;
 	public TableValueElementElements getTableValueElementAccess() {
 		return pTableValueElement;
@@ -3386,9 +3420,9 @@
 	public ParserRule getTableValueElementRule() {
 		return getTableValueElementAccess().getRule();
 	}
-
+	
 	//TableTask:
-	//	{TableTask} "taskId";
+	//	{TableTask} 'taskId';
 	public TableTaskElements getTableTaskAccess() {
 		return pTableTask;
 	}
@@ -3396,9 +3430,9 @@
 	public ParserRule getTableTaskRule() {
 		return getTableTaskAccess().getRule();
 	}
-
+	
 	//TableAllColumns:
-	//	{TableAllColumns} "allColumns";
+	//	{TableAllColumns} 'allColumns';
 	public TableAllColumnsElements getTableAllColumnsAccess() {
 		return pTableAllColumns;
 	}
@@ -3406,9 +3440,9 @@
 	public ParserRule getTableAllColumnsRule() {
 		return getTableAllColumnsAccess().getRule();
 	}
-
+	
 	//TableOrdinal:
-	//	"ordinal" valueRef=Number;
+	//	'ordinal' valueRef=Number;
 	public TableOrdinalElements getTableOrdinalAccess() {
 		return pTableOrdinal;
 	}
@@ -3416,9 +3450,9 @@
 	public ParserRule getTableOrdinalRule() {
 		return getTableOrdinalAccess().getRule();
 	}
-
+	
 	//TableColumn:
-	//	"column" valueRef=[datamart::DatamartColumn];
+	//	'column' valueRef=[datamart::DatamartColumn];
 	public TableColumnElements getTableColumnAccess() {
 		return pTableColumn;
 	}
@@ -3426,9 +3460,9 @@
 	public ParserRule getTableColumnRule() {
 		return getTableColumnAccess().getRule();
 	}
-
+	
 	//TableMeasure:
-	//	"measure" valueRef=[datamart::DatamartMeasure];
+	//	'measure' valueRef=[datamart::DatamartMeasure];
 	public TableMeasureElements getTableMeasureAccess() {
 		return pTableMeasure;
 	}
@@ -3436,9 +3470,9 @@
 	public ParserRule getTableMeasureRule() {
 		return getTableMeasureAccess().getRule();
 	}
-
+	
 	//TableDerived:
-	//	"derived" valueRef=[datamart::DatamartDerivedMeasure];
+	//	'derived' valueRef=[datamart::DatamartDerivedMeasure];
 	public TableDerivedElements getTableDerivedAccess() {
 		return pTableDerived;
 	}
@@ -3446,9 +3480,9 @@
 	public ParserRule getTableDerivedRule() {
 		return getTableDerivedAccess().getRule();
 	}
-
+	
 	//TableHierarchy:
-	//	"level" valueRef=[cube::CubeLevel];
+	//	'level' valueRef=[cube::CubeLevel];
 	public TableHierarchyElements getTableHierarchyAccess() {
 		return pTableHierarchy;
 	}
@@ -3456,19 +3490,19 @@
 	public ParserRule getTableHierarchyRule() {
 		return getTableHierarchyAccess().getRule();
 	}
-
-	//TableProperty:
-	//	{TableProperty} "property" valueRef=[datamart::DatamartProperty];
-	public TablePropertyElements getTablePropertyAccess() {
-		return pTableProperty;
+	
+	//TableAttribute:
+	//	{TableAttribute} 'property' valueRef=[datamart::DatamartAttribute];
+	public TableAttributeElements getTableAttributeAccess() {
+		return pTableAttribute;
 	}
 	
-	public ParserRule getTablePropertyRule() {
-		return getTablePropertyAccess().getRule();
+	public ParserRule getTableAttributeRule() {
+		return getTableAttributeAccess().getRule();
 	}
-
+	
 	//TableAggregation:
-	//	"aggregation" valueRef=[datamart::DatamartSetAggregationFunction];
+	//	'aggregation' valueRef=[datamart::DatamartSetAggregationFunction];
 	public TableAggregationElements getTableAggregationAccess() {
 		return pTableAggregation;
 	}
@@ -3476,9 +3510,9 @@
 	public ParserRule getTableAggregationRule() {
 		return getTableAggregationAccess().getRule();
 	}
-
+	
 	//TableInterval:
-	//	TableNumberInterval | TableDateDayInterval;
+	//	TableNumberInterval | TableIntInterval | TableDateDayInterval;
 	public TableIntervalElements getTableIntervalAccess() {
 		return pTableInterval;
 	}
@@ -3486,9 +3520,9 @@
 	public ParserRule getTableIntervalRule() {
 		return getTableIntervalAccess().getRule();
 	}
-
+	
 	//TableNumberInterval:
-	//	{TableNumberInterval} "up to" numberIntervalValue=SignedNumber numberRange=TableRangeElement;
+	//	{TableNumberInterval} 'upToNumber' numberIntervalValue=SignedNumber numberRange=TableRangeElement;
 	public TableNumberIntervalElements getTableNumberIntervalAccess() {
 		return pTableNumberInterval;
 	}
@@ -3496,9 +3530,19 @@
 	public ParserRule getTableNumberIntervalRule() {
 		return getTableNumberIntervalAccess().getRule();
 	}
-
+	
+	//TableIntInterval:
+	//	{TableIntInterval} 'upToInteger' intIntervalValue=SignedInt intRange=TableRangeElement;
+	public TableIntIntervalElements getTableIntIntervalAccess() {
+		return pTableIntInterval;
+	}
+	
+	public ParserRule getTableIntIntervalRule() {
+		return getTableIntIntervalAccess().getRule();
+	}
+	
 	//TableDateDayInterval:
-	//	{TableDateDayInterval} "days in past" dateIntervalValue=SignedNumber dateRange=TableRangeElement;
+	//	{TableDateDayInterval} 'daysInPast' dateIntervalValue=SignedInt dateRange=TableRangeElement;
 	public TableDateDayIntervalElements getTableDateDayIntervalAccess() {
 		return pTableDateDayInterval;
 	}
@@ -3506,9 +3550,9 @@
 	public ParserRule getTableDateDayIntervalRule() {
 		return getTableDateDayIntervalAccess().getRule();
 	}
-
+	
 	//TableLookup:
-	//	TableNumberLookup | TableStringLookup | TableDateDayLookup;
+	//	TableNumberLookup | TableIntLookup | TableStringLookup | TableDateDayLookup;
 	public TableLookupElements getTableLookupAccess() {
 		return pTableLookup;
 	}
@@ -3516,9 +3560,19 @@
 	public ParserRule getTableLookupRule() {
 		return getTableLookupAccess().getRule();
 	}
-
+	
+	//TableIntLookup:
+	//	{TableIntLookup} 'integer' lookupValue=SignedInt discrete=TableRangeElement;
+	public TableIntLookupElements getTableIntLookupAccess() {
+		return pTableIntLookup;
+	}
+	
+	public ParserRule getTableIntLookupRule() {
+		return getTableIntLookupAccess().getRule();
+	}
+	
 	//TableNumberLookup:
-	//	{TableNumberLookup} "number" lookupValue=SignedNumber discrete=TableRangeElement;
+	//	{TableNumberLookup} 'number' lookupValue=SignedNumber discrete=TableRangeElement;
 	public TableNumberLookupElements getTableNumberLookupAccess() {
 		return pTableNumberLookup;
 	}
@@ -3526,9 +3580,9 @@
 	public ParserRule getTableNumberLookupRule() {
 		return getTableNumberLookupAccess().getRule();
 	}
-
+	
 	//TableStringLookup:
-	//	{TableStringLookup} "string" lookupValue=STRING discrete=TableRangeElement;
+	//	{TableStringLookup} 'string' lookupValue=STRING discrete=TableRangeElement;
 	public TableStringLookupElements getTableStringLookupAccess() {
 		return pTableStringLookup;
 	}
@@ -3536,9 +3590,9 @@
 	public ParserRule getTableStringLookupRule() {
 		return getTableStringLookupAccess().getRule();
 	}
-
+	
 	//TableDateDayLookup:
-	//	{TableDateDayLookup} "days in past" lookupValue=SignedNumber discrete=TableRangeElement;
+	//	{TableDateDayLookup} 'daysInPast' lookupValue=SignedInt discrete=TableRangeElement;
 	public TableDateDayLookupElements getTableDateDayLookupAccess() {
 		return pTableDateDayLookup;
 	}
@@ -3546,9 +3600,9 @@
 	public ParserRule getTableDateDayLookupRule() {
 		return getTableDateDayLookupAccess().getRule();
 	}
-
+	
 	//TableDatamart:
-	//	"datamart" datamartRef=[datamart::DatamartDefinition] ("{" elements+=TableElement* "}")?;
+	//	'datamart' datamartRef=[datamart::DatamartDefinition] ('{' elements+=TableElement* '}')?;
 	public TableDatamartElements getTableDatamartAccess() {
 		return pTableDatamart;
 	}
@@ -3556,7 +3610,7 @@
 	public ParserRule getTableDatamartRule() {
 		return getTableDatamartAccess().getRule();
 	}
-
+	
 	//TableElement:
 	//	TableAxis;
 	public TableElementElements getTableElementAccess() {
@@ -3566,9 +3620,9 @@
 	public ParserRule getTableElementRule() {
 		return getTableElementAccess().getRule();
 	}
-
+	
 	//TableEvent:
-	//	"broker" source=TableValueElement "to" "{" brokerDatamarts+=TableBrokerDatamart* "}";
+	//	source=TableValueElement;
 	public TableEventElements getTableEventAccess() {
 		return pTableEvent;
 	}
@@ -3576,21 +3630,10 @@
 	public ParserRule getTableEventRule() {
 		return getTableEventAccess().getRule();
 	}
-
-	//TableBrokerDatamart:
-	//	"datamart" datamartDef=[datamart::DatamartDefinition] ("filter" filter=STRING | "referenced"
-	//	reference=[entity::LEntityReference]);
-	public TableBrokerDatamartElements getTableBrokerDatamartAccess() {
-		return pTableBrokerDatamart;
-	}
 	
-	public ParserRule getTableBrokerDatamartRule() {
-		return getTableBrokerDatamartAccess().getRule();
-	}
-
 	//TableAxis:
-	//	"axis" axis=AxisEnum ((hasRowHeight?="rowheight" rowHeight=Number)? & preOrder=TablePreorder?) (hasDetails?="details"
-	//	"{" values+=TableValue* "}")? (hasEvents?="events" "{" events+=TableEvent* "}")?;
+	//	'axis' axis=AxisEnum ((hasRowHeight?='rowheight' rowHeight=Number)? & preOrder=TablePreorder?) (hasDetails?='details'
+	//	'{' values+=TableValue* '}')? (hasEvents?='notifyOnSelect' '{' events+=TableEvent* '}')?;
 	public TableAxisElements getTableAxisAccess() {
 		return pTableAxis;
 	}
@@ -3598,7 +3641,7 @@
 	public ParserRule getTableAxisRule() {
 		return getTableAxisAccess().getRule();
 	}
-
+	
 	//TableRangeElement:
 	//	TableTextColor | TableCellColor | TableIcon | TableTrend | TableTooltip;
 	public TableRangeElementElements getTableRangeElementAccess() {
@@ -3608,9 +3651,9 @@
 	public ParserRule getTableRangeElementRule() {
 		return getTableRangeElementAccess().getRule();
 	}
-
+	
 	//TableTextColor:
-	//	"textcolor" rgb=STRING;
+	//	'textcolor' rgb=STRING;
 	public TableTextColorElements getTableTextColorAccess() {
 		return pTableTextColor;
 	}
@@ -3618,9 +3661,9 @@
 	public ParserRule getTableTextColorRule() {
 		return getTableTextColorAccess().getRule();
 	}
-
+	
 	//TableCellColor:
-	//	"cellcolor" rgb=STRING;
+	//	'cellcolor' rgb=STRING;
 	public TableCellColorElements getTableCellColorAccess() {
 		return pTableCellColor;
 	}
@@ -3628,9 +3671,9 @@
 	public ParserRule getTableCellColorRule() {
 		return getTableCellColorAccess().getRule();
 	}
-
+	
 	//TableIcon:
-	//	"icon" icon=STRING;
+	//	'icon' icon=STRING;
 	public TableIconElements getTableIconAccess() {
 		return pTableIcon;
 	}
@@ -3638,9 +3681,9 @@
 	public ParserRule getTableIconRule() {
 		return getTableIconAccess().getRule();
 	}
-
+	
 	//TableTrend:
-	//	"trend" icon=TrendIconEnum;
+	//	'trend' icon=TrendIconEnum;
 	public TableTrendElements getTableTrendAccess() {
 		return pTableTrend;
 	}
@@ -3648,9 +3691,9 @@
 	public ParserRule getTableTrendRule() {
 		return getTableTrendAccess().getRule();
 	}
-
+	
 	//TableTooltip:
-	//	"tooltip" tooltip=TRANSLATABLESTRING;
+	//	'tooltip' tooltip=TRANSLATABLESTRING;
 	public TableTooltipElements getTableTooltipAccess() {
 		return pTableTooltip;
 	}
@@ -3658,22 +3701,12 @@
 	public ParserRule getTableTooltipRule() {
 		return getTableTooltipAccess().getRule();
 	}
-
-	//TableImport returns types::LImport:
-	//	"import" importedNamespace=TableQualifiedNameWithWildCard;
-	public TableImportElements getTableImportAccess() {
-		return pTableImport;
-	}
 	
-	public ParserRule getTableImportRule() {
-		return getTableImportAccess().getRule();
-	}
-
 	//// ----------------------------- grid --------------------------------------
 	//TableGrid:
-	//	{TableGrid} "grid" (selectalways?="selectalways"? & ("rowheader" headerMode=RowHeaderMode)?) ((polling?="polling"
-	//	pollingTime=Number)? & filtering?="filtering"? & embedded?="embedded"? & ("toolbar"
-	//	toolbar=[action::ActionToolbar])?) ("using" source=TableDtoDatasource)?;
+	//	{TableGrid} 'grid' (selectalways?='selectalways'? & ('rowheader' headerMode=RowHeaderMode)?) ((polling?='polling'
+	//	pollingTime=Number)? & filtering?='filtering'? & embedded?='embedded'? & ('toolbar' toolbar=[action::ActionToolbar])?)
+	//	('using' source=TableDtoDatasource)?;
 	public TableGridElements getTableGridAccess() {
 		return pTableGrid;
 	}
@@ -3681,19 +3714,9 @@
 	public ParserRule getTableGridRule() {
 		return getTableGridAccess().getRule();
 	}
-
-	//TableDtoDatasource: //	'dto' rootType=JvmTypeReference '{'
-	//	"dto" dtoSource=[dto::LDto] ("{" properties+=Property* "}")?;
-	public TableDtoDatasourceElements getTableDtoDatasourceAccess() {
-		return pTableDtoDatasource;
-	}
 	
-	public ParserRule getTableDtoDatasourceRule() {
-		return getTableDtoDatasourceAccess().getRule();
-	}
-
-	//Property returns CxGridProperty:
-	//	editable?="editable"? "prop" path=NestedField "style" style=PropertyStyle;
+	//Property CxGridProperty:
+	//	editable?='editable'? 'prop' path=NestedField 'style' style=PropertyStyle;
 	public PropertyElements getPropertyAccess() {
 		return pProperty;
 	}
@@ -3701,8 +3724,18 @@
 	public ParserRule getPropertyRule() {
 		return getPropertyAccess().getRule();
 	}
-
-	//NestedField returns CxGridNestedField:
+	
+	//TableDtoDatasource:
+	//	'dto' dtoSource=[dto::LDto] ('{' properties+=Property* '}')?;
+	public TableDtoDatasourceElements getTableDtoDatasourceAccess() {
+		return pTableDtoDatasource;
+	}
+	
+	public ParserRule getTableDtoDatasourceRule() {
+		return getTableDtoDatasourceAccess().getRule();
+	}
+	
+	//NestedField CxGridNestedField:
 	//	{CxGridNestedField} field=[JvmOperation] path=NestedPath?;
 	public NestedFieldElements getNestedFieldAccess() {
 		return pNestedField;
@@ -3711,9 +3744,10 @@
 	public ParserRule getNestedFieldRule() {
 		return getNestedFieldAccess().getRule();
 	}
-
-	//NestedPath returns CxGridNestedPath:
-	//	{CxGridNestedPath} "." field=[JvmOperation] path=NestedPath?;
+	
+	//NestedPath CxGridNestedPath:
+	//	{CxGridNestedPath}
+	//	'.' field=[JvmOperation] path=NestedPath?;
 	public NestedPathElements getNestedPathAccess() {
 		return pNestedPath;
 	}
@@ -3721,8 +3755,8 @@
 	public ParserRule getNestedPathRule() {
 		return getNestedPathAccess().getRule();
 	}
-
-	//PropertyStyle returns style::CxGridPropStyle:
+	
+	//PropertyStyle style::CxGridPropStyle:
 	//	PropertyButtonStyle | PropertyHtmlStyle | PropertyProgressbarStyle | PropertyTextStyle | PropertyBooleanStyle |
 	//	PropertyDateStyle | PropertyNumberStyle | PropertyImageStyle | PropertyQuantityStyle | PropertyPriceStyle |
 	//	GridPropIndicatorStyle;
@@ -3733,9 +3767,10 @@
 	public ParserRule getPropertyStyleRule() {
 		return getPropertyStyleAccess().getRule();
 	}
-
-	//PropertyButtonStyle returns style::CxGridPropButtonStyle:
-	//	{style::CxGridPropButtonStyle} "buttonStyle" "eventTopic" eventTopic=STRING;
+	
+	//PropertyButtonStyle style::CxGridPropButtonStyle:
+	//	{style::CxGridPropButtonStyle}
+	//	'buttonStyle' 'eventTopic' eventTopic=STRING;
 	public PropertyButtonStyleElements getPropertyButtonStyleAccess() {
 		return pPropertyButtonStyle;
 	}
@@ -3743,9 +3778,10 @@
 	public ParserRule getPropertyButtonStyleRule() {
 		return getPropertyButtonStyleAccess().getRule();
 	}
-
-	//PropertyHtmlStyle returns style::CxGridPropHtmlStyle:
-	//	{style::CxGridPropHtmlStyle} "htmlStyle";
+	
+	//PropertyHtmlStyle style::CxGridPropHtmlStyle:
+	//	{style::CxGridPropHtmlStyle}
+	//	'htmlStyle';
 	public PropertyHtmlStyleElements getPropertyHtmlStyleAccess() {
 		return pPropertyHtmlStyle;
 	}
@@ -3753,9 +3789,10 @@
 	public ParserRule getPropertyHtmlStyleRule() {
 		return getPropertyHtmlStyleAccess().getRule();
 	}
-
-	//PropertyBooleanStyle returns style::CxGridPropBooleanStyle:
-	//	{style::CxGridPropBooleanStyle} "boolStyle";
+	
+	//PropertyBooleanStyle style::CxGridPropBooleanStyle:
+	//	{style::CxGridPropBooleanStyle}
+	//	'boolStyle';
 	public PropertyBooleanStyleElements getPropertyBooleanStyleAccess() {
 		return pPropertyBooleanStyle;
 	}
@@ -3763,9 +3800,10 @@
 	public ParserRule getPropertyBooleanStyleRule() {
 		return getPropertyBooleanStyleAccess().getRule();
 	}
-
-	//PropertyDateStyle returns style::CxGridPropDateStyle:
-	//	{style::CxGridPropDateStyle} "dateStyle" "format" dateFormat=STRING;
+	
+	//PropertyDateStyle style::CxGridPropDateStyle:
+	//	{style::CxGridPropDateStyle}
+	//	'dateStyle' 'format' dateFormat=STRING;
 	public PropertyDateStyleElements getPropertyDateStyleAccess() {
 		return pPropertyDateStyle;
 	}
@@ -3773,9 +3811,10 @@
 	public ParserRule getPropertyDateStyleRule() {
 		return getPropertyDateStyleAccess().getRule();
 	}
-
-	//PropertyNumberStyle returns style::CxGridPropNumberStyle:
-	//	{style::CxGridPropNumberStyle} "numberStyle" "format" numberFormat=STRING;
+	
+	//PropertyNumberStyle style::CxGridPropNumberStyle:
+	//	{style::CxGridPropNumberStyle}
+	//	'numberStyle' 'format' numberFormat=STRING;
 	public PropertyNumberStyleElements getPropertyNumberStyleAccess() {
 		return pPropertyNumberStyle;
 	}
@@ -3783,9 +3822,10 @@
 	public ParserRule getPropertyNumberStyleRule() {
 		return getPropertyNumberStyleAccess().getRule();
 	}
-
-	//PropertyProgressbarStyle returns style::CxGridPropProgressbarStyle:
-	//	{style::CxGridPropProgressbarStyle} "progressbarStyle" "max" maxValue=LDouble;
+	
+	//PropertyProgressbarStyle style::CxGridPropProgressbarStyle:
+	//	{style::CxGridPropProgressbarStyle}
+	//	'progressbarStyle' 'max' maxValue=LDouble;
 	public PropertyProgressbarStyleElements getPropertyProgressbarStyleAccess() {
 		return pPropertyProgressbarStyle;
 	}
@@ -3793,9 +3833,10 @@
 	public ParserRule getPropertyProgressbarStyleRule() {
 		return getPropertyProgressbarStyleAccess().getRule();
 	}
-
-	//GridPropIndicatorStyle returns style::CxGridPropIndicatorStyle:
-	//	{style::CxGridPropIndicatorStyle} "indicatorStyle" "greenFrom" greenStarts=LDouble "redUntil" redEnds=LDouble;
+	
+	//GridPropIndicatorStyle style::CxGridPropIndicatorStyle:
+	//	{style::CxGridPropIndicatorStyle}
+	//	'indicatorStyle' 'greenFrom' greenStarts=LDouble 'redUntil' redEnds=LDouble;
 	public GridPropIndicatorStyleElements getGridPropIndicatorStyleAccess() {
 		return pGridPropIndicatorStyle;
 	}
@@ -3803,10 +3844,12 @@
 	public ParserRule getGridPropIndicatorStyleRule() {
 		return getGridPropIndicatorStyleAccess().getRule();
 	}
-
-	//PropertyQuantityStyle returns style::CxGridPropQuantityStyle:
-	//	{style::CxGridPropQuantityStyle} "quantityStyle" htmlPattern=STRING? "value" "=" valuePropertyPath=NestedField ("("
-	//	"format" valueNumberFormat=STRING ")")? "uom" "=" uomPropertyPath=NestedField;
+	
+	//PropertyQuantityStyle style::CxGridPropQuantityStyle:
+	//	{style::CxGridPropQuantityStyle}
+	//	'quantityStyle' htmlPattern=STRING? 'value' '=' valuePropertyPath=NestedField ('(' 'format' valueNumberFormat=STRING
+	//	')')? 'uom' '='
+	//	uomPropertyPath=NestedField;
 	public PropertyQuantityStyleElements getPropertyQuantityStyleAccess() {
 		return pPropertyQuantityStyle;
 	}
@@ -3814,10 +3857,12 @@
 	public ParserRule getPropertyQuantityStyleRule() {
 		return getPropertyQuantityStyleAccess().getRule();
 	}
-
-	//PropertyPriceStyle returns style::CxGridPropPriceStyle:
-	//	{style::CxGridPropPriceStyle} "priceStyle" htmlPattern=STRING? "value" "=" valuePropertyPath=NestedField ("("
-	//	"format" valueNumberFormat=STRING ")")? "currency" "=" currencyPropertyPath=NestedField;
+	
+	//PropertyPriceStyle style::CxGridPropPriceStyle:
+	//	{style::CxGridPropPriceStyle}
+	//	'priceStyle' htmlPattern=STRING? 'value' '=' valuePropertyPath=NestedField ('(' 'format' valueNumberFormat=STRING
+	//	')')? 'currency' '='
+	//	currencyPropertyPath=NestedField;
 	public PropertyPriceStyleElements getPropertyPriceStyleAccess() {
 		return pPropertyPriceStyle;
 	}
@@ -3825,9 +3870,10 @@
 	public ParserRule getPropertyPriceStyleRule() {
 		return getPropertyPriceStyleAccess().getRule();
 	}
-
-	//PropertyTextStyle returns style::CxGridPropTextStyle:
-	//	{style::CxGridPropTextStyle} "textStyle";
+	
+	//PropertyTextStyle style::CxGridPropTextStyle:
+	//	{style::CxGridPropTextStyle}
+	//	'textStyle';
 	public PropertyTextStyleElements getPropertyTextStyleAccess() {
 		return pPropertyTextStyle;
 	}
@@ -3835,9 +3881,12 @@
 	public ParserRule getPropertyTextStyleRule() {
 		return getPropertyTextStyleAccess().getRule();
 	}
-
-	//PropertyImageStyle returns style::CxGridPropImageStyle:
-	//	{style::CxGridPropImageStyle} "imageStyle" ("eventTopic" eventTopic=STRING)? "{" configs+=StyleConfig* "}";
+	
+	//PropertyImageStyle style::CxGridPropImageStyle:
+	//	{style::CxGridPropImageStyle}
+	//	'imageStyle' ('eventTopic' eventTopic=STRING)? '{'
+	//	configs+=StyleConfig*
+	//	'}';
 	public PropertyImageStyleElements getPropertyImageStyleAccess() {
 		return pPropertyImageStyle;
 	}
@@ -3845,8 +3894,8 @@
 	public ParserRule getPropertyImageStyleRule() {
 		return getPropertyImageStyleAccess().getRule();
 	}
-
-	//StyleConfig returns style::CxGridStyleConfig:
+	
+	//StyleConfig style::CxGridStyleConfig:
 	//	NumericToResourceStyleConfig | StringToResourceStyleConfig;
 	public StyleConfigElements getStyleConfigAccess() {
 		return pStyleConfig;
@@ -3855,9 +3904,9 @@
 	public ParserRule getStyleConfigRule() {
 		return getStyleConfigAccess().getRule();
 	}
-
-	//NumericToResourceStyleConfig returns style::CxGridStyleConfigNumericToResource:
-	//	"number" compare=StyleCompare value=LDouble "then" resourceThemePath=THEME_RESOURCE;
+	
+	//NumericToResourceStyleConfig style::CxGridStyleConfigNumericToResource:
+	//	'number' compare=StyleCompare value=LDouble 'then' resourceThemePath=THEME_RESOURCE;
 	public NumericToResourceStyleConfigElements getNumericToResourceStyleConfigAccess() {
 		return pNumericToResourceStyleConfig;
 	}
@@ -3865,9 +3914,9 @@
 	public ParserRule getNumericToResourceStyleConfigRule() {
 		return getNumericToResourceStyleConfigAccess().getRule();
 	}
-
-	//StringToResourceStyleConfig returns style::CxGridStyleConfigStringToResource:
-	//	"string" compare=StyleCompare value=STRING "then" resourceThemePath=THEME_RESOURCE;
+	
+	//StringToResourceStyleConfig style::CxGridStyleConfigStringToResource:
+	//	'string' compare=StyleCompare value=STRING 'then' resourceThemePath=THEME_RESOURCE;
 	public StringToResourceStyleConfigElements getStringToResourceStyleConfigAccess() {
 		return pStringToResourceStyleConfig;
 	}
@@ -3875,38 +3924,26 @@
 	public ParserRule getStringToResourceStyleConfigRule() {
 		return getStringToResourceStyleConfigAccess().getRule();
 	}
-
+	
 	//enum StyleCompare returns style::CxGridCompare:
 	//	Equal="equal" | GreaterEqual="greater equal" | GreaterThan="greater than" | LowerEqual="lower equal" |
 	//	LowerThan="lower than" | NotEqual="not equal";
 	public StyleCompareElements getStyleCompareAccess() {
-		return unknownRuleStyleCompare;
+		return eStyleCompare;
 	}
 	
 	public EnumRule getStyleCompareRule() {
 		return getStyleCompareAccess().getRule();
 	}
-
-	//terminal ID:
-	//	"^"? ("a".."z" | "A".."Z" | "$" | "_") ("a".."z" | "A".."Z" | "$" | "_" | "0".."9")*;
-	public TerminalRule getIDRule() {
-		return tID;
-	} 
-
-	//terminal INT returns ecore::EInt:
-	//	"0".."9" ("0".."9" | "_")*;
-	public TerminalRule getINTRule() {
-		return tINT;
-	} 
-
+	
 	//terminal THEME_RESOURCE:
-	//	"theme:/" ("a".."z" | "A".."Z" | "$" | "_" | "." | "/" | "0".."9")*;
+	//	'theme:/' ('a'..'z' | 'A'..'Z' | '$' | '_' | '.' | '/' | '0'..'9')*;
 	public TerminalRule getTHEME_RESOURCERule() {
 		return tTHEME_RESOURCE;
-	} 
-
-	//LInt returns ecore::EInt:
-	//	("+" | "-")? INT;
+	}
+	
+	//LInt ecore::EInt:
+	//	('+' | '-')? INT;
 	public LIntElements getLIntAccess() {
 		return pLInt;
 	}
@@ -3914,9 +3951,9 @@
 	public ParserRule getLIntRule() {
 		return getLIntAccess().getRule();
 	}
-
-	//LDouble returns ecore::EDouble:
-	//	LInt ("." INT)?;
+	
+	//LDouble ecore::EDouble:
+	//	LInt ('.' INT)?;
 	public LDoubleElements getLDoubleAccess() {
 		return pLDouble;
 	}
@@ -3924,16 +3961,16 @@
 	public ParserRule getLDoubleRule() {
 		return getLDoubleAccess().getRule();
 	}
-
+	
 	//terminal EVENT_TOPIC:
-	//	"\'" ID ("/" ID)* "/ *"? "\'";
+	//	"'" ID ('/' ID)* '/*'? "'";
 	public TerminalRule getEVENT_TOPICRule() {
 		return tEVENT_TOPIC;
-	} 
-
+	}
+	
 	////  ----------------- grid ends ------------------------
-	//SignedNumber returns ecore::EDouble:
-	//	"-"? Number;
+	//SignedNumber ecore::EDouble:
+	//	'-'? Number;
 	public SignedNumberElements getSignedNumberAccess() {
 		return pSignedNumber;
 	}
@@ -3941,37 +3978,17 @@
 	public ParserRule getSignedNumberRule() {
 		return getSignedNumberAccess().getRule();
 	}
-
-	//TableQualifiedNameWithWildCard:
-	//	QualifiedName ("." "*")?;
-	public TableQualifiedNameWithWildCardElements getTableQualifiedNameWithWildCardAccess() {
-		return pTableQualifiedNameWithWildCard;
+	
+	//SignedInt ecore::EInt:
+	//	'-'? INT;
+	public SignedIntElements getSignedIntAccess() {
+		return pSignedInt;
 	}
 	
-	public ParserRule getTableQualifiedNameWithWildCardRule() {
-		return getTableQualifiedNameWithWildCardAccess().getRule();
-	}
-
-	//QualifiedName:
-	//	ValidID ("." ValidID)*;
-	public QualifiedNameElements getQualifiedNameAccess() {
-		return pQualifiedName;
+	public ParserRule getSignedIntRule() {
+		return getSignedIntAccess().getRule();
 	}
 	
-	public ParserRule getQualifiedNameRule() {
-		return getQualifiedNameAccess().getRule();
-	}
-
-	//ValidID:
-	//	ID;
-	public ValidIDElements getValidIDAccess() {
-		return pValidID;
-	}
-	
-	public ParserRule getValidIDRule() {
-		return getValidIDAccess().getRule();
-	}
-
 	//TRANSLATABLESTRING:
 	//	STRING;
 	public TRANSLATABLESTRINGElements getTRANSLATABLESTRINGAccess() {
@@ -3981,7 +3998,7 @@
 	public ParserRule getTRANSLATABLESTRINGRule() {
 		return getTRANSLATABLESTRINGAccess().getRule();
 	}
-
+	
 	//TRANSLATABLEID:
 	//	ID;
 	public TRANSLATABLEIDElements getTRANSLATABLEIDAccess() {
@@ -3991,41 +4008,58 @@
 	public ParserRule getTRANSLATABLEIDRule() {
 		return getTRANSLATABLEIDAccess().getRule();
 	}
-
+	
 	//enum TrendIconEnum:
-	//	RISING="rising" | BADRISING="bad-rising" | SLOPING="sloping" | GOODSLOPING="good-sloping" | STAGNATING="stagnating";
+	//	RISING='rising' | BADRISING='bad-rising' | SLOPING='sloping' | GOODSLOPING='good-sloping' | STAGNATING='stagnating';
 	public TrendIconEnumElements getTrendIconEnumAccess() {
-		return unknownRuleTrendIconEnum;
+		return eTrendIconEnum;
 	}
 	
 	public EnumRule getTrendIconEnumRule() {
 		return getTrendIconEnumAccess().getRule();
 	}
-
+	
 	//enum RowHeaderMode:
-	//	HIDDEN="hidden" | EXPLICIT_DEFAULTS_ID="explicit" | INDEX="indexed";
+	//	HIDDEN='hidden' | EXPLICIT_DEFAULTS_ID='explicit' | INDEX='indexed';
 	public RowHeaderModeElements getRowHeaderModeAccess() {
-		return unknownRuleRowHeaderMode;
+		return eRowHeaderMode;
 	}
 	
 	public EnumRule getRowHeaderModeRule() {
 		return getRowHeaderModeAccess().getRule();
 	}
-
-	/// * | AXIS(<index>)* / enum AxisEnum returns datamart::AxisEnum:
-	//	DEFAULT="default" | COLUMNS="columns" | ROWS="rows" | PAGES="pages" | SECTIONS="sections" | CHAPTERS="chapters";
+	
+	//enum AxisEnum returns datamart::AxisEnum:
+	//	DEFAULT='default' | COLUMNS='columns' | ROWS='rows' | PAGES='pages' | SECTIONS='sections' | CHAPTERS='chapters'
+	//	/* | AXIS(<index>)*/;
 	public AxisEnumElements getAxisEnumAccess() {
-		return unknownRuleAxisEnum;
+		return eAxisEnum;
 	}
 	
 	public EnumRule getAxisEnumRule() {
 		return getAxisEnumAccess().getRule();
 	}
-
+	
+	//@ Override XImportDeclaration OXImportDeclaration:
+	//	{OXImportDeclaration}
+	//	'import' (static?='static' extension?='extension'? importedType=[JvmDeclaredType|QualifiedNameInStaticImport]
+	//	(wildcard?='*' | memberName=ValidID) | importedType=[JvmDeclaredType|QualifiedName] |
+	//	importedNamespace=QualifiedNameWithWildcard
+	//	| fqnImport?='ns' importedFullyQualifiedName=QualifiedName) ';'?;
+	public OXtypeGrammarAccess.XImportDeclarationElements getXImportDeclarationAccess() {
+		return gaOXtype.getXImportDeclarationAccess();
+	}
+	
+	public ParserRule getXImportDeclarationRule() {
+		return getXImportDeclarationAccess().getRule();
+	}
+	
 	//XAnnotation:
-	//	{XAnnotation} "@" annotationType=[types::JvmAnnotationType|QualifiedName] ("("
-	//	(elementValuePairs+=XAnnotationElementValuePair ("," elementValuePairs+=XAnnotationElementValuePair)* |
-	//	value=XAnnotationElementValueOrCommaList)? ")")?;
+	//	{XAnnotation}
+	//	'@' annotationType=[types::JvmAnnotationType|QualifiedName] (=> '(' (elementValuePairs+=XAnnotationElementValuePair
+	//	(',' elementValuePairs+=XAnnotationElementValuePair)*
+	//	| value=XAnnotationElementValueOrCommaList)?
+	//	')')?;
 	public XbaseWithAnnotationsGrammarAccess.XAnnotationElements getXAnnotationAccess() {
 		return gaXbaseWithAnnotations.getXAnnotationAccess();
 	}
@@ -4033,9 +4067,9 @@
 	public ParserRule getXAnnotationRule() {
 		return getXAnnotationAccess().getRule();
 	}
-
+	
 	//XAnnotationElementValuePair:
-	//	=> (element=[types::JvmOperation|ValidID] "=") value=XAnnotationElementValue;
+	//	=> (element=[types::JvmOperation|ValidID] '=') value=XAnnotationElementValue;
 	public XbaseWithAnnotationsGrammarAccess.XAnnotationElementValuePairElements getXAnnotationElementValuePairAccess() {
 		return gaXbaseWithAnnotations.getXAnnotationElementValuePairAccess();
 	}
@@ -4043,10 +4077,10 @@
 	public ParserRule getXAnnotationElementValuePairRule() {
 		return getXAnnotationElementValuePairAccess().getRule();
 	}
-
-	//XAnnotationElementValueOrCommaList returns xbase::XExpression:
-	//	=> ({xbase::XListLiteral} "#" "[") (elements+=XAnnotationOrExpression ("," elements+=XAnnotationOrExpression)*)? "]"
-	//	| XAnnotationOrExpression ({xbase::XListLiteral.elements+=current} ("," elements+=XAnnotationOrExpression)+)?;
+	
+	//XAnnotationElementValueOrCommaList xbase::XExpression:
+	//	=> ({xbase::XListLiteral} '#' '[') (elements+=XAnnotationOrExpression (',' elements+=XAnnotationOrExpression)*)? ']'
+	//	| XAnnotationOrExpression ({xbase::XListLiteral.elements+=current} (',' elements+=XAnnotationOrExpression)+)?;
 	public XbaseWithAnnotationsGrammarAccess.XAnnotationElementValueOrCommaListElements getXAnnotationElementValueOrCommaListAccess() {
 		return gaXbaseWithAnnotations.getXAnnotationElementValueOrCommaListAccess();
 	}
@@ -4054,9 +4088,9 @@
 	public ParserRule getXAnnotationElementValueOrCommaListRule() {
 		return getXAnnotationElementValueOrCommaListAccess().getRule();
 	}
-
-	//XAnnotationElementValue returns xbase::XExpression:
-	//	=> ({xbase::XListLiteral} "#" "[") (elements+=XAnnotationOrExpression ("," elements+=XAnnotationOrExpression)*)? "]"
+	
+	//XAnnotationElementValue xbase::XExpression:
+	//	=> ({xbase::XListLiteral} '#' '[') (elements+=XAnnotationOrExpression (',' elements+=XAnnotationOrExpression)*)? ']'
 	//	| XAnnotationOrExpression;
 	public XbaseWithAnnotationsGrammarAccess.XAnnotationElementValueElements getXAnnotationElementValueAccess() {
 		return gaXbaseWithAnnotations.getXAnnotationElementValueAccess();
@@ -4065,8 +4099,8 @@
 	public ParserRule getXAnnotationElementValueRule() {
 		return getXAnnotationElementValueAccess().getRule();
 	}
-
-	//XAnnotationOrExpression returns xbase::XExpression:
+	
+	//XAnnotationOrExpression xbase::XExpression:
 	//	XAnnotation | XExpression;
 	public XbaseWithAnnotationsGrammarAccess.XAnnotationOrExpressionElements getXAnnotationOrExpressionAccess() {
 		return gaXbaseWithAnnotations.getXAnnotationOrExpressionAccess();
@@ -4075,848 +4109,902 @@
 	public ParserRule getXAnnotationOrExpressionRule() {
 		return getXAnnotationOrExpressionAccess().getRule();
 	}
-
+	
 	//XExpression:
 	//	XAssignment;
 	public XbaseGrammarAccess.XExpressionElements getXExpressionAccess() {
-		return gaXbaseWithAnnotations.getXExpressionAccess();
+		return gaXbase.getXExpressionAccess();
 	}
 	
 	public ParserRule getXExpressionRule() {
 		return getXExpressionAccess().getRule();
 	}
-
-	//XAssignment returns XExpression:
+	
+	//XAssignment XExpression:
 	//	{XAssignment} feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign value=XAssignment | XOrExpression
 	//	(=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMultiAssign])
 	//	rightOperand=XAssignment)?;
 	public XbaseGrammarAccess.XAssignmentElements getXAssignmentAccess() {
-		return gaXbaseWithAnnotations.getXAssignmentAccess();
+		return gaXbase.getXAssignmentAccess();
 	}
 	
 	public ParserRule getXAssignmentRule() {
 		return getXAssignmentAccess().getRule();
 	}
-
+	
 	//OpSingleAssign:
-	//	"=";
+	//	'=';
 	public XbaseGrammarAccess.OpSingleAssignElements getOpSingleAssignAccess() {
-		return gaXbaseWithAnnotations.getOpSingleAssignAccess();
+		return gaXbase.getOpSingleAssignAccess();
 	}
 	
 	public ParserRule getOpSingleAssignRule() {
 		return getOpSingleAssignAccess().getRule();
 	}
-
+	
 	//OpMultiAssign:
-	//	"+=" | "-=" | "*=" | "/=" | "%=" | "<" "<" "=" | ">" ">"? ">=";
+	//	'+=' | '-=' | '*=' | '/=' | '%=' |
+	//	'<' '<' '=' |
+	//	'>' '>'? '>=';
 	public XbaseGrammarAccess.OpMultiAssignElements getOpMultiAssignAccess() {
-		return gaXbaseWithAnnotations.getOpMultiAssignAccess();
+		return gaXbase.getOpMultiAssignAccess();
 	}
 	
 	public ParserRule getOpMultiAssignRule() {
 		return getOpMultiAssignAccess().getRule();
 	}
-
-	//XOrExpression returns XExpression:
+	
+	//XOrExpression XExpression:
 	//	XAndExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOr])
 	//	rightOperand=XAndExpression)*;
 	public XbaseGrammarAccess.XOrExpressionElements getXOrExpressionAccess() {
-		return gaXbaseWithAnnotations.getXOrExpressionAccess();
+		return gaXbase.getXOrExpressionAccess();
 	}
 	
 	public ParserRule getXOrExpressionRule() {
 		return getXOrExpressionAccess().getRule();
 	}
-
+	
 	//OpOr:
-	//	"||";
+	//	'||';
 	public XbaseGrammarAccess.OpOrElements getOpOrAccess() {
-		return gaXbaseWithAnnotations.getOpOrAccess();
+		return gaXbase.getOpOrAccess();
 	}
 	
 	public ParserRule getOpOrRule() {
 		return getOpOrAccess().getRule();
 	}
-
-	//XAndExpression returns XExpression:
+	
+	//XAndExpression XExpression:
 	//	XEqualityExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAnd])
 	//	rightOperand=XEqualityExpression)*;
 	public XbaseGrammarAccess.XAndExpressionElements getXAndExpressionAccess() {
-		return gaXbaseWithAnnotations.getXAndExpressionAccess();
+		return gaXbase.getXAndExpressionAccess();
 	}
 	
 	public ParserRule getXAndExpressionRule() {
 		return getXAndExpressionAccess().getRule();
 	}
-
+	
 	//OpAnd:
-	//	"&&";
+	//	'&&';
 	public XbaseGrammarAccess.OpAndElements getOpAndAccess() {
-		return gaXbaseWithAnnotations.getOpAndAccess();
+		return gaXbase.getOpAndAccess();
 	}
 	
 	public ParserRule getOpAndRule() {
 		return getOpAndAccess().getRule();
 	}
-
-	//XEqualityExpression returns XExpression:
+	
+	//XEqualityExpression XExpression:
 	//	XRelationalExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpEquality])
 	//	rightOperand=XRelationalExpression)*;
 	public XbaseGrammarAccess.XEqualityExpressionElements getXEqualityExpressionAccess() {
-		return gaXbaseWithAnnotations.getXEqualityExpressionAccess();
+		return gaXbase.getXEqualityExpressionAccess();
 	}
 	
 	public ParserRule getXEqualityExpressionRule() {
 		return getXEqualityExpressionAccess().getRule();
 	}
-
+	
 	//OpEquality:
-	//	"==" | "!=" | "===" | "!==";
+	//	'==' | '!=' | '===' | '!==';
 	public XbaseGrammarAccess.OpEqualityElements getOpEqualityAccess() {
-		return gaXbaseWithAnnotations.getOpEqualityAccess();
+		return gaXbase.getOpEqualityAccess();
 	}
 	
 	public ParserRule getOpEqualityRule() {
 		return getOpEqualityAccess().getRule();
 	}
-
-	//XRelationalExpression returns XExpression:
-	//	XOtherOperatorExpression (=> ({XInstanceOfExpression.expression=current} "instanceof") type=JvmTypeReference | =>
-	//	({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpCompare])
+	
+	//XRelationalExpression XExpression:
+	//	XOtherOperatorExpression (=> ({XInstanceOfExpression.expression=current} 'instanceof') type=JvmTypeReference |
+	//	=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpCompare])
 	//	rightOperand=XOtherOperatorExpression)*;
 	public XbaseGrammarAccess.XRelationalExpressionElements getXRelationalExpressionAccess() {
-		return gaXbaseWithAnnotations.getXRelationalExpressionAccess();
+		return gaXbase.getXRelationalExpressionAccess();
 	}
 	
 	public ParserRule getXRelationalExpressionRule() {
 		return getXRelationalExpressionAccess().getRule();
 	}
-
+	
 	//OpCompare:
-	//	">=" | "<" "=" | ">" | "<";
+	//	'>=' | '<' '=' | '>' | '<';
 	public XbaseGrammarAccess.OpCompareElements getOpCompareAccess() {
-		return gaXbaseWithAnnotations.getOpCompareAccess();
+		return gaXbase.getOpCompareAccess();
 	}
 	
 	public ParserRule getOpCompareRule() {
 		return getOpCompareAccess().getRule();
 	}
-
-	//XOtherOperatorExpression returns XExpression:
+	
+	//XOtherOperatorExpression XExpression:
 	//	XAdditiveExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOther])
 	//	rightOperand=XAdditiveExpression)*;
 	public XbaseGrammarAccess.XOtherOperatorExpressionElements getXOtherOperatorExpressionAccess() {
-		return gaXbaseWithAnnotations.getXOtherOperatorExpressionAccess();
+		return gaXbase.getXOtherOperatorExpressionAccess();
 	}
 	
 	public ParserRule getXOtherOperatorExpressionRule() {
 		return getXOtherOperatorExpressionAccess().getRule();
 	}
-
+	
 	//OpOther:
-	//	"->" | "..<" | ">" ".." | ".." | "=>" | ">" (=> (">" ">") | ">") | "<" (=> ("<" "<") | "<" | "=>") | "<>" | "?:";
+	//	'->'
+	//	| '..<'
+	//	| '>' '..'
+	//	| '..'
+	//	| '=>'
+	//	| '>' (=> ('>' '>') | '>') | '<' (=> ('<' '<') | '<' | '=>') | '<>'
+	//	| '?:';
 	public XbaseGrammarAccess.OpOtherElements getOpOtherAccess() {
-		return gaXbaseWithAnnotations.getOpOtherAccess();
+		return gaXbase.getOpOtherAccess();
 	}
 	
 	public ParserRule getOpOtherRule() {
 		return getOpOtherAccess().getRule();
 	}
-
-	//XAdditiveExpression returns XExpression:
+	
+	//XAdditiveExpression XExpression:
 	//	XMultiplicativeExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAdd])
 	//	rightOperand=XMultiplicativeExpression)*;
 	public XbaseGrammarAccess.XAdditiveExpressionElements getXAdditiveExpressionAccess() {
-		return gaXbaseWithAnnotations.getXAdditiveExpressionAccess();
+		return gaXbase.getXAdditiveExpressionAccess();
 	}
 	
 	public ParserRule getXAdditiveExpressionRule() {
 		return getXAdditiveExpressionAccess().getRule();
 	}
-
+	
 	//OpAdd:
-	//	"+" | "-";
+	//	'+' | '-';
 	public XbaseGrammarAccess.OpAddElements getOpAddAccess() {
-		return gaXbaseWithAnnotations.getOpAddAccess();
+		return gaXbase.getOpAddAccess();
 	}
 	
 	public ParserRule getOpAddRule() {
 		return getOpAddAccess().getRule();
 	}
-
-	//XMultiplicativeExpression returns XExpression:
+	
+	//XMultiplicativeExpression XExpression:
 	//	XUnaryOperation (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMulti])
 	//	rightOperand=XUnaryOperation)*;
 	public XbaseGrammarAccess.XMultiplicativeExpressionElements getXMultiplicativeExpressionAccess() {
-		return gaXbaseWithAnnotations.getXMultiplicativeExpressionAccess();
+		return gaXbase.getXMultiplicativeExpressionAccess();
 	}
 	
 	public ParserRule getXMultiplicativeExpressionRule() {
 		return getXMultiplicativeExpressionAccess().getRule();
 	}
-
+	
 	//OpMulti:
-	//	"*" | "**" | "/" | "%";
+	//	'*' | '**' | '/' | '%';
 	public XbaseGrammarAccess.OpMultiElements getOpMultiAccess() {
-		return gaXbaseWithAnnotations.getOpMultiAccess();
+		return gaXbase.getOpMultiAccess();
 	}
 	
 	public ParserRule getOpMultiRule() {
 		return getOpMultiAccess().getRule();
 	}
-
-	//XUnaryOperation returns XExpression:
-	//	{XUnaryOperation} feature=[types::JvmIdentifiableElement|OpUnary] operand=XUnaryOperation | XCastedExpression;
+	
+	//XUnaryOperation XExpression:
+	//	{XUnaryOperation} feature=[types::JvmIdentifiableElement|OpUnary] operand=XUnaryOperation
+	//	| XCastedExpression;
 	public XbaseGrammarAccess.XUnaryOperationElements getXUnaryOperationAccess() {
-		return gaXbaseWithAnnotations.getXUnaryOperationAccess();
+		return gaXbase.getXUnaryOperationAccess();
 	}
 	
 	public ParserRule getXUnaryOperationRule() {
 		return getXUnaryOperationAccess().getRule();
 	}
-
+	
 	//OpUnary:
 	//	"!" | "-" | "+";
 	public XbaseGrammarAccess.OpUnaryElements getOpUnaryAccess() {
-		return gaXbaseWithAnnotations.getOpUnaryAccess();
+		return gaXbase.getOpUnaryAccess();
 	}
 	
 	public ParserRule getOpUnaryRule() {
 		return getOpUnaryAccess().getRule();
 	}
-
-	//XCastedExpression returns XExpression:
-	//	XPostfixOperation (=> ({XCastedExpression.target=current} "as") type=JvmTypeReference)*;
+	
+	//XCastedExpression XExpression:
+	//	XPostfixOperation (=> ({XCastedExpression.target=current} 'as') type=JvmTypeReference)*;
 	public XbaseGrammarAccess.XCastedExpressionElements getXCastedExpressionAccess() {
-		return gaXbaseWithAnnotations.getXCastedExpressionAccess();
+		return gaXbase.getXCastedExpressionAccess();
 	}
 	
 	public ParserRule getXCastedExpressionRule() {
 		return getXCastedExpressionAccess().getRule();
 	}
-
-	//XPostfixOperation returns XExpression:
+	
+	//XPostfixOperation XExpression:
 	//	XMemberFeatureCall => ({XPostfixOperation.operand=current} feature=[types::JvmIdentifiableElement|OpPostfix])?;
 	public XbaseGrammarAccess.XPostfixOperationElements getXPostfixOperationAccess() {
-		return gaXbaseWithAnnotations.getXPostfixOperationAccess();
+		return gaXbase.getXPostfixOperationAccess();
 	}
 	
 	public ParserRule getXPostfixOperationRule() {
 		return getXPostfixOperationAccess().getRule();
 	}
-
+	
 	//OpPostfix:
 	//	"++" | "--";
 	public XbaseGrammarAccess.OpPostfixElements getOpPostfixAccess() {
-		return gaXbaseWithAnnotations.getOpPostfixAccess();
+		return gaXbase.getOpPostfixAccess();
 	}
 	
 	public ParserRule getOpPostfixRule() {
 		return getOpPostfixAccess().getRule();
 	}
-
-	//XMemberFeatureCall returns XExpression:
-	//	XPrimaryExpression (=> ({XAssignment.assignable=current} ("." | explicitStatic?="::")
-	//	feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign) value=XAssignment | =>
-	//	({XMemberFeatureCall.memberCallTarget=current} ("." | nullSafe?="?." | explicitStatic?="::")) ("<"
-	//	typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")?
-	//	feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?="(" (memberCallArguments+=XShortClosure
-	//	| memberCallArguments+=XExpression ("," memberCallArguments+=XExpression)*)? ")")? memberCallArguments+=XClosure?)*;
+	
+	//XMemberFeatureCall XExpression:
+	//	XPrimaryExpression (=> ({XAssignment.assignable=current} ('.' | explicitStatic?="::")
+	//	feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign) value=XAssignment
+	//	| => ({XMemberFeatureCall.memberCallTarget=current} ("." | nullSafe?="?." | explicitStatic?="::")) ('<'
+	//	typeArguments+=JvmArgumentTypeReference (',' typeArguments+=JvmArgumentTypeReference)* '>')?
+	//	feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?='(' (memberCallArguments+=XShortClosure
+	//	| memberCallArguments+=XExpression (',' memberCallArguments+=XExpression)*)?
+	//	')')?
+	//	memberCallArguments+=XClosure?)*;
 	public XbaseGrammarAccess.XMemberFeatureCallElements getXMemberFeatureCallAccess() {
-		return gaXbaseWithAnnotations.getXMemberFeatureCallAccess();
+		return gaXbase.getXMemberFeatureCallAccess();
 	}
 	
 	public ParserRule getXMemberFeatureCallRule() {
 		return getXMemberFeatureCallAccess().getRule();
 	}
-
-	//XPrimaryExpression returns XExpression:
+	
+	//XPrimaryExpression XExpression:
 	//	XConstructorCall | XBlockExpression | XSwitchExpression | XSynchronizedExpression | XFeatureCall | XLiteral |
 	//	XIfExpression | XForLoopExpression | XBasicForLoopExpression | XWhileExpression | XDoWhileExpression |
 	//	XThrowExpression | XReturnExpression | XTryCatchFinallyExpression | XParenthesizedExpression;
 	public XbaseGrammarAccess.XPrimaryExpressionElements getXPrimaryExpressionAccess() {
-		return gaXbaseWithAnnotations.getXPrimaryExpressionAccess();
+		return gaXbase.getXPrimaryExpressionAccess();
 	}
 	
 	public ParserRule getXPrimaryExpressionRule() {
 		return getXPrimaryExpressionAccess().getRule();
 	}
-
-	//XLiteral returns XExpression:
+	
+	//XLiteral XExpression:
 	//	XCollectionLiteral | XClosure | XBooleanLiteral | XNumberLiteral | XNullLiteral | XStringLiteral | XTypeLiteral;
 	public XbaseGrammarAccess.XLiteralElements getXLiteralAccess() {
-		return gaXbaseWithAnnotations.getXLiteralAccess();
+		return gaXbase.getXLiteralAccess();
 	}
 	
 	public ParserRule getXLiteralRule() {
 		return getXLiteralAccess().getRule();
 	}
-
+	
 	//XCollectionLiteral:
 	//	XSetLiteral | XListLiteral;
 	public XbaseGrammarAccess.XCollectionLiteralElements getXCollectionLiteralAccess() {
-		return gaXbaseWithAnnotations.getXCollectionLiteralAccess();
+		return gaXbase.getXCollectionLiteralAccess();
 	}
 	
 	public ParserRule getXCollectionLiteralRule() {
 		return getXCollectionLiteralAccess().getRule();
 	}
-
+	
 	//XSetLiteral:
-	//	{XSetLiteral} "#" "{" (elements+=XExpression ("," elements+=XExpression)*)? "}";
+	//	{XSetLiteral} '#' '{' (elements+=XExpression (',' elements+=XExpression)*)? '}';
 	public XbaseGrammarAccess.XSetLiteralElements getXSetLiteralAccess() {
-		return gaXbaseWithAnnotations.getXSetLiteralAccess();
+		return gaXbase.getXSetLiteralAccess();
 	}
 	
 	public ParserRule getXSetLiteralRule() {
 		return getXSetLiteralAccess().getRule();
 	}
-
+	
 	//XListLiteral:
-	//	{XListLiteral} "#" "[" (elements+=XExpression ("," elements+=XExpression)*)? "]";
+	//	{XListLiteral} '#' '[' (elements+=XExpression (',' elements+=XExpression)*)? ']';
 	public XbaseGrammarAccess.XListLiteralElements getXListLiteralAccess() {
-		return gaXbaseWithAnnotations.getXListLiteralAccess();
+		return gaXbase.getXListLiteralAccess();
 	}
 	
 	public ParserRule getXListLiteralRule() {
 		return getXListLiteralAccess().getRule();
 	}
-
-	//XClosure returns XExpression:
-	//	=> ({XClosure} "[") => ((declaredFormalParameters+=JvmFormalParameter (","
-	//	declaredFormalParameters+=JvmFormalParameter)*)? explicitSyntax?="|")? expression=XExpressionInClosure "]";
+	
+	//XClosure XExpression:
+	//	=> ({XClosure}
+	//	'[')
+	//	=> ((declaredFormalParameters+=JvmFormalParameter (',' declaredFormalParameters+=JvmFormalParameter)*)?
+	//	explicitSyntax?='|')?
+	//	expression=XExpressionInClosure
+	//	']';
 	public XbaseGrammarAccess.XClosureElements getXClosureAccess() {
-		return gaXbaseWithAnnotations.getXClosureAccess();
+		return gaXbase.getXClosureAccess();
 	}
 	
 	public ParserRule getXClosureRule() {
 		return getXClosureAccess().getRule();
 	}
-
-	//XExpressionInClosure returns XExpression:
-	//	{XBlockExpression} (expressions+=XExpressionOrVarDeclaration ";"?)*;
+	
+	//XExpressionInClosure XExpression:
+	//	{XBlockExpression} (expressions+=XExpressionOrVarDeclaration ';'?)*;
 	public XbaseGrammarAccess.XExpressionInClosureElements getXExpressionInClosureAccess() {
-		return gaXbaseWithAnnotations.getXExpressionInClosureAccess();
+		return gaXbase.getXExpressionInClosureAccess();
 	}
 	
 	public ParserRule getXExpressionInClosureRule() {
 		return getXExpressionInClosureAccess().getRule();
 	}
-
-	//XShortClosure returns XExpression:
-	//	=> ({XClosure} (declaredFormalParameters+=JvmFormalParameter ("," declaredFormalParameters+=JvmFormalParameter)*)?
-	//	explicitSyntax?="|") expression=XExpression;
+	
+	//XShortClosure XExpression:
+	//	=> ({XClosure} (declaredFormalParameters+=JvmFormalParameter (',' declaredFormalParameters+=JvmFormalParameter)*)?
+	//	explicitSyntax?='|') expression=XExpression;
 	public XbaseGrammarAccess.XShortClosureElements getXShortClosureAccess() {
-		return gaXbaseWithAnnotations.getXShortClosureAccess();
+		return gaXbase.getXShortClosureAccess();
 	}
 	
 	public ParserRule getXShortClosureRule() {
 		return getXShortClosureAccess().getRule();
 	}
-
-	//XParenthesizedExpression returns XExpression:
-	//	"(" XExpression ")";
+	
+	//XParenthesizedExpression XExpression:
+	//	'(' XExpression ')';
 	public XbaseGrammarAccess.XParenthesizedExpressionElements getXParenthesizedExpressionAccess() {
-		return gaXbaseWithAnnotations.getXParenthesizedExpressionAccess();
+		return gaXbase.getXParenthesizedExpressionAccess();
 	}
 	
 	public ParserRule getXParenthesizedExpressionRule() {
 		return getXParenthesizedExpressionAccess().getRule();
 	}
-
-	//XIfExpression returns XExpression:
-	//	{XIfExpression} "if" "(" if=XExpression ")" then=XExpression ("else" else=XExpression)?;
+	
+	//XIfExpression XExpression:
+	//	{XIfExpression}
+	//	'if' '(' if=XExpression ')'
+	//	then=XExpression (=> 'else' else=XExpression)?;
 	public XbaseGrammarAccess.XIfExpressionElements getXIfExpressionAccess() {
-		return gaXbaseWithAnnotations.getXIfExpressionAccess();
+		return gaXbase.getXIfExpressionAccess();
 	}
 	
 	public ParserRule getXIfExpressionRule() {
 		return getXIfExpressionAccess().getRule();
 	}
-
-	//XSwitchExpression returns XExpression:
-	//	{XSwitchExpression} "switch" (=> ("(" declaredParam=JvmFormalParameter ":") switch=XExpression ")" | =>
-	//	(declaredParam=JvmFormalParameter ":")? switch=XExpression) "{" cases+=XCasePart* ("default" ":"
-	//	default=XExpression)? "}";
+	
+	//XSwitchExpression XExpression:
+	//	{XSwitchExpression}
+	//	'switch' (=> ('(' declaredParam=JvmFormalParameter ':') switch=XExpression ')'
+	//	| => (declaredParam=JvmFormalParameter ':')? switch=XExpression) '{'
+	//	cases+=XCasePart* ('default' ':' default=XExpression)?
+	//	'}';
 	public XbaseGrammarAccess.XSwitchExpressionElements getXSwitchExpressionAccess() {
-		return gaXbaseWithAnnotations.getXSwitchExpressionAccess();
+		return gaXbase.getXSwitchExpressionAccess();
 	}
 	
 	public ParserRule getXSwitchExpressionRule() {
 		return getXSwitchExpressionAccess().getRule();
 	}
-
+	
 	//XCasePart:
-	//	{XCasePart} typeGuard=JvmTypeReference? ("case" case=XExpression)? (":" then=XExpression | fallThrough?=",");
+	//	{XCasePart} typeGuard=JvmTypeReference? ('case' case=XExpression)? (':' then=XExpression | fallThrough?=',');
 	public XbaseGrammarAccess.XCasePartElements getXCasePartAccess() {
-		return gaXbaseWithAnnotations.getXCasePartAccess();
+		return gaXbase.getXCasePartAccess();
 	}
 	
 	public ParserRule getXCasePartRule() {
 		return getXCasePartAccess().getRule();
 	}
-
-	//XForLoopExpression returns XExpression:
-	//	=> ({XForLoopExpression} "for" "(" declaredParam=JvmFormalParameter ":") forExpression=XExpression ")"
+	
+	//XForLoopExpression XExpression:
+	//	=> ({XForLoopExpression}
+	//	'for' '(' declaredParam=JvmFormalParameter ':') forExpression=XExpression ')'
 	//	eachExpression=XExpression;
 	public XbaseGrammarAccess.XForLoopExpressionElements getXForLoopExpressionAccess() {
-		return gaXbaseWithAnnotations.getXForLoopExpressionAccess();
+		return gaXbase.getXForLoopExpressionAccess();
 	}
 	
 	public ParserRule getXForLoopExpressionRule() {
 		return getXForLoopExpressionAccess().getRule();
 	}
-
-	//XBasicForLoopExpression returns XExpression:
-	//	{XBasicForLoopExpression} "for" "(" (initExpressions+=XExpressionOrVarDeclaration (","
-	//	initExpressions+=XExpressionOrVarDeclaration)*)? ";" expression=XExpression? ";" (updateExpressions+=XExpression (","
-	//	updateExpressions+=XExpression)*)? ")" eachExpression=XExpression;
+	
+	//XBasicForLoopExpression XExpression:
+	//	{XBasicForLoopExpression}
+	//	'for' '(' (initExpressions+=XExpressionOrVarDeclaration (',' initExpressions+=XExpressionOrVarDeclaration)*)? ';'
+	//	expression=XExpression? ';' (updateExpressions+=XExpression (',' updateExpressions+=XExpression)*)? ')'
+	//	eachExpression=XExpression;
 	public XbaseGrammarAccess.XBasicForLoopExpressionElements getXBasicForLoopExpressionAccess() {
-		return gaXbaseWithAnnotations.getXBasicForLoopExpressionAccess();
+		return gaXbase.getXBasicForLoopExpressionAccess();
 	}
 	
 	public ParserRule getXBasicForLoopExpressionRule() {
 		return getXBasicForLoopExpressionAccess().getRule();
 	}
-
-	//XWhileExpression returns XExpression:
-	//	{XWhileExpression} "while" "(" predicate=XExpression ")" body=XExpression;
+	
+	//XWhileExpression XExpression:
+	//	{XWhileExpression}
+	//	'while' '(' predicate=XExpression ')'
+	//	body=XExpression;
 	public XbaseGrammarAccess.XWhileExpressionElements getXWhileExpressionAccess() {
-		return gaXbaseWithAnnotations.getXWhileExpressionAccess();
+		return gaXbase.getXWhileExpressionAccess();
 	}
 	
 	public ParserRule getXWhileExpressionRule() {
 		return getXWhileExpressionAccess().getRule();
 	}
-
-	//XDoWhileExpression returns XExpression:
-	//	{XDoWhileExpression} "do" body=XExpression "while" "(" predicate=XExpression ")";
+	
+	//XDoWhileExpression XExpression:
+	//	{XDoWhileExpression}
+	//	'do'
+	//	body=XExpression
+	//	'while' '(' predicate=XExpression ')';
 	public XbaseGrammarAccess.XDoWhileExpressionElements getXDoWhileExpressionAccess() {
-		return gaXbaseWithAnnotations.getXDoWhileExpressionAccess();
+		return gaXbase.getXDoWhileExpressionAccess();
 	}
 	
 	public ParserRule getXDoWhileExpressionRule() {
 		return getXDoWhileExpressionAccess().getRule();
 	}
-
-	//XBlockExpression returns XExpression:
-	//	{XBlockExpression} "{" (expressions+=XExpressionOrVarDeclaration ";"?)* "}";
+	
+	//XBlockExpression XExpression:
+	//	{XBlockExpression}
+	//	'{' (expressions+=XExpressionOrVarDeclaration ';'?)*
+	//	'}';
 	public XbaseGrammarAccess.XBlockExpressionElements getXBlockExpressionAccess() {
-		return gaXbaseWithAnnotations.getXBlockExpressionAccess();
+		return gaXbase.getXBlockExpressionAccess();
 	}
 	
 	public ParserRule getXBlockExpressionRule() {
 		return getXBlockExpressionAccess().getRule();
 	}
-
-	//XExpressionOrVarDeclaration returns XExpression:
+	
+	//XExpressionOrVarDeclaration XExpression:
 	//	XVariableDeclaration | XExpression;
 	public XbaseGrammarAccess.XExpressionOrVarDeclarationElements getXExpressionOrVarDeclarationAccess() {
-		return gaXbaseWithAnnotations.getXExpressionOrVarDeclarationAccess();
+		return gaXbase.getXExpressionOrVarDeclarationAccess();
 	}
 	
 	public ParserRule getXExpressionOrVarDeclarationRule() {
 		return getXExpressionOrVarDeclarationAccess().getRule();
 	}
-
-	//XVariableDeclaration returns XExpression:
-	//	{XVariableDeclaration} (writeable?="var" | "val") (=> (type=JvmTypeReference name=ValidID) | name=ValidID) ("="
+	
+	//XVariableDeclaration XExpression:
+	//	{XVariableDeclaration} (writeable?='var' | 'val') (=> (type=JvmTypeReference name=ValidID) | name=ValidID) ('='
 	//	right=XExpression)?;
 	public XbaseGrammarAccess.XVariableDeclarationElements getXVariableDeclarationAccess() {
-		return gaXbaseWithAnnotations.getXVariableDeclarationAccess();
+		return gaXbase.getXVariableDeclarationAccess();
 	}
 	
 	public ParserRule getXVariableDeclarationRule() {
 		return getXVariableDeclarationAccess().getRule();
 	}
-
-	//JvmFormalParameter returns types::JvmFormalParameter:
+	
+	//JvmFormalParameter types::JvmFormalParameter:
 	//	parameterType=JvmTypeReference? name=ValidID;
 	public XbaseGrammarAccess.JvmFormalParameterElements getJvmFormalParameterAccess() {
-		return gaXbaseWithAnnotations.getJvmFormalParameterAccess();
+		return gaXbase.getJvmFormalParameterAccess();
 	}
 	
 	public ParserRule getJvmFormalParameterRule() {
 		return getJvmFormalParameterAccess().getRule();
 	}
-
-	//FullJvmFormalParameter returns types::JvmFormalParameter:
+	
+	//FullJvmFormalParameter types::JvmFormalParameter:
 	//	parameterType=JvmTypeReference name=ValidID;
 	public XbaseGrammarAccess.FullJvmFormalParameterElements getFullJvmFormalParameterAccess() {
-		return gaXbaseWithAnnotations.getFullJvmFormalParameterAccess();
+		return gaXbase.getFullJvmFormalParameterAccess();
 	}
 	
 	public ParserRule getFullJvmFormalParameterRule() {
 		return getFullJvmFormalParameterAccess().getRule();
 	}
-
-	//XFeatureCall returns XExpression:
-	//	{XFeatureCall} ("<" typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")?
-	//	feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?="(" (featureCallArguments+=XShortClosure
-	//	| featureCallArguments+=XExpression ("," featureCallArguments+=XExpression)*)? ")")? featureCallArguments+=XClosure?;
+	
+	//XFeatureCall XExpression:
+	//	{XFeatureCall} ('<' typeArguments+=JvmArgumentTypeReference (',' typeArguments+=JvmArgumentTypeReference)* '>')?
+	//	feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?='(' (featureCallArguments+=XShortClosure
+	//	| featureCallArguments+=XExpression (',' featureCallArguments+=XExpression)*)?
+	//	')')?
+	//	featureCallArguments+=XClosure?;
 	public XbaseGrammarAccess.XFeatureCallElements getXFeatureCallAccess() {
-		return gaXbaseWithAnnotations.getXFeatureCallAccess();
+		return gaXbase.getXFeatureCallAccess();
 	}
 	
 	public ParserRule getXFeatureCallRule() {
 		return getXFeatureCallAccess().getRule();
 	}
-
+	
 	//FeatureCallID:
-	//	ValidID | "extends" | "static" | "import" | "extension";
+	//	ValidID | 'extends' | 'static' | 'import' | 'extension';
 	public XbaseGrammarAccess.FeatureCallIDElements getFeatureCallIDAccess() {
-		return gaXbaseWithAnnotations.getFeatureCallIDAccess();
+		return gaXbase.getFeatureCallIDAccess();
 	}
 	
 	public ParserRule getFeatureCallIDRule() {
 		return getFeatureCallIDAccess().getRule();
 	}
-
+	
 	//IdOrSuper:
-	//	FeatureCallID | "super";
+	//	FeatureCallID | 'super';
 	public XbaseGrammarAccess.IdOrSuperElements getIdOrSuperAccess() {
-		return gaXbaseWithAnnotations.getIdOrSuperAccess();
+		return gaXbase.getIdOrSuperAccess();
 	}
 	
 	public ParserRule getIdOrSuperRule() {
 		return getIdOrSuperAccess().getRule();
 	}
-
-	//XConstructorCall returns XExpression:
-	//	{XConstructorCall} "new" constructor=[types::JvmConstructor|QualifiedName] ("<"
-	//	typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")? (=>
-	//	explicitConstructorCall?="(" (arguments+=XShortClosure | arguments+=XExpression ("," arguments+=XExpression)*)? ")")?
+	
+	//XConstructorCall XExpression:
+	//	{XConstructorCall}
+	//	'new' constructor=[types::JvmConstructor|QualifiedName] (=> '<' typeArguments+=JvmArgumentTypeReference (','
+	//	typeArguments+=JvmArgumentTypeReference)* '>')? (=> explicitConstructorCall?='(' (arguments+=XShortClosure
+	//	| arguments+=XExpression (',' arguments+=XExpression)*)?
+	//	')')?
 	//	arguments+=XClosure?;
 	public XbaseGrammarAccess.XConstructorCallElements getXConstructorCallAccess() {
-		return gaXbaseWithAnnotations.getXConstructorCallAccess();
+		return gaXbase.getXConstructorCallAccess();
 	}
 	
 	public ParserRule getXConstructorCallRule() {
 		return getXConstructorCallAccess().getRule();
 	}
-
-	//XBooleanLiteral returns XExpression:
-	//	{XBooleanLiteral} ("false" | isTrue?="true");
+	
+	//XBooleanLiteral XExpression:
+	//	{XBooleanLiteral} ('false' | isTrue?='true');
 	public XbaseGrammarAccess.XBooleanLiteralElements getXBooleanLiteralAccess() {
-		return gaXbaseWithAnnotations.getXBooleanLiteralAccess();
+		return gaXbase.getXBooleanLiteralAccess();
 	}
 	
 	public ParserRule getXBooleanLiteralRule() {
 		return getXBooleanLiteralAccess().getRule();
 	}
-
-	//XNullLiteral returns XExpression:
-	//	{XNullLiteral} "null";
+	
+	//XNullLiteral XExpression:
+	//	{XNullLiteral} 'null';
 	public XbaseGrammarAccess.XNullLiteralElements getXNullLiteralAccess() {
-		return gaXbaseWithAnnotations.getXNullLiteralAccess();
+		return gaXbase.getXNullLiteralAccess();
 	}
 	
 	public ParserRule getXNullLiteralRule() {
 		return getXNullLiteralAccess().getRule();
 	}
-
-	//XNumberLiteral returns XExpression:
+	
+	//XNumberLiteral XExpression:
 	//	{XNumberLiteral} value=Number;
 	public XbaseGrammarAccess.XNumberLiteralElements getXNumberLiteralAccess() {
-		return gaXbaseWithAnnotations.getXNumberLiteralAccess();
+		return gaXbase.getXNumberLiteralAccess();
 	}
 	
 	public ParserRule getXNumberLiteralRule() {
 		return getXNumberLiteralAccess().getRule();
 	}
-
-	//XStringLiteral returns XExpression:
+	
+	//XStringLiteral XExpression:
 	//	{XStringLiteral} value=STRING;
 	public XbaseGrammarAccess.XStringLiteralElements getXStringLiteralAccess() {
-		return gaXbaseWithAnnotations.getXStringLiteralAccess();
+		return gaXbase.getXStringLiteralAccess();
 	}
 	
 	public ParserRule getXStringLiteralRule() {
 		return getXStringLiteralAccess().getRule();
 	}
-
-	//XTypeLiteral returns XExpression:
-	//	{XTypeLiteral} "typeof" "(" type=[types::JvmType|QualifiedName] arrayDimensions+=ArrayBrackets* ")";
+	
+	//XTypeLiteral XExpression:
+	//	{XTypeLiteral} 'typeof' '(' type=[types::JvmType|QualifiedName] arrayDimensions+=ArrayBrackets* ')';
 	public XbaseGrammarAccess.XTypeLiteralElements getXTypeLiteralAccess() {
-		return gaXbaseWithAnnotations.getXTypeLiteralAccess();
+		return gaXbase.getXTypeLiteralAccess();
 	}
 	
 	public ParserRule getXTypeLiteralRule() {
 		return getXTypeLiteralAccess().getRule();
 	}
-
-	//XThrowExpression returns XExpression:
-	//	{XThrowExpression} "throw" expression=XExpression;
+	
+	//XThrowExpression XExpression:
+	//	{XThrowExpression} 'throw' expression=XExpression;
 	public XbaseGrammarAccess.XThrowExpressionElements getXThrowExpressionAccess() {
-		return gaXbaseWithAnnotations.getXThrowExpressionAccess();
+		return gaXbase.getXThrowExpressionAccess();
 	}
 	
 	public ParserRule getXThrowExpressionRule() {
 		return getXThrowExpressionAccess().getRule();
 	}
-
-	//XReturnExpression returns XExpression:
-	//	{XReturnExpression} "return" -> expression=XExpression?;
+	
+	//XReturnExpression XExpression:
+	//	{XReturnExpression} 'return' -> expression=XExpression?;
 	public XbaseGrammarAccess.XReturnExpressionElements getXReturnExpressionAccess() {
-		return gaXbaseWithAnnotations.getXReturnExpressionAccess();
+		return gaXbase.getXReturnExpressionAccess();
 	}
 	
 	public ParserRule getXReturnExpressionRule() {
 		return getXReturnExpressionAccess().getRule();
 	}
-
-	//XTryCatchFinallyExpression returns XExpression:
-	//	{XTryCatchFinallyExpression} "try" expression=XExpression (catchClauses+=XCatchClause+ ("finally"
-	//	finallyExpression=XExpression)? | "finally" finallyExpression=XExpression);
+	
+	//XTryCatchFinallyExpression XExpression:
+	//	{XTryCatchFinallyExpression}
+	//	'try'
+	//	expression=XExpression (catchClauses+=XCatchClause+ (=> 'finally' finallyExpression=XExpression)?
+	//	| 'finally' finallyExpression=XExpression);
 	public XbaseGrammarAccess.XTryCatchFinallyExpressionElements getXTryCatchFinallyExpressionAccess() {
-		return gaXbaseWithAnnotations.getXTryCatchFinallyExpressionAccess();
+		return gaXbase.getXTryCatchFinallyExpressionAccess();
 	}
 	
 	public ParserRule getXTryCatchFinallyExpressionRule() {
 		return getXTryCatchFinallyExpressionAccess().getRule();
 	}
-
-	//XSynchronizedExpression returns XExpression:
-	//	=> ({XSynchronizedExpression} "synchronized" "(") param=XExpression ")" expression=XExpression;
+	
+	//XSynchronizedExpression XExpression:
+	//	=> ({XSynchronizedExpression}
+	//	'synchronized' '(') param=XExpression ')' expression=XExpression;
 	public XbaseGrammarAccess.XSynchronizedExpressionElements getXSynchronizedExpressionAccess() {
-		return gaXbaseWithAnnotations.getXSynchronizedExpressionAccess();
+		return gaXbase.getXSynchronizedExpressionAccess();
 	}
 	
 	public ParserRule getXSynchronizedExpressionRule() {
 		return getXSynchronizedExpressionAccess().getRule();
 	}
-
+	
 	//XCatchClause:
-	//	"catch" "(" declaredParam=FullJvmFormalParameter ")" expression=XExpression;
+	//	=> 'catch' '(' declaredParam=FullJvmFormalParameter ')' expression=XExpression;
 	public XbaseGrammarAccess.XCatchClauseElements getXCatchClauseAccess() {
-		return gaXbaseWithAnnotations.getXCatchClauseAccess();
+		return gaXbase.getXCatchClauseAccess();
 	}
 	
 	public ParserRule getXCatchClauseRule() {
 		return getXCatchClauseAccess().getRule();
 	}
-
+	
+	//QualifiedName:
+	//	ValidID (=> '.' ValidID)*;
+	public XbaseGrammarAccess.QualifiedNameElements getQualifiedNameAccess() {
+		return gaXbase.getQualifiedNameAccess();
+	}
+	
+	public ParserRule getQualifiedNameRule() {
+		return getQualifiedNameAccess().getRule();
+	}
+	
 	//Number hidden():
-	//	HEX | (INT | DECIMAL) ("." (INT | DECIMAL))?;
+	//	HEX | (INT | DECIMAL) ('.' (INT | DECIMAL))?;
 	public XbaseGrammarAccess.NumberElements getNumberAccess() {
-		return gaXbaseWithAnnotations.getNumberAccess();
+		return gaXbase.getNumberAccess();
 	}
 	
 	public ParserRule getNumberRule() {
 		return getNumberAccess().getRule();
 	}
-
-	/// **
+	
+	///**
 	// * Dummy rule, for "better" downwards compatibility, since GrammarAccess generates non-static inner classes, 
 	// * which makes downstream grammars break on classloading, when a rule is removed.
-	// * /
-	//StaticQualifier:
-	//	(ValidID "::")+;
+	// */ StaticQualifier:
+	//	(ValidID '::')+;
 	public XbaseGrammarAccess.StaticQualifierElements getStaticQualifierAccess() {
-		return gaXbaseWithAnnotations.getStaticQualifierAccess();
+		return gaXbase.getStaticQualifierAccess();
 	}
 	
 	public ParserRule getStaticQualifierRule() {
 		return getStaticQualifierAccess().getRule();
 	}
-
+	
 	//terminal HEX:
-	//	("0x" | "0X") ("0".."9" | "a".."f" | "A".."F" | "_")+ ("#" (("b" | "B") ("i" | "I") | ("l" | "L")))?;
+	//	('0x' | '0X') ('0'..'9' | 'a'..'f' | 'A'..'F' | '_')+ ('#' (('b' | 'B') ('i' | 'I') | ('l' | 'L')))?;
 	public TerminalRule getHEXRule() {
-		return gaXbaseWithAnnotations.getHEXRule();
-	} 
-
+		return gaXbase.getHEXRule();
+	}
+	
+	//terminal INT returns ecore::EInt:
+	//	'0'..'9' ('0'..'9' | '_')*;
+	public TerminalRule getINTRule() {
+		return gaXbase.getINTRule();
+	}
+	
 	//terminal DECIMAL:
-	//	INT (("e" | "E") ("+" | "-")? INT)? (("b" | "B") ("i" | "I" | "d" | "D") | ("l" | "L" | "d" | "D" | "f" | "F"))?;
+	//	INT (('e' | 'E') ('+' | '-')? INT)? (('b' | 'B') ('i' | 'I' | 'd' | 'D') | ('l' | 'L' | 'd' | 'D' | 'f' | 'F'))?;
 	public TerminalRule getDECIMALRule() {
-		return gaXbaseWithAnnotations.getDECIMALRule();
-	} 
-
+		return gaXbase.getDECIMALRule();
+	}
+	
 	//JvmTypeReference:
-	//	JvmParameterizedTypeReference => ({JvmGenericArrayTypeReference.componentType=current} ArrayBrackets)* |
-	//	XFunctionTypeRef;
+	//	JvmParameterizedTypeReference => ({JvmGenericArrayTypeReference.componentType=current} ArrayBrackets)*
+	//	| XFunctionTypeRef;
 	public XtypeGrammarAccess.JvmTypeReferenceElements getJvmTypeReferenceAccess() {
-		return gaXbaseWithAnnotations.getJvmTypeReferenceAccess();
+		return gaXtype.getJvmTypeReferenceAccess();
 	}
 	
 	public ParserRule getJvmTypeReferenceRule() {
 		return getJvmTypeReferenceAccess().getRule();
 	}
-
+	
 	//ArrayBrackets:
-	//	"[" "]";
+	//	'[' ']';
 	public XtypeGrammarAccess.ArrayBracketsElements getArrayBracketsAccess() {
-		return gaXbaseWithAnnotations.getArrayBracketsAccess();
+		return gaXtype.getArrayBracketsAccess();
 	}
 	
 	public ParserRule getArrayBracketsRule() {
 		return getArrayBracketsAccess().getRule();
 	}
-
+	
 	//XFunctionTypeRef:
-	//	("(" (paramTypes+=JvmTypeReference ("," paramTypes+=JvmTypeReference)*)? ")")? "=>" returnType=JvmTypeReference;
+	//	('(' (paramTypes+=JvmTypeReference (',' paramTypes+=JvmTypeReference)*)? ')')? '=>' returnType=JvmTypeReference;
 	public XtypeGrammarAccess.XFunctionTypeRefElements getXFunctionTypeRefAccess() {
-		return gaXbaseWithAnnotations.getXFunctionTypeRefAccess();
+		return gaXtype.getXFunctionTypeRefAccess();
 	}
 	
 	public ParserRule getXFunctionTypeRefRule() {
 		return getXFunctionTypeRefAccess().getRule();
 	}
-
+	
 	//JvmParameterizedTypeReference:
-	//	type=[JvmType|QualifiedName] ("<" arguments+=JvmArgumentTypeReference ("," arguments+=JvmArgumentTypeReference)* ">"
-	//	(=> ({JvmInnerTypeReference.outer=current} ".") type=[JvmType|ValidID] ("<" arguments+=JvmArgumentTypeReference (","
-	//	arguments+=JvmArgumentTypeReference)* ">")?)*)?;
+	//	type=[JvmType|super::QualifiedName] (=> '<' arguments+=JvmArgumentTypeReference (','
+	//	arguments+=JvmArgumentTypeReference)* '>' (=> ({JvmInnerTypeReference.outer=current} '.') type=[JvmType|ValidID] (=>
+	//	'<' arguments+=JvmArgumentTypeReference (',' arguments+=JvmArgumentTypeReference)* '>')?)*)?;
 	public XtypeGrammarAccess.JvmParameterizedTypeReferenceElements getJvmParameterizedTypeReferenceAccess() {
-		return gaXbaseWithAnnotations.getJvmParameterizedTypeReferenceAccess();
+		return gaXtype.getJvmParameterizedTypeReferenceAccess();
 	}
 	
 	public ParserRule getJvmParameterizedTypeReferenceRule() {
 		return getJvmParameterizedTypeReferenceAccess().getRule();
 	}
-
-	//JvmArgumentTypeReference returns JvmTypeReference:
+	
+	//JvmArgumentTypeReference JvmTypeReference:
 	//	JvmTypeReference | JvmWildcardTypeReference;
 	public XtypeGrammarAccess.JvmArgumentTypeReferenceElements getJvmArgumentTypeReferenceAccess() {
-		return gaXbaseWithAnnotations.getJvmArgumentTypeReferenceAccess();
+		return gaXtype.getJvmArgumentTypeReferenceAccess();
 	}
 	
 	public ParserRule getJvmArgumentTypeReferenceRule() {
 		return getJvmArgumentTypeReferenceAccess().getRule();
 	}
-
+	
 	//JvmWildcardTypeReference:
-	//	{JvmWildcardTypeReference} "?" (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded* |
-	//	constraints+=JvmLowerBound constraints+=JvmLowerBoundAnded*)?;
+	//	{JvmWildcardTypeReference} '?' (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded*
+	//	| constraints+=JvmLowerBound constraints+=JvmLowerBoundAnded*)?;
 	public XtypeGrammarAccess.JvmWildcardTypeReferenceElements getJvmWildcardTypeReferenceAccess() {
-		return gaXbaseWithAnnotations.getJvmWildcardTypeReferenceAccess();
+		return gaXtype.getJvmWildcardTypeReferenceAccess();
 	}
 	
 	public ParserRule getJvmWildcardTypeReferenceRule() {
 		return getJvmWildcardTypeReferenceAccess().getRule();
 	}
-
+	
 	//JvmUpperBound:
-	//	"extends" typeReference=JvmTypeReference;
+	//	'extends' typeReference=JvmTypeReference;
 	public XtypeGrammarAccess.JvmUpperBoundElements getJvmUpperBoundAccess() {
-		return gaXbaseWithAnnotations.getJvmUpperBoundAccess();
+		return gaXtype.getJvmUpperBoundAccess();
 	}
 	
 	public ParserRule getJvmUpperBoundRule() {
 		return getJvmUpperBoundAccess().getRule();
 	}
-
-	//JvmUpperBoundAnded returns JvmUpperBound:
-	//	"&" typeReference=JvmTypeReference;
+	
+	//JvmUpperBoundAnded JvmUpperBound:
+	//	'&' typeReference=JvmTypeReference;
 	public XtypeGrammarAccess.JvmUpperBoundAndedElements getJvmUpperBoundAndedAccess() {
-		return gaXbaseWithAnnotations.getJvmUpperBoundAndedAccess();
+		return gaXtype.getJvmUpperBoundAndedAccess();
 	}
 	
 	public ParserRule getJvmUpperBoundAndedRule() {
 		return getJvmUpperBoundAndedAccess().getRule();
 	}
-
+	
 	//JvmLowerBound:
-	//	"super" typeReference=JvmTypeReference;
+	//	'super' typeReference=JvmTypeReference;
 	public XtypeGrammarAccess.JvmLowerBoundElements getJvmLowerBoundAccess() {
-		return gaXbaseWithAnnotations.getJvmLowerBoundAccess();
+		return gaXtype.getJvmLowerBoundAccess();
 	}
 	
 	public ParserRule getJvmLowerBoundRule() {
 		return getJvmLowerBoundAccess().getRule();
 	}
-
-	//JvmLowerBoundAnded returns JvmLowerBound:
-	//	"&" typeReference=JvmTypeReference;
+	
+	//JvmLowerBoundAnded JvmLowerBound:
+	//	'&' typeReference=JvmTypeReference;
 	public XtypeGrammarAccess.JvmLowerBoundAndedElements getJvmLowerBoundAndedAccess() {
-		return gaXbaseWithAnnotations.getJvmLowerBoundAndedAccess();
+		return gaXtype.getJvmLowerBoundAndedAccess();
 	}
 	
 	public ParserRule getJvmLowerBoundAndedRule() {
 		return getJvmLowerBoundAndedAccess().getRule();
 	}
-
+	
 	//JvmTypeParameter:
 	//	name=ValidID (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded*)?;
 	public XtypeGrammarAccess.JvmTypeParameterElements getJvmTypeParameterAccess() {
-		return gaXbaseWithAnnotations.getJvmTypeParameterAccess();
+		return gaXtype.getJvmTypeParameterAccess();
 	}
 	
 	public ParserRule getJvmTypeParameterRule() {
 		return getJvmTypeParameterAccess().getRule();
 	}
-
+	
 	//QualifiedNameWithWildcard:
-	//	QualifiedName "." "*";
+	//	super::QualifiedName '.' '*';
 	public XtypeGrammarAccess.QualifiedNameWithWildcardElements getQualifiedNameWithWildcardAccess() {
-		return gaXbaseWithAnnotations.getQualifiedNameWithWildcardAccess();
+		return gaXtype.getQualifiedNameWithWildcardAccess();
 	}
 	
 	public ParserRule getQualifiedNameWithWildcardRule() {
 		return getQualifiedNameWithWildcardAccess().getRule();
 	}
-
+	
+	//ValidID:
+	//	ID;
+	public XtypeGrammarAccess.ValidIDElements getValidIDAccess() {
+		return gaXtype.getValidIDAccess();
+	}
+	
+	public ParserRule getValidIDRule() {
+		return getValidIDAccess().getRule();
+	}
+	
 	//XImportSection:
-	//	importDeclarations+=XImportDeclaration+;
+	//	importDeclarations+=super::XImportDeclaration+;
 	public XtypeGrammarAccess.XImportSectionElements getXImportSectionAccess() {
-		return gaXbaseWithAnnotations.getXImportSectionAccess();
+		return gaXtype.getXImportSectionAccess();
 	}
 	
 	public ParserRule getXImportSectionRule() {
 		return getXImportSectionAccess().getRule();
 	}
-
-	//XImportDeclaration:
-	//	"import" (static?="static" extension?="extension"? importedType=[JvmDeclaredType|QualifiedNameInStaticImport]
-	//	(wildcard?="*" | memberName=ValidID) | importedType=[JvmDeclaredType|QualifiedName] |
-	//	importedNamespace=QualifiedNameWithWildcard) ";"?;
-	public XtypeGrammarAccess.XImportDeclarationElements getXImportDeclarationAccess() {
-		return gaXbaseWithAnnotations.getXImportDeclarationAccess();
-	}
 	
-	public ParserRule getXImportDeclarationRule() {
-		return getXImportDeclarationAccess().getRule();
-	}
-
 	//QualifiedNameInStaticImport:
-	//	(ValidID ".")+;
+	//	(ValidID '.')+;
 	public XtypeGrammarAccess.QualifiedNameInStaticImportElements getQualifiedNameInStaticImportAccess() {
-		return gaXbaseWithAnnotations.getQualifiedNameInStaticImportAccess();
+		return gaXtype.getQualifiedNameInStaticImportAccess();
 	}
 	
 	public ParserRule getQualifiedNameInStaticImportRule() {
 		return getQualifiedNameInStaticImportAccess().getRule();
 	}
-
+	
+	//terminal ID:
+	//	'^'? ('a'..'z' | 'A'..'Z' | '$' | '_') ('a'..'z' | 'A'..'Z' | '$' | '_' | '0'..'9')*;
+	public TerminalRule getIDRule() {
+		return gaXtype.getIDRule();
+	}
+	
 	//terminal STRING:
-	//	"\"" ("\\" . / * ('b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\') * / | !("\\" | "\""))* "\""? | "\'" ("\\" .
-	//	/ * ('b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\') * / | !("\\" | "\'"))* "\'"?;
+	//	'"' ('\\' . | !('\\' | '"'))* '"'? |
+	//	"'" ('\\' . | !('\\' | "'"))* "'"?;
 	public TerminalRule getSTRINGRule() {
-		return gaXbaseWithAnnotations.getSTRINGRule();
-	} 
-
+		return gaXtype.getSTRINGRule();
+	}
+	
 	//terminal ML_COMMENT:
-	//	"/ *"->"* /";
+	//	'/*'->'*/';
 	public TerminalRule getML_COMMENTRule() {
-		return gaXbaseWithAnnotations.getML_COMMENTRule();
-	} 
-
+		return gaXtype.getML_COMMENTRule();
+	}
+	
 	//terminal SL_COMMENT:
-	//	"//" !("\n" | "\r")* ("\r"? "\n")?;
+	//	'//' !('\n' | '\r')* ('\r'? '\n')?;
 	public TerminalRule getSL_COMMENTRule() {
-		return gaXbaseWithAnnotations.getSL_COMMENTRule();
-	} 
-
+		return gaXtype.getSL_COMMENTRule();
+	}
+	
 	//terminal WS:
-	//	(" " | "\t" | "\r" | "\n")+;
+	//	' ' | '\t' | '\r' | '\n'+;
 	public TerminalRule getWSRule() {
-		return gaXbaseWithAnnotations.getWSRule();
-	} 
-
+		return gaXtype.getWSRule();
+	}
+	
 	//terminal ANY_OTHER:
 	//	.;
 	public TerminalRule getANY_OTHERRule() {
-		return gaXbaseWithAnnotations.getANY_OTHERRule();
-	} 
+		return gaXtype.getANY_OTHERRule();
+	}
 }
diff --git a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/validation/AbstractTableDSLValidator.java b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/validation/AbstractTableDSLValidator.java
index 81f4d8f..17bc7d8 100644
--- a/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/validation/AbstractTableDSLValidator.java
+++ b/org.eclipse.osbp.xtext.table/src-gen/org/eclipse/osbp/xtext/table/validation/AbstractTableDSLValidator.java
@@ -1,35 +1,27 @@
-/**
- *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
- *                                                                            
- *  All rights reserved. This program and the accompanying materials           
- *  are made available under the terms of the Eclipse Public License v1.0       
- *  which accompanies this distribution, and is available at                  
- *  http://www.eclipse.org/legal/epl-v10.html                                 
- *                                                                            
- *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
- * 
+/*
+ * generated by Xtext 2.11.0
  */
 package org.eclipse.osbp.xtext.table.validation;
 
 import java.util.ArrayList;
 import java.util.List;
 import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.osbp.xtext.oxtype.validation.OXtypeValidator;
 
-public class AbstractTableDSLValidator extends org.eclipse.xtext.xbase.annotations.validation.XbaseWithAnnotationsValidator {
-
+public abstract class AbstractTableDSLValidator extends OXtypeValidator {
+	
 	@Override
 	protected List<EPackage> getEPackages() {
-	    List<EPackage> result = new ArrayList<EPackage>(super.getEPackages());
-	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/xtext/table/TableDSL"));
-	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/dsl/common/types/v1"));
-	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/gridsource/v1/core"));
-	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/gridsource/v1/core/style"));
-	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/Xtext/Xbase/XAnnotations"));
-	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/xbase/Xbase"));
-	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/common/JavaVMTypes"));
-	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/xbase/Xtype"));
+		List<EPackage> result = new ArrayList<EPackage>(super.getEPackages());
+		result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/xtext/table/TableDSL"));
+		result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/gridsource/v1/core"));
+		result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/gridsource/v1/core/style"));
+		result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/osbp/xtext/oxtype/OXtype"));
+		result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/Xtext/Xbase/XAnnotations"));
+		result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/xbase/Xbase"));
+		result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/common/JavaVMTypes"));
+		result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/xbase/Xtype"));
 		return result;
 	}
+	
 }
diff --git a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/GenerateTableDSL.mwe2 b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/GenerateTableDSL.mwe2
index eb65259..6282ce1 100644
--- a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/GenerateTableDSL.mwe2
+++ b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/GenerateTableDSL.mwe2
@@ -14,179 +14,71 @@
 module org.eclipse.osbp.xtext.table.GenerateTableDSL
 
 import org.eclipse.emf.mwe.utils.*
-import org.eclipse.xtext.generator.*
-import org.eclipse.xtext.ui.generator.*
-import org.eclipse.osbp.dsl.mwe.*
+import org.eclipse.xtext.xtext.generator.*
+import org.eclipse.xtext.xtext.generator.model.project.*
 
-var projectName = "org.eclipse.osbp.xtext.table"
-var grammarURI = "platform:/resource/${projectName}/src/org/eclipse/osbp/xtext/table/TableDSL.xtext"
-var fileExtensions = "table"
-var runtimeProject = "../${projectName}"
-var generateXtendStub = true
-var encoding = "UTF-8"
+var rootPath = ".."
 
 Workflow {
-	
-	bean = org.eclipse.osbp.dsl.mwe.SemanticModelSetupComponent {
-		ePackage = org.eclipse.osbp.dsl.mwe.PackageMapping {
-			nsURI = "http://osbp.eclipse.org/gridsource/v1/core"
-			packageClass = "org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage"
-			factoryClass = "org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceFactoryImpl"
+
+	component = XtextGenerator {
+		configuration = {
+			project = StandardProjectConfig {
+				baseName = "org.eclipse.osbp.xtext.table"
+				rootPath = rootPath
+				genericIde = {
+					enabled = true
+					name = "org.eclipse.osbp.xtext.table.ide"
+				}
+				runtimeTest = {
+					enabled = true
+				}
+				eclipsePlugin = {
+					enabled = true
+				}
+				eclipsePluginTest = {
+					enabled = false
+				}
+				createEclipseMetaData = true
+			}
+			code = {
+				encoding = "UTF-8"
+				lineDelimiter = "\n"
+				fileHeader = "/*\n * generated by Xtext \${version}\n */"
+			}
 		}
-		
-		ePackage = org.eclipse.osbp.dsl.mwe.PackageMapping {
-			nsURI = "http://osbp.eclipse.org/gridsource/v1/core/style"
-			packageClass = "org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage"
-			factoryClass = "org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleFactoryImpl"
-		}
-	}
-	
 
-	bean = org.eclipse.emf.ecore.xcore.XcoreStandaloneSetup : xcore {}
-	bean = org.eclipse.xtext.mwe.Reader {
-		register = xcore
-	}
-	bean = MavenStandaloneSetup {
-		scanClassPath = true
-		platformUri = "${runtimeProject}/.."
-		registerGenModelFile = "platform:/resource/org.eclipse.osbp.infogrid.model/model/gridsource.genmodel"
-		registerEcoreFile = "platform:/resource/org.eclipse.osbp.infogrid.model/model/gridsource.ecore" // vo mia
-		registerGeneratedEPackage = "org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage"
-		registerGeneratedEPackage = "org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage"
-		registerGenModelFile = "platform:/resource/org.eclipse.osbp.xtext.table/model/TableDSL.xcore"//		registerEcoreFile = "platform:/resource/org.eclipse.osbp.xtext.table/model/TableDSL.xcore"
-		registerGeneratedEPackage = "org.eclipse.osbp.xtext.table.TableDSLPackage"
-		registerGenModelFile = "platform:/resource/org.eclipse.osbp.xtext.datamartdsl/model/DatamartDSL.xcore"//		registerEcoreFile = "platform:/resource/org.eclipse.osbp.xtext.datamartdsl/model/DatamartDSL.xcore"
-		registerGeneratedEPackage = "org.eclipse.osbp.xtext.datamartdsl.DatamartDSLPackage"
-		registerGenModelFile = "platform:/resource/org.eclipse.osbp.xtext.cubedsl/model/CubeDSL.xcore"//		registerEcoreFile = "platform:/resource/org.eclipse.osbp.xtext.cubedsl/model/CubeDSL.xcore"
-		registerGeneratedEPackage = "org.eclipse.osbp.xtext.cubedsl.CubeDSLPackage"
-		registerGenModelFile = "platform:/resource/org.eclipse.osbp.xtext.datainterchange/model/DataDSL.xcore"
-		registerGeneratedEPackage = "org.eclipse.osbp.xtext.datainterchange.DataDSLPackage"
-		registerGenModelFile = "platform:/resource/org.eclipse.osbp.xtext.action/model/ActionDSL.xcore"
-		registerGeneratedEPackage = "org.eclipse.osbp.xtext.action.ActionDSLPackage"
-		registerGenModelFile = "platform:/resource/org.eclipse.osbp.dsl.entity.xtext/model/entity.xcore"
-		registerEcoreFile = "platform:/resource/org.eclipse.osbp.dsl.entity.xtext/model/entity.xcore"
-		registerGenModelFile = "platform:/resource/org.eclipse.osbp.dsl.common.xtext/model/types.xcore"
-		registerEcoreFile = "platform:/resource/org.eclipse.osbp.dsl.common.xtext/model/types.xcore"
-		registerGenModelFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel"
-		registerEcoreFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.ecore"
-		registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
-		registerEcoreFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xtype.ecore"
-		registerEcoreFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.ecore"
-		registerEcoreFile = "platform:/resource/org.eclipse.xtext.xbase/model/XAnnotations.ecore"
-	}
-
-	component = DirectoryCleaner {
-		directory = "${runtimeProject}/src-gen"
-		exclude = "README.txt"
-	}
-
-	component = DirectoryCleaner {
-		directory = "${runtimeProject}.ui/src-gen"
-		exclude = "README.txt"
-	}
-
-	component = DirectoryCleaner {
-		directory = "${runtimeProject}.tests/src-gen"
-		exclude = "README.txt"
-	}
-
-	component = Generator {
-		pathRtProject = runtimeProject
-		pathUiProject = "${runtimeProject}.ui"
-		pathTestProject = "${runtimeProject}.tests"
-		projectNameRt = projectName
-		projectNameUi = "${projectName}.ui"
-		encoding = encoding
-		language = auto-inject {
-			uri = grammarURI
-
-			// Java API to access grammar elements (required by several other fragments)
-			fragment = grammarAccess.GrammarAccessFragment auto-inject {}
-
-			// generates Java API for the generated EPackages
-			fragment = ecore.EMFGeneratorFragment auto-inject {}
-
-			// the old serialization component
-			// fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}    
-
-			// serializer 2.0
-			fragment = serializer.SerializerFragment auto-inject {
+		language = StandardLanguage {
+			name = "org.eclipse.osbp.xtext.table.TableDSL"
+			fileExtensions = "table"
+			
+			referencedResource = "platform:/resource/org.eclipse.osbp.xtext.oxtype/model/OXtype.ecore"
+			referencedResource = "platform:/resource/org.eclipse.osbp.xtext.oxtype/model/OXtype.genmodel"
+			referencedResource = "platform:/resource/org.eclipse.osbp.infogrid.model/model/gridsource.genmodel"
+			referencedResource = "platform:/resource/org.eclipse.osbp.infogrid.model/model/gridsource.ecore"
+			referencedResource = "platform:/resource/org.eclipse.osbp.xtext.table/model/TableDSL.xcore"
+			referencedResource = "platform:/resource/org.eclipse.osbp.xtext.datamartdsl/model/DatamartDSL.xcore"
+			referencedResource = "platform:/resource/org.eclipse.osbp.xtext.cubedsl/model/CubeDSL.xcore"
+			referencedResource = "platform:/resource/org.eclipse.osbp.xtext.datainterchange/model/DataDSL.xcore"
+			referencedResource = "platform:/resource/org.eclipse.osbp.xtext.action/model/ActionDSL.xcore"
+			referencedResource = "platform:/resource/org.eclipse.osbp.dsl.common.xtext/model/types.xcore"
+			referencedResource = "platform:/resource/org.eclipse.osbp.dsl.entity.xtext/model/entity.xcore"
+			referencedResource = "platform:/resource/org.eclipse.osbp.dsl.dto.xtext/model/dto.xcore"
+			
+			generateXtendStubs = false
+			serializer = {
 				generateStub = false
 			}
-
-			// a custom ResourceFactory for use with EMF
-			fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
-
-			// The antlr parser generator fragment.
-			fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
-			//  options = {
-			//      backtrack = true
-			//  }
+			validator = {
+			// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
 			}
 
-			// Xtend-based API for validation
-			fragment = validation.ValidatorFragment auto-inject {
-			//    composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
-			//    composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+			generator = {
+				generateStub = false
+				generateJavaMain = false
+				generateXtendStub = false
 			}
 
-			// old scoping and exporting API
-			// fragment = scoping.ImportURIScopingFragment auto-inject {}
-			// fragment = exporting.SimpleNamesFragment auto-inject {}
-
-			// scoping and exporting API
-			fragment = scoping.ImportNamespacesScopingFragment auto-inject {}
-			fragment = exporting.QualifiedNamesFragment auto-inject {}
-			fragment = builder.BuilderIntegrationFragment auto-inject {}
-
-			// generator API
-			fragment = generator.GeneratorFragment auto-inject {}
-
-			// formatter API
-			fragment = formatting.FormatterFragment auto-inject {}
-
-			// labeling API
-			fragment = labeling.LabelProviderFragment auto-inject {}
-
-			// outline API
-			fragment = outline.OutlineTreeProviderFragment auto-inject {}
-			fragment = outline.QuickOutlineFragment auto-inject {}
-
-			// quickfix API
-			fragment = quickfix.QuickfixProviderFragment auto-inject {}
-
-			// content assist API
-			fragment = contentAssist.ContentAssistFragment auto-inject {}
-
-			// generates a more lightweight Antlr parser and lexer tailored for content assist
-			fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {
-				options = {
-					classSplitting = true
-					fieldsPerClass = "100"
-					methodsPerClass = "100"
-				}
-			}
-
-			// generates junit test support classes into Generator#pathTestProject
-			fragment = junit.Junit4Fragment auto-inject {}
-
-			// rename refactoring
-			fragment = refactoring.RefactorElementNameFragment auto-inject {}
-
-			// provides the necessary bindings for java types integration
-			fragment = types.TypesGeneratorFragment auto-inject {}
-
-			// generates the required bindings only if the grammar inherits from Xbase
-			fragment = xbase.XbaseGeneratorFragment auto-inject {}
-
-			// provides a preference page for template proposals
-			fragment = templates.CodetemplatesGeneratorFragment auto-inject {}
-
-			// provides a compare view
-			fragment = compare.CompareFragment auto-inject {}
-
-			// parse grammar and generate i18n grammar
-			fragment = org.eclipse.osbp.xtext.basic.generator.BasicDslGrammarI18nGenerator auto-inject {}
 		}
 	}
 }
diff --git a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/TableDSL.xtext b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/TableDSL.xtext
index 6552c17..cb3f3fc 100644
--- a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/TableDSL.xtext
+++ b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/TableDSL.xtext
@@ -11,7 +11,8 @@
  * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
  * 
  */
-grammar org.eclipse.osbp.xtext.table.TableDSL with org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations
+
+grammar org.eclipse.osbp.xtext.table.TableDSL with org.eclipse.osbp.xtext.oxtype.OXtype
 
 import "http://osbp.eclipse.org/gridsource/v1/core"
 import "http://osbp.eclipse.org/gridsource/v1/core/style" as style
@@ -26,33 +27,34 @@
 import "http://www.eclipse.org/xtext/common/JavaVMTypes"
 
 TableModel:
+	importSection=XImportSection?
 	packages+=TablePackage*;
 
 TablePackage:
 	{TablePackage} 'package' name=QualifiedName
-	('{' (imports+=TableImport)* (tables+=Table)* '}')?;
+	('{'  (tables+=Table)* '}')?;
 
 Table:
-	{Table} 'table' name=TRANSLATABLEID (description?='described by' descriptionValue=TRANSLATABLESTRING)?
+	{Table} 'table' name=ID (description?='describedBy' descriptionValue=TRANSLATABLESTRING)?
 	'as' tabletype=TableOption;
 
 TableOption:
-	TableSelection | TableTable | TableGrid;
+	TableSelection | TableTable | TableGrid |TableBean;
 
 TableSelection:
-	{TableSelection} (multiSelection?='multiselection' | 'singleselection') (((selectalways?='selectalways')?) & ('rowheader' headerMode=RowHeaderMode)?)
-	((polling?='polling' pollingTime=Number)? &
-	(filtering?='filtering')? &
-	(embedded?='embedded')? &
-	('toolbar' toolbar=[action::ActionToolbar])?)
+	{TableSelection} 'selection' 
+	(multiSelection?='multiple' | 'single') 
+	((selectalways?='alwaysSelected')? & ('rowHeader' headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & (filtering?='filtering')? & (embedded?='embedded')? & ('toolbar' toolbar=[action::ActionToolbar])?)
 	('using' source=TableDatamart)?;
 
 TableTable:
-	{TableTable} 'table' (((selectalways?='selectalways')?) & ('rowheader' headerMode=RowHeaderMode)?)
-	((polling?='polling' pollingTime=Number)? &
-	(filtering?='filtering')? &
-	(embedded?='embedded')? &
-	('toolbar' toolbar=[action::ActionToolbar])?)
+	{TableTable} 'table' 
+	((selectalways?='alwaysSelected')? & (selectById?='selectById')? & ('rowHeader' headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & (filtering?='filtering')? & (embedded?='embedded')? & ('toolbar' toolbar=[action::ActionToolbar])?)
+	('using' source=TableDatamart)?;
+
+TableBean: 
+	{TableBean} 'bean' 
+	((selectalways?='alwaysSelected')? & (selectById?='selectById')? & ('rowHeader' headerMode=RowHeaderMode)? & (polling?='polling' pollingTime=Number)? & (filtering?='filtering')? & (embedded?='embedded')? & ('toolbar' toolbar=[action::ActionToolbar])?)
 	('using' source=TableDatamart)?;
 
 TablePreorder:
@@ -75,7 +77,7 @@
 	{TableTooltipPattern} 'tooltipPattern' tooltipPattern=TRANSLATABLESTRING;
 
 TableValueElement:
-	TableMeasure | TableDerived | TableHierarchy | TableProperty | TableAggregation | TableOrdinal |
+	TableMeasure | TableDerived | TableHierarchy | TableAttribute | TableAggregation | TableOrdinal |
 	TableColumn | TableTask | TableAllColumns;
 
 TableTask:
@@ -99,23 +101,29 @@
 TableHierarchy:
 	'level' valueRef=[cube::CubeLevel];
 
-TableProperty:
-	{TableProperty} 'property' valueRef=[datamart::DatamartProperty];
+TableAttribute:
+	{TableAttribute} 'property' valueRef=[datamart::DatamartAttribute];
 
 TableAggregation:
 	'aggregation' valueRef=[datamart::DatamartSetAggregationFunction];
 
 TableInterval:
-	(TableNumberInterval | TableDateDayInterval);
+	(TableNumberInterval | TableIntInterval | TableDateDayInterval);
 
 TableNumberInterval:
-	{TableNumberInterval} 'up to' numberIntervalValue=SignedNumber numberRange=TableRangeElement;
+	{TableNumberInterval} 'upToNumber' numberIntervalValue=SignedNumber numberRange=TableRangeElement;
+
+TableIntInterval:
+	{TableIntInterval} 'upToInteger' intIntervalValue=SignedInt intRange=TableRangeElement;
 
 TableDateDayInterval:
-	{TableDateDayInterval} 'days in past' dateIntervalValue=SignedNumber dateRange=TableRangeElement;
+	{TableDateDayInterval} 'daysInPast' dateIntervalValue=SignedInt dateRange=TableRangeElement;
 
 TableLookup:
-	(TableNumberLookup | TableStringLookup | TableDateDayLookup);
+	(TableNumberLookup | TableIntLookup | TableStringLookup | TableDateDayLookup);
+
+TableIntLookup:
+	{TableIntLookup} 'integer' lookupValue=SignedInt discrete=TableRangeElement;
 
 TableNumberLookup:
 	{TableNumberLookup} 'number' lookupValue=SignedNumber discrete=TableRangeElement;
@@ -124,7 +132,7 @@
 	{TableStringLookup} 'string' lookupValue=STRING discrete=TableRangeElement;
 
 TableDateDayLookup:
-	{TableDateDayLookup} 'days in past' lookupValue=SignedNumber discrete=TableRangeElement;
+	{TableDateDayLookup} 'daysInPast' lookupValue=SignedInt discrete=TableRangeElement;
 
 TableDatamart:
 	'datamart' datamartRef=[datamart::DatamartDefinition] ('{' elements+=TableElement* '}')?;
@@ -133,15 +141,11 @@
 	TableAxis;
 
 TableEvent:
-	'broker' source=TableValueElement 'to' '{' brokerDatamarts+=TableBrokerDatamart* '}';
-
-TableBrokerDatamart:
-	'datamart' datamartDef=[datamart::DatamartDefinition] (('filter' filter=STRING) | ('referenced'
-	reference=[entity::LEntityReference]));
+	source=TableValueElement;
 
 TableAxis:
 	'axis' axis=AxisEnum ((hasRowHeight?='rowheight' rowHeight=Number)? & (preOrder=TablePreorder)?)
-	(hasDetails?='details' '{' values+=TableValue* '}')? (hasEvents?='events' '{' events+=TableEvent* '}')?;
+	(hasDetails?='details' '{' values+=TableValue* '}')? (hasEvents?='notifyOnSelect' '{' events+=TableEvent* '}')?;
 
 TableRangeElement:
 	TableTextColor | TableCellColor | TableIcon | TableTrend | TableTooltip;
@@ -161,9 +165,6 @@
 TableTooltip:
 	'tooltip' tooltip=TRANSLATABLESTRING;
 
-TableImport returns types::LImport:
-	'import' importedNamespace=TableQualifiedNameWithWildCard;
-
 	// ----------------------------- grid --------------------------------------
 TableGrid:
 	{TableGrid} 'grid' (((selectalways?='selectalways')?) & ('rowheader' headerMode=RowHeaderMode)?)
@@ -173,13 +174,12 @@
 	('toolbar' toolbar=[action::ActionToolbar])?)
 	('using' source=TableDtoDatasource)?;
 
-TableDtoDatasource:
-//	'dto' rootType=JvmTypeReference '{'
-	'dto' dtoSource=[dto::LDto] ('{'properties+=Property*'}')?;
-
 Property returns CxGridProperty:
 	(editable?='editable')? 'prop' path=NestedField 'style' style=PropertyStyle;
 
+TableDtoDatasource:
+	'dto' dtoSource=[dto::LDto] ('{'properties+=Property*'}')?;
+
 NestedField returns CxGridNestedField:
 	{CxGridNestedField}
 	field=[JvmOperation] path=(NestedPath)?;
@@ -256,12 +256,6 @@
 	Equal="equal" | GreaterEqual="greater equal" | GreaterThan="greater than" | LowerEqual="lower equal" |
 	LowerThan="lower than" | NotEqual="not equal";
 
-terminal ID:
-	'^'? ('a'..'z' | 'A'..'Z' | '$' | '_') ('a'..'z' | 'A'..'Z' | '$' | '_' | '0'..'9')*;
-
-terminal INT returns ecore::EInt:
-	'0'..'9' ('0'..'9' | '_')*;
-
 terminal THEME_RESOURCE:
 	'theme:/' ('a'..'z' | 'A'..'Z' | '$' | '_' | '.' | '/' | '0'..'9')*;
 
@@ -278,14 +272,8 @@
 SignedNumber returns ecore::EDouble:
 	'-'? Number;
 
-TableQualifiedNameWithWildCard:
-	QualifiedName ('.' '*')?;
-
-QualifiedName:
-	ValidID (=> '.' ValidID)*;
-
-ValidID:
-	ID;
+SignedInt returns ecore::EInt:
+	'-'? INT;
 
 TRANSLATABLESTRING:
 	STRING;
diff --git a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/TableDSLRuntimeModule.java b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/TableDSLRuntimeModule.java
index 976d956..109f3d1 100644
--- a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/TableDSLRuntimeModule.java
+++ b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/TableDSLRuntimeModule.java
@@ -11,77 +11,146 @@
  * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
  * 
  */
- package org.eclipse.osbp.xtext.table;
+package org.eclipse.osbp.xtext.table;
 
-import javax.inject.Singleton;
-
+import org.eclipse.osbp.dsl.common.xtext.scoping.ScopingInfoProvider;
+import org.eclipse.osbp.xtext.oxtype.imports.IShouldImportProvider;
+import org.eclipse.osbp.xtext.oxtype.imports.OXTypeRewritableImportSection;
+import org.eclipse.osbp.xtext.oxtype.linker.JvmTypeAwareLinker;
+import org.eclipse.osbp.xtext.oxtype.linking.OXTypeLinkingService;
+import org.eclipse.osbp.xtext.oxtype.resource.ExtendedJvmModelAssociator;
+import org.eclipse.osbp.xtext.oxtype.resource.IExtendedModelAssociator;
+import org.eclipse.osbp.xtext.oxtype.resource.SemanticLoadingResource;
+import org.eclipse.osbp.xtext.oxtype.scoping.IScopingInfoProvider;
+import org.eclipse.osbp.xtext.oxtype.scoping.OXDelegatingNamespaceScopeProvider;
+import org.eclipse.osbp.xtext.oxtype.serializer.JvmTypeAwareTransientValueService;
+import org.eclipse.osbp.xtext.table.formatting.TableDSLFormatter;
+import org.eclipse.osbp.xtext.table.generator.OutputConfigurationProvider;
+import org.eclipse.osbp.xtext.table.imports.ShouldImportProvider;
+import org.eclipse.osbp.xtext.table.jvmmodel.TableModelGenerator;
+import org.eclipse.osbp.xtext.table.scoping.TableDSLScopeProvider;
+import org.eclipse.osbp.xtext.table.valueconverter.TableValueConverterService;
 import org.eclipse.xtext.conversion.IValueConverterService;
+import org.eclipse.xtext.findReferences.TargetURICollector;
 import org.eclipse.xtext.generator.IGenerator;
 import org.eclipse.xtext.generator.IOutputConfigurationProvider;
+import org.eclipse.xtext.linking.ILinkingService;
+import org.eclipse.xtext.resource.persistence.IResourceStorageFacade;
 import org.eclipse.xtext.scoping.IScopeProvider;
-import org.eclipse.osbp.dsl.xtext.lazyresolver.LazyJvmTypeLinker;
-import org.eclipse.osbp.dsl.xtext.lazyresolver.SemanticLoadingResource;
-import org.eclipse.osbp.dsl.xtext.lazyresolver.linker.LazyJvmTypeTransientValueService;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService;
+import org.eclipse.xtext.xbase.imports.RewritableImportSection;
+import org.eclipse.xtext.xbase.jvmmodel.IJvmModelAssociations;
+import org.eclipse.xtext.xbase.jvmmodel.IJvmModelAssociator;
+import org.eclipse.xtext.xbase.jvmmodel.JvmModelTargetURICollector;
+import org.eclipse.xtext.xbase.resource.BatchLinkableResourceStorageFacade;
 
 import com.google.inject.Binder;
-
-import org.eclipse.osbp.xtext.i18n.DSLOutputConfigurationProvider;
-import org.eclipse.osbp.xtext.table.generator.OutputConfigurationProvider;
-import org.eclipse.osbp.xtext.table.jvmmodel.TableModelGenerator;
-import org.eclipse.osbp.xtext.table.scoping.TableScopeProvider;
-import org.eclipse.osbp.xtext.table.valueconverter.TableQualifiedNameProvider;
-import org.eclipse.osbp.xtext.table.valueconverter.TableValueConverterService;
+import com.google.inject.name.Names;
 
 /**
- * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ * Use this class to register components to be used at runtime / without the
+ * Equinox extension registry.
  */
 public class TableDSLRuntimeModule extends org.eclipse.osbp.xtext.table.AbstractTableDSLRuntimeModule {
+
+	public Class<? extends IResourceStorageFacade> bindResourceStorageFacade() {
+		return BatchLinkableResourceStorageFacade.class;
+	}
+
+	public Class<? extends TargetURICollector> bindTargetURICollector() {
+		return JvmModelTargetURICollector.class;
+	}
+
 	@Override
 	public Class<? extends IGenerator> bindIGenerator() {
-	    return TableModelGenerator.class;
+		return TableModelGenerator.class;
 	}
 
 	public Class<? extends IScopeProvider> bindIScopeProvider() {
-		return TableScopeProvider.class;
+		return TableDSLScopeProvider.class;
 	}
-	
+
+	public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+		return TableDSLFormatter.class;
+	}
+
 	public Class<? extends IOutputConfigurationProvider> bindIOutputConfigurationProvider() {
 		return OutputConfigurationProvider.class;
 	}
-	
-//	/**
-//	 * Only required, if fqn can not be created by appending the names of the
-//	 * semantic elements up the hierarchy.
-//	 */
-//	public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
-//		return TableQualifiedNameProvider.class;
-//	}
-//
+
+	// /**
+	// * Only required, if fqn can not be created by appending the names of the
+	// * semantic elements up the hierarchy.
+	// */
+	// public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider>
+	// bindIQualifiedNameProvider() {
+	// return TableQualifiedNameProvider.class;
+	// }
+	//
 	@Override
 	public Class<? extends IValueConverterService> bindIValueConverterService() {
 		return TableValueConverterService.class;
 	}
-	
+
 	public Class<? extends org.eclipse.xtext.xbase.scoping.batch.XbaseBatchScopeProvider> bindXbaseBatchScopeProvider() {
-		return TableScopeProvider.class;
+		return TableDSLScopeProvider.class;
 	}
 
-//	@Override
-//	public void configure(Binder binder) {
-//		super.configure(binder);
-//		binder.bind(IOutputConfigurationProvider.class).to(DSLOutputConfigurationProvider.class).in(Singleton.class);
-//	}
+	// @Override
+	// public void configure(Binder binder) {
+	// super.configure(binder);
+	// binder.bind(IOutputConfigurationProvider.class).to(DSLOutputConfigurationProvider.class).in(Singleton.class);
+	// }
 
 	public Class<? extends org.eclipse.xtext.resource.XtextResource> bindXtextResource() {
 		return SemanticLoadingResource.class;
 	}
 
-	public Class<? extends org.eclipse.xtext.linking.ILinker> bindILinker() {
-		return LazyJvmTypeLinker.class;
+	public void configureITransientValueService(Binder binder) {
+		binder.bind(ITransientValueService.class).to(JvmTypeAwareTransientValueService.class);
 	}
 
-	public Class<? extends org.eclipse.xtext.serializer.sequencer.ITransientValueService> bindSerializerITransientValueService() {
-		return LazyJvmTypeTransientValueService.class;
+	public Class<? extends org.eclipse.xtext.linking.ILinker> bindILinker() {
+		return JvmTypeAwareLinker.class;
+	}
+
+	public Class<? extends ILinkingService> bindILinkingService() {
+		return OXTypeLinkingService.class;
+	}
+
+	public Class<? extends org.eclipse.xtext.resource.IDerivedStateComputer> bindIDerivedStateComputer() {
+		return ExtendedJvmModelAssociator.class;
+	}
+
+	public Class<? extends IExtendedModelAssociator> bindIIndexModelAssociator() {
+		return ExtendedJvmModelAssociator.class;
+	}
+
+	public Class<? extends IJvmModelAssociator> bindIJvmModelAssociator() {
+		return ExtendedJvmModelAssociator.class;
+	}
+
+	public Class<? extends IJvmModelAssociations> bindIJvmModelAssociations() {
+		return ExtendedJvmModelAssociator.class;
+	}
+
+	public Class<? extends RewritableImportSection.Factory> bindRewritableImportSection$Factory() {
+		return OXTypeRewritableImportSection.Factory.class;
+	}
+
+	public Class<? extends IScopingInfoProvider> bindIScopingInfoProvider() {
+		return ScopingInfoProvider.class;
+	}
+
+	@Override
+	public void configureIScopeProviderDelegate(Binder binder) {
+		binder.bind(IScopeProvider.class)
+				.annotatedWith(Names.named("org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.delegate"))
+				.to(OXDelegatingNamespaceScopeProvider.class);
+	}
+
+	public Class<? extends IShouldImportProvider> bindIShouldImportProvider() {
+		return ShouldImportProvider.class;
 	}
 
 }
diff --git a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/formatting/TableDSLFormatter.xtend b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/formatting/TableDSLFormatter.xtend
index 8a53df5..6e6730b 100644
--- a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/formatting/TableDSLFormatter.xtend
+++ b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/formatting/TableDSLFormatter.xtend
@@ -14,17 +14,15 @@
  *  This copyright notice shows up in the generated Java code
  *
  */
- 
 package org.eclipse.osbp.xtext.table.formatting
 
-import com.google.inject.Inject;
+import com.google.inject.Inject
+import org.eclipse.osbp.xtext.oxtype.formatting.GenericFormatter
+import org.eclipse.osbp.xtext.oxtype.services.OXtypeGrammarAccess
+import org.eclipse.xtext.GrammarUtil
+import org.eclipse.xtext.ParserRule
 import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter
 import org.eclipse.xtext.formatting.impl.FormattingConfig
-//import org.eclipse.osbp.xtext.table.services.TableDSLGrammarAccess
-import org.eclipse.osbp.utils.xtext.GenericFormatter
-import org.eclipse.xtext.xbase.services.XtypeGrammarAccess
-import org.eclipse.xtext.ParserRule
-import org.eclipse.xtext.GrammarUtil
 
 /**
  * This class contains custom formatting description.
@@ -36,23 +34,23 @@
  */
 class TableDSLFormatter extends AbstractDeclarativeFormatter {
 
-//	@Inject extension TableDSLGrammarAccess
-	@Inject XtypeGrammarAccess grammarAccess
+	//	@Inject extension TableDSLGrammarAccess
+	@Inject OXtypeGrammarAccess grammarAccess
 
 	override protected void configureFormatting(FormattingConfig c) {
-		val genericFormatter            = new GenericFormatter()
-		var ParserRule nestedFieldDef   = GrammarUtil.findRuleForName( grammar.grammar, "NestedField"       ) as ParserRule
-		var ParserRule propertyStyleDef = GrammarUtil.findRuleForName( grammar.grammar, "PropertyStyle"     ) as ParserRule
-		var ParserRule rangeElemetDef   = GrammarUtil.findRuleForName( grammar.grammar, "TableRangeElement" ) as ParserRule
-		//	TableRangeElement includes "TableTextColor", "TableCellColor", "TableIcon", "TableTrend" and "TableTooltip"!
+		val genericFormatter = new GenericFormatter()
+		var ParserRule nestedFieldDef = GrammarUtil.findRuleForName(grammar.grammar, "NestedField") as ParserRule
+		var ParserRule propertyStyleDef = GrammarUtil.findRuleForName(grammar.grammar, "PropertyStyle") as ParserRule
+		var ParserRule rangeElemetDef = GrammarUtil.findRuleForName(grammar.grammar, "TableRangeElement") as ParserRule
 
+		//	TableRangeElement includes "TableTextColor", "TableCellColor", "TableIcon", "TableTrend" and "TableTooltip"!
 		//	dsl-specific formatting:
-		c.setNoLinewrap().before( nestedFieldDef   )
-		c.setNoLinewrap().before( propertyStyleDef )
-		c.setNoLinewrap().before( rangeElemetDef   )
+		c.setNoLinewrap().before(nestedFieldDef)
+		c.setNoLinewrap().before(propertyStyleDef)
+		c.setNoLinewrap().before(rangeElemetDef)
 
 		//	common formatting:
-		genericFormatter.formatFirstLevelBlocks( c, grammar.grammar, "Table", "TableImport" )
-		genericFormatter.genericFormatting( c, grammar, grammarAccess )
+		genericFormatter.formatFirstLevelBlocks(c, grammar.grammar, "Table")
+		genericFormatter.genericFormatting(c, grammar, grammarAccess)
 	}
 }
diff --git a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/imports/ShouldImportProvider.java b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/imports/ShouldImportProvider.java
new file mode 100644
index 0000000..5d4ef7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/imports/ShouldImportProvider.java
@@ -0,0 +1,26 @@
+package org.eclipse.osbp.xtext.table.imports;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.osbp.dsl.semantic.dto.LDto;
+import org.eclipse.osbp.dsl.semantic.dto.OSBPDtoPackage;
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionToolbar;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDSLPackage;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
+import org.eclipse.osbp.xtext.oxtype.imports.DefaultShouldImportProvider;
+
+public class ShouldImportProvider extends DefaultShouldImportProvider {
+
+	protected boolean doShouldImport(EObject toImport, EReference eRef, EObject context) {
+		return toImport instanceof LDto || toImport instanceof DatamartDefinition || toImport instanceof ActionToolbar;
+	}
+
+	protected boolean doShouldProposeAllElements(EObject object, EReference reference) {
+		EClass type = reference.getEReferenceType();
+		return DatamartDSLPackage.Literals.DATAMART_DEFINITION.isSuperTypeOf(type)
+				|| OSBPDtoPackage.Literals.LDTO.isSuperTypeOf(type)
+				|| ActionDSLPackage.Literals.ACTION_TOOLBAR.isSuperTypeOf(type);
+	}
+}
diff --git a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/jvmmodel/TableDSLJvmModelInferrer.xtend b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/jvmmodel/TableDSLJvmModelInferrer.xtend
index 1fab8e3..a411a22 100644
--- a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/jvmmodel/TableDSLJvmModelInferrer.xtend
+++ b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/jvmmodel/TableDSLJvmModelInferrer.xtend
@@ -18,7 +18,10 @@
 package org.eclipse.osbp.xtext.table.jvmmodel
 
 import com.github.wolfie.refresher.Refresher
-import com.vaadin.data.Property.ValueChangeListener
+import com.vaadin.server.ClientConnector.AttachEvent
+import com.vaadin.server.ClientConnector.AttachListener
+import com.vaadin.server.ClientConnector.DetachEvent
+import com.vaadin.server.ClientConnector.DetachListener
 import com.vaadin.ui.Button
 import com.vaadin.ui.Component
 import com.vaadin.ui.VerticalLayout
@@ -33,36 +36,39 @@
 import javax.annotation.PreDestroy
 import javax.inject.Inject
 import javax.inject.Named
-import org.drools.event.process.ProcessCompletedEvent
 import org.eclipse.e4.core.contexts.IContextFunction
 import org.eclipse.e4.core.contexts.IEclipseContext
 import org.eclipse.e4.core.services.events.IEventBroker
+import org.eclipse.e4.ui.di.Focus
 import org.eclipse.e4.ui.model.application.MApplication
 import org.eclipse.e4.ui.workbench.IPresentationEngine
-import org.eclipse.emf.ecore.EObject
 import org.eclipse.osbp.bpm.api.IBPMTaskClient
 import org.eclipse.osbp.bpm.api.IBPMTaskEventNotification
 import org.eclipse.osbp.bpm.api.IBlipBPMWorkloadModifiableItem
 import org.eclipse.osbp.dsl.common.datatypes.IDto
 import org.eclipse.osbp.dsl.entity.xtext.extensions.ModelExtensions
 import org.eclipse.osbp.dsl.semantic.common.types.LDataType
-import org.eclipse.osbp.dsl.semantic.common.types.LReference
-import org.eclipse.osbp.dsl.semantic.common.types.LTypedPackage
 import org.eclipse.osbp.dsl.semantic.entity.LEntity
 import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute
 import org.eclipse.osbp.ecview.^extension.strategy.AbstractLayoutingStrategy
 import org.eclipse.osbp.infogrid.api.IGridSourceFacade
 import org.eclipse.osbp.osgi.hybrid.api.AbstractHybridVaaclipseView
+import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent
+import org.eclipse.osbp.runtime.common.event.IEventDispatcher
 import org.eclipse.osbp.runtime.common.types.ITypeProviderService
+import org.eclipse.osbp.runtime.web.vaadin.common.data.BeanServiceLazyLoadingContainer
+import org.eclipse.osbp.runtime.web.vaadin.common.data.IBeanSearchServiceFactory
 import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider
-import org.eclipse.osbp.ui.api.datamart.DerivedOlapException
+import org.eclipse.osbp.ui.api.customfields.IBlobService
+import org.eclipse.osbp.ui.api.datamart.DatamartFilter
 import org.eclipse.osbp.ui.api.datamart.IDatamartFilterGenerator
+import org.eclipse.osbp.ui.api.e4.IE4Table
+import org.eclipse.osbp.ui.api.layout.IViewLayoutManager
 import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService
 import org.eclipse.osbp.ui.api.themes.IThemeResourceService
 import org.eclipse.osbp.ui.api.user.IUser
 import org.eclipse.osbp.utils.annotation.CommonUtils
 import org.eclipse.osbp.utils.common.EntityUtils
-import org.eclipse.osbp.utils.constants.GeneratorConstants
 import org.eclipse.osbp.utils.vaadin.PropertyLookup
 import org.eclipse.osbp.vaaclipse.common.ecview.api.IECViewSessionHelper
 import org.eclipse.osbp.xtext.action.ActionPackage
@@ -75,18 +81,19 @@
 import org.eclipse.osbp.xtext.datamart.common.olap.DerivedCellSet
 import org.eclipse.osbp.xtext.datamart.common.sql.OperativeDtoContainer
 import org.eclipse.osbp.xtext.datamartdsl.AxisEnum
-import org.eclipse.osbp.xtext.datamartdsl.DatamartCube
+import org.eclipse.osbp.xtext.datamartdsl.DatamartAttribute
 import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition
 import org.eclipse.osbp.xtext.datamartdsl.DatamartEntity
 import org.eclipse.osbp.xtext.datamartdsl.DatamartPackage
-import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty
 import org.eclipse.osbp.xtext.datamartdsl.DatamartTask
 import org.eclipse.osbp.xtext.datamartdsl.jvmmodel.DatamartDSLJvmModelInferrer
+import org.eclipse.osbp.xtext.datamartdsl.util.DatamartAttributeUtil
 import org.eclipse.osbp.xtext.table.Table
 import org.eclipse.osbp.xtext.table.TableAggregation
 import org.eclipse.osbp.xtext.table.TableAllColumns
+import org.eclipse.osbp.xtext.table.TableAttribute
 import org.eclipse.osbp.xtext.table.TableAxis
-import org.eclipse.osbp.xtext.table.TableBrokerDatamart
+import org.eclipse.osbp.xtext.table.TableBean
 import org.eclipse.osbp.xtext.table.TableCellColor
 import org.eclipse.osbp.xtext.table.TableColumn
 import org.eclipse.osbp.xtext.table.TableDSLFactory
@@ -98,6 +105,8 @@
 import org.eclipse.osbp.xtext.table.TableGrid
 import org.eclipse.osbp.xtext.table.TableHierarchy
 import org.eclipse.osbp.xtext.table.TableIcon
+import org.eclipse.osbp.xtext.table.TableIntInterval
+import org.eclipse.osbp.xtext.table.TableIntLookup
 import org.eclipse.osbp.xtext.table.TableMeasure
 import org.eclipse.osbp.xtext.table.TableNumberInterval
 import org.eclipse.osbp.xtext.table.TableNumberLookup
@@ -105,14 +114,13 @@
 import org.eclipse.osbp.xtext.table.TableOrdinal
 import org.eclipse.osbp.xtext.table.TablePackage
 import org.eclipse.osbp.xtext.table.TablePreorder
-import org.eclipse.osbp.xtext.table.TableProperty
 import org.eclipse.osbp.xtext.table.TableSelection
 import org.eclipse.osbp.xtext.table.TableStringLookup
 import org.eclipse.osbp.xtext.table.TableTable
-import org.eclipse.osbp.xtext.table.TableTask
 import org.eclipse.osbp.xtext.table.TableTextColor
 import org.eclipse.osbp.xtext.table.TableTooltip
 import org.eclipse.osbp.xtext.table.TableTrend
+import org.eclipse.osbp.xtext.table.common.BeanFilterTable
 import org.eclipse.osbp.xtext.table.common.CellSetFilterTable
 import org.eclipse.osbp.xtext.table.common.CellSetIndexedContainer
 import org.eclipse.osbp.xtext.table.common.CheckboxSelectionCellSetFilterTable
@@ -129,12 +137,12 @@
 import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer
 import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor
 import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
-import org.jbpm.task.event.entity.TaskEventType
-import org.jbpm.task.event.entity.TaskUserEvent
 import org.osgi.service.event.EventHandler
 import org.slf4j.Logger
-import org.eclipse.osbp.ui.api.layout.IViewLayoutManager
-import org.eclipse.osbp.ui.api.datamart.IDataMart
+import org.eclipse.osbp.bpm.api.BPMTaskEventType
+import org.eclipse.osbp.bpm.api.BPMTaskUserEvent
+import org.eclipse.e4.core.di.annotations.Optional
+import org.eclipse.osbp.dsl.semantic.common.types.LKeyAndValue
 
 /**
  * <p>
@@ -160,6 +168,18 @@
 	}
 }
 
+class IntegerComparator implements Comparator<Integer> {
+	override compare(Integer arg0, Integer arg1) {
+		if (arg0 < arg1) {
+			return -1
+		} else if (arg0 > arg1) {
+			return 1
+		} else {
+			return 0
+		}
+	}
+}
+
 class DateComparator implements Comparator<Date> {
 	override compare(Date o1, Date o2) {
 		return o1.compareTo(o2);
@@ -170,7 +190,7 @@
  * <p>Container class for a Hashmap value. It carries look and feel information for table cells.</p> 
  *
  */
-class FormatProperty {
+class FormatAttribute {
 	public String formatter = null
 	public String tooltipPattern = null
 	public boolean hideLabelLookup = false
@@ -186,7 +206,7 @@
 	public String iconName = null;
 }
 
-class IdProperty {
+class IdAttribute {
 	public boolean collapsed = false;
 }
 
@@ -226,10 +246,13 @@
 				clsName = pkg.name.toString.concat(".").concat(table.name).concat(fileExtension.toFirstUpper).
 					concat("Embedded")
 			}
-			else if (table.tabletype instanceof TableGrid) {
+			else if (table.isGrid) {
 				clsName = pkg.name.toString.concat(".").concat(table.name).concat("Grid")
 			}
-			else if (table.tabletype instanceof TableSelection) {
+			else if (table.isBean) {
+				clsName = pkg.name.toString.concat(".").concat(table.name).concat("Bean")
+			}
+			else if (table.isSelection) {
 				clsName = pkg.name.toString.concat(".").concat(table.name).concat("Select")
 			}
 			else {
@@ -242,17 +265,22 @@
 				cls.getSuperTypes().add(_typeReferenceBuilder.typeRef(AbstractHybridVaaclipseView))
 			}
 			cls.superTypes.add(_typeReferenceBuilder.typeRef(IUser.UserLocaleListener))
+			cls.superTypes.add(_typeReferenceBuilder.typeRef(DetachListener))
+			cls.superTypes.add(_typeReferenceBuilder.typeRef(AttachListener))
+			cls.superTypes.add(_typeReferenceBuilder.typeRef(IEventDispatcher.Receiver))
+			cls.superTypes.add(_typeReferenceBuilder.typeRef(IE4Table))
+			if(!table.grid && !table.isBean) {
+				cls.superTypes.add(_typeReferenceBuilder.typeRef(IDatamartFilterGenerator.FilterChangeListener))
+			}
 			if (table.task) {
 				cls.getSuperTypes().add(_typeReferenceBuilder.typeRef(IBPMTaskEventNotification))
 			}
 			acceptor.accept(cls,
 				[
-				documentation = GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION
 				it.toFields(table)
 				it.toConstructor(table)
 				it.toGetterSetter(table)
 				it.toOperations(pkg, table)
-				it.toStringToNumberConverter(table)
 			])
 			if (tableoption.embedded) {
 
@@ -273,7 +301,6 @@
 					annotationRef.addAnnAttr(table, "property", propContent)
 					annotations += annotationRef
 					packageName = pkg.fullyQualifiedName.toString
-					documentation = GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION
 					it.toContextOperations(table, tableClsName)
 				])
 			}
@@ -285,19 +312,17 @@
 	 *
 	 */
 	def void toContextOperations(JvmGenericType type, Table table, String clsName) {
-		var JvmOperation operation
-
 		// compute override
 		type.members += table.toMethod("compute", _typeReferenceBuilder.typeRef(Object),
 			[
 				annotations += _annotationTypesBuilder.annotationRef(Override)
 				visibility = JvmVisibility.PUBLIC
-				parameters += table.toParameter("context", _typeReferenceBuilder.typeRef(IEclipseContext))
+				parameters += table.toParameter("eclipseContext", _typeReferenceBuilder.typeRef(IEclipseContext))
 				parameters += table.toParameter("contextKey", _typeReferenceBuilder.typeRef(String))
 				body = [
 					append(
 						'''
-						MApplication application = context.get(MApplication.class);
+						MApplication application = eclipseContext.get(MApplication.class);
 						IEclipseContext appCtx = application.getContext();
 						IViewEmbeddedProvider provider = ContextInjectionFactory.make(«clsName».class, appCtx);
 						appCtx.set(IViewEmbeddedProvider.class, provider);
@@ -320,7 +345,8 @@
 					body = [
 						append(
 							'''
-							super(parent,context,app);''')]
+							super(parent,context,app);
+							''')]
 				])
 		}
 	}
@@ -332,6 +358,7 @@
 	def TableDatamart getDataMartTable(TableOption option) {
 		switch option {
 			TableTable: return option.source
+			TableBean: return option.source
 		}
 		return null
 	}
@@ -348,8 +375,8 @@
 	}
 
 	def String getSourceDataMartRefName(Table table) {
-		if (table.dataMartTable != null && table.dataMartTable.datamartRef != null &&
-			table.dataMartTable.datamartRef.name != null) {
+		if (table.dataMartTable !== null && table.dataMartTable.datamartRef !== null &&
+			table.dataMartTable.datamartRef.name !== null) {
 			return table.dataMartTable.datamartRef.name.toString
 		} else {
 			return null;
@@ -369,29 +396,33 @@
 		field.static = true
 		field.visibility = JvmVisibility::PRIVATE
 		type.members += field
-		field = table.toField("context", _typeReferenceBuilder.typeRef(IEclipseContext))[annotations += _annotationTypesBuilder.annotationRef(Inject)]
+		field = table.toField("initDone", _typeReferenceBuilder.typeRef(boolean)) [initializer = [append('''false''')]]
+		type.members += field
+		field = table.toField("eclipseContext", _typeReferenceBuilder.typeRef(IEclipseContext))[annotations += _annotationTypesBuilder.annotationRef(Inject)]
 		type.members += field
 		field = table.toField("user", _typeReferenceBuilder.typeRef(IUser))[annotations += _annotationTypesBuilder.annotationRef(Inject)]
 		type.members += field
-		field = table.toField("coordinateSystem", _typeReferenceBuilder.typeRef(ArrayList, _typeReferenceBuilder.typeRef(Integer)))
+		field = table.toField("eventDispatcher", _typeReferenceBuilder.typeRef(IEventDispatcher))[annotations += _annotationTypesBuilder.annotationRef(Inject)]
 		type.members += field
-		field = table.toField("filterGenerator", _typeReferenceBuilder.typeRef(IDatamartFilterGenerator))
+		field = table.toField("coordinateSystem", _typeReferenceBuilder.typeRef(ArrayList, _typeReferenceBuilder.typeRef(Integer)))
 		type.members += field
 		field = table.toField("layoutManager", _typeReferenceBuilder.typeRef(IViewLayoutManager))
 		type.members += field
 		field = table.toField("dslMetadataService", _typeReferenceBuilder.typeRef(IDSLMetadataService)) [annotations += _annotationTypesBuilder.annotationRef(Inject)]
 		type.members += field
-		field = table.toField("locale", _typeReferenceBuilder.typeRef(Locale))
+		field = table.toField("blobService", _typeReferenceBuilder.typeRef(IBlobService)) [annotations += _annotationTypesBuilder.annotationRef(Inject)]
 		type.members += field
 		// the package name of the referenced datamart
-		if (getSourceDataMartRefName(table) != null) {
+		if (getSourceDataMartRefName(table) !== null && !table.isBean) {
 			var packageName = (table.dataMartTable.datamartRef.eContainer as DatamartPackage).fullyQualifiedName.
 				toString
-			field = table.toField("datamartClass",
+			field = table.toField("datamartInstance",
 				_typeReferenceBuilder.typeRef('''«packageName».«getSourceDataMartRefName(table)»Datamart'''))
 			type.members += field
+			field = table.toField("filterGenerator", _typeReferenceBuilder.typeRef(IDatamartFilterGenerator))
+			type.members += field
 		}
-		if(table.tabletype instanceof TableGrid) {
+		if(table.grid) {
 			field = table.toField("gridSourceService", _typeReferenceBuilder.typeRef(IGridSourceFacade))[annotations += _annotationTypesBuilder.annotationRef(Inject)]
 			type.members += field
 			field = table.toField("ecviewPropsProvider", _typeReferenceBuilder.typeRef(IECViewSessionHelper))[annotations += _annotationTypesBuilder.annotationRef(Inject)]
@@ -401,23 +432,39 @@
 			field = table.toField("grid", _typeReferenceBuilder.typeRef("org.eclipse.osbp.infogrid.vaaclipse.SingleInfoGridComponent"))
 			type.members += field
 		}
-		field = table.toField("filterChangeListener", _typeReferenceBuilder.typeRef(ValueChangeListener))
-		type.members += field
+		if(table.isBean) {
+			field = table.toField("factory", _typeReferenceBuilder.typeRef(IBeanSearchServiceFactory))[annotations += _annotationTypesBuilder.annotationRef(Inject)]
+			type.members += field
+		}
 		field = table.toField("tableSelectDelay", _typeReferenceBuilder.typeRef(Refresher))
 		type.members += field
 		field = table.toField("tableRefresher", _typeReferenceBuilder.typeRef(Refresher))
 		type.members += field
 		field = table.toField("dataComponent", _typeReferenceBuilder.typeRef(Component))
 		type.members += field
-		field = table.toField("propertyLookupMap",
+		field = table.toField("attributeLookupMap",
 			_typeReferenceBuilder.typeRef(HashMap, _typeReferenceBuilder.typeRef(String), _typeReferenceBuilder.typeRef(PropertyLookup)))
 		type.members += field
-		field = table.toField("dataSourceContainer", _typeReferenceBuilder.typeRef(CellSetIndexedContainer))
+		field = table.toField("tabSheets",
+			_typeReferenceBuilder.typeRef(HashMap, _typeReferenceBuilder.typeRef(Component), _typeReferenceBuilder.typeRef(ArrayList, _typeReferenceBuilder.typeRef(String))))
 		type.members += field
+		
+		if(!table.isBean) {
+			field = table.toField("dataSourceContainer", _typeReferenceBuilder.typeRef(CellSetIndexedContainer))
+		} else {
+			field = table.toField("dataSourceContainer", _typeReferenceBuilder.typeRef(BeanServiceLazyLoadingContainer, _typeReferenceBuilder.wildcard))
+		}
+		type.members += field
+		
 		field = table.toField("operativeDtoContainer", _typeReferenceBuilder.typeRef(OperativeDtoContainer))
 		type.members += field
-		field = table.toField("tables",
-			_typeReferenceBuilder.typeRef(ArrayList, _typeReferenceBuilder.typeRef(CellSetFilterTable)))
+		if(!table.isBean) {
+			field = table.toField("tables",
+				_typeReferenceBuilder.typeRef(ArrayList, _typeReferenceBuilder.typeRef(CellSetFilterTable)))
+		} else {
+			field = table.toField("table",
+				_typeReferenceBuilder.typeRef(BeanFilterTable))
+		}
 		type.members += field
 		field = table.toField("eventBroker", _typeReferenceBuilder.typeRef(IEventBroker))[
 			annotations += _annotationTypesBuilder.annotationRef(Inject)]
@@ -428,19 +475,14 @@
 		field = table.toField("themeResourceService", _typeReferenceBuilder.typeRef(IThemeResourceService))[
 			annotations += _annotationTypesBuilder.annotationRef(Inject)]
 		type.members += field
-		field = table.toField("refreshView", _typeReferenceBuilder.typeRef(EventHandler))
-		type.members += field
 		field = table.toField("delegatedTask", _typeReferenceBuilder.typeRef(EventHandler))
 		type.members += field
-		if (!table.tabletype.embedded) {
-			field = table.toField("dispatchAction", _typeReferenceBuilder.typeRef(EventHandler))
-			type.members += field
-		}
 		field = table.toField("tableFilterDecorator", _typeReferenceBuilder.typeRef(TableFilterDecorator))
 		type.members += field
 		if (table.task) {
 			field = table.toField("taskClient", _typeReferenceBuilder.typeRef(IBPMTaskClient))[
-				annotations += _annotationTypesBuilder.annotationRef(Inject)]
+				annotations += _annotationTypesBuilder.annotationRef(Inject)
+				annotations += _annotationTypesBuilder.annotationRef(Optional)]
 			type.members += field
 			field = table.toField("currentTaskId", _typeReferenceBuilder.typeRef(Long))
 			type.members += field
@@ -448,17 +490,19 @@
 				_typeReferenceBuilder.typeRef(ArrayList, _typeReferenceBuilder.typeRef(Button)))
 			type.members += field
 		}
-		if	(table.tabletype instanceof TableSelection) {
+		if	(table.isSelection) {
 			field = table.toField("taskClient", _typeReferenceBuilder.typeRef(IBPMTaskClient))[
-				annotations += _annotationTypesBuilder.annotationRef(Inject)]
+				annotations += _annotationTypesBuilder.annotationRef(Inject)
+				annotations += _annotationTypesBuilder.annotationRef(Optional)]
 			type.members += field
 			field = table.toField("selectTable", _typeReferenceBuilder.typeRef(CheckboxSelectionCellSetFilterTable))
 			type.members += field
 		}
-		if (!table.tabletype.embedded && table.tabletype.toolbar != null && table.tabletype.toolbar.eContainer != null) {
+		if (!table.tabletype.embedded && table.tabletype.toolbar !== null && table.tabletype.toolbar.eContainer !== null) {
 			var packageName = (table.tabletype.toolbar.eContainer as ActionPackage).fullyQualifiedName.toString
-			field = table.toField("toolbarClass",
-				_typeReferenceBuilder.typeRef('''«packageName».«table.tabletype.toolbar.name.toString.toFirstUpper»Action'''))
+			field = table.toField("toolbarUUID", _typeReferenceBuilder.typeRef(String))
+			type.members += field
+			field = table.toField("toolbarClass", _typeReferenceBuilder.typeRef('''«packageName».«table.tabletype.toolbar.name.toString.toFirstUpper»Toolbar'''))
 			type.members += field
 		}
 	}
@@ -481,28 +525,90 @@
 	 */
 	def void toOperations(JvmDeclaredType type, TablePackage pkg, Table table) {
 
-		// create view
-		type.members += table.toMethod("getCellSet", _typeReferenceBuilder.typeRef(DerivedCellSet),
+		if(!table.isBean) {
+			// create view
+			type.members += table.toMethod("getCellSet", _typeReferenceBuilder.typeRef(DerivedCellSet),
+				[
+					body = [append(
+					'''
+					operativeDtoContainer = null;
+					«IF (table.dataMartTable !== null)»
+					DerivedCellSet cellSet = datamartInstance.getResults(«IF table.task»«ELSE»«IF ((table.isSelection) || table.tabletype.embedded)»null, null«ELSE»getTaskOperativeDtoClass(), getTaskInitialOperativeDtos()«ENDIF»«ENDIF»);
+					«ELSE»
+					DerivedCellSet cellSet = null;
+					«ENDIF»
+					if	(cellSet != null) {
+						operativeDtoContainer = cellSet.getOperativeDtoContainer();
+					}
+					return cellSet;
+					''')]
+				])
+		}
+		
+		// focus
+		type.members += table.toMethod("setFocus", _typeReferenceBuilder.typeRef(Void::TYPE),
 			[
+				annotations += _annotationTypesBuilder.annotationRef(Focus)
+				if(table.isBean) {
+					body = [append(
+					'''
+					if(table != null) {
+						table.focus();
+					}''')]
+				} else if (table.isGrid) {
+					body = [append(
+					'''
+					if(grid != null) {
+						grid.focus();
+					}''')]
+				} else {
+					body = [append(
+					'''
+					if(!tables.isEmpty()) {
+						tables.get(0).focus();
+					}''')]
+				}
+			])
+		// attach
+		type.members += table.toMethod("attach", _typeReferenceBuilder.typeRef(Void::TYPE),
+			[
+				parameters += table.toParameter("event", _typeReferenceBuilder.typeRef(AttachEvent))
+				annotations += _annotationTypesBuilder.annotationRef(Override)
 				body = [append(
 				'''
-				operativeDtoContainer = null;
-				«IF (table.dataMartTable != null)»
-				DerivedCellSet cellSet = datamartClass.getResults(
-					«IF table.task»taskClient, «ENDIF»user,
-					filterGenerator.getFilter(«(table.dataMartTable.datamartRef.source instanceof DatamartCube).booleanValue.toString»)
-					«IF !table.task»«IF ((table.tabletype instanceof TableSelection) || table.tabletype.embedded)», null, null«ELSE», getTaskOperativeDtoClass(), getTaskInitialOperativeDtos()«ENDIF»«ENDIF»
-				);
-				«ELSE»
-				DerivedCellSet cellSet = null;
-				«ENDIF»
-				if	(cellSet != null) {
-					operativeDtoContainer = cellSet.getOperativeDtoContainer();
+				user.addUserLocaleListener(this);
+				eventDispatcher.addEventReceiver(this);
+				«IF table.task»
+				if(taskClient != null) {
+					taskClient.subscribeTaskEventNotification(this);
+					taskClient.subscribeProcessCompletedEventNotification(this);
 				}
-				return cellSet;
-				''')]
+				«ENDIF»
+				«IF !table.grid && !table.isBean»
+				filterGenerator.addFilterChangeListener(this);
+				«ENDIF»''')]
+				
 			])
 
+		// detach
+		type.members += table.toMethod("detach", _typeReferenceBuilder.typeRef(Void::TYPE),
+			[
+				parameters += table.toParameter("event", _typeReferenceBuilder.typeRef(DetachEvent))
+				annotations += _annotationTypesBuilder.annotationRef(Override)
+				body = [append(
+				'''
+				user.removeUserLocaleListener(this);
+				eventDispatcher.removeEventReceiver(this);
+				«IF table.task»
+				if(taskClient != null) {
+					taskClient.unsubscribeTaskEventNotification(this);
+					taskClient.unsubscribeProcessCompletedEventNotification(this);
+				}
+				«ENDIF»
+				«IF !table.grid && !table.isBean»
+				filterGenerator.removeFilterChangeListener(this);
+				«ENDIF»''')]
+			])
 		// create view
 		type.members += table.toMethod("createView", _typeReferenceBuilder.typeRef(Void::TYPE),
 			[
@@ -524,7 +630,6 @@
 				// create tab
 				type.members += table.toMethod("createTabSheet", _typeReferenceBuilder.typeRef(Component),
 					[
-						exceptions += _typeReferenceBuilder.typeRef(DerivedOlapException)
 						parameters += table.toParameter("cellSet", _typeReferenceBuilder.typeRef(DerivedCellSet))
 						parameters += table.toParameter("axisNo", _typeReferenceBuilder.typeRef(Integer))
 						body = [append('''«table.createTabSheet»''')]
@@ -533,12 +638,22 @@
 				// create table
 				type.members += table.toMethod("createTable", _typeReferenceBuilder.typeRef(Component),
 					[
-						exceptions += _typeReferenceBuilder.typeRef(DerivedOlapException)
 						parameters += table.toParameter("cellSet", _typeReferenceBuilder.typeRef(DerivedCellSet))
 						body = [append('''«table.createTable»''')]
 					])
 					
+				type.members += table.toMethod("dataRefresh", _typeReferenceBuilder.typeRef(Void::TYPE),
+					[
+						body = [append('''«table.dataRefresh»''')]
+					])
+			}
+			TableBean: {
 				// create table
+				type.members += table.toMethod("createTable", _typeReferenceBuilder.typeRef(Component),
+					[
+						body = [append('''«table.createTable»''')]
+					])
+					
 				type.members += table.toMethod("dataRefresh", _typeReferenceBuilder.typeRef(Void::TYPE),
 					[
 						body = [append('''«table.dataRefresh»''')]
@@ -548,42 +663,15 @@
 				// create tab
 				type.members += table.toMethod("createDtoGrid", _typeReferenceBuilder.typeRef(Component),
 					[
-						exceptions += _typeReferenceBuilder.typeRef(DerivedOlapException)
-						val gridDtoFqn = (table.tabletype as TableGrid).source.dtoSource.fullyQualifiedName?.toString
+						val gridDtoFqn = table.dtoGridTable.dtoSource.fullyQualifiedName?.toString
+						val entity = EcoreUtil2.resolve(table.dtoGridTable.dtoSource.wrappedType, table.eResource) as LEntity
 						body = [append('''
-							IEclipseContext childContext = context.createChild();
-							childContext.set(Locale.class, user.getLocale());
-							childContext.set("gridSourceId", "«pkg.name.toString.concat(".").concat(table.name).concat("Grid")»");
-							if ("«gridDtoFqn»".equals(getTaskOperativeDtoFqn())) {
-								childContext.set("inputdata", getTaskInitialOperativeDtos());
-							}
-							grid = ContextInjectionFactory.make(SingleInfoGridComponent.class, childContext);
-							return grid;''')]
+						«createGridComponent(pkg, table, entity, gridDtoFqn)»
+						return grid;''')]
 					])
 			}
 		}
 
-		// setup-Method
-		type.members += table.toMethod("setup", _typeReferenceBuilder.typeRef(Void::TYPE),
-			[
-				visibility = JvmVisibility.PROTECTED
-				body = [append('''«table.setup»''')]
-			])
-
-		// subscribe to eventBroker
-		type.members += table.toMethod("subscribe", _typeReferenceBuilder.typeRef(Void::TYPE),
-			[
-				visibility = JvmVisibility.PROTECTED
-				body = [append('''«table.subscribe»''')]
-			])
-
-		// unsubscribe from eventBroker
-		type.members += table.toMethod("unsubscribe", _typeReferenceBuilder.typeRef(Void::TYPE),
-			[
-				visibility = JvmVisibility.PROTECTED
-				annotations += _annotationTypesBuilder.annotationRef(PreDestroy)
-				body = [append('''«table.unsubscribe»''')]
-			])
 		// locale notification
 		type.members += table.toMethod("localeChanged", _typeReferenceBuilder.typeRef(Void::TYPE),
 			[
@@ -592,48 +680,44 @@
 				parameters += table.toParameter("locale", _typeReferenceBuilder.typeRef(Locale))
 				body = [append('''«table.localeChanged»''')]
 			])
-		
+		// event notification
+		type.members += table.toMethod("receiveEvent", _typeReferenceBuilder.typeRef(Void::TYPE),
+			[
+				visibility = JvmVisibility.PUBLIC
+				annotations += _annotationTypesBuilder.annotationRef(Override)
+				parameters += table.toParameter("event", _typeReferenceBuilder.typeRef(EventDispatcherEvent))
+				body = [append('''«table.receiveEvent»''')]
+			])
+		if(!table.isGrid && !table.isBean) {
+			// filter notification
+			type.members += table.toMethod("filterChanged", _typeReferenceBuilder.typeRef(Void::TYPE),
+				[
+					parameters += table.toParameter("changedFilter", _typeReferenceBuilder.typeRef(DatamartFilter))
+					visibility = JvmVisibility.PUBLIC
+					annotations += _annotationTypesBuilder.annotationRef(Override)
+					body = [append('''«table.filterChanged»''')]
+				])
+		}		
 		if (table.task) {
 
-			// unsubscribe from eventBroker
 			type.members += table.toMethod("notifyTaskEvent", _typeReferenceBuilder.typeRef(Void::TYPE),
 				[
+					parameters += table.toParameter("type", _typeReferenceBuilder.typeRef(BPMTaskEventType))
+					parameters += table.toParameter("event", _typeReferenceBuilder.typeRef(BPMTaskUserEvent))
 					visibility = JvmVisibility.PUBLIC
-					parameters += table.toParameter("type", _typeReferenceBuilder.typeRef(TaskEventType))
-					parameters += table.toParameter("event", _typeReferenceBuilder.typeRef(TaskUserEvent))
 					annotations += _annotationTypesBuilder.annotationRef(Override)
 					body = [append('''«table.notifyTaskEvent»''')]
 				])
 
-			// unsubscribe from eventBroker
 			type.members += table.toMethod("notifyProcessCompletedEvent", _typeReferenceBuilder.typeRef(Void::TYPE),
 				[
 					visibility = JvmVisibility.PUBLIC
-					parameters += table.toParameter("event", _typeReferenceBuilder.typeRef(ProcessCompletedEvent))
 					annotations += _annotationTypesBuilder.annotationRef(Override)
 					body = [append('''«table.notifyTaskEvent»''')]
 				])
 		}
-		if (!table.tabletype.embedded) {
-
-			// react on refresh due to modified entities
-			// unsubscribe from eventBroker
-			type.members += table.toMethod("refreshViewDueToModifiedEntityId", _typeReferenceBuilder.typeRef(Void::TYPE),
-				[
-					parameters += table.toParameter("entity", _typeReferenceBuilder.typeRef(String))
-					parameters += table.toParameter("id", _typeReferenceBuilder.typeRef(Object))
-					visibility = JvmVisibility.PUBLIC
-					body = [
-						append(
-							'''
-								super.refreshViewDueToModifiedEntityId(entity, id);
-								«table.callDataRefreshMethod»
-							''')]
-				])
-		}
-		
 		// any select table modifying workload dto methods
-		if (table.tabletype instanceof TableSelection) {
+		if (table.isSelection) {
 			type.members += table.toMethod("selectItemsFromWorkloadDto", _typeReferenceBuilder.typeRef(Void::TYPE),
 				[
 					visibility = JvmVisibility.PUBLIC
@@ -661,6 +745,133 @@
 		}
 	}
 	
+	def baseType(LEntity entityRef) {
+		if(entityRef.superType !== null &&
+			!entityRef.superType.mappedSuperclass &&  
+			!entityRef.superType.equals(entityRef)) {
+				return entityRef.superType 
+		}
+		return entityRef
+	}
+	
+	protected def CharSequence createGridComponent(TablePackage pkg, Table table, LEntity entity, String gridDtoFqn)
+		'''
+			IEclipseContext childContext = eclipseContext.createChild();
+			childContext.set(Locale.class, user.getLocale());
+			childContext.set("gridSourceId", "«pkg.name.toString.concat(".").concat(table.name).concat("Grid")»");
+			childContext.set("selectionEvnt", new EventDispatcherEvent(EventDispatcherCommand.SELECT, "«entity.baseType.fullyQualifiedName».«entity.idAttributeName»", "«table.fullyQualifiedName»"));
+			if ("«gridDtoFqn»".equals(getTaskOperativeDtoFqn())) {
+				childContext.set("inputdata", getTaskInitialOperativeDtos());
+			}
+			grid = ContextInjectionFactory.make(SingleInfoGridComponent.class, childContext);'''
+	
+	def String filterChanged(Table table) {
+		var body = ""
+		body = '''
+		«body»
+		if(changedFilter != null) {
+			EventDispatcherEvent evnt = new EventDispatcherEvent(EventDispatcherCommand.SELECT, changedFilter.getName(), "«table.fullyQualifiedName»");
+			evnt.addData(changedFilter.getSelectedData());
+			eventDispatcher.sendEvent(evnt);
+		}
+		dataRefresh();
+		'''
+		return body
+	}
+	
+	def String receiveEvent(Table table) {
+		var body = ""
+		if(table.isTable) {
+			body = '''
+			«body»
+			switch(event.getCommand()) {
+				case SELECT:
+					if(!event.getSender().equals("«table.fullyQualifiedName»")) {
+						if(filterGenerator.selectItem(event, «(table.tabletype as TableTable).selectById.booleanValue»)) {
+							«IF table.tabletype.embedded || table.task»
+							createComponents();
+							«ELSE»
+							renderData();
+							«ENDIF»
+						}
+					}
+					break;
+				case SAVE:
+				case DELETE:
+					if(!event.getSender().equals("«table.fullyQualifiedName»")) {
+						«FOR e:findRequestedEntities(table)»
+						if(event.getTopic().equals("«e.fullyQualifiedName»")){
+							datamartInstance.clearCache();
+							List<DatamartPrimary<?>> primaryKeys = datamartInstance.getPrimaryList();
+							for(DatamartPrimary key : primaryKeys) {
+								if(key.contains(event.getData().get(EventDispatcherDataTag.ID))) {
+									dataRefresh();
+								}
+							}
+						}
+						«ENDFOR»
+					}
+					break;
+				case REFRESH:
+					if(!event.getSender().equals("«table.fullyQualifiedName»")) {
+						«FOR e:findRequestedEntities(table)»
+						if(event.getTopic().equals("«e.fullyQualifiedName»")){
+							datamartInstance.clearCache();
+							dataRefresh();
+						}
+						«ENDFOR»
+					}
+					break;
+			'''
+			if (table.isSelection) {
+				body = '''
+				«body»
+					case ACTION:
+						if (toolbarUUID.equals(event.getTopic()) && event.getData().containsKey(EventDispatcherDataTag.BUTTON_ID)) {
+							Object id = event.getData().get(EventDispatcherDataTag.BUTTON_ID);
+							if (id instanceof SelectWorkloadActionEnum) {
+								SelectWorkloadActionEnum enumId = (SelectWorkloadActionEnum) id;
+								switch (enumId) {
+								case WORKLOAD_SELECT_ACTION_REMOVE_ALL:
+									removeAllItemsFromWorkloadDto();
+									break;
+								case WORKLOAD_SELECT_ACTION_ADD_ALL:
+									addAllItemsToWorkloadDto();
+									break;
+								}
+							}
+						}
+				'''
+			}
+			body = '''
+			«body»
+				}
+			'''
+		} else if(table.isGrid) {
+			body = '''
+			«body»
+			switch(event.getCommand()) {
+				case SAVE:
+				case DELETE:
+				case REFRESH:
+					if(!event.getSender().equals("«table.fullyQualifiedName»")) {
+						«FOR e:findRequestedEntities(table)»
+						if(event.getTopic().equals("«e.fullyQualifiedName»")){
+							// TODO: GridRefresh
+						}
+						«ENDFOR»
+					}
+					break;
+			}
+			'''
+		}
+		return body
+	}
+	
+	def refreshCondition(LEntity entity) {
+		return entity.name as CharSequence
+	}
+	
 	def getCallDataRefreshMethod(Table table) {
 		switch (table.tabletype) {
 			TableTable: {
@@ -678,27 +889,6 @@
 	}
 
 	/**
-	 * <p>build the methods.</p> 
-	 *
-	 */
-	def void toStringToNumberConverter(JvmDeclaredType type, Table table) {
-
-		// create getStringToInt
-		type.members += table.toMethod('''«CONVERT_METHOD_PREFIX»Int''', _typeReferenceBuilder.typeRef(int),
-			[
-				parameters += table.toParameter("value", _typeReferenceBuilder.typeRef(String))
-				body = [append('''return Double.valueOf(value).intValue();''')]
-			])
-
-		// create getStringToDouble
-		type.members += table.toMethod('''«CONVERT_METHOD_PREFIX»Double''', _typeReferenceBuilder.typeRef(double),
-			[
-				parameters += table.toParameter("value", _typeReferenceBuilder.typeRef(String))
-				body = [append('''return Double.valueOf(value);''')]
-			])
-	}
-
-	/**
 	 * <p>build the main method to be called from e4.</p> 
 	 *
 		tablePageLabel = new Label();
@@ -716,65 +906,61 @@
 	def String createView(Table table, TablePackage pkg) {
 
 		var body = '''
+			«IF table.tabletype.embedded»eclipseContext«ELSE»getContext()«ENDIF».set(IE4Table.class, this);
 			«IF table.task»
-				taskClient.subscribeTaskEventNotification(this);
-				taskClient.subscribeProcessCompletedEventNotification(this);
 				currentTaskId = -1L;
 			«ENDIF»
-			tables = new ArrayList<CellSetFilterTable>();
-			tableFilterDecorator = new TableFilterDecorator(dslMetadataService);
+			«IF !table.isBean»tables = new ArrayList<CellSetFilterTable>();«ENDIF»
+			tableFilterDecorator = new TableFilterDecorator(dslMetadataService, user.getLocale());
 			// the timeout to begin the filter process after the last key pressed
 			tableFilterDecorator.setTextChangeTimeout(500);
+			parent.setPrimaryStyleName("osbp");
+			parent.setId("parent");
+			parent.setSizeFull();
+			parent.addAttachListener(this);
+			parent.addDetachListener(this);
+			layoutManager = new ViewLayoutManager();
+			layoutManager.init(parent);
 		'''
-		if(table.tabletype instanceof TableGrid) {
-			val gridDtoFqn = (table.tabletype as TableGrid).source.dtoSource.fullyQualifiedName.toString
-			val entity = EntityUtils.getEntityFromDto((table.tabletype as TableGrid).source.dtoSource)
+		if(table.isGrid) {
+			val gridDtoFqn = table.dtoGridTable.dtoSource.fullyQualifiedName.toString
+			val entity = EntityUtils.getEntityFromDto(table.dtoGridTable.dtoSource)
 			body = '''
 			«body»
 			persistenceService.registerPersistenceUnit("«entity?.persistenceUnit»", 
 									«entity?.fullyQualifiedName».class);
 			log.debug("PersistenceService registered");
-			IEclipseContext childContext = context.createChild();
-			childContext.set(Locale.class, user.getLocale());
-			childContext.set("gridSourceId", "«pkg.name.toString.concat(".").concat(table.name).concat("Grid")»");
-			if  ("«gridDtoFqn»".equals(getTaskOperativeDtoFqn())) {
-				childContext.set("inputdata", getTaskInitialOperativeDtos());
+			«createGridComponent(pkg, table, entity, gridDtoFqn)»'''
+		} else if(table.isBean) {
+			if((table.tabletype as TableBean).source.datamartRef instanceof DatamartEntity) {
+				body = '''
+				«body»
+				persistenceService.registerPersistenceUnit("«((table.tabletype as TableBean).source.datamartRef as DatamartEntity).entityRef.persistenceUnit»")'''
 			}
-			grid = ContextInjectionFactory.make(SingleInfoGridComponent.class, childContext);'''
+		} else {
+			body = '''
+			«body»
+			datamartInstance = new «getSourceDataMartRefName(table)»Datamart();
+			datamartInstance.setUser(user);
+			filterGenerator = new DatamartFilterGenerator(datamartInstance, dslMetadataService);
+			filterGenerator.createUIFilters(layoutManager);
+			'''
 		}
 		body = '''
 			«body»
 			coordinateSystem = new ArrayList<Integer>();
-			filterGenerator = new DatamartFilterGenerator();
-			filterGenerator.setDslMetadataService(dslMetadataService);
-			layoutManager = new ViewLayoutManager();
 			tableSelectDelay = new Refresher();
 			tableRefresher = new Refresher();
-			propertyLookupMap = new HashMap<String,PropertyLookup>();
-		'''
+			attributeLookupMap = new HashMap<>();
+			tabSheets = new HashMap<>();'''
 
-		// the package name of the referenced datamart
-		if (getSourceDataMartRefName(table) != null) {
+		if (!table.tabletype.embedded && table.tabletype.toolbar !== null) {
 			body = '''
 			«body»
-			datamartClass = new «getSourceDataMartRefName(table)»Datamart();'''
+			toolbarUUID = UUID.randomUUID().toString();
+			toolbarClass = new «table.tabletype.toolbar.name.toString.toFirstUpper»Toolbar(toolbarUUID);
+			toolbarClass.createToolbar(eclipseContext, renderingEngine, themeResourceService);'''
 		}
-		if (!table.tabletype.embedded && table.tabletype.toolbar != null) {
-			body = '''
-			«body»
-			toolbarClass = new «table.tabletype.toolbar.name.toString.toFirstUpper»Action(UUID.randomUUID().toString());
-			toolbarClass.createToolbar(getContext(), renderingEngine, themeResourceService);'''
-		}
-		body = '''
-			«body»
-			parent.setPrimaryStyleName("osbp");
-			parent.setId("parent");
-			parent.setSizeFull();
-			layoutManager.init(parent);
-			refreshView = «table.refreshView»
-			«IF !table.tabletype.embedded && table.tabletype.toolbar != null»dispatchAction = «table.dispatchAction»«ENDIF»
-		'''
-
 		if (table.tabletype.polling) {
 			body = '''
 				«body»
@@ -788,26 +974,9 @@
 				layoutManager.addExtension(tableRefresher);
 			'''
 		}
-
-		if (table.dataMartTable instanceof TableDatamart && table.dataMartTable != null && (
-				(table.dataMartTable as TableDatamart).datamartRef.source instanceof DatamartEntity ||
-			(table.dataMartTable as TableDatamart).datamartRef.source instanceof DatamartCube			
-			)) {
-			body = '''
-				«body»
-				filterChangeListener = new ValueChangeListener() {
-					@Override
-					public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
-						«table.callDataRefreshMethod»
-					}
-				};
-				filterGenerator.createFilter(datamartClass, user, filterChangeListener, layoutManager);
-			'''
-		}
-
 		body = '''
-			«body»setup();
-			user.addUserLocaleListener(this);
+			«body»
+			initDone = true;
 		'''
 		return body
 	}
@@ -816,103 +985,60 @@
 		return table.dataMartTable instanceof TableDatamart &&
 			(table.dataMartTable as TableDatamart).datamartRef.source instanceof DatamartTask;
 	}
+	
+	def boolean isGrid(Table table) {
+		return table.tabletype instanceof TableGrid
+	}
+
+	def boolean isTable(Table table) {
+		return table.tabletype instanceof TableTable
+	}
+
+	def boolean isBean(Table table) {
+		return table.tabletype instanceof TableBean
+	}
+
+	def boolean isSelection(Table table) {
+		return table.tabletype instanceof TableSelection
+	}
 
 	def dataRefresh(Table table) {
-		'''
-		try {
-			// if no current ui found
-			if (UI.getCurrent() == null) {
-				for(CellSetFilterTable table:tables) {
-					UI.setCurrent(table.getUI());
-					break;
-				}
+		var body = ""
+		if(table.isBean) {
+			body = 
+			'''
+			«body»
+			if(table != null) {
+				table.refreshRowCache();
 			}
-			if(dataSourceContainer== null || !dataSourceContainer.updateContainer(getCellSet())) {
-				log.debug("cannot update container - full refresh");
-				«IF table.tabletype.embedded»
+			'''
+		} else {
+			body = 
+			'''
+			«body»
+			try {
+				// if no current ui found
+				if (UI.getCurrent() == null) {
+					for(CellSetFilterTable table:tables) {
+						UI.setCurrent(table.getUI());
+						break;
+					}
+				}
+				if(dataSourceContainer== null || !dataSourceContainer.updateContainer(getCellSet())) {
+					log.debug("cannot update container - full refresh");
+					«IF table.tabletype.embedded»
 					createComponents();
 					«ELSE»
-						renderData();
-						«ENDIF»
-					}
-					for(CellSetFilterTable table:tables) {
-						table.sanitizeSelection();
-						«table.notifyBPMNChart»
-					}
-				}
-				catch (Exception e) {
-					log.error("dataRefresh", e);
-				}'''
-	}
-
-	/**
-	 * <p>create a handler for external triggered refresh requests.</p> 
-	 *
-	 */
-	def String refreshView(Table table) {
-		var body = ""
-		var updateFiler = ""
-		switch (table.tabletype) {
-			TableTable: {
-				updateFiler = "filterGenerator.updateFilter(datamartClass, user, filterChangeListener);"
-			}
-			TableGrid: {
-			}
-		}
-		body = '''
-			«body»
-			new EventHandler() {
-				@Override
-				public void handleEvent(Event event) {
-					// data could be changed externally - update filters
-					«updateFiler»
-					«table.callDataRefreshMethod»
-				}
-			};
-		'''
-		return body
-	}
-
-	/**
-	 * <p>create a handler for external triggered task actions.</p> 
-	 *
-	 */
-	def String dispatchAction(Table table) {
-		var body = ""
-		body = '''
-			«body»
-			new EventHandler() {
-				@Override
-				public void handleEvent(Event event) {
-					EventBrokerMsg msg = (EventBrokerMsg)event.getProperty(EventUtils.DATA);
-					log.debug("dispatch action received in «table.name» for "+msg.getName());
-					«IF table.isTask»
-					currentTaskId = msg.getLong();
-					taskClient.operations(msg.getLong(), user, null, Operation.valueOf(msg.getName()));
-					«ELSEIF (table.tabletype instanceof TableSelection)»
-					switch(msg.getName()) {
-						case "«SelectWorkloadActionEnum.WORKLOAD_SELECT_ACTION_ADD_ALL.literal»":
-							addAllItemsToWorkloadDto();
-							break;
-						case "«SelectWorkloadActionEnum.WORKLOAD_SELECT_ACTION_REMOVE_ALL.literal»":
-							removeAllItemsFromWorkloadDto();
-							break;
-					}
-					«ELSE»
-					switch(msg.getName()) {
-						case "«ReportActionEnum.REPORT_ACTION_PRINT_ON_SERVER_PDF.literal»":
-							break;
-						case "«ReportActionEnum.REPORT_ACTION_DOWNLOAD_PDF.literal»":
-							break;
-						case "«ChartActionEnum.CHART_ACTION_DOWNLOAD.literal»":
-							break;
-						case "«WorkflowActionEnum.WORKFLOW_ACTION_START.literal»":
-							break;
-					}
+					renderData();
 					«ENDIF»
 				}
-			};
-		'''
+				for(CellSetFilterTable table:tables) {
+					table.sanitizeSelection();
+				}
+			} catch (Exception e) {
+				log.error("dataRefresh", e);
+			}'''
+		}
 		return body
 	}
 	
@@ -928,7 +1054,7 @@
 				@Override
 				public void handleEvent(Event event) {
 					EventBrokerMsg msg = (EventBrokerMsg)event.getProperty(EventUtils.DATA);
-					datamartClass.operations(msg.getLong(), user, msg.getName(), Operation.Delegate);
+					datamartInstance.operations(msg.getLong(), user, msg.getName(), BPMOperation.Delegate);
 				}
 			};
 		'''
@@ -940,89 +1066,88 @@
 	 *
 	 */
 	def String createComponents(Table table) {
-		var body = "resetListeningForEntityIdsModifications();"
-		if (table.dataMartTable != null) {
-			var generateModifyLister = ''''''
-			if (table.dataMartTable != null && table.dataMartTable.datamartRef != null &&
-				(table.dataMartTable.datamartRef.source instanceof DatamartEntity)) {
-				generateModifyLister = '''datamartClass.addEntityIdsToModifyListener(this, cellSet);'''
-			}
+		var body = ""
+		if (table.dataMartTable !== null && !table.isBean) {
 			body = '''
-				try {
-					// get the results
-					final DerivedCellSet cellSet = getCellSet();
-					if (cellSet == null) {
-						«IF !table.tabletype.embedded»promptSecurityMessage(dslMetadataService.translate(locale.toLanguageTag(), "securityMessage"), layoutManager.getDataArea());«ENDIF»
-						return;
-					} else {
-						layoutManager.getDataArea().removeAllComponents();
-					}
-					«IF !table.tabletype.embedded»
-						resetListeningForEntityIdsModifications();
-						«generateModifyLister»
-					«ENDIF»
-					getCoordinateSystem().clear();
-					// generate a new result component
-					if (cellSet != null) {
-						// create a multidimensional coordinate system against the cellSet
-						for	(int axis = 0; axis < cellSet.getAxes().size(); axis++) {
-							getCoordinateSystem().add(0);
-						}
-						// remove any previous component
-						if	(dataComponent != null) {
-							layoutManager.getDataArea().removeComponent(dataComponent);
-							dataComponent = null;
-						}
-						if (cellSet.getAxes().size() < 2) {
-							log.error("at least 2 axes from referenced datamart «table.dataMartTable.datamartRef.name» are needed to render «table.
-					name»");
-						}
-						dataComponent = createTabSheet(cellSet, cellSet.getAxes().size());
-						if	(dataComponent != null) {
-							dataComponent.setSizeFull();
-							dataComponent.setId("dataComponent");
-							layoutManager.getDataArea().addComponent(dataComponent);
-							«IF (table.tabletype instanceof TableSelection)»
-							selectItemsFromWorkloadDto();
-							«ENDIF»
-							layoutManager.getDataArea().setExpandRatio(dataComponent, 1);
-							«table.selectAlways»
-						}
-					} 
-					else {
-						log.error("referenced datamart «table.dataMartTable.datamartRef.name» generates no results");
-					}
-				} catch (DerivedOlapException e) {
-					log.error("createComponents", e);
+				// get the results
+				final DerivedCellSet cellSet = getCellSet();
+				if (cellSet == null) {
+					«IF !table.tabletype.embedded»promptSecurityMessage(dslMetadataService.translate(user.getLocale().toLanguageTag(), "securityMessage"), layoutManager.getDataArea());«ENDIF»
+					return;
+				} else {
+					layoutManager.getDataArea().removeAllComponents();
 				}
-			'''
-		} else {
-			body = '''
-				«body»
+				getCoordinateSystem().clear();
 				// generate a new result component
-				try {
+				if (cellSet != null) {
+					// create a multidimensional coordinate system against the cellSet
+					for	(int axis = 0; axis < cellSet.getAxes().size(); axis++) {
+						getCoordinateSystem().add(0);
+					}
 					// remove any previous component
 					if	(dataComponent != null) {
 						layoutManager.getDataArea().removeComponent(dataComponent);
 						dataComponent = null;
 					}
-					dataComponent = createDtoGrid();
-					dataComponent.setSizeFull();
-					dataComponent.setId("dataComponent");
-					layoutManager.getDataArea().addComponent(dataComponent);
-					layoutManager.getDataArea().setExpandRatio(dataComponent, 1);
-					«table.selectAlways»
-				} catch (DerivedOlapException e) {
-					log.error("createComponents", e);
+					if (cellSet.getAxes().size() < 2) {
+						log.error("at least 2 axes from referenced datamart «table.dataMartTable.datamartRef.name» are needed to render «table.name»");
+					} else {
+						dataComponent = createTabSheet(cellSet, cellSet.getAxes().size());
+						if	(dataComponent != null) {
+							dataComponent.setSizeFull();
+							dataComponent.setId("dataComponent");
+							layoutManager.getDataArea().addComponent(dataComponent);
+							«IF (table.isSelection)»
+							selectItemsFromWorkloadDto();
+							«ENDIF»
+							layoutManager.getDataArea().setExpandRatio(dataComponent, 1);
+							«table.selectAlways»
+						}
+					}
+				} 
+				else {
+					log.error("referenced datamart «table.dataMartTable.datamartRef.name» generates no results");
 				}
 			'''
+		} else if(table.isGrid) {
+			body = '''
+				«body»
+				// generate a new result component
+				// remove any previous component
+				if	(dataComponent != null) {
+					layoutManager.getDataArea().removeComponent(dataComponent);
+					dataComponent = null;
+				}
+				dataComponent = createDtoGrid();
+				dataComponent.setSizeFull();
+				dataComponent.setId("dataComponent");
+				layoutManager.getDataArea().addComponent(dataComponent);
+				layoutManager.getDataArea().setExpandRatio(dataComponent, 1);
+				«table.selectAlways»
+			'''
+		} else if(table.isBean) {
+			body = '''
+				«body»
+				// generate a new result component
+				// remove any previous component
+				if	(dataComponent != null) {
+					layoutManager.getDataArea().removeComponent(dataComponent);
+					dataComponent = null;
+				}
+				dataComponent = createTable();
+				dataComponent.setSizeFull();
+				dataComponent.setId("dataComponent");
+				layoutManager.getDataArea().addComponent(dataComponent);
+				layoutManager.getDataArea().setExpandRatio(dataComponent, 1);
+				«table.selectAlways»
+			'''
 		}
 		return body
 	}
 
 	def String getSelectAlways(Table table) {
 		var body = ""
-		if (table.tabletype instanceof TableTable && (table.tabletype as TableTable).selectalways) {
+		if (table.isTable && (table.tabletype as TableTable).selectalways) {
 			body = '''
 			«body»
 			tableSelectDelay.setRefreshInterval(1000);
@@ -1063,30 +1188,25 @@
 			Integer axis = axisNo-1;
 			TabSheet tabsheet = new TabSheet();
 			tabsheet.setSizeFull();
+			tabSheets.put(tabsheet, new ArrayList<String>());
 			DerivedAxis tabAxis = cellSet.getAxes().get(axis);
 			// create a tab page for all tab axis members
 			int tabNo = 0;
 			for	(DerivedPosition column : tabAxis.getPositions()) {
 				// create the title for the axis
-				String title = null;
 				for (DerivedMember member : column.getMembers()) {
-					if	(title == null) {
-						title = dslMetadataService.translate(locale.toLanguageTag(), member.getCaption());
-					}
-					else {
-						title += " / "+dslMetadataService.translate(locale.toLanguageTag(), member.getCaption());
-					}
+					tabSheets.get(tabsheet).add(member.getCaption());
 				}
 				// position the data to this coordinate
 				getCoordinateSystem().set(axis, tabNo);
 				component = createTabSheet(cellSet, axis);
 				// set the caption
 				if (component != null) {
-					component.setCaption(title);
+					component.setCaption("");
 					tabsheet.addComponent(component);
-					    		if (component instanceof CellSetFilterTable) {
-					    		tabsheet.addComponent(((CellSetFilterTable)component));
-					    		}
+		    		if (component instanceof CellSetFilterTable) {
+			    		tabsheet.addComponent(((CellSetFilterTable)component));
+		    		}
 				}
 				tabNo++;
 			}
@@ -1104,14 +1224,20 @@
 		var body = ""
 		var TableAxis category_axis = null
 		var TableAxis data_axis = null
-		var idMap = <String, IdProperty>newHashMap
-		var formatMap = <String, FormatProperty>newHashMap
+		var idMap = <String, IdAttribute>newHashMap
+		var formatMap = <String, FormatAttribute>newHashMap
 		var intervalStyleMap = <String, Map<Double, Map<String, String>>>newHashMap
 		var intervalIconMap = <String, Map<Double, Map<String, String>>>newHashMap
 		var intervalTooltipMap = <String, Map<Double, Map<String, String>>>newHashMap
 		var numberLookupStyleMap = <String, Map<Double, Map<String, String>>>newHashMap
 		var numberLookupIconMap = <String, Map<Double, Map<String, String>>>newHashMap
 		var numberLookupTooltipMap = <String, Map<Double, Map<String, String>>>newHashMap
+		var intIntervalStyleMap = <String, Map<Integer, Map<String, String>>>newHashMap
+		var intIntervalIconMap = <String, Map<Integer, Map<String, String>>>newHashMap
+		var intIntervalTooltipMap = <String, Map<Integer, Map<String, String>>>newHashMap
+		var intLookupStyleMap = <String, Map<Integer, Map<String, String>>>newHashMap
+		var intLookupIconMap = <String, Map<Integer, Map<String, String>>>newHashMap
+		var intLookupTooltipMap = <String, Map<Integer, Map<String, String>>>newHashMap
 		var stringLookupStyleMap = <String, Map<String, Map<String, String>>>newHashMap
 		var stringLookupIconMap = <String, Map<String, Map<String, String>>>newHashMap
 		var stringLookupTooltipMap = <String, Map<String, Map<String, String>>>newHashMap
@@ -1134,25 +1260,30 @@
 			}
 		}
 
-		if (category_axis == null) {
+		if (category_axis === null) {
 			category_axis = TableDSLFactory.eINSTANCE.createTableAxis();
 			category_axis.axis = AxisEnum.ROWS;
 			table.dataMartTable.elements.add(category_axis);
 		}
-		if (data_axis == null) {
+		if (data_axis === null) {
 			data_axis = TableDSLFactory.eINSTANCE.createTableAxis();
 			data_axis.axis = AxisEnum.COLUMNS;
 			table.dataMartTable.elements.add(data_axis);
 		}
 		var constructTable = "final CellSetFilterTable table = new CellSetFilterTable();"
 		var multiSelect = false;
-		if	(table.tabletype instanceof TableSelection) {
+		if	(table.isSelection) {
 			constructTable = '''
 				final CheckboxSelectionCellSetFilterTable table = new CheckboxSelectionCellSetFilterTable();
 				selectTable = table;
 			'''
 			multiSelect = (table.tabletype as TableSelection).multiSelection
 		}
+		if	(table.isBean) {
+			constructTable = '''
+				final BeanFilterTable table = new BeanFilterTable();
+			'''
+		}
 		body = '''
 			«body»«constructTable»
 			VerticalLayout tableLayout = new VerticalLayout();
@@ -1164,8 +1295,10 @@
 			
 			Button b = new Button(null, new Button.ClickListener() {
 			    public void buttonClick(ClickEvent event) {
-			    	taskClient.operations(dataSourceContainer.getTaskId((int)table.getValue()), user, null, Operation.Start);
-			    	eventBroker.send(EventBrokerMsg.MENU_CLOSE, null);
+			    	if(taskClient != null) {
+				    	taskClient.operations(dataSourceContainer.getTaskId((int)table.getValue()), user, null, BPMOperation.Start);
+			    		eventBroker.send(EventBrokerMsg.MENU_CLOSE, null);
+			    	}
 			    }
 			});
 			b.setIcon(themeResourceService.getThemeResource("task_action_start", ThemeResourceType.ICON));
@@ -1181,30 +1314,38 @@
 			table.setColumnCollapsingAllowed(true);
 			table.setColumnReorderingAllowed(true);
 			table.setId("table");
-			table.setRowHeaderMode(RowHeaderMode.«IF (table.tabletype as TableTable).headerMode != null»«(table.tabletype as TableTable).
-				headerMode.name()»«ELSE»HIDDEN«ENDIF»);
+			«IF table.isTable»
+			table.setRowHeaderMode(RowHeaderMode.«IF (table.tabletype as TableTable).headerMode !== null»«(table.tabletype as TableTable).headerMode.name()»«ELSE»HIDDEN«ENDIF»);
+			«ENDIF»
+			«IF table.isBean»
+			table.setRowHeaderMode(RowHeaderMode.«IF (table.tabletype as TableBean).headerMode !== null»«(table.tabletype as TableBean).headerMode.name()»«ELSE»HIDDEN«ENDIF»);
+			«ENDIF»
 			table.setFilterDecorator(tableFilterDecorator);
 			table.setFilterBarVisible(«table.tabletype.filtering.booleanValue»);
 			table.setSelectable(true);
 			table.setSizeFull();
 			tableLayout.addComponent(table);
-			tables.add(table);
+			«IF !table.isBean»tables.add(table);«ENDIF»
 		'''
 
 		// Initialization of the BlobLookupMap
 		table.initBlobLookup(blobLookupMap)
 		table.initIdMap(idMap)
 		if (category_axis.hasDetails) {
-			category_axis.initPropertyLookups(formatMap, intervalStyleMap, intervalIconMap, intervalTooltipMap,
-				numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, stringLookupStyleMap,
-				stringLookupIconMap, stringLookupTooltipMap, dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap)
+			category_axis.initPropertyLookups(formatMap, 
+				intervalStyleMap, intervalIconMap, intervalTooltipMap, numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, 
+				intIntervalStyleMap, intIntervalIconMap, intIntervalTooltipMap, intLookupStyleMap, intLookupIconMap, intLookupTooltipMap, 
+				stringLookupStyleMap, stringLookupIconMap, stringLookupTooltipMap, 
+				dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap)
 		}
 		if (data_axis.hasDetails) {
-			data_axis.initPropertyLookups(formatMap, intervalStyleMap, intervalIconMap, intervalTooltipMap,
-				numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, stringLookupStyleMap,
-				stringLookupIconMap, stringLookupTooltipMap, dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap)
+			data_axis.initPropertyLookups(formatMap, 
+				intervalStyleMap, intervalIconMap, intervalTooltipMap, numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, 
+				intIntervalStyleMap, intIntervalIconMap, intIntervalTooltipMap, intLookupStyleMap, intLookupIconMap, intLookupTooltipMap, 
+				stringLookupStyleMap, stringLookupIconMap, stringLookupTooltipMap, 
+				dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap)
 		}
-		if (intervalStyleMap.keySet.size + numberLookupStyleMap.keySet.size + stringLookupStyleMap.keySet.size +
+		if (intervalStyleMap.keySet.size + numberLookupStyleMap.keySet.size + stringLookupStyleMap.keySet.size + intLookupStyleMap.keySet.size + intIntervalStyleMap.keySet.size +
 			dateLookupStyleMap.keySet.size > 0 || category_axis.hasRowHeight) {
 			body = '''
 				«body»// add styles to page for the axis's custom styles
@@ -1215,30 +1356,38 @@
 			customformatCounter = customformatCounter + 1
 			rowStyle = '''rowcustomformat«customformatCounter»'''
 			body = '''«body»styles.add(".v-table-row-«rowStyle» {height: «category_axis.rowHeight»px;}");
-'''
+			'''
 		}
-		body = '''«body»«createStyles(intervalStyleMap, numberLookupStyleMap, stringLookupStyleMap, dateLookupStyleMap)» '''
+		body = '''«body»«createStyles(intervalStyleMap, numberLookupStyleMap, intIntervalStyleMap, intLookupStyleMap, stringLookupStyleMap, dateLookupStyleMap)» '''
 
 		// all detail value information if present is mapped to methods of TableCellGenerator
-		body = '''«body»«generatePropertyLookups(idMap, formatMap, intervalStyleMap, intervalIconMap, intervalTooltipMap,
-			numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, stringLookupStyleMap, stringLookupIconMap,
-			stringLookupTooltipMap, dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap, blobLookupMap)»'''
-		body = '''
-			«body»dataSourceContainer = new CellSetIndexedContainer(dslMetadataService, locale, themeResourceService, propertyLookupMap, cellSet, coordinateSystem, «table.isDatamartCrossJoined»);
-			table.setContainerDataSource(dataSourceContainer);
-			dataSourceContainer.addExtras(table);
-		'''
+		body = '''«body»«generatePropertyLookups(idMap, formatMap, 
+			intervalStyleMap, intervalIconMap, intervalTooltipMap, numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, 
+			intIntervalStyleMap, intIntervalIconMap, intIntervalTooltipMap, intLookupStyleMap, intLookupIconMap, intLookupTooltipMap, 
+			stringLookupStyleMap, stringLookupIconMap, stringLookupTooltipMap, 
+			dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap, blobLookupMap)»'''
+		if(!table.isBean) {
+			body = '''
+				«body»dataSourceContainer = new CellSetIndexedContainer(dslMetadataService, user.getLocale(), themeResourceService, blobService, attributeLookupMap, cellSet, coordinateSystem, «table.isDatamartCrossJoined»);
+				table.setContainerDataSource(dataSourceContainer);
+				dataSourceContainer.addExtras(table);
+			'''
+		} else {
+			body = '''
+				«body»dataSourceContainer = new BeanServiceLazyLoadingContainer(factory.createService(«((table.tabletype as TableBean).dataMartTable.datamartRef.fullyQualifiedName)»DatamartContainer.class), «((table.tabletype as TableBean).dataMartTable.datamartRef.fullyQualifiedName)»DatamartContainer.class, null);
+				table.setContainerDataSource(dataSourceContainer);
+			'''
+		}
 		if (category_axis.hasRowHeight) {
 			body = '''
 				«body»dataSourceContainer.setRowStyle("«rowStyle»");
 			'''
 		}
-		if (table.tabletype instanceof TableTable) {
+		if (table.isTable) {
 			if (table.dataMartTable instanceof TableDatamart) {
 				for (element : (table.dataMartTable as TableDatamart).elements) {
 					if (element instanceof TableAxis) {
-						if ((element as TableAxis).preOrder != null) {
-
+						if ((element as TableAxis).preOrder !== null) {
 							// create a ordering refresh event if applicable
 							body = '''«body»«(element as TableAxis).preOrder.preOrder(element as TableAxis)»'''
 						}
@@ -1262,8 +1411,9 @@
 		// send a selection event if modeled
 		body = '''«body»«table.sendEvent»
 		'''
-		if (table.tabletype instanceof TableSelection) {
-			body = '''«body»
+		if (table.isSelection) {
+			body = '''
+			«body»
 			selectItemsFromWorkloadDto();
 			'''
 		}
@@ -1307,6 +1457,8 @@
 	def String createStyles(
 		HashMap<String, Map<Double, Map<String, String>>> intervalStyleMap,
 		HashMap<String, Map<Double, Map<String, String>>> numberLookupStyleMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intIntervalStyleMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intLookupStyleMap,
 		HashMap<String, Map<String, Map<String, String>>> stringLookupStyleMap,
 		HashMap<String, Map<Double, Map<String, String>>> dateLookupStyleMap
 	) {
@@ -1336,6 +1488,30 @@
 				}
 			}
 		}
+		for (format : intIntervalStyleMap.keySet) {
+			for (interval : intIntervalStyleMap.get(format).keySet) {
+				for (style : intIntervalStyleMap.get(format).get(interval).keySet) {
+					body = '''«body»styles.add("«stylePrefix»«style» {«intIntervalStyleMap.get(format).get(interval).get(
+						style)»}");
+						'''
+					body = '''«body»styles.add("«stylePrefix»«style»-odd {«modifyOddStyle(
+						intIntervalStyleMap.get(format).get(interval).get(style))»}");
+						'''
+				}
+			}
+		}
+		for (format : intLookupStyleMap.keySet) {
+			for (interval : intLookupStyleMap.get(format).keySet) {
+				for (style : intLookupStyleMap.get(format).get(interval).keySet) {
+					body = '''«body»styles.add("«stylePrefix»«style» {«intLookupStyleMap.get(format).get(interval).
+						get(style)»}");
+						'''
+					body = '''«body»styles.add("«stylePrefix»«style»-odd {«modifyOddStyle(
+						intLookupStyleMap.get(format).get(interval).get(style))»}");
+						'''
+				}
+			}
+		}
 		for (format : stringLookupStyleMap.keySet) {
 			for (interval : stringLookupStyleMap.get(format).keySet) {
 				for (style : stringLookupStyleMap.get(format).get(interval).keySet) {
@@ -1368,14 +1544,20 @@
 	 *
 	 */
 	def String generatePropertyLookups(
-		HashMap<String, IdProperty> idMap,
-		HashMap<String, FormatProperty> formatMap,
+		HashMap<String, IdAttribute> idMap,
+		HashMap<String, FormatAttribute> formatMap,
 		HashMap<String, Map<Double, Map<String, String>>> intervalStyleMap,
 		HashMap<String, Map<Double, Map<String, String>>> intervalIconMap,
 		HashMap<String, Map<Double, Map<String, String>>> intervalTooltipMap,
 		HashMap<String, Map<Double, Map<String, String>>> numberLookupStyleMap,
 		HashMap<String, Map<Double, Map<String, String>>> numberLookupIconMap,
 		HashMap<String, Map<Double, Map<String, String>>> numberLookupTooltipMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intIntervalStyleMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intIntervalIconMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intIntervalTooltipMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intLookupStyleMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intLookupIconMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intLookupTooltipMap,
 		HashMap<String, Map<String, Map<String, String>>> stringLookupStyleMap,
 		HashMap<String, Map<String, Map<String, String>>> stringLookupIconMap,
 		HashMap<String, Map<String, Map<String, String>>> stringLookupTooltipMap,
@@ -1384,103 +1566,109 @@
 		HashMap<String, Map<Double, Map<String, String>>> dateLookupTooltipMap,
 		HashMap<String, String> blobLookupMap
 	) {
-		var properties = <String>newHashSet
-		properties.addAll(formatMap.keySet)
-		properties.addAll(intervalStyleMap.keySet)
-		properties.addAll(intervalIconMap.keySet)
-		properties.addAll(intervalTooltipMap.keySet)
-		properties.addAll(numberLookupStyleMap.keySet)
-		properties.addAll(numberLookupIconMap.keySet)
-		properties.addAll(numberLookupTooltipMap.keySet)
-		properties.addAll(stringLookupStyleMap.keySet)
-		properties.addAll(stringLookupIconMap.keySet)
-		properties.addAll(stringLookupTooltipMap.keySet)
-		properties.addAll(dateLookupStyleMap.keySet)
-		properties.addAll(dateLookupIconMap.keySet)
-		properties.addAll(dateLookupTooltipMap.keySet)
-		properties.addAll(blobLookupMap.keySet)
-		properties.addAll(idMap.keySet)
+		var attributes = <String>newHashSet
+		attributes.addAll(formatMap.keySet)
+		attributes.addAll(intervalStyleMap.keySet)
+		attributes.addAll(intervalIconMap.keySet)
+		attributes.addAll(intervalTooltipMap.keySet)
+		attributes.addAll(numberLookupStyleMap.keySet)
+		attributes.addAll(numberLookupIconMap.keySet)
+		attributes.addAll(numberLookupTooltipMap.keySet)
+		attributes.addAll(intIntervalStyleMap.keySet)
+		attributes.addAll(intIntervalIconMap.keySet)
+		attributes.addAll(intIntervalTooltipMap.keySet)
+		attributes.addAll(intLookupStyleMap.keySet)
+		attributes.addAll(intLookupIconMap.keySet)
+		attributes.addAll(intLookupTooltipMap.keySet)
+		attributes.addAll(stringLookupStyleMap.keySet)
+		attributes.addAll(stringLookupIconMap.keySet)
+		attributes.addAll(stringLookupTooltipMap.keySet)
+		attributes.addAll(dateLookupStyleMap.keySet)
+		attributes.addAll(dateLookupIconMap.keySet)
+		attributes.addAll(dateLookupTooltipMap.keySet)
+		attributes.addAll(blobLookupMap.keySet)
+		attributes.addAll(idMap.keySet)
 		var body = ""
 
-		if (properties.size > 0) {
-			body = '''«body»// add propertyLookups for column and row property supplements
+		if (attributes.size > 0) {
+			body = '''«body»// add attributeLookups for column and row attribute supplements
 				'''
 		}
 
 		// all detail value information if present is mapped to methods of PropertyLookup
 		// styles and icons can be mapped to value ranges 
-		for (property : properties) {
-			var hadProperty = false
-			if(property != null) {
-				hadProperty = true
-				body = '''«body»propertyLookupMap.put("«property.toString.toUpperCase»", new PropertyLookup(themeResourceService, dslMetadataService, locale)'''
+		for (attribute : attributes) {
+			var hadAttribute = false
+			if(attribute !== null) {
+				hadAttribute = true
+				body = '''«body»attributeLookupMap.put("«attribute.toString.toUpperCase»", new PropertyLookup(themeResourceService, dslMetadataService, blobService, user.getLocale())'''
 	
 				// apply all collapsed id columns
-				if (idMap.containsKey(property)) {
+				if (idMap.containsKey(attribute)) {
 					body = '''
 						«body»
-							.setCollapseColumn(«idMap.get(property).collapsed.booleanValue.toString»)
+							.setCollapseColumn(«idMap.get(attribute).collapsed.booleanValue.toString»)
 					'''
 				}
 	
 				// apply all found formatter information
-				if (formatMap.containsKey(property)) {
-					if (formatMap.get(property).formatter != null) {
+				if (formatMap.containsKey(attribute)) {
+					if (formatMap.get(attribute).formatter !== null) {
 						body = '''
 							«body»
-								.setFormat("«formatMap.get(property).formatter»")
+								.setFormat("«formatMap.get(attribute).formatter»")
 						'''
 					}
-					if (formatMap.get(property).tooltipPattern != null) {
+					if (formatMap.get(attribute).tooltipPattern !== null) {
 						body = '''
 							«body»
-								.setTooltipPattern("«formatMap.get(property).tooltipPattern»")
+								.setTooltipPattern("«formatMap.get(attribute).tooltipPattern»")
 						'''
 					}
 					if (intervalIconMap.size > 0) {
 						body = '''
 							«body»
-								.setHideLabel(«formatMap.get(property).hideLabelInterval.booleanValue.toString»)
+								.setHideLabel(«formatMap.get(attribute).hideLabelInterval.booleanValue.toString»)
 						'''
-					} else if (numberLookupIconMap.size + stringLookupIconMap.size + dateLookupIconMap.size > 0) {
+					} else if (numberLookupIconMap.size + intLookupIconMap.size + stringLookupIconMap.size + dateLookupIconMap.size > 0) {
 						body = '''
 							«body»
-								.setHideLabel(«formatMap.get(property).hideLabelLookup.booleanValue.toString»)
+								.setHideLabel(«formatMap.get(attribute).hideLabelLookup.booleanValue.toString»)
 						'''
 					} else {
 						body = '''
 							«body»
-								.setHideLabel(«formatMap.get(property).hideImageLabel.booleanValue.toString»)
+								.setHideLabel(«formatMap.get(attribute).hideImageLabel.booleanValue.toString»)
 						'''
 					}
 					body = '''
 						«body»
-							.setCollapseColumn(«formatMap.get(property).collapsed.booleanValue.toString»)
+							.setCollapseColumn(«formatMap.get(attribute).collapsed.booleanValue.toString»)
 					'''
-					if (formatMap.get(property).hasImage) {
+					if (formatMap.get(attribute).hasImage) {
 						body = '''
 							«body»
-								.setImageService("«formatMap.get(property).imagePath»", «formatMap.get(property).hasImageParameter.booleanValue.
+								.setImageService("«formatMap.get(attribute).imagePath»", «formatMap.get(attribute).hasImageParameter.booleanValue.
 								toString»)
 						'''
-						if (formatMap.get(property).hasImageResize) {
+						if (formatMap.get(attribute).hasImageResize) {
 							body = '''
 							«body»
-								.setResizeString("«formatMap.get(property).imageResizeString»")'''
+								.setResizeString("«formatMap.get(attribute).imageResizeString»")'''
 						}
 					}
-					if (formatMap.get(property).iconName != null) {
+					if (formatMap.get(attribute).iconName !== null) {
 						body = '''
 							«body»
-								.setColumnIcon("«formatMap.get(property).iconName»")
+								.setColumnIcon("«formatMap.get(attribute).iconName»")
 						'''
 					}
 				}
-	
+				// number
 				// apply all interval styles information
-				if (intervalStyleMap.containsKey(property)) {
-					for (interval : intervalStyleMap.get(property).keySet) {
-						for (style : intervalStyleMap.get(property).get(interval).keySet) {
+				if (intervalStyleMap.containsKey(attribute)) {
+					for (interval : intervalStyleMap.get(attribute).keySet) {
+						for (style : intervalStyleMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
 									.addStyleInterval(«IF style.startsWith("date")»ExtendedDate.add(new Date(), (long)«interval * -1», TimeUnit.DAYS)«ELSE»«interval»«ENDIF», "«style»")
@@ -1490,26 +1678,25 @@
 				}
 	
 				// apply all interval icons information
-				if (intervalIconMap.containsKey(property)) {
-					for (interval : intervalIconMap.get(property).keySet) {
-						for (style : intervalIconMap.get(property).get(interval).keySet) {
+				if (intervalIconMap.containsKey(attribute)) {
+					for (interval : intervalIconMap.get(attribute).keySet) {
+						for (style : intervalIconMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
 									.addResourceInterval(«IF style.startsWith("date")»ExtendedDate.add(new Date(), (long)«interval * -1», TimeUnit.DAYS)«ELSE»«interval»«ENDIF», "«intervalIconMap.
-									get(property).get(interval).get(style)»")
+									get(attribute).get(interval).get(style)»")
 							'''
 						}
 					}
 				}
 	
 				// apply all interval tooltip information
-				if (intervalTooltipMap.containsKey(property)) {
-					for (interval : intervalTooltipMap.get(property).keySet) {
-						for (style : intervalTooltipMap.get(property).get(interval).keySet) {
+				if (intervalTooltipMap.containsKey(attribute)) {
+					for (interval : intervalTooltipMap.get(attribute).keySet) {
+						for (style : intervalTooltipMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
-									.addTooltipInterval(«IF style.startsWith("date")»ExtendedDate.add(new Date(), (long)«interval * -1», TimeUnit.DAYS)«ELSE»«interval»«ENDIF», dslMetadataService.translate(locale.toLanguageTag(), "«intervalTooltipMap.
-									get(property).get(interval).get(style)»"))
+									.addTooltipInterval(«IF style.startsWith("date")»ExtendedDate.add(new Date(), (long)«interval * -1», TimeUnit.DAYS)«ELSE»«interval»«ENDIF», "«intervalTooltipMap.get(attribute).get(interval).get(style)»")
 							'''
 						}
 					}
@@ -1517,9 +1704,9 @@
 	
 				// styles and icons can be mapped to discrete double values (lookups) 
 				// apply all lookup styles information
-				if (numberLookupStyleMap.containsKey(property)) {
-					for (interval : numberLookupStyleMap.get(property).keySet) {
-						for (style : numberLookupStyleMap.get(property).get(interval).keySet) {
+				if (numberLookupStyleMap.containsKey(attribute)) {
+					for (interval : numberLookupStyleMap.get(attribute).keySet) {
+						for (style : numberLookupStyleMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
 									.addStyleLookup(«interval», "«style»")
@@ -1529,25 +1716,99 @@
 				}
 	
 				// apply all lookup icons information
-				if (numberLookupIconMap.containsKey(property)) {
-					for (interval : numberLookupIconMap.get(property).keySet) {
-						for (style : numberLookupIconMap.get(property).get(interval).keySet) {
+				if (numberLookupIconMap.containsKey(attribute)) {
+					for (interval : numberLookupIconMap.get(attribute).keySet) {
+						for (style : numberLookupIconMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
-									.addResourceLookup(«interval», "«numberLookupIconMap.get(property).get(interval).get(style)»")
+									.addResourceLookup(«interval», "«numberLookupIconMap.get(attribute).get(interval).get(style)»")
 							'''
 						}
 					}
 				}
 	
 				// apply all lookup tooltip information
-				if (numberLookupTooltipMap.containsKey(property)) {
-					for (interval : numberLookupTooltipMap.get(property).keySet) {
-						for (style : numberLookupTooltipMap.get(property).get(interval).keySet) {
+				if (numberLookupTooltipMap.containsKey(attribute)) {
+					for (interval : numberLookupTooltipMap.get(attribute).keySet) {
+						for (style : numberLookupTooltipMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
-									.addTooltipLookup(«interval», dslMetadataService.translate(locale.toLanguageTag(), "«numberLookupTooltipMap.get(property).
-									get(interval).get(style)»"))
+									.addTooltipLookup(«interval», «numberLookupTooltipMap.get(attribute).get(interval).get(style)»")
+							'''
+						}
+					}
+				}
+				
+				// integer
+				// apply all interval styles information
+				if (intIntervalStyleMap.containsKey(attribute)) {
+					for (intInterval : intIntervalStyleMap.get(attribute).keySet) {
+						for (style : intIntervalStyleMap.get(attribute).get(intInterval).keySet) {
+							body = '''
+								«body»
+									.addStyleInterval(«IF style.startsWith("date")»ExtendedDate.add(new Date(), (long)«intInterval * -1», TimeUnit.DAYS)«ELSE»«intInterval»«ENDIF», "«style»")
+							'''
+						}
+					}
+				}
+	
+				// apply all interval icons information
+				if (intIntervalIconMap.containsKey(attribute)) {
+					for (intInterval : intIntervalIconMap.get(attribute).keySet) {
+						for (style : intIntervalIconMap.get(attribute).get(intInterval).keySet) {
+							body = '''
+								«body»
+									.addResourceInterval(«IF style.startsWith("date")»ExtendedDate.add(new Date(), (long)«intInterval * -1», TimeUnit.DAYS)«ELSE»«intInterval»«ENDIF», "«intIntervalIconMap.
+									get(attribute).get(intInterval).get(style)»")
+							'''
+						}
+					}
+				}
+	
+				// apply all interval tooltip information
+				if (intIntervalTooltipMap.containsKey(attribute)) {
+					for (intInterval : intIntervalTooltipMap.get(attribute).keySet) {
+						for (style : intIntervalTooltipMap.get(attribute).get(intInterval).keySet) {
+							body = '''
+								«body»
+									.addTooltipInterval(«IF style.startsWith("date")»ExtendedDate.add(new Date(), (long)«intInterval * -1», TimeUnit.DAYS)«ELSE»«intInterval»«ENDIF», "«intIntervalTooltipMap.get(attribute).get(intInterval).get(style)»")
+							'''
+						}
+					}
+				}
+	
+				// styles and icons can be mapped to discrete double values (lookups) 
+				// apply all lookup styles information
+				if (intLookupStyleMap.containsKey(attribute)) {
+					for (interval : intLookupStyleMap.get(attribute).keySet) {
+						for (style : intLookupStyleMap.get(attribute).get(interval).keySet) {
+							body = '''
+								«body»
+									.addStyleLookup(«interval», "«style»")
+							'''
+						}
+					}
+				}
+	
+				// apply all lookup icons information
+				if (intLookupIconMap.containsKey(attribute)) {
+					for (interval : intLookupIconMap.get(attribute).keySet) {
+						for (style : intLookupIconMap.get(attribute).get(interval).keySet) {
+							body = '''
+								«body»
+									.addResourceLookup(«interval», "«intLookupIconMap.get(attribute).get(interval).get(style)»")
+							'''
+						}
+					}
+				}
+	
+				// apply all lookup tooltip information
+				if (intLookupTooltipMap.containsKey(attribute)) {
+					for (interval : intLookupTooltipMap.get(attribute).keySet) {
+						for (style : intLookupTooltipMap.get(attribute).get(interval).keySet) {
+							body = '''
+								«body»
+									.addTooltipLookup(«interval», "«intLookupTooltipMap.get(attribute).get(interval).get(style)»")
 							'''
 						}
 					}
@@ -1555,9 +1816,9 @@
 	
 				// styles and icons can be mapped to discrete string values (lookups) 
 				// apply all lookup styles information
-				if (stringLookupStyleMap.containsKey(property)) {
-					for (interval : stringLookupStyleMap.get(property).keySet) {
-						for (style : stringLookupStyleMap.get(property).get(interval).keySet) {
+				if (stringLookupStyleMap.containsKey(attribute)) {
+					for (interval : stringLookupStyleMap.get(attribute).keySet) {
+						for (style : stringLookupStyleMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
 									.addStyleLookup("«interval»", "«style»")
@@ -1567,25 +1828,24 @@
 				}
 	
 				// apply all lookup icons information
-				if (stringLookupIconMap.containsKey(property)) {
-					for (interval : stringLookupIconMap.get(property).keySet) {
-						for (style : stringLookupIconMap.get(property).get(interval).keySet) {
+				if (stringLookupIconMap.containsKey(attribute)) {
+					for (interval : stringLookupIconMap.get(attribute).keySet) {
+						for (style : stringLookupIconMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
-									.addResourceLookup("«interval»", "«stringLookupIconMap.get(property).get(interval).get(style)»")
+									.addResourceLookup("«interval»", "«stringLookupIconMap.get(attribute).get(interval).get(style)»")
 							'''
 						}
 					}
 				}
 	
 				// apply all lookup tooltip information
-				if (stringLookupTooltipMap.containsKey(property)) {
-					for (interval : stringLookupTooltipMap.get(property).keySet) {
-						for (style : stringLookupTooltipMap.get(property).get(interval).keySet) {
+				if (stringLookupTooltipMap.containsKey(attribute)) {
+					for (interval : stringLookupTooltipMap.get(attribute).keySet) {
+						for (style : stringLookupTooltipMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
-									.addTooltipLookup("«interval»", dslMetadataService.translate(locale.toLanguageTag(), "«stringLookupTooltipMap.get(property).
-									get(interval).get(style)»"))
+									.addTooltipLookup("«interval»", "«stringLookupTooltipMap.get(attribute).get(interval).get(style)»")
 							'''
 						}
 					}
@@ -1593,9 +1853,9 @@
 	
 				// styles and icons can be mapped to discrete date values (lookups) 
 				// apply all lookup styles information
-				if (dateLookupStyleMap.containsKey(property)) {
-					for (interval : dateLookupStyleMap.get(property).keySet) {
-						for (style : dateLookupStyleMap.get(property).get(interval).keySet) {
+				if (dateLookupStyleMap.containsKey(attribute)) {
+					for (interval : dateLookupStyleMap.get(attribute).keySet) {
+						for (style : dateLookupStyleMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
 									.addStyleLookup(ExtendedDate.add(new Date(),«interval * -1»,TimeUnit.DAYS), "«style»")
@@ -1605,12 +1865,12 @@
 				}
 	
 				// apply all lookup icons information
-				if (dateLookupIconMap.containsKey(property)) {
-					for (interval : dateLookupIconMap.get(property).keySet) {
-						for (style : dateLookupIconMap.get(property).get(interval).keySet) {
+				if (dateLookupIconMap.containsKey(attribute)) {
+					for (interval : dateLookupIconMap.get(attribute).keySet) {
+						for (style : dateLookupIconMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
-									.addResourceLookup(ExtendedDate.add(new Date(),«interval * -1»,TimeUnit.DAYS), "«dateLookupIconMap.get(property).
+									.addResourceLookup(ExtendedDate.add(new Date(),«interval * -1»,TimeUnit.DAYS), "«dateLookupIconMap.get(attribute).
 									get(interval).get(style)»")
 							'''
 						}
@@ -1618,27 +1878,26 @@
 				}
 	
 				// apply all lookup tooltip information
-				if (dateLookupTooltipMap.containsKey(property)) {
-					for (interval : dateLookupTooltipMap.get(property).keySet) {
-						for (style : dateLookupTooltipMap.get(property).get(interval).keySet) {
+				if (dateLookupTooltipMap.containsKey(attribute)) {
+					for (interval : dateLookupTooltipMap.get(attribute).keySet) {
+						for (style : dateLookupTooltipMap.get(attribute).get(interval).keySet) {
 							body = '''
 								«body»
-									.addTooltipLookup(ExtendedDate.add(new Date(),«interval * -1»,TimeUnit.DAYS), dslMetadataService.translate(locale.toLanguageTag(), "«dateLookupTooltipMap.
-									get(property).get(interval).get(style)»"))
+									.addTooltipLookup(ExtendedDate.add(new Date(),«interval * -1»,TimeUnit.DAYS), "«dateLookupTooltipMap.get(attribute).get(interval).get(style)»")
 							'''
 						}
 					}
 				}
 	
 				// apply all lookup blob information
-				if (blobLookupMap.containsKey(property)) {
+				if (blobLookupMap.containsKey(attribute)) {
 					body = '''
 						«body»
-							.setBlob(true, «blobLookupMap.get(property)»)
+							.setBlob(true, «blobLookupMap.get(attribute)»)
 					'''
 				}
 			}
-			if(hadProperty) {
+			if(hadAttribute) {
 				body = '''«body»);
 '''
 			}
@@ -1653,17 +1912,30 @@
 	def initBlobLookup(Table table, Map<String, String> blobMap) {
 		var datamartSource = table.dataMartTable.datamartRef.source
 		if (datamartSource instanceof DatamartEntity) {
-			for (property : (datamartSource as DatamartEntity).properties) {
-				if(property.propertyRef.properties.exists[key.toLowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB)]) {		// try entity properties
-					var resolution = property.propertyRef.properties.findFirst[key.toLowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB)]
-					blobMap.put(property.getPropertyName(), resolution?.value)
-				} else if (property.propertyRef.type instanceof LDataType){	// try data type properties
-					if((property.propertyRef.type as LDataType).properties.exists[key.toLowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB)]) {
-						var resolution = (property.propertyRef.type as LDataType).properties.findFirst[key.toLowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB)]
-						blobMap.put(property.getPropertyName(), resolution?.value)
-					}
+			// Initial all attributes of the entity
+			for (attribute : (datamartSource as DatamartEntity).entityRef.allAttributes) {
+				var resolution = attribute.resolution
+				if (resolution!== null) {
+					blobMap.put('''«attribute?.name?.replace("^", "")»''', resolution?.value)
 				}
 			}
+			// In case of having any explicit attribute definition
+			for (attribute : (datamartSource as DatamartEntity).attributes) {
+				var resolution = attribute.attributeRef.resolution
+				if (resolution !== null) {
+					blobMap.put(DatamartAttributeUtil.getAliasedAttributeName(attribute), resolution?.value)
+				}
+			}
+		}
+	}
+	
+	def LKeyAndValue getResolution(LEntityAttribute attribute) {
+		if(attribute.properties.exists[key.toLowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB)]) {		// try entity attributes
+			return attribute.properties.findFirst[key.toLowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB)]
+		} else if (attribute.type instanceof LDataType){	// try data type attributes
+			if((attribute.type as LDataType).properties.exists[key.toLowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB)]) {
+				return (attribute.type as LDataType).properties.findFirst[key.toLowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB)]
+			}
 		}
 	}
 
@@ -1673,13 +1945,19 @@
 	 */
 	def initPropertyLookups(
 		TableAxis axis,
-		HashMap<String, FormatProperty> formatMap,
+		HashMap<String, FormatAttribute> formatMap,
 		HashMap<String, Map<Double, Map<String, String>>> intervalStyleMap,
 		HashMap<String, Map<Double, Map<String, String>>> intervalIconMap,
 		HashMap<String, Map<Double, Map<String, String>>> intervalTooltipMap,
 		HashMap<String, Map<Double, Map<String, String>>> numberLookupStyleMap,
 		HashMap<String, Map<Double, Map<String, String>>> numberLookupIconMap,
 		HashMap<String, Map<Double, Map<String, String>>> numberLookupTooltipMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intIntervalStyleMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intIntervalIconMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intIntervalTooltipMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intLookupStyleMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intLookupIconMap,
+		HashMap<String, Map<Integer, Map<String, String>>> intLookupTooltipMap,
 		HashMap<String, Map<String, Map<String, String>>> stringLookupStyleMap,
 		HashMap<String, Map<String, Map<String, String>>> stringLookupIconMap,
 		HashMap<String, Map<String, Map<String, String>>> stringLookupTooltipMap,
@@ -1690,18 +1968,18 @@
 		for (value : axis.values) {
 
 			// create formatter map
-			var prop = new FormatProperty
-			if (value.formatter != null) {
+			var prop = new FormatAttribute
+			if (value.formatter !== null) {
 				prop.formatter = value.formatter.format
 			}
-			if (value.tooltipPattern != null) {
+			if (value.tooltipPattern !== null) {
 				prop.tooltipPattern = value.tooltipPattern.tooltipPattern
 			}
 			prop.hideLabelLookup = value.hideLabelLookup
 			prop.collapsed = value.collapsed
 			prop.hasImage = value.hasImage
 			prop.iconName = value.iconName
-			if (value.hasImage && value.image != null) {
+			if (value.hasImage && value.image !== null) {
 				prop.hasImageParameter = value.image.hasParameter
 				prop.imagePath = value.image.imagePathPattern
 				prop.hideImageLabel = value.image.hideImageLabel
@@ -1721,31 +1999,38 @@
 						TableHierarchy:
 							prop.imagePathParameter = (value.image.imagePathParameter as TableHierarchy).valueRef.
 								levelName
-						TableProperty:
-							prop.imagePathParameter = (value.image.imagePathParameter as TableProperty).valueRef.
-								getPropertyName()
+						TableAttribute:
+							prop.imagePathParameter = DatamartAttributeUtil.getAliasedAttributeName((value.image.imagePathParameter as TableAttribute).valueRef)
 						TableAggregation:
 							prop.imagePathParameter = (value.image.imagePathParameter as TableAggregation).valueRef.
 								aggregation.name()
 					}
 				}
 			}
+			// create a columnValueMap
+			var columnValueMap = <String,String>newHashMap()
 			switch value.column {
-				TableOrdinal: formatMap.put(
-					'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''', prop)
-				TableAllColumns: formatMap.put('''?«axis.axis.literal»''', prop)
-				TableMeasure: formatMap.put('''«(value.column as TableMeasure).valueRef.measureRef.name»''', prop)
-				TableDerived: formatMap.put('''«(value.column as TableDerived).valueRef.derivedRef.name»''', prop)
-				TableHierarchy: formatMap.put('''«(value.column as TableHierarchy).valueRef.levelName»''', prop)
-				TableProperty: formatMap.put(
-					'''«(value.column as TableProperty).valueRef.getPropertyName()»''', prop)
-				TableAggregation: formatMap.put(
-					'''«(value.column as TableAggregation).valueRef.aggregation.name()»''', prop)
-				TableColumn: formatMap.put('''«(value.column as TableColumn).valueRef.columnRef.literal»''', prop)
+				TableOrdinal: {columnValueMap.put(TableOrdinal.canonicalName, '''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''')
+							  formatMap.put(columnValueMap.get(TableOrdinal.canonicalName), prop)}
+				TableAllColumns: {columnValueMap.put(TableAllColumns.canonicalName, '''?«axis.axis.literal»''')  
+								  formatMap.put(columnValueMap.get(TableAllColumns.canonicalName), prop)}
+				TableMeasure: {columnValueMap.put(TableMeasure.canonicalName, '''«(value.column as TableMeasure).valueRef.measureRef.name»''')
+							   formatMap.put(columnValueMap.get(TableMeasure.canonicalName), prop)}
+				TableDerived: {columnValueMap.put(TableDerived.canonicalName, '''«(value.column as TableDerived).valueRef.derivedRef.name»''')
+							   formatMap.put(columnValueMap.get(TableDerived.canonicalName), prop)}
+				TableHierarchy: {columnValueMap.put(TableHierarchy.canonicalName, '''«(value.column as TableHierarchy).valueRef.levelName»''')
+								 formatMap.put(columnValueMap.get(TableHierarchy.canonicalName), prop)}
+				TableAttribute: {columnValueMap.put(TableAttribute.canonicalName, '''«DatamartAttributeUtil.getAliasedAttributeName((value.column as TableAttribute).valueRef)»''')
+								 formatMap.put(columnValueMap.get(TableAttribute.canonicalName), prop)}
+				TableAggregation: {columnValueMap.put(TableAggregation.canonicalName, '''«(value.column as TableAggregation).valueRef.aggregation.name()»''')
+								   formatMap.put(columnValueMap.get(TableAggregation.canonicalName), prop)}
+				TableColumn: {columnValueMap.put(TableColumn.canonicalName, '''«(value.column as TableColumn).valueRef.columnRef.literal»''')
+							  formatMap.put(columnValueMap.get(TableColumn.canonicalName), prop)}
 			}
 
 			// create styles interval map
 			var valueMap = <Double, Map<String, String>>newTreeMap(new DoubleComparator())
+			var intMap = <Integer, Map<String, String>>newTreeMap(new IntegerComparator())
 			for (interval : value.intervals) {
 				switch interval {
 					TableNumberInterval:
@@ -1773,6 +2058,31 @@
 								valueMap.put(key, styleMap)
 							}
 						}
+					TableIntInterval:
+						if ((interval as TableIntInterval).intRange instanceof TableTextColor ||
+							(interval as TableIntInterval).intRange instanceof TableCellColor) {
+							var key = new Integer((interval as TableIntInterval).intIntervalValue)
+							var styleAspect = ""
+							var Map<String, String> styleMap = null
+							if (valueMap.containsKey(key)) {
+								styleMap = valueMap.get(key)
+								styleAspect = styleMap.get(styleMap.keySet.get(0))
+							} else {
+								styleMap = <String, String>newHashMap
+								styleAspect = ""
+								customformatCounter = customformatCounter + 1
+							}
+							switch (interval as TableIntInterval).intRange {
+								TableTextColor: styleAspect = '''«styleAspect»color: «((interval as TableIntInterval).
+									intRange as TableTextColor).rgb.toRGB»;'''
+								TableCellColor: styleAspect = '''«styleAspect»background-color: «((interval as TableIntInterval).
+									intRange as TableCellColor).rgb.toRGB»;'''
+							}
+							if (styleAspect.length > 0) {
+								styleMap.put('''numbercustomformat«customformatCounter»''', styleAspect)
+								intMap.put(key, styleMap)
+							}
+						}
 					TableDateDayInterval:
 						if ((interval as TableDateDayInterval).dateRange instanceof TableTextColor ||
 							(interval as TableDateDayInterval).dateRange instanceof TableCellColor) {
@@ -1802,26 +2112,32 @@
 			}
 			if (valueMap.size > 0) {
 				switch value.column {
-					TableOrdinal: intervalStyleMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''', valueMap)
-					TableAllColumns: intervalStyleMap.put('''?«axis.axis.literal»''', valueMap)
-					TableMeasure: intervalStyleMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', valueMap)
-					TableDerived: intervalStyleMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', valueMap)
-					TableHierarchy: intervalStyleMap.put('''«(value.column as TableHierarchy).valueRef.levelName»''',
-						valueMap)
-					TableProperty: intervalStyleMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''', valueMap)
-					TableAggregation: intervalStyleMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''', valueMap)
-					TableColumn: intervalStyleMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', valueMap)
+					TableOrdinal: intervalStyleMap.put(columnValueMap.get(TableOrdinal.canonicalName), valueMap)
+					TableAllColumns: intervalStyleMap.put(columnValueMap.get(TableAllColumns.canonicalName), valueMap)
+					TableMeasure: intervalStyleMap.put(columnValueMap.get(TableMeasure.canonicalName), valueMap)
+					TableDerived: intervalStyleMap.put(columnValueMap.get(TableDerived.canonicalName), valueMap)
+					TableHierarchy: intervalStyleMap.put(columnValueMap.get(TableHierarchy.canonicalName), valueMap)
+					TableAttribute: intervalStyleMap.put(columnValueMap.get(TableAttribute.canonicalName), valueMap)
+					TableAggregation: intervalStyleMap.put(columnValueMap.get(TableAggregation.canonicalName), valueMap)
+					TableColumn: intervalStyleMap.put(columnValueMap.get(TableColumn.canonicalName), valueMap)
+				}
+			}
+			if (intMap.size > 0) {
+				switch value.column {
+					TableOrdinal: intIntervalStyleMap.put(columnValueMap.get(TableOrdinal.canonicalName), intMap)
+					TableAllColumns: intIntervalStyleMap.put(columnValueMap.get(TableAllColumns.canonicalName), intMap)
+					TableMeasure: intIntervalStyleMap.put(columnValueMap.get(TableMeasure.canonicalName), intMap)
+					TableDerived: intIntervalStyleMap.put(columnValueMap.get(TableDerived.canonicalName), intMap)
+					TableHierarchy: intIntervalStyleMap.put(columnValueMap.get(TableHierarchy.canonicalName), intMap)
+					TableAttribute: intIntervalStyleMap.put(columnValueMap.get(TableAttribute.canonicalName), intMap)
+					TableAggregation: intIntervalStyleMap.put(columnValueMap.get(TableAggregation.canonicalName), intMap)
+					TableColumn: intIntervalStyleMap.put(columnValueMap.get(TableColumn.canonicalName), intMap)
 				}
 			}
 
 			// create icon interval map
 			var valueIconMap = <Double, Map<String, String>>newTreeMap(new DoubleComparator())
+			var intIconMap = <Integer, Map<String, String>>newTreeMap(new IntegerComparator())
 			for (interval : value.intervals) {
 				switch interval {
 					TableNumberInterval: {
@@ -1840,6 +2156,22 @@
 						}
 
 					}
+					TableIntInterval: {
+						var key = new Integer((interval as TableIntInterval).intIntervalValue)
+						var iconAspect = ""
+						var Map<String, String> iMap = <String, String>newHashMap
+						switch (interval as TableIntInterval).intRange {
+							TableIcon: iconAspect = '''«((interval as TableIntInterval).intRange as TableIcon).
+								icon»'''
+							TableTrend: iconAspect = '''trend_«((interval as TableIntInterval).intRange as TableTrend).
+								icon.literal»'''
+						}
+						if (iconAspect.length > 0) {
+							iMap.put("numbericon", iconAspect)
+							intIconMap.put(key, iMap)
+						}
+
+					}
 					TableDateDayInterval: {
 						var key = new Double((interval as TableDateDayInterval).dateIntervalValue)
 						var iconAspect = ""
@@ -1860,26 +2192,32 @@
 			}
 			if (valueIconMap.size > 0) {
 				switch value.column {
-					TableOrdinal: intervalIconMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''', valueIconMap)
-					TableAllColumns: intervalIconMap.put('''?«axis.axis.literal»''', valueIconMap)
-					TableMeasure: intervalIconMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', valueIconMap)
-					TableDerived: intervalIconMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', valueIconMap)
-					TableHierarchy: intervalIconMap.put('''«(value.column as TableHierarchy).valueRef.levelName»''',
-						valueIconMap)
-					TableProperty: intervalIconMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''', valueIconMap)
-					TableAggregation: intervalIconMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''', valueIconMap)
-					TableColumn: intervalIconMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', valueIconMap)
+					TableOrdinal: intervalIconMap.put(columnValueMap.get(TableOrdinal.canonicalName), valueIconMap)
+					TableAllColumns: intervalIconMap.put(columnValueMap.get(TableAllColumns.canonicalName), valueIconMap)
+					TableMeasure: intervalIconMap.put(columnValueMap.get(TableMeasure.canonicalName), valueIconMap)
+					TableDerived: intervalIconMap.put(columnValueMap.get(TableDerived.canonicalName), valueIconMap)
+					TableHierarchy: intervalIconMap.put(columnValueMap.get(TableHierarchy.canonicalName), valueIconMap)
+					TableAttribute: intervalIconMap.put(columnValueMap.get(TableAttribute.canonicalName), valueIconMap)
+					TableAggregation: intervalIconMap.put(columnValueMap.get(TableAggregation.canonicalName), valueIconMap)
+					TableColumn: intervalIconMap.put(columnValueMap.get(TableColumn.canonicalName), valueIconMap)
+				}
+			}
+			if (intIconMap.size > 0) {
+				switch value.column {
+					TableOrdinal: intIntervalIconMap.put(columnValueMap.get(TableOrdinal.canonicalName), intIconMap)
+					TableAllColumns: intIntervalIconMap.put(columnValueMap.get(TableAllColumns.canonicalName), intIconMap)
+					TableMeasure: intIntervalIconMap.put(columnValueMap.get(TableMeasure.canonicalName), intIconMap)
+					TableDerived: intIntervalIconMap.put(columnValueMap.get(TableDerived.canonicalName), intIconMap)
+					TableHierarchy: intIntervalIconMap.put(columnValueMap.get(TableHierarchy.canonicalName), intIconMap)
+					TableAttribute: intIntervalIconMap.put(columnValueMap.get(TableAttribute.canonicalName), intIconMap)
+					TableAggregation: intIntervalIconMap.put(columnValueMap.get(TableAggregation.canonicalName), intIconMap)
+					TableColumn: intIntervalIconMap.put(columnValueMap.get(TableColumn.canonicalName), intIconMap)
 				}
 			}
 
 			// create tooltip interval map
 			var valueTooltipMap = <Double, Map<String, String>>newTreeMap(new DoubleComparator())
+			var intTooltipMap = <Integer, Map<String, String>>newTreeMap(new IntegerComparator())
 			for (interval : value.intervals) {
 				switch interval {
 					TableNumberInterval: {
@@ -1895,6 +2233,19 @@
 							valueTooltipMap.put(key, tMap)
 						}
 					}
+					TableIntInterval: {
+						var key = new Integer((interval as TableIntInterval).intIntervalValue)
+						var tooltipAspect = ""
+						var Map<String, String> tMap = <String, String>newHashMap
+						switch (interval as TableIntInterval).intRange {
+							TableTooltip: tooltipAspect = '''«((interval as TableIntInterval).intRange as TableTooltip).
+								tooltip»'''
+						}
+						if (tooltipAspect.length > 0) {
+							tMap.put("numbertooltip", tooltipAspect)
+							intTooltipMap.put(key, tMap)
+						}
+					}
 					TableDateDayInterval: {
 						var key = new Double((interval as TableDateDayInterval).dateIntervalValue)
 						var tooltipAspect = ""
@@ -1912,27 +2263,32 @@
 			}
 			if (valueTooltipMap.size > 0) {
 				switch value.column {
-					TableOrdinal: intervalTooltipMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''',
-						valueTooltipMap)
-					TableAllColumns: intervalTooltipMap.put('''?«axis.axis.literal»''', valueTooltipMap)
-					TableMeasure: intervalTooltipMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', valueTooltipMap)
-					TableDerived: intervalTooltipMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', valueTooltipMap)
-					TableHierarchy: intervalTooltipMap.put(
-						'''«(value.column as TableHierarchy).valueRef.levelName»''', valueTooltipMap)
-					TableProperty: intervalTooltipMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''', valueTooltipMap)
-					TableAggregation: intervalTooltipMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''', valueTooltipMap)
-					TableColumn: intervalTooltipMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', valueTooltipMap)
+					TableOrdinal: intervalTooltipMap.put(columnValueMap.get(TableOrdinal.canonicalName), valueTooltipMap)
+					TableAllColumns: intervalTooltipMap.put(columnValueMap.get(TableAllColumns.canonicalName), valueTooltipMap)
+					TableMeasure: intervalTooltipMap.put(columnValueMap.get(TableMeasure.canonicalName), valueTooltipMap)
+					TableDerived: intervalTooltipMap.put(columnValueMap.get(TableDerived.canonicalName), valueTooltipMap)
+					TableHierarchy: intervalTooltipMap.put(columnValueMap.get(TableHierarchy.canonicalName), valueTooltipMap)
+					TableAttribute: intervalTooltipMap.put(columnValueMap.get(TableAttribute.canonicalName), valueTooltipMap)
+					TableAggregation: intervalTooltipMap.put(columnValueMap.get(TableAggregation.canonicalName), valueTooltipMap)
+					TableColumn: intervalTooltipMap.put(columnValueMap.get(TableColumn.canonicalName), valueTooltipMap)
+				}
+			}
+			if (intTooltipMap.size > 0) {
+				switch value.column {
+					TableOrdinal: intIntervalTooltipMap.put(columnValueMap.get(TableOrdinal.canonicalName), intTooltipMap)
+					TableAllColumns: intIntervalTooltipMap.put(columnValueMap.get(TableAllColumns.canonicalName), intTooltipMap)
+					TableMeasure: intIntervalTooltipMap.put(columnValueMap.get(TableMeasure.canonicalName), intTooltipMap)
+					TableDerived: intIntervalTooltipMap.put(columnValueMap.get(TableDerived.canonicalName), intTooltipMap)
+					TableHierarchy: intIntervalTooltipMap.put(columnValueMap.get(TableHierarchy.canonicalName), intTooltipMap)
+					TableAttribute: intIntervalTooltipMap.put(columnValueMap.get(TableAttribute.canonicalName), intTooltipMap)
+					TableAggregation: intIntervalTooltipMap.put(columnValueMap.get(TableAggregation.canonicalName), intTooltipMap)
+					TableColumn: intIntervalTooltipMap.put(columnValueMap.get(TableColumn.canonicalName), intTooltipMap)
 				}
 			}
 
 			// create styles lookup map
 			var numberValueLookupStyleMap = <Double, Map<String, String>>newTreeMap(new DoubleComparator())
+			var intValueLookupStyleMap = <Integer, Map<String, String>>newTreeMap(new IntegerComparator())
 			var stringValueLookupStyleMap = <String, Map<String, String>>newHashMap()
 			var dateValueLookupStyleMap = <Double, Map<String, String>>newTreeMap(new DoubleComparator())
 			for (lookup : value.lookups) {
@@ -1961,6 +2317,31 @@
 						numberValueLookupStyleMap.put(key, styleMap)
 					}
 				}
+				if (lookup instanceof TableIntLookup &&
+					((lookup as TableIntLookup).discrete instanceof TableTextColor ||
+						(lookup as TableIntLookup).discrete instanceof TableCellColor)) {
+					var key = new Integer((lookup as TableIntLookup).lookupValue)
+					var styleAspect = ""
+					var Map<String, String> styleMap = null
+					if (intValueLookupStyleMap.containsKey(key)) {
+						styleMap = intValueLookupStyleMap.get(key)
+						styleAspect = styleMap.get(styleMap.keySet.get(0))
+					} else {
+						styleMap = <String, String>newHashMap
+						styleAspect = ""
+						customformatCounter = customformatCounter + 1
+					}
+					switch (lookup as TableIntLookup).discrete {
+						TableTextColor: styleAspect = '''«styleAspect»color: «((lookup as TableIntLookup).
+							discrete as TableTextColor).rgb.toRGB»;'''
+						TableCellColor: styleAspect = '''«styleAspect»background-color: «((lookup as TableIntLookup).
+							discrete as TableCellColor).rgb.toRGB»;'''
+					}
+					if (styleAspect.length > 0) {
+						styleMap.put('''customformat«customformatCounter»''', styleAspect)
+						intValueLookupStyleMap.put(key, styleMap)
+					}
+				}
 				if (lookup instanceof TableStringLookup) {
 					var key = new String((lookup as TableStringLookup).lookupValue)
 					var styleAspect = ""
@@ -2012,75 +2393,60 @@
 			}
 			if (numberValueLookupStyleMap.size > 0) {
 				switch value.column {
-					TableOrdinal: numberLookupStyleMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''',
-						numberValueLookupStyleMap)
-					TableAllColumns: numberLookupStyleMap.put('''?«axis.axis.literal»''',
-						numberValueLookupStyleMap)
-					TableMeasure: numberLookupStyleMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', numberValueLookupStyleMap)
-					TableDerived: numberLookupStyleMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', numberValueLookupStyleMap)
-					TableHierarchy: numberLookupStyleMap.put(
-						'''«(value.column as TableHierarchy).valueRef.levelName»''', numberValueLookupStyleMap)
-					TableProperty: numberLookupStyleMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''', numberValueLookupStyleMap)
-					TableAggregation: numberLookupStyleMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''',
-						numberValueLookupStyleMap)
-					TableColumn: numberLookupStyleMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', numberValueLookupStyleMap)
+					TableOrdinal: numberLookupStyleMap.put(columnValueMap.get(TableOrdinal.canonicalName), numberValueLookupStyleMap)
+					TableAllColumns: numberLookupStyleMap.put(columnValueMap.get(TableAllColumns.canonicalName), numberValueLookupStyleMap)
+					TableMeasure: numberLookupStyleMap.put(columnValueMap.get(TableMeasure.canonicalName), numberValueLookupStyleMap)
+					TableDerived: numberLookupStyleMap.put(columnValueMap.get(TableDerived.canonicalName), numberValueLookupStyleMap)
+					TableHierarchy: numberLookupStyleMap.put(columnValueMap.get(TableHierarchy.canonicalName), numberValueLookupStyleMap)
+					TableAttribute: numberLookupStyleMap.put(columnValueMap.get(TableAttribute.canonicalName), numberValueLookupStyleMap)
+					TableAggregation: numberLookupStyleMap.put(columnValueMap.get(TableAggregation.canonicalName), numberValueLookupStyleMap)
+					TableColumn: numberLookupStyleMap.put(columnValueMap.get(TableColumn.canonicalName), numberValueLookupStyleMap)
+				}
+			}
+			if (intValueLookupStyleMap.size > 0) {
+				switch value.column {
+					TableOrdinal: intLookupStyleMap.put(columnValueMap.get(TableOrdinal.canonicalName), intValueLookupStyleMap)
+					TableAllColumns: intLookupStyleMap.put(columnValueMap.get(TableAllColumns.canonicalName), intValueLookupStyleMap)
+					TableMeasure: intLookupStyleMap.put(columnValueMap.get(TableMeasure.canonicalName), intValueLookupStyleMap)
+					TableDerived: intLookupStyleMap.put(columnValueMap.get(TableDerived.canonicalName), intValueLookupStyleMap)
+					TableHierarchy: intLookupStyleMap.put(columnValueMap.get(TableHierarchy.canonicalName), intValueLookupStyleMap)
+					TableAttribute: intLookupStyleMap.put(columnValueMap.get(TableAttribute.canonicalName), intValueLookupStyleMap)
+					TableAggregation: intLookupStyleMap.put(columnValueMap.get(TableAggregation.canonicalName), intValueLookupStyleMap)
+					TableColumn: intLookupStyleMap.put(columnValueMap.get(TableColumn.canonicalName), intValueLookupStyleMap)
 				}
 			}
 			if (stringValueLookupStyleMap.size > 0) {
 				switch value.column {
-					TableOrdinal: stringLookupStyleMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''',
-						stringValueLookupStyleMap)
-					TableAllColumns: stringLookupStyleMap.put('''?«axis.axis.literal»''',
-						stringValueLookupStyleMap)
-					TableMeasure: stringLookupStyleMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', stringValueLookupStyleMap)
-					TableDerived: stringLookupStyleMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', stringValueLookupStyleMap)
-					TableHierarchy: stringLookupStyleMap.put(
-						'''«(value.column as TableHierarchy).valueRef.levelName»''', stringValueLookupStyleMap)
-					TableProperty: stringLookupStyleMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''', stringValueLookupStyleMap)
-					TableAggregation: stringLookupStyleMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''',
-						stringValueLookupStyleMap)
-					TableColumn: stringLookupStyleMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', stringValueLookupStyleMap)
+					TableOrdinal: stringLookupStyleMap.put(columnValueMap.get(TableOrdinal.canonicalName), stringValueLookupStyleMap)
+					TableAllColumns: stringLookupStyleMap.put(columnValueMap.get(TableAllColumns.canonicalName), stringValueLookupStyleMap)
+					TableMeasure: stringLookupStyleMap.put(columnValueMap.get(TableMeasure.canonicalName), stringValueLookupStyleMap)
+					TableDerived: stringLookupStyleMap.put(columnValueMap.get(TableDerived.canonicalName), stringValueLookupStyleMap)
+					TableHierarchy: stringLookupStyleMap.put(columnValueMap.get(TableHierarchy.canonicalName), stringValueLookupStyleMap)
+					TableAttribute: stringLookupStyleMap.put(columnValueMap.get(TableAttribute.canonicalName), stringValueLookupStyleMap)
+					TableAggregation: stringLookupStyleMap.put(columnValueMap.get(TableAggregation.canonicalName), stringValueLookupStyleMap)
+					TableColumn: stringLookupStyleMap.put(columnValueMap.get(TableColumn.canonicalName), stringValueLookupStyleMap)
 				}
 			}
 			if (dateValueLookupStyleMap.size > 0) {
 				switch value.column {
-					TableOrdinal: dateLookupStyleMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''',
-						dateValueLookupStyleMap)
-					TableAllColumns: dateLookupStyleMap.put('''?«axis.axis.literal»''', dateValueLookupStyleMap)
-					TableMeasure: dateLookupStyleMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', dateValueLookupStyleMap)
-					TableDerived: dateLookupStyleMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', dateValueLookupStyleMap)
-					TableHierarchy: dateLookupStyleMap.put(
-						'''«(value.column as TableHierarchy).valueRef.levelName»''', dateValueLookupStyleMap)
-					TableProperty: dateLookupStyleMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''', dateValueLookupStyleMap)
-					TableAggregation: dateLookupStyleMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''', dateValueLookupStyleMap)
-					TableColumn: dateLookupStyleMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', dateValueLookupStyleMap)
+					TableOrdinal: dateLookupStyleMap.put(columnValueMap.get(TableOrdinal.canonicalName), dateValueLookupStyleMap)
+					TableAllColumns: dateLookupStyleMap.put(columnValueMap.get(TableAllColumns.canonicalName), dateValueLookupStyleMap)
+					TableMeasure: dateLookupStyleMap.put(columnValueMap.get(TableMeasure.canonicalName), dateValueLookupStyleMap)
+					TableDerived: dateLookupStyleMap.put(columnValueMap.get(TableDerived.canonicalName), dateValueLookupStyleMap)
+					TableHierarchy: dateLookupStyleMap.put(columnValueMap.get(TableHierarchy.canonicalName), dateValueLookupStyleMap)
+					TableAttribute: dateLookupStyleMap.put(columnValueMap.get(TableAttribute.canonicalName), dateValueLookupStyleMap)
+					TableAggregation: dateLookupStyleMap.put(columnValueMap.get(TableAggregation.canonicalName), dateValueLookupStyleMap)
+					TableColumn: dateLookupStyleMap.put(columnValueMap.get(TableColumn.canonicalName), dateValueLookupStyleMap)
 				}
 			}
 
 			// create icon lookup map
 			var numberValueLookupIconMap = <Double, Map<String, String>>newTreeMap(new DoubleComparator())
+			var intValueLookupIconMap = <Integer, Map<String, String>>newTreeMap(new IntegerComparator())
 			var stringValueLookupIconMap = <String, Map<String, String>>newHashMap()
 			var dateValueLookupIconMap = <Double, Map<String, String>>newTreeMap(new DoubleComparator())
 			for (lookup : value.lookups) {
-				if (lookup instanceof TableNumberLookup/* && (lookup.discrete instanceof TableTextColor || lookup.discrete instanceof TableCellColor  || lookup.discrete instanceof TableIcon)*/) {
+				if (lookup instanceof TableNumberLookup) {
 					var key = new Double((lookup as TableNumberLookup).lookupValue)
 					var iconAspect = ""
 					var Map<String, String> iMap = <String, String>newHashMap
@@ -2093,6 +2459,19 @@
 						numberValueLookupIconMap.put(key, iMap)
 					}
 				}
+				if (lookup instanceof TableIntLookup) {
+					var key = new Integer((lookup as TableIntLookup).lookupValue)
+					var iconAspect = ""
+					var Map<String, String> iMap = <String, String>newHashMap
+					switch lookup.discrete {
+						TableIcon: iconAspect = '''«(lookup.discrete as TableIcon).icon»'''
+						TableTrend: iconAspect = '''trend_«(lookup.discrete as TableTrend).icon.literal»'''
+					}
+					if (iconAspect.length > 0) {
+						iMap.put("icon", iconAspect)
+						intValueLookupIconMap.put(key, iMap)
+					}
+				}
 				if (lookup instanceof TableStringLookup) {
 					var key = (lookup as TableStringLookup).lookupValue
 					var iconAspect = ""
@@ -2121,73 +2500,60 @@
 			}
 			if (numberValueLookupIconMap.size > 0) {
 				switch value.column {
-					TableOrdinal: numberLookupIconMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''',
-						numberValueLookupIconMap)
-					TableAllColumns: numberLookupIconMap.put('''?«axis.axis.literal»''', numberValueLookupIconMap)
-					TableMeasure: numberLookupIconMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', numberValueLookupIconMap)
-					TableDerived: numberLookupIconMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', numberValueLookupIconMap)
-					TableHierarchy: numberLookupIconMap.put(
-						'''«(value.column as TableHierarchy).valueRef.levelName»''', numberValueLookupIconMap)
-					TableProperty: numberLookupIconMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''', numberValueLookupIconMap)
-					TableAggregation: numberLookupIconMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''',
-						numberValueLookupIconMap)
-					TableColumn: numberLookupIconMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', numberValueLookupIconMap)
+					TableOrdinal: numberLookupIconMap.put(columnValueMap.get(TableOrdinal.canonicalName), numberValueLookupIconMap)
+					TableAllColumns: numberLookupIconMap.put(columnValueMap.get(TableAllColumns.canonicalName), numberValueLookupIconMap)
+					TableMeasure: numberLookupIconMap.put(columnValueMap.get(TableMeasure.canonicalName), numberValueLookupIconMap)
+					TableDerived: numberLookupIconMap.put(columnValueMap.get(TableDerived.canonicalName), numberValueLookupIconMap)
+					TableHierarchy: numberLookupIconMap.put(columnValueMap.get(TableHierarchy.canonicalName), numberValueLookupIconMap)
+					TableAttribute: numberLookupIconMap.put(columnValueMap.get(TableAttribute.canonicalName), numberValueLookupIconMap)
+					TableAggregation: numberLookupIconMap.put(columnValueMap.get(TableAggregation.canonicalName), numberValueLookupIconMap)
+					TableColumn: numberLookupIconMap.put(columnValueMap.get(TableColumn.canonicalName), numberValueLookupIconMap)
+				}
+			}
+			if (intValueLookupIconMap.size > 0) {
+				switch value.column {
+					TableOrdinal: intLookupIconMap.put(columnValueMap.get(TableOrdinal.canonicalName), intValueLookupIconMap)
+					TableAllColumns: intLookupIconMap.put(columnValueMap.get(TableAllColumns.canonicalName), intValueLookupIconMap)
+					TableMeasure: intLookupIconMap.put(columnValueMap.get(TableMeasure.canonicalName), intValueLookupIconMap)
+					TableDerived: intLookupIconMap.put(columnValueMap.get(TableDerived.canonicalName), intValueLookupIconMap)
+					TableHierarchy: intLookupIconMap.put(columnValueMap.get(TableHierarchy.canonicalName), intValueLookupIconMap)
+					TableAttribute: intLookupIconMap.put(columnValueMap.get(TableAttribute.canonicalName), intValueLookupIconMap)
+					TableAggregation: intLookupIconMap.put(columnValueMap.get(TableAggregation.canonicalName), intValueLookupIconMap)
+					TableColumn: intLookupIconMap.put(columnValueMap.get(TableColumn.canonicalName), intValueLookupIconMap)
 				}
 			}
 			if (stringValueLookupIconMap.size > 0) {
 				switch value.column {
-					TableOrdinal: stringLookupIconMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''',
-						stringValueLookupIconMap)
-					TableAllColumns: stringLookupIconMap.put('''?«axis.axis.literal»''', stringValueLookupIconMap)
-					TableMeasure: stringLookupIconMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', stringValueLookupIconMap)
-					TableDerived: stringLookupIconMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', stringValueLookupIconMap)
-					TableHierarchy: stringLookupIconMap.put(
-						'''«(value.column as TableHierarchy).valueRef.levelName»''', stringValueLookupIconMap)
-					TableProperty: stringLookupIconMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''', stringValueLookupIconMap)
-					TableAggregation: stringLookupIconMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''',
-						stringValueLookupIconMap)
-					TableColumn: stringLookupIconMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', stringValueLookupIconMap)
+					TableOrdinal: stringLookupIconMap.put(columnValueMap.get(TableOrdinal.canonicalName), stringValueLookupIconMap)
+					TableAllColumns: stringLookupIconMap.put(columnValueMap.get(TableAllColumns.canonicalName), stringValueLookupIconMap)
+					TableMeasure: stringLookupIconMap.put(columnValueMap.get(TableMeasure.canonicalName), stringValueLookupIconMap)
+					TableDerived: stringLookupIconMap.put(columnValueMap.get(TableDerived.canonicalName), stringValueLookupIconMap)
+					TableHierarchy: stringLookupIconMap.put(columnValueMap.get(TableHierarchy.canonicalName), stringValueLookupIconMap)
+					TableAttribute: stringLookupIconMap.put(columnValueMap.get(TableAttribute.canonicalName), stringValueLookupIconMap)
+					TableAggregation: stringLookupIconMap.put(columnValueMap.get(TableAggregation.canonicalName), stringValueLookupIconMap)
+					TableColumn: stringLookupIconMap.put(columnValueMap.get(TableColumn.canonicalName), stringValueLookupIconMap)
 				}
 			}
 			if (dateValueLookupIconMap.size > 0) {
 				switch value.column {
-					TableOrdinal: dateLookupIconMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''',
-						dateValueLookupIconMap)
-					TableAllColumns: dateLookupIconMap.put('''?«axis.axis.literal»''', dateValueLookupIconMap)
-					TableMeasure: dateLookupIconMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', dateValueLookupIconMap)
-					TableDerived: dateLookupIconMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', dateValueLookupIconMap)
-					TableHierarchy: dateLookupIconMap.put(
-						'''«(value.column as TableHierarchy).valueRef.levelName»''', dateValueLookupIconMap)
-					TableProperty: dateLookupIconMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''', dateValueLookupIconMap)
-					TableAggregation: dateLookupIconMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''', dateValueLookupIconMap)
-					TableColumn: dateLookupIconMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', dateValueLookupIconMap)
+					TableOrdinal: dateLookupIconMap.put(columnValueMap.get(TableOrdinal.canonicalName), dateValueLookupIconMap)
+					TableAllColumns: dateLookupIconMap.put(columnValueMap.get(TableAllColumns.canonicalName), dateValueLookupIconMap)
+					TableMeasure: dateLookupIconMap.put(columnValueMap.get(TableMeasure.canonicalName), dateValueLookupIconMap)
+					TableDerived: dateLookupIconMap.put(columnValueMap.get(TableDerived.canonicalName), dateValueLookupIconMap)
+					TableHierarchy: dateLookupIconMap.put(columnValueMap.get(TableHierarchy.canonicalName), dateValueLookupIconMap)
+					TableAttribute: dateLookupIconMap.put(columnValueMap.get(TableAttribute.canonicalName), dateValueLookupIconMap)
+					TableAggregation: dateLookupIconMap.put(columnValueMap.get(TableAggregation.canonicalName), dateValueLookupIconMap)
+					TableColumn: dateLookupIconMap.put(columnValueMap.get(TableColumn.canonicalName), dateValueLookupIconMap)
 				}
 			}
 
 			// create tooltip lookup map
 			var numberValueLookupTooltipMap = <Double, Map<String, String>>newTreeMap(new DoubleComparator())
+			var intValueLookupTooltipMap = <Integer, Map<String, String>>newTreeMap(new IntegerComparator())
 			var stringValueLookupTooltipMap = <String, Map<String, String>>newHashMap()
 			var dateValueLookupTooltipMap = <Double, Map<String, String>>newTreeMap(new DoubleComparator())
 			for (lookup : value.lookups) {
-				if (lookup instanceof TableNumberLookup/* && (lookup.discrete instanceof TableTextColor || lookup.discrete instanceof TableCellColor  || lookup.discrete instanceof TableIcon)*/) {
+				if (lookup instanceof TableNumberLookup) {
 					var key = new Double((lookup as TableNumberLookup).lookupValue)
 					var tooltipAspect = ""
 					var Map<String, String> tMap = <String, String>newHashMap
@@ -2199,6 +2565,18 @@
 						numberValueLookupTooltipMap.put(key, tMap)
 					}
 				}
+				if (lookup instanceof TableIntLookup) {
+					var key = new Integer((lookup as TableIntLookup).lookupValue)
+					var tooltipAspect = ""
+					var Map<String, String> tMap = <String, String>newHashMap
+					switch lookup.discrete {
+						TableTooltip: tooltipAspect = '''«(lookup.discrete as TableTooltip).tooltip»'''
+					}
+					if (tooltipAspect.length > 0) {
+						tMap.put("tooltip", tooltipAspect)
+						intValueLookupTooltipMap.put(key, tMap)
+					}
+				}
 				if (lookup instanceof TableStringLookup) {
 					var key = (lookup as TableStringLookup).lookupValue
 					var tooltipAspect = ""
@@ -2226,81 +2604,61 @@
 			}
 			if (numberValueLookupTooltipMap.size > 0) {
 				switch value.column {
-					TableOrdinal: numberLookupTooltipMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''',
-						numberValueLookupTooltipMap)
-					TableAllColumns: numberLookupTooltipMap.put('''?«axis.axis.literal»''',
-						numberValueLookupTooltipMap)
-					TableMeasure: numberLookupTooltipMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', numberValueLookupTooltipMap)
-					TableDerived: numberLookupTooltipMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', numberValueLookupTooltipMap)
-					TableHierarchy: numberLookupTooltipMap.put(
-						'''«(value.column as TableHierarchy).valueRef.levelName»''', numberValueLookupTooltipMap)
-					TableProperty: numberLookupTooltipMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''',
-						numberValueLookupTooltipMap)
-					TableAggregation: numberLookupTooltipMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''',
-						numberValueLookupTooltipMap)
-					TableColumn: numberLookupTooltipMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', numberValueLookupTooltipMap)
+					TableOrdinal: numberLookupTooltipMap.put(columnValueMap.get(TableOrdinal.canonicalName), numberValueLookupTooltipMap)
+					TableAllColumns: numberLookupTooltipMap.put(columnValueMap.get(TableAllColumns.canonicalName), numberValueLookupTooltipMap)
+					TableMeasure: numberLookupTooltipMap.put(columnValueMap.get(TableMeasure.canonicalName), numberValueLookupTooltipMap)
+					TableDerived: numberLookupTooltipMap.put(columnValueMap.get(TableDerived.canonicalName), numberValueLookupTooltipMap)
+					TableHierarchy: numberLookupTooltipMap.put(columnValueMap.get(TableHierarchy.canonicalName), numberValueLookupTooltipMap)
+					TableAttribute: numberLookupTooltipMap.put(columnValueMap.get(TableAttribute.canonicalName), numberValueLookupTooltipMap)
+					TableAggregation: numberLookupTooltipMap.put(columnValueMap.get(TableAggregation.canonicalName), numberValueLookupTooltipMap)
+					TableColumn: numberLookupTooltipMap.put(columnValueMap.get(TableColumn.canonicalName), numberValueLookupTooltipMap)
+				}
+			}
+			if (intValueLookupTooltipMap.size > 0) {
+				switch value.column {
+					TableOrdinal: intLookupStyleMap.put(columnValueMap.get(TableOrdinal.canonicalName), intValueLookupTooltipMap)
+					TableAllColumns: intLookupStyleMap.put(columnValueMap.get(TableAllColumns.canonicalName), intValueLookupTooltipMap)
+					TableMeasure: intLookupStyleMap.put(columnValueMap.get(TableMeasure.canonicalName), intValueLookupTooltipMap)
+					TableDerived: intLookupStyleMap.put(columnValueMap.get(TableDerived.canonicalName), intValueLookupTooltipMap)
+					TableHierarchy: intLookupStyleMap.put(columnValueMap.get(TableHierarchy.canonicalName), intValueLookupTooltipMap)
+					TableAttribute: intLookupStyleMap.put(columnValueMap.get(TableAttribute.canonicalName), intValueLookupTooltipMap)
+					TableAggregation: intLookupStyleMap.put(columnValueMap.get(TableAggregation.canonicalName), intValueLookupTooltipMap)
+					TableColumn: intLookupStyleMap.put(columnValueMap.get(TableColumn.canonicalName), intValueLookupTooltipMap)
 				}
 			}
 			if (stringValueLookupTooltipMap.size > 0) {
 				switch value.column {
-					TableOrdinal: stringLookupTooltipMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''',
-						stringValueLookupTooltipMap)
-					TableAllColumns: stringLookupTooltipMap.put('''?«axis.axis.literal»''',
-						stringValueLookupTooltipMap)
-					TableMeasure: stringLookupTooltipMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', stringValueLookupTooltipMap)
-					TableDerived: stringLookupTooltipMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', stringValueLookupTooltipMap)
-					TableHierarchy: stringLookupTooltipMap.put(
-						'''«(value.column as TableHierarchy).valueRef.levelName»''', stringValueLookupTooltipMap)
-					TableProperty: stringLookupTooltipMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''',
-						stringValueLookupTooltipMap)
-					TableAggregation: stringLookupTooltipMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''',
-						stringValueLookupTooltipMap)
-					TableColumn: stringLookupTooltipMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', stringValueLookupTooltipMap)
+					TableOrdinal: stringLookupTooltipMap.put(columnValueMap.get(TableOrdinal.canonicalName), stringValueLookupTooltipMap)
+					TableAllColumns: stringLookupTooltipMap.put(columnValueMap.get(TableAllColumns.canonicalName), stringValueLookupTooltipMap)
+					TableMeasure: stringLookupTooltipMap.put(columnValueMap.get(TableMeasure.canonicalName), stringValueLookupTooltipMap)
+					TableDerived: stringLookupTooltipMap.put(columnValueMap.get(TableDerived.canonicalName), stringValueLookupTooltipMap)
+					TableHierarchy: stringLookupTooltipMap.put(columnValueMap.get(TableHierarchy.canonicalName), stringValueLookupTooltipMap)
+					TableAttribute: stringLookupTooltipMap.put(columnValueMap.get(TableAttribute.canonicalName), stringValueLookupTooltipMap)
+					TableAggregation: stringLookupTooltipMap.put(columnValueMap.get(TableAggregation.canonicalName), stringValueLookupTooltipMap)
+					TableColumn: stringLookupTooltipMap.put(columnValueMap.get(TableColumn.canonicalName), stringValueLookupTooltipMap)
 				}
 			}
 			if (dateValueLookupTooltipMap.size > 0) {
 				switch value.column {
-					TableOrdinal: dateLookupTooltipMap.put(
-						'''#«axis.axis.literal»«(value.column as TableOrdinal).valueRef.toString»''',
-						dateValueLookupTooltipMap)
-					TableAllColumns: dateLookupTooltipMap.put('''?«axis.axis.literal»''',
-						dateValueLookupTooltipMap)
-					TableMeasure: dateLookupTooltipMap.put(
-						'''«(value.column as TableMeasure).valueRef.measureRef.name»''', dateValueLookupTooltipMap)
-					TableDerived: dateLookupTooltipMap.put(
-						'''«(value.column as TableDerived).valueRef.derivedRef.name»''', dateValueLookupTooltipMap)
-					TableHierarchy: dateLookupTooltipMap.put(
-						'''«(value.column as TableHierarchy).valueRef.levelName»''', dateValueLookupTooltipMap)
-					TableProperty: dateLookupTooltipMap.put(
-						'''«(value.column as TableProperty).valueRef.getPropertyName()»''', dateValueLookupTooltipMap)
-					TableAggregation: dateLookupTooltipMap.put(
-						'''«(value.column as TableAggregation).valueRef.aggregation.name()»''',
-						dateValueLookupTooltipMap)
-					TableColumn: dateLookupTooltipMap.put(
-						'''«(value.column as TableColumn).valueRef.columnRef.literal»''', dateValueLookupTooltipMap)
+					TableOrdinal: dateLookupTooltipMap.put(columnValueMap.get(TableOrdinal.canonicalName), dateValueLookupTooltipMap)
+					TableAllColumns: dateLookupTooltipMap.put(columnValueMap.get(TableAllColumns.canonicalName), dateValueLookupTooltipMap)
+					TableMeasure: dateLookupTooltipMap.put(columnValueMap.get(TableMeasure.canonicalName), dateValueLookupTooltipMap)
+					TableDerived: dateLookupTooltipMap.put(columnValueMap.get(TableDerived.canonicalName), dateValueLookupTooltipMap)
+					TableHierarchy: dateLookupTooltipMap.put(columnValueMap.get(TableHierarchy.canonicalName), dateValueLookupTooltipMap)
+					TableAttribute: dateLookupTooltipMap.put(columnValueMap.get(TableAttribute.canonicalName), dateValueLookupTooltipMap)
+					TableAggregation: dateLookupTooltipMap.put(columnValueMap.get(TableAggregation.canonicalName), dateValueLookupTooltipMap)
+					TableColumn: dateLookupTooltipMap.put(columnValueMap.get(TableColumn.canonicalName), dateValueLookupTooltipMap)
 				}
 			}
 		}
 	}
 
 	/**
-	 * <p>helper method to get a property name or its alias if present of a entity's property object.</p> 
+	 * <p>helper method to get a attribute name or its alias if present of a entity's attribute object.</p> 
 	 *
 	 */
-	def String propertyName(DatamartProperty property) {
-		return property.getPropertyName(null);
+	def String attributeName(DatamartAttribute attribute) {
+		return attribute.getAttributeName(null);
 	}
 
 	/**
@@ -2323,7 +2681,7 @@
 			TableMeasure: name = '''«(preorder.column as TableMeasure).valueRef.measureRef.name»'''
 			TableDerived: name = '''«(preorder.column as TableDerived).valueRef.derivedRef.name»'''
 			TableHierarchy: name = '''«(preorder.column as TableHierarchy).valueRef.levelName»'''
-			TableProperty: name = '''«(preorder.column as TableProperty).valueRef.getPropertyName()»'''
+			TableAttribute: name = '''«DatamartAttributeUtil.getAliasedAttributeName((preorder.column as TableAttribute).valueRef)»'''
 			TableAggregation: name = '''«(preorder.column as TableAggregation).valueRef.aggregation.name()»'''
 			TableColumn: name = '''«(preorder.column as TableColumn).valueRef.columnRef.literal»'''
 		}
@@ -2332,157 +2690,20 @@
 		return body
 	}
 
-	def String setup(Table table) {
-		var body = ""
-		body = '''
-		«body»
-		subscribe();
-		'''
-		var filterIdMap = <String, String>newHashMap
-		if (table.dataMartTable != null && table.dataMartTable.datamartRef != null &&
-			table.dataMartTable.datamartRef.name != null) {
-			datamartInferrer.createFilterMap(table.dataMartTable.datamartRef, filterIdMap)
-		}
-		for (filter : filterIdMap.keySet) {
-
-			// synchronize by id
-			if (filterIdMap.get(filter).contains(IDataMart.filterIdPlaceholder)) {
-				if (table.dataMartTable.datamartRef.source instanceof DatamartEntity) {
-					var entity = (table.dataMartTable.datamartRef.source as DatamartEntity).entityRef
-					for (f : entity.features) {
-						if (f instanceof LReference && !(f as LReference).toMany) {
-							body = 
-							'''
-							«body»«table.setupIdEvent(
-								table.dataMartTable.datamartRef.buildTopic((f as LReference).name), filter,
-								datamartInferrer.getEntityAlias(entity), (f as LReference).name)»'''
-						}
-					}
-				}
-			}
-			// synchronize by filter
-			else {
-				body = '''«body»«table.setupEvent(filterIdMap.get(filter), filter)»'''
-			}
-		}
-		return body
-	}
-
-	// subscribe to view refresh	
-	def subscribe(Table table) {
-		var subscribers = '''
-			eventBroker.subscribe(EventBrokerMsg.REFRESH_VIEW+"«table.name»Table", refreshView);
-			«IF table.dataMartTable instanceof TableDatamart && !table.tabletype.embedded && table.tabletype.toolbar != null»
-				eventBroker.subscribe(EventBrokerMsg.ACTION_BUTTON_EXECUTE_PREFIX+"«table.tabletype.toolbar.name»Action"+(String)getContext().get("«table.tabletype.toolbar.name»_TOOLBAR_ID"), dispatchAction);
-			«ENDIF»
-		'''
-		if (!table.tabletype.embedded) {
-
-			// get all entities requested in this report
-			var entites = findRequestedEntities(table)
-			for (LEntity entity : entites) {
-				subscribers = subscribers.concat(
-					'''
-						eventBroker.subscribe(EventBrokerMsg.REFRESH_VIEW+"«(entity.eContainer as LTypedPackage).name.replace('.', '/')»/«entity.
-							name»Entity", fModifiedEntityIdsListener);
-					''')
-			}
-		}
-		return subscribers
-	}
-
 	def Set<LEntity> findRequestedEntities(Table table) {
 		var entities = new HashSet<LEntity>()
 		switch (table.tabletype) {
 			TableTable: {
-				entities.addAll(table.dataMartTable.datamartRef.findAllEntities())
+				entities.addAll((table.tabletype as TableTable).source.datamartRef.findAllEntities())
 			}
 			TableGrid: {
-				// TODO gridsource roottype -> dto -> entity
-				// entities.add(table.dtoGridTable.)
+				val entity = EcoreUtil2.resolve(table.dtoGridTable.dtoSource.wrappedType, table.eResource) as LEntity
+				entities.add(entity);
 			}
 		}
 		return entities
 	}
 
-	def unsubscribe(Table table) {
-		var unsubscribers = '''
-			eventBroker.unsubscribe(refreshView);
-			«IF table.dataMartTable instanceof TableDatamart && !table.tabletype.embedded && table.tabletype.toolbar != null»
-				eventBroker.unsubscribe(dispatchAction);
-			«ENDIF»
-			«IF !table.tabletype.embedded»
-				eventBroker.unsubscribe(fModifiedEntityIdsListener);
-			«ENDIF»
-			«IF table.task»
-				taskClient.unsubscribeTaskEventNotification(this);
-			«ENDIF»
-		'''
-		return unsubscribers
-	}
-
-	// subscribe to id changes	
-	def String setupIdEvent(Table table, String eventId, String filter, String entityName, String referenceName) {
-		var body = ""
-		body = '''
-		«body»
-		eventBroker.subscribe("«eventId»",
-		new org.osgi.service.event.EventHandler() {
-			@Override
-			public void handleEvent(org.osgi.service.event.Event event) {
-				final EventBrokerMsg msg = (EventBrokerMsg)event.getProperty(org.eclipse.e4.core.di.extensions.EventUtils.DATA);
-				filterGenerator.setId("«filter»", " where «entityName».«referenceName»='"+msg.getName()+"'");
-				«table.callDataRefreshMethod»
-			}
-		});
-		'''
-		return body
-	}
-
-	def notifyBPMNChart(Table table) {
-		'''
-			// sync bpmn view
-			if(table.getValue() == null) {
-				eventBroker.send(EventBrokerMsg.BPMNCHART_EVENT, new EventBrokerMsg(null, null));
-			}
-			else {
-				eventBroker.send(EventBrokerMsg.BPMNCHART_EVENT, new EventBrokerMsg(dataSourceContainer.getProcessId((int) table.getValue()), dataSourceContainer.getTaskName((int) table.getValue())));
-			}
-		'''
-	}
-
-	// subscribe to filter changes
-	def String setupEvent(Table table, String eventId, String filter) {
-		var body = ""
-		body = '''
-			«body»
-			eventBroker.subscribe("«eventId»",
-			new org.osgi.service.event.EventHandler() {
-				@Override
-				public void handleEvent(org.osgi.service.event.Event event) {
-					final EventBrokerMsg msg = (EventBrokerMsg)event.getProperty(org.eclipse.e4.core.di.extensions.EventUtils.DATA);
-					«IF table.task»
-					dataSourceContainer.updateContainer(datamartClass.getResultsByTaskId(taskClient, user, msg.getLong()));
-					«ELSE»
-					filterGenerator.selectItem("«filter»", msg.getName());
-					«ENDIF»
-				}
-			});
-			eventBroker.subscribe("«eventId»/clear",
-				new org.osgi.service.event.EventHandler() {
-					@Override
-					public void handleEvent(org.osgi.service.event.Event event) {
-					«IF table.task»
-						dataSourceContainer.clearContainer();
-					«ELSE»
-						filterGenerator.resetItem("«filter»");
-					«ENDIF»
-				}
-			});
-		'''
-		return body
-	}
-
 	def String sendEvent(Table table) {
 		var body = "";
 		body = '''
@@ -2490,70 +2711,55 @@
 			table.addValueChangeListener(new ValueChangeListener() {
 				@Override
 				public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
-					try {
-						Object msg = null;
-						Object id = null;
-						String target = null;
-						Object value = table.getValue();
-						int selection = -1;
-						if	(value instanceof Integer) {
-							selection = (Integer)value;
+					Object msg = null;
+					Object id = null;
+					String target = null;
+					Object value = table.getValue();
+					int selection = -1;
+					if	(value instanceof Integer) {
+						selection = (Integer)value;
+					}
+					else {
+						if ((value instanceof Collection<?>) && (((Collection<?>)value).size() == 1)) {
+							value = ((Collection<?>)value).iterator().next();
+			    			if	(value instanceof Integer) {
+			    				selection = (Integer)value;
+			    			}
 						}
-						else {
-							if	((value instanceof Collection<?>) && (((Collection<?>)value).size() == 1)) {
-								value = ((Collection<?>)value).iterator().next();
-				    			if	(value instanceof Integer) {
-				    				selection = (Integer)value;
-				    			}
-							}
-						}
-						«IF table.tabletype.embedded && table.isTask»
-						for(Button b:taskButtons) {
-							b.setEnabled(table.getValue() != null);
-						}
-						«ENDIF»
+					}
+					«IF table.tabletype.embedded && table.isTask»
+					for(Button b:taskButtons) {
+						b.setEnabled(table.getValue() != null);
+					}
+					«ENDIF»
 		'''
-		if (table.tabletype instanceof TableTable) {
+		if (table.isTable) {
 			if (table.dataMartTable instanceof TableDatamart) {
-				body = '''
-					«body»
-								«IF !table.tabletype.embedded»
-									dataSourceContainer.registerSelection(getPart().getTransientData(), selection);
-								«ENDIF»
-				'''
 				switch ((table.dataMartTable as TableDatamart).datamartRef.source) {
 					DatamartTask:
-						body = '''
-							«body»
-										«IF !table.tabletype.embedded»
-											if (table.getValue() != null) {
-												getPart().getTransientData().put("taskSummary", taskClient.getUserTask(dataSourceContainer.getTaskId(selection), user));
-											}
-											else {
-												getPart().getTransientData().put("taskSummary", null);
-											}
-										«ENDIF»
-										«table.notifyBPMNChart»
+						body = 
+						'''
+						«body»
+								if (table.getValue() != null && taskClient != null) {
+									eclipseContext.set(BPMTaskSummary.class, taskClient.getUserTask(dataSourceContainer.getTaskId(selection), user));
+								} else {
+									eclipseContext.set(BPMTaskSummary.class, null);
+								}
 						'''
 					DatamartEntity: {
 						var datamartEntity = ((table.dataMartTable as TableDatamart).datamartRef.source) as DatamartEntity
 						var entity = EcoreUtil2.resolve(datamartEntity.entityRef, table.eResource) as LEntity
+						
 						var alias = DatamartDefinitionUtil.getEntityIdAliasName(entity)
-						if(alias != null) {
+						if(alias !== null) {
 							body = '''
 							«body»
-										if	(selection >= 0) {
-											id = dataSourceContainer.getStringValueByProperty(selection, "«alias.toLowerCase»");
-										}
-										if	((id != null) && (operativeDtoContainer != null) && (operativeDtoContainer.getOperativeDtoIdColumn() != null)) {
-											msg	= operativeDtoContainer.getOperativeDtoForId(id);
-										}
-										if	(msg == null) {
-											msg = new EventBrokerMsg((String) id, "«(((table.dataMartTable.datamartRef.source) as DatamartEntity).entityRef as EObject).fullyQualifiedName»");
-										}
-										target = EventBrokerMsg.AUTOWIRED_ENTITY_PREFIX+"«(((table.dataMartTable as TableDatamart).datamartRef.
-								source) as DatamartEntity).entityRef.name»";
-										eventBroker.send(target, msg);'''
+									«IF entity.primaryKeyAttribute !== null»
+									EventDispatcherEvent evnt = new EventDispatcherEvent(EventDispatcherCommand.SELECT, "«entity.baseType.fullyQualifiedName».«entity.idAttributeName»", "«table.fullyQualifiedName»");
+									evnt.addItem(EventDispatcherDataTag.ID, dataSourceContainer.getValueByProperty(selection, "«alias.toLowerCase»"));
+									eventDispatcher.sendEvent(evnt);
+									«ENDIF»
+							'''
 						}
 					}
 				}
@@ -2562,88 +2768,29 @@
 		for (element : table.dataMartTable.elements) {
 			if (element instanceof TableAxis) {
 				var axis = element as TableAxis
+				var evntCnt = 0
 				for (event : axis.events) {
-					for (datamart : event.brokerDatamarts) {
-						if (datamart.filter != null) {
-							body = '''
-								«body»
-											if(selection<0) {
-												target = "«datamart.filter»/clear";
-												msg = new EventBrokerMsg(null, "*");
-												eventBroker.send(target, msg);
-											}
-											else {
-							'''
-						} else if (datamart.reference != null) {
-							body = '''
-								«body»
-											if(selection<0) {
-												target = "«datamart.datamartDef.buildTopic(datamart.reference.name)»/clear";
-												msg = new EventBrokerMsg(null, "*");
-												eventBroker.send(target, msg);
-											}
-											else {
-							'''
-						}
-						if (event.source instanceof TableOrdinal) {
-							body = '''
-								«body»
-												target = "«datamart.filter»";
-												msg = new EventBrokerMsg(null, dataSourceContainer.getStringValueByOrdinal(selection, «(event.
-									source as TableOrdinal).valueRef»));
-												eventBroker.send(target, msg);
-											}
-							'''
-						}
-						else if (event.source instanceof TableAggregation) {
-							body = '''
-								«body»
-												target = "«datamart.filter»";
-												msg = new EventBrokerMsg(null, dataSourceContainer.getStringValueByAggregate(selection));
-												eventBroker.send(target, msg);
-											}
-							'''
-						} else if (event.source instanceof TableProperty) {
-							if (datamart.filter != null) {
-								body = '''
-									«body»
-													target = "«datamart.filter»";
-													msg = new EventBrokerMsg(null, dataSourceContainer.getStringValueByProperty(selection, "«(event.
-										source as TableProperty).valueRef.propertyRef.name»"));
-													eventBroker.send(target, msg);
-												}
-								'''
-							} else if (datamart.reference != null) {
-								body = '''
-									«body»
-													target = "«datamart.datamartDef.buildTopic(datamart.reference.name)»";
-													msg = new EventBrokerMsg(null, dataSourceContainer.getStringValueByProperty(selection, "«(event.
-										source as TableProperty).valueRef.propertyRef.name»"));
-													eventBroker.send(target, msg);
-												}
-								'''
-							}
-						} else if (event.source instanceof TableTask) {
-							body = '''
-								«body»
-												target = "«datamart.filter»";
-												msg = new EventBrokerMsg(null, null, dataSourceContainer.getTaskId(selection));
-												eventBroker.send(target, msg);
-											}
-							'''
-						}
-
-					}
-
+					body = '''
+					«body»
+							«IF event.source instanceof TableOrdinal»
+							EventDispatcherEvent evnt«evntCnt» = new EventDispatcherEvent(EventDispatcherCommand.SELECT, "«(event.source as TableOrdinal).valueRef»", "«table.fullyQualifiedName»");
+							«ELSEIF event.source instanceof TableAttribute»
+							EventDispatcherEvent evnt«evntCnt» = new EventDispatcherEvent(EventDispatcherCommand.SELECT, "«(event.source as TableAttribute).valueRef.attributeRef.name»", "«table.fullyQualifiedName»");
+							«ENDIF» 
+							«IF event.source instanceof TableOrdinal»
+							evnt«evntCnt».addItem(EventDispatcherDataTag.LIST, dataSourceContainer.getValueByProperty(selection, "«(event.source as TableOrdinal).valueRef»"));
+							eventDispatcher.sendEvent(evnt«evntCnt»);
+							«ELSEIF event.source instanceof TableAttribute»
+							evnt«evntCnt».addItem(EventDispatcherDataTag.LIST, dataSourceContainer.getValueByProperty(selection, "«(event.source as TableAttribute).valueRef.attributeRef.name»"));
+							eventDispatcher.sendEvent(evnt«evntCnt»);
+							«ENDIF» 
+					'''
+					evntCnt = evntCnt + 1
 				}
 			}
 		}
 		body = '''
 			«body»
-				    } catch (Exception e) {
-				    	Notification.show("sendEvent() caused "+e.getLocalizedMessage()+"!",
-				    			Type.ERROR_MESSAGE);
-				    }
 				}
 			});
 		'''
@@ -2661,7 +2808,7 @@
 			while (!(eObj instanceof DatamartPackage)) {
 				eObj = eObj.eContainer
 			}
-			if (eObj != null) {
+			if (eObj !== null) {
 				var pckName = (eObj as DatamartPackage).fullyQualifiedName.toString.replace(".", "/")
 				topic = pckName.concat("/").concat(datamart.name).concat("/").concat(entity.name).concat("/").
 					concat(referenceName)
@@ -2691,7 +2838,7 @@
 		return '''rgb(«rgb»)'''
 	}
 
-	def void initIdMap(Table table, HashMap<String, IdProperty> map) {
+	def void initIdMap(Table table, HashMap<String, IdAttribute> map) {
 		map.clear
 		if (table.dataMartTable instanceof TableDatamart) {
 			var datamart = (table.dataMartTable as TableDatamart).datamartRef
@@ -2702,8 +2849,8 @@
 		}
 	}
 
-	def void iterateIdMap(DatamartEntity entity, HashMap<String, IdProperty> map) {
-		var prop = new IdProperty()
+	def void iterateIdMap(DatamartEntity entity, HashMap<String, IdAttribute> map) {
+		var prop = new IdAttribute()
 		prop.collapsed = true
 		map.put(DatamartDefinitionUtil.getEntityIdAliasName(entity.entityRef), prop)
 		for (navigation : entity.navigations) {
@@ -2711,35 +2858,34 @@
 		}
 	}
 
-	def getEntity(TableBrokerDatamart datamart) {
-		if (datamart.datamartDef.source instanceof DatamartEntity) {
-			return (datamart.datamartDef.source as DatamartEntity).entityRef
-		}
-		return null
-	}
-
 	def localeChanged(Table table)
 		'''
-		this.locale = locale;
-		if(tableFilterDecorator != null) {
+		if(initDone) {
 			tableFilterDecorator.setLocale(locale);
-		}
-		for(CellSetFilterTable table:tables) {
-			table.setLocale(locale);
-			«IF table.tabletype instanceof TableTable &&
-				(table.dataMartTable as TableDatamart).datamartRef.description && 
-				(table.dataMartTable as TableDatamart).datamartRef.descriptionValue != null»
-				table.setDescription(dslMetadataService.translate(locale.toLanguageTag(), "«(table.dataMartTable as TableDatamart).datamartRef.descriptionValue»"));
+			«IF table.isBean»
+			if(table != null) {
+				table.setLocale(locale);
+			}
+			«ELSE»
+			for(CellSetFilterTable table:tables) {
+				table.setLocale(locale);
+				«IF table.isTable &&
+					(table.dataMartTable as TableDatamart).datamartRef.description && 
+					(table.dataMartTable as TableDatamart).datamartRef.descriptionValue !== null»
+					table.setDescription(dslMetadataService.translate(locale.toLanguageTag(), "«(table.dataMartTable as TableDatamart).datamartRef.descriptionValue»"));
+				«ENDIF»
+			}
 			«ENDIF»
-		}
-		if(filterGenerator != null) {
-			filterGenerator.setLocale(locale);
-		}
-		if(dataSourceContainer != null) {
-			dataSourceContainer.setLocale(locale);
-		}
-		if(layoutManager != null) {
-			layoutManager.setLabelValue(dslMetadataService.translate(locale.toLanguageTag(), "«table.name»"));
+			for(String key:attributeLookupMap.keySet()) {
+				attributeLookupMap.get(key).setLocale(locale);
+			}
+			for(Component tabSheet : tabSheets.keySet()) {
+				((TabSheet)tabSheet).setCaption(tabSheets.get(tabSheet).stream().map(x->dslMetadataService.translate(locale.toLanguageTag(), x)).collect(Collectors.joining("/")));
+			}
+			if(dataSourceContainer != null) {
+				«IF table.isBean»//«ENDIF»dataSourceContainer.setLocale(locale);
+			}
+			layoutManager.setLabelValue(dslMetadataService.translate(locale.toLanguageTag(), "«IF table.description»«table.descriptionValue»«ELSE»«table.name»«ENDIF»"));
 		}
 		'''
 		
@@ -2748,59 +2894,64 @@
 		var entity = null as LEntity
 		var alias = null as String
 		var dtoFqn = null as String
+		var keyType = null as LDataType
 		if (table.dataMartTable instanceof TableDatamart) {
 			switch ((table.dataMartTable as TableDatamart).datamartRef.source) {
 				DatamartEntity: {
 					datamartEntity = ((table.dataMartTable as TableDatamart).datamartRef.source) as DatamartEntity
 					entity = EcoreUtil2.resolve(datamartEntity.entityRef, table.eResource) as LEntity
+					keyType = entity.primaryKeyAttribute.datatype
 					alias = DatamartDefinitionUtil.getEntityIdAliasName(entity).toLowerCase
 					dtoFqn = EntityUtils.getDtoFQNForLEntity(entity)
 				}
 			}
 		}
 		'''
-	    IBlipBPMWorkloadModifiableItem task = (IBlipBPMWorkloadModifiableItem)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_START_INFO);
-	    TaskSummary taskSummary = (TaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);
-	    IDto workloadDto = taskClient.getWorkloadDto(taskSummary);
-	    List<IDto> operativeDtos = task.getOperativeDtos(workloadDto);
-	    if	(operativeDtos != null) {
-	    	Set<String> ids = new TreeSet<String>();
-	        for	(IDto operativeDto : operativeDtos) {
-	        	ids.add(String.valueOf(((«dtoFqn»)operativeDto).getId()));
-	        }
-	        for	(Object selection : dataSourceContainer.getAllItemIds()) {
-	            String idValue = dataSourceContainer.getStringValueByProperty((Integer)selection,"«alias»");
-	            if	(idValue.endsWith(".0")) {
-	            	idValue = idValue.substring(0, idValue.length()-2);
-	            }
-	        	if	(ids.contains(idValue)) {
-	        		selectTable.setCheckBox(selection, true);
-	        	}
-	        }
-    	}
+		IBlipBPMWorkloadModifiableItem task = (IBlipBPMWorkloadModifiableItem)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_START_INFO);
+		BPMTaskSummary taskSummary = (BPMTaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);
+		if(taskClient != null) {
+			List<Integer> selections = new ArrayList<>();
+			IDto workloadDto = taskClient.getWorkloadDto(taskSummary);
+			List<IDto> operativeDtos = task.getOperativeDtos(workloadDto);
+			if	(operativeDtos != null) {
+				Set<String> ids = new TreeSet<String>();
+			    for	(IDto operativeDto : operativeDtos) {
+			    	ids.add(String.valueOf(((«dtoFqn»)operativeDto).getId()));
+			    }
+			    for	(Object selection : dataSourceContainer.getAllItemIds()) {
+			        String idValue = dataSourceContainer.getStringValueByProperty((Integer)selection,"«alias»");
+			    	if	(ids.contains(idValue)) {
+			    		selections.add((Integer)selection);
+			    	}
+			    }
+			}
+			selectTable.setValue(selections);
+		}
 		'''
 	}
 		
 	def addAllItemsToWorkloadDto(Table table) {
 		'''
 		IBlipBPMWorkloadModifiableItem task = (IBlipBPMWorkloadModifiableItem)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_START_INFO);
-		TaskSummary taskSummary = (TaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);
-		IDto workloadDto = taskClient.getWorkloadDto(taskSummary);
-		if	((taskClient != null) && (task != null) && (workloadDto != null)) {
-			Object values = selectTable.getValue();
-	        for	(Object selection : dataSourceContainer.getAllItemIds()) {
-	        	boolean selected = false;
-	        	if	(values instanceof Integer) {
-	        		selected = (values == selection);
-	        	}
-	        	else {
-	            	if	((values instanceof Collection<?>) && !((Collection<?>)values).isEmpty()) {
-	            		selected = ((Collection<?>)values).contains(selection);
-	            	}
-	        	}
-	    		addOrRemoveItemToWorkloadDto(task, workloadDto, (Integer)selection, selected);
-	        }
-			taskClient.setWorkloadDto(taskSummary, workloadDto);
+		BPMTaskSummary taskSummary = (BPMTaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);
+		if(taskClient != null) {
+			IDto workloadDto = taskClient.getWorkloadDto(taskSummary);
+			if	((taskClient != null) && (task != null) && (workloadDto != null)) {
+				Object values = selectTable.getValue();
+				for	(Object selection : dataSourceContainer.getAllItemIds()) {
+					boolean selected = false;
+					if	(values instanceof Integer) {
+						selected = (values == selection);
+					}
+					else {
+				    	if	((values instanceof Collection<?>) && !((Collection<?>)values).isEmpty()) {
+				    		selected = ((Collection<?>)values).contains(selection);
+				    	}
+					}
+					addOrRemoveItemToWorkloadDto(task, workloadDto, (Integer)selection, selected);
+				}
+				taskClient.setWorkloadDto(taskSummary, workloadDto);
+			}
 		}
 		'''
 	}
@@ -2810,12 +2961,14 @@
 		var entity = null as LEntity
 		var alias = null as String
 		var dtoFqn = null as String
+		var keyType = null as LDataType
 		if (table.dataMartTable instanceof TableDatamart) {
 			switch ((table.dataMartTable as TableDatamart).datamartRef.source) {
 				DatamartEntity: {
 					datamartEntity = ((table.dataMartTable as TableDatamart).datamartRef.source) as DatamartEntity
 					entity = EcoreUtil2.resolve(datamartEntity.entityRef, table.eResource) as LEntity
 					alias = DatamartDefinitionUtil.getEntityIdAliasName(entity).toLowerCase
+					keyType = entity.primaryKeyAttribute.datatype
 					dtoFqn = EntityUtils.getDtoFQNForLEntity(entity)
 				}
 			}
@@ -2826,8 +2979,12 @@
 		try {
 			idValue = dataSourceContainer.getStringValueByProperty(selection,"«alias»");
 			IDTOServiceWithMutablePersistence<«dtoFqn»> dtoService = (IDTOServiceWithMutablePersistence<«dtoFqn»>) DtoServiceAccess
-					.getService(«dtoFqn».class); 
-			operativeDto = dtoService.get((int) Double.parseDouble(idValue));
+					.getService(«dtoFqn».class);
+			«IF "int".equals(keyType.name)» 
+			operativeDto = dtoService.get((int) Integer.parseInt(idValue));
+			«ELSE»
+			operativeDto = dtoService.get(idValue);
+			«ENDIF»
 		}
 		catch (Exception e) {
 			log.error("try to retrive the dto", e);
@@ -2854,10 +3011,12 @@
 	def removeAllItemsFromWorkloadDto(Table table) {
 		'''
 		IBlipBPMWorkloadModifiableItem task = (IBlipBPMWorkloadModifiableItem)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_START_INFO);
-		TaskSummary taskSummary = (TaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);
-		IDto workloadDto = taskClient.getWorkloadDto(taskSummary);
-		if	((taskClient != null) && (task != null) && (workloadDto != null)) {
-		    task.removeAllOperativeDtos(workloadDto);
+		BPMTaskSummary taskSummary = (BPMTaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);
+		if(taskClient != null) {
+			IDto workloadDto = taskClient.getWorkloadDto(taskSummary);
+			if	((taskClient != null) && (task != null) && (workloadDto != null)) {
+			    task.removeAllOperativeDtos(workloadDto);
+			}
 		}
 		'''
 	}
diff --git a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/jvmmodel/TableModelGenerator.xtend b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/jvmmodel/TableModelGenerator.xtend
index 0080227..05d6ee2 100644
--- a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/jvmmodel/TableModelGenerator.xtend
+++ b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/jvmmodel/TableModelGenerator.xtend
@@ -12,9 +12,9 @@
  * 
  * 
  *  This copyright notice shows up in the generated Java code
- *
+ * 
  */
- 
+
 package org.eclipse.osbp.xtext.table.jvmmodel
 
 import com.vaadin.data.Container
@@ -46,32 +46,43 @@
 import java.util.UUID
 import java.util.concurrent.Executors
 import java.util.concurrent.TimeUnit
+import java.util.stream.Collectors
 import javax.inject.Inject
-import org.drools.SystemEventListenerFactory
-import org.drools.event.process.ProcessCompletedEvent
 import org.eclipse.bpmn2.Task
 import org.eclipse.e4.core.contexts.ContextInjectionFactory
 import org.eclipse.e4.core.di.extensions.EventUtils
 import org.eclipse.e4.core.services.events.IEventBroker
+import org.eclipse.e4.ui.di.Focus
 import org.eclipse.e4.ui.model.application.MApplication
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.emf.ecore.resource.Resource
-import org.eclipse.osbp.bpm.api.AbstractBlipBPMFunctionProvider
+import org.eclipse.osbp.bpm.api.BPMOperation
+import org.eclipse.osbp.bpm.api.BPMTaskEventType
+import org.eclipse.osbp.bpm.api.BPMTaskSummary
+import org.eclipse.osbp.bpm.api.BPMTaskUserEvent
 import org.eclipse.osbp.bpm.api.IBlipBPMConstants
+import org.eclipse.osbp.bpm.api.IBlipBPMFunctionProvider
 import org.eclipse.osbp.bpm.api.IBlipBPMStartInfo
 import org.eclipse.osbp.bpm.api.IBlipBPMWorkloadModifiableItem
 import org.eclipse.osbp.dsl.common.datatypes.IDto
 import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess
-import org.eclipse.osbp.dsl.dto.lib.services.IDTOServiceWithMutablePersistence
 import org.eclipse.osbp.eventbroker.EventBrokerMsg
 import org.eclipse.osbp.preferences.ProductConfiguration
+import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent
+import org.eclipse.osbp.runtime.common.filter.IDTOServiceWithMutablePersistence
+import org.eclipse.osbp.runtime.web.vaadin.common.data.IBeanSearchServiceFactory
 import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider
-import org.eclipse.osbp.ui.api.datamart.DerivedOlapException
+import org.eclipse.osbp.ui.api.customfields.IBlobService
+import org.eclipse.osbp.ui.api.datamart.DatamartFilter
+import org.eclipse.osbp.ui.api.datamart.DatamartPrimary
+import org.eclipse.osbp.ui.api.datamart.IDatamartFilterGenerator
+import org.eclipse.osbp.ui.api.e4.IE4Table
 import org.eclipse.osbp.ui.api.themes.IThemeResourceService
 import org.eclipse.osbp.ui.api.themes.IThemeResourceService.ThemeResourceType
 import org.eclipse.osbp.utils.constants.ExtendedDate
 import org.eclipse.osbp.utils.vaadin.SelectUserWindow
 import org.eclipse.osbp.utils.vaadin.ViewLayoutManager
+import org.eclipse.osbp.vaaclipse.common.ecview.api.IECViewSessionHelper
 import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils
 import org.eclipse.osbp.xtext.blip.BlipItem
 import org.eclipse.osbp.xtext.datamart.common.AEntityDatamart
@@ -83,6 +94,7 @@
 import org.eclipse.osbp.xtext.datamart.common.olap.DerivedPosition
 import org.eclipse.osbp.xtext.datamart.common.sql.OperativeDtoContainer
 import org.eclipse.osbp.xtext.i18n.I18NModelGenerator
+import org.eclipse.osbp.xtext.table.common.BeanFilterTable
 import org.eclipse.osbp.xtext.table.common.CellSetFilterTable
 import org.eclipse.osbp.xtext.table.common.CellSetIndexedContainer
 import org.eclipse.osbp.xtext.table.common.CellSetPagedFilterTable
@@ -93,158 +105,118 @@
 import org.eclipse.xtext.generator.IFileSystemAccess
 import org.eclipse.xtext.xbase.compiler.GeneratorConfig
 import org.eclipse.xtext.xbase.compiler.ImportManager
-import org.jbpm.task.Status
-import org.jbpm.task.event.TaskEventListener
-import org.jbpm.task.event.entity.TaskUserEvent
-import org.jbpm.task.query.TaskSummary
-import org.jbpm.task.service.Operation
-import org.jbpm.task.service.PermissionDeniedException
-import org.jbpm.task.service.mina.MinaTaskClientConnector
-import org.jbpm.task.service.mina.MinaTaskClientHandler
 import org.osgi.service.event.Event
 import org.osgi.service.event.EventHandler
 import org.vaadin.hene.popupbutton.PopupButton
+import org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum
 
 class TableModelGenerator extends I18NModelGenerator {
 	@Inject TableGridSourceGenerator delegate
 	@Inject extension BasicDslGeneratorUtils
 
 	override createAppendable(EObject context, ImportManager importManager, GeneratorConfig config) {
-  		// required to initialize the needed builder to avoid deprecated methods
+		// required to initialize the needed builder to avoid deprecated methods
 		builder = context.eResource
 		// ---------
-		importManager.addImportFor(
-			_typeReferenceBuilder.typeRef(HashMap, _typeReferenceBuilder.typeRef(String), _typeReferenceBuilder.typeRef(String)).
-				type)
-		importManager.addImportFor(
-			_typeReferenceBuilder.typeRef(Map, _typeReferenceBuilder.typeRef(String), _typeReferenceBuilder.typeRef(String)).type)
-		importManager.addImportFor(_typeReferenceBuilder.typeRef(Collection, _typeReferenceBuilder.typeRef(String)).type)
-        addImportFor(importManager, _typeReferenceBuilder
-			, ValueChangeListener
-			, Label
-			, List
-			, Set
-			, TreeSet
-			, Iterator
-			, ArrayList
-			, Page
-			, Styles
-			, DerivedAxis
-			, DerivedPosition
-			, DerivedMember
-			, HorizontalLayout
-			, TabSheet
-			, Notification
-			, ClickEvent
-			, Button
-			, Type
-			, Align
-			, OperativeDtoContainer
-			, DerivedHierarchy
-			, DerivedLevel
-			, DerivedOlapException
-			, IEventBroker
-			, PopupButton
-			, CellSetFilterTable
-			, CellSetPagedFilterTable
-			, CheckboxSelectionCellSetFilterTable
-			, CustomTable
-			, RowHeaderMode
-			, Container
-			, CellSetIndexedContainer
-			, TableFilterDecorator
-			, TableFilterGenerator
-			, Date
-			, ExtendedDate
-			, TimeUnit
-			, EventHandler
-			, Event
-			, EventUtils
-			, ContentMode
-			, EventBrokerMsg
-			, Status
-			, Operation
-			, Executors
-			, TaskSummary
-			, TaskEventListener
-			, TaskUserEvent
-			, ProcessCompletedEvent
-			, PermissionDeniedException
-			, SelectUserWindow
-			, MinaTaskClientConnector
-			, MinaTaskClientHandler
-			, SystemEventListenerFactory
-			, UUID
-			, ProductConfiguration
-			, AEntityDatamart
-			, IViewEmbeddedProvider
-			, MApplication
-			, ContextInjectionFactory
-			, UI
-			, Locale
-			, IThemeResourceService
-			, ThemeResourceType
-			, AbstractBlipBPMFunctionProvider
-			, IBlipBPMConstants
-			, IBlipBPMStartInfo
-			, IBlipBPMWorkloadModifiableItem
-			, IDto
-			, Task
-			, BlipItem
-			, IDTOServiceWithMutablePersistence
-			, DtoServiceAccess
-			, DatamartFilterGenerator
-			, ViewLayoutManager
+		addImportFor(
+			importManager,
+			_typeReferenceBuilder,
+			HashMap,
+			Map,
+			Collection,
+			ValueChangeListener,
+			Label,
+			List,
+			Set,
+			TreeSet,
+			Iterator,
+			ArrayList,
+			Page,
+			Styles,
+			DerivedAxis,
+			DerivedPosition,
+			DerivedMember,
+			HorizontalLayout,
+			TabSheet,
+			Notification,
+			ClickEvent,
+			Button,
+			Type,
+			Align,
+			OperativeDtoContainer,
+			DerivedHierarchy,
+			DerivedLevel,
+			IEventBroker,
+			PopupButton,
+			CellSetFilterTable,
+			BeanFilterTable,
+			CellSetPagedFilterTable,
+			CheckboxSelectionCellSetFilterTable,
+			CustomTable,
+			RowHeaderMode,
+			Container,
+			CellSetIndexedContainer,
+			TableFilterDecorator,
+			TableFilterGenerator,
+			Date,
+			ExtendedDate,
+			TimeUnit,
+			EventHandler,
+			Event,
+			EventUtils,
+			ContentMode,
+			EventBrokerMsg,
+			Executors,
+			SelectUserWindow,
+			UUID,
+			ProductConfiguration,
+			AEntityDatamart,
+			IViewEmbeddedProvider,
+			MApplication,
+			ContextInjectionFactory,
+			UI,
+			Locale,
+			IThemeResourceService,
+			ThemeResourceType,
+			IBlipBPMFunctionProvider,
+			IBlipBPMConstants,
+			IBlipBPMStartInfo,
+			IBlipBPMWorkloadModifiableItem,
+			IDto,
+			Task,
+			BlipItem,
+			IDTOServiceWithMutablePersistence,
+			DtoServiceAccess,
+			DatamartFilterGenerator,
+			ViewLayoutManager,
+			IDatamartFilterGenerator.FilterChangeListener,
+			EventDispatcherEvent,
+			EventDispatcherEvent.EventDispatcherDataTag,
+			EventDispatcherEvent.EventDispatcherCommand,
+			DatamartFilter,
+			DatamartPrimary,
+			IE4Table,
+			Focus,
+			Collectors,
+			IBeanSearchServiceFactory,
+			IECViewSessionHelper,
+			IBlobService,
+			BPMTaskSummary,
+			BPMOperation,
+			BPMTaskEventType,
+			BPMTaskUserEvent,
+			SelectWorkloadActionEnum
 		)
 		super.createAppendable(context, importManager, config)
 	}
 
 	override doGenerate(Resource resource, IFileSystemAccess fsa) {
 		// i18n
-		super.addTranslatables("save,cancel,securityMessage,Page,Items per page,showAll,endDate,startDate,setFilter,clearFilter,lesser_than,greater_than,equal_to,ok,reset,[x]")
-		try {
-			super.doGenerate(resource, fsa)
-		}
-		catch (Throwable e) {
-			System.err.println(e);
-		}
-
+		addTranslatables(
+			"save,cancel,securityMessage,Page,Items per page,showAll,endDate,startDate,setFilter,clearFilter,lesser_than,greater_than,equal_to,ok,reset,[x]")
+		super.doGenerate(resource, fsa)
 		delegate.doGenerate(resource, fsa)
 
-	//        val filename = resource.URI.lastSegment
-	//        for (dm : resource.contents.filter(typeof(CCTableModel))) {
-	//            val plantUML = dm.toPlantUML.toString
-	//            if (fsa instanceof IFileSystemAccessExtension3) {
-	//                val out = new ByteArrayOutputStream()
-	//                new SourceStringReader(plantUML).generateImage(out)
-	//                (fsa as IFileSystemAccessExtension3).generateFile(filename + ".png",
-	//                    new ByteArrayInputStream(out.toByteArray))
-	//            } else {
-	//                fsa.generateFile(filename + ".txt", plantUML)
-	//            }
-	//        }
 	}
-	
-//    def dispatch CharSequence toPlantUML(CCTableModel it) '''
-//    @startuml
-//    «FOR  pkg: packages»
-//    «FOR table : pkg.tables»
-//    «table.toPlantUML»
-//    «ENDFOR»
-//    «ENDFOR»
-//    @enduml
-//    '''
-//     
-//    def dispatch CharSequence toPlantUML(CCTable it) '''
-//    class «name»Table {
-//    	«IF description»«descriptionValue»«ENDIF»
-//    	«IF polling»polling every «pollingTime» seconds«ENDIF» 
-//    }
-//     
-//    class «(source as CCTableDatamart).datamartRef.name»Class {
-//    	Datamart
-//    }
-//    «name»Table -- «(source as CCTableDatamart).datamartRef.name»Class : using
-//     
-//    ''' 	
+
 }
diff --git a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/scoping/TableDSLScopeProvider.xtend b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/scoping/TableDSLScopeProvider.xtend
index 4e5a9cc..3b8d9e4 100644
--- a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/scoping/TableDSLScopeProvider.xtend
+++ b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/scoping/TableDSLScopeProvider.xtend
@@ -12,9 +12,9 @@
  * 
  * 
  *  This copyright notice shows up in the generated Java code
- *
+ * 
  */
- 
+
 package org.eclipse.osbp.xtext.table.scoping
 
 import java.util.ArrayList
@@ -23,22 +23,22 @@
 import org.eclipse.emf.ecore.EReference
 import org.eclipse.osbp.dsl.common.xtext.extensions.ModelExtensions
 import org.eclipse.osbp.dsl.entity.xtext.extensions.EntityTypesBuilder
-import org.eclipse.osbp.dsl.semantic.common.types.LReference
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage
-import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage
 import org.eclipse.osbp.xtext.cubedsl.CubeDimensionEntity
 import org.eclipse.osbp.xtext.cubedsl.CubeHierarchy
 import org.eclipse.osbp.xtext.cubedsl.CubeLevel
 import org.eclipse.osbp.xtext.datamartdsl.AxisEnum
-import org.eclipse.osbp.xtext.datamartdsl.DatamartAxis
+import org.eclipse.osbp.xtext.datamartdsl.DatamartAttribute
 import org.eclipse.osbp.xtext.datamartdsl.DatamartCube
+import org.eclipse.osbp.xtext.datamartdsl.DatamartCubeAxis
 import org.eclipse.osbp.xtext.datamartdsl.DatamartDerivedMeasure
 import org.eclipse.osbp.xtext.datamartdsl.DatamartEntity
 import org.eclipse.osbp.xtext.datamartdsl.DatamartHierarchy
 import org.eclipse.osbp.xtext.datamartdsl.DatamartMeasure
 import org.eclipse.osbp.xtext.datamartdsl.DatamartMember
 import org.eclipse.osbp.xtext.datamartdsl.DatamartOwner
-import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty
 import org.eclipse.osbp.xtext.datamartdsl.DatamartSetAggregation
 import org.eclipse.osbp.xtext.datamartdsl.DatamartSetAggregationFunction
 import org.eclipse.osbp.xtext.datamartdsl.DatamartTask
@@ -46,379 +46,418 @@
 import org.eclipse.osbp.xtext.datamartdsl.scoping.DatamartDSLScopeProvider
 import org.eclipse.osbp.xtext.gridsource.scoping.GridSourceScopeProvider
 import org.eclipse.osbp.xtext.table.TableAxis
-import org.eclipse.osbp.xtext.table.TableBrokerDatamart
 import org.eclipse.osbp.xtext.table.TableDSLPackage
 import org.eclipse.osbp.xtext.table.TableDatamart
+import org.eclipse.osbp.xtext.table.TableDtoDatasource
+import org.eclipse.xtext.common.types.JvmType
+import org.eclipse.xtext.common.types.util.TypeReferences
 import org.eclipse.xtext.resource.EObjectDescription
 import org.eclipse.xtext.resource.IEObjectDescription
 import org.eclipse.xtext.scoping.IScope
 import org.eclipse.xtext.scoping.impl.MapBasedScope
-import org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider
+import org.eclipse.osbp.xtext.datamartdsl.util.DatamartAttributeUtil
 
-class TableScopeProvider extends XbaseWithAnnotationsBatchScopeProvider {
+class TableDSLScopeProvider extends AbstractTableDSLScopeProvider {
 	@Inject extension ModelExtensions
 	@Inject extension EntityTypesBuilder
 	@Inject extension DatamartDSLScopeProvider datamartScopeProvider
 	@Inject extension DatamartDSLJvmModelInferrer datamartInferrer
 	@Inject GridSourceScopeProvider gridScopeProvider
+	@Inject TypeReferences typeReferences
 
 	@Override
 	override IScope getScope(EObject context, EReference reference) {
 
-		// if context is part of the grid source semantic model
-		if (context.eClass.EPackage == CxGridSourcePackage.eINSTANCE ||
-			context.eClass.EPackage == CxGridStylePackage.eINSTANCE) {
-			return gridScopeProvider.getScope(context, reference)
-		}
-
-		if (reference == TableDSLPackage.Literals.TABLE_AXIS__AXIS) {
+		if (reference == CxGridSourcePackage.Literals.CX_GRID_NESTED_FIELD__FIELD) {
+			return getScope_GridAttribute_path(context, reference)
+		} else if (reference == TableDSLPackage.Literals.TABLE_AXIS__AXIS) {
 			return getScope_Table_Axis_axis(context)
 		} else if (reference == TableDSLPackage.Literals.TABLE_MEASURE__VALUE_REF ||
 			reference == TableDSLPackage.Literals.TABLE_DERIVED__VALUE_REF ||
-			reference == TableDSLPackage.Literals.TABLE_PROPERTY__VALUE_REF ||
+			reference == TableDSLPackage.Literals.TABLE_ATTRIBUTE__VALUE_REF ||
 			reference == TableDSLPackage.Literals.TABLE_COLUMN__VALUE_REF ||
 			reference == TableDSLPackage.Literals.TABLE_HIERARCHY__VALUE_REF) {
-			return getScope_Table_valueRef(context, reference)
-		} else if (reference == TableDSLPackage.Literals.TABLE_AGGREGATION__VALUE_REF) {
-			return getScope_Table_Aggregation_valueRef(context)
-		} else if (reference == TableDSLPackage.Literals.TABLE_BROKER_DATAMART__REFERENCE) {
-			return getScope_Table_Broker_reference(context)
-		} else {
-			return super.getScope(context, reference)
+				return getScope_Table_valueRef(context, reference)
+			} else if (reference == TableDSLPackage.Literals.TABLE_AGGREGATION__VALUE_REF) {
+				return getScope_Table_Aggregation_valueRef(context)
+			} else {
+				return super.getScope(context, reference)
+			}
 		}
-	}
 
-	def getScope_Table_Broker_reference(EObject object) {
-		var result = <IEObjectDescription>newArrayList
-		if (object instanceof TableBrokerDatamart) {
-			var datamart = (object as TableBrokerDatamart).datamartDef
-			if (datamart.source instanceof DatamartEntity) {
-				var entity = (datamart.source as DatamartEntity).entityRef
-				for (f : entity.features) {
-					if (f instanceof LReference && !(f as LReference).toMany) {
-						result.add(EObjectDescription.create((f as LReference).name, (f as LReference)))
+		def IScope getScope_GridAttribute_path(EObject object, EReference reference) {
+			switch (object) {
+				CxGridProperty: {
+					val CxGridProperty prop = object as CxGridProperty
+					val ds = prop.eContainer as TableDtoDatasource
+					if(ds !== null && ds.dtoSource !== null) {
+						val JvmType type = typeReferences.findDeclaredType(ds.dtoSource.toQualifiedName, prop)
+						return gridScopeProvider.toGetterScope(type)
+					}
+					return null
+				}
+				CxGridNestedField: {
+					if (object.eContainer instanceof CxGridProperty) {
+						return object.eContainer.getScope_GridAttribute_path(reference)
+					} else {
+						val CxGridNestedField containerField = object.eContainer as CxGridNestedField
+						return gridScopeProvider.toGetterScope(containerField.field.returnType.type)
 					}
 				}
 			}
-		}
-		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
-	}
 
-	def IScope getScope_Table_Axis_axis(EObject object) {
-		var result = <IEObjectDescription>newArrayList
-		var eObj = object
-		while (!(eObj instanceof TableDatamart)) {
-			eObj = eObj.eContainer
+			return null
 		}
-		if (eObj != null) {
-			var datamart = (eObj as TableDatamart).datamartRef
-			if (datamart != null && datamart.source != null) {
-				if (datamart.source instanceof DatamartCube) {
-					for (axis : (datamart.source as DatamartCube).axisslicer) {
-						if (axis instanceof DatamartAxis) {
-							var literal = (axis as DatamartAxis).name.literal
-							result.add(EObjectDescription.create(literal, (axis as DatamartAxis)))
+
+		def IScope getScope_Table_Axis_axis(EObject object) {
+			var result = <IEObjectDescription>newArrayList
+			var eObj = object
+			while (!(eObj instanceof TableDatamart)) {
+				eObj = eObj.eContainer
+			}
+			if (eObj !== null) {
+				var datamart = (eObj as TableDatamart).datamartRef
+				if (datamart !== null && datamart.source !== null) {
+					if (datamart.source instanceof DatamartCube) {
+						for (axis : (datamart.source as DatamartCube).axisslicer) {
+							if (axis instanceof DatamartCubeAxis) {
+								var literal = (axis as DatamartCubeAxis).axis.name.literal
+								result.add(EObjectDescription.create(literal, (axis as DatamartCubeAxis)))
+							}
+						}
+					} else if (datamart.source instanceof DatamartEntity) {
+						getEntityAxes(datamart.source as DatamartEntity, result)
+
+						// user must not supply any axes, but we need it with tables
+						if (!result.containsName(AxisEnum.COLUMNS.literal)) {
+							result.add(
+								EObjectDescription.create(AxisEnum.COLUMNS.literal,
+									(datamart.source as DatamartEntity)))
+							}
+							if (!result.containsName(AxisEnum.ROWS.literal)) {
+								result.add(
+									EObjectDescription.create(AxisEnum.ROWS.literal,
+										(datamart.source as DatamartEntity)))
+								}
+							} else if (datamart.source instanceof DatamartTask) {
+								result.add(
+									EObjectDescription.create(AxisEnum.COLUMNS.literal,
+										(datamart.source as DatamartTask)))
+								result.add(
+									EObjectDescription.create(AxisEnum.ROWS.literal, (datamart.source as DatamartTask)))
+							}
 						}
 					}
-				} else if (datamart.source instanceof DatamartEntity) {
-					getEntityAxes(datamart.source as DatamartEntity, result)
+					return MapBasedScope.createScope(IScope.NULLSCOPE, result)
+				}
 
-					// user must not supply any axes, but we need it with tables
-					if (!result.containsName(AxisEnum.COLUMNS.literal)) {
-						result.add(
-							EObjectDescription.create(AxisEnum.COLUMNS.literal, (datamart.source as DatamartEntity)))
-					}
-					if (!result.containsName(AxisEnum.ROWS.literal)) {
-						result.add(
-							EObjectDescription.create(AxisEnum.ROWS.literal, (datamart.source as DatamartEntity)))
-					}
-				} else if (datamart.source instanceof DatamartTask) {
-					result.add(EObjectDescription.create(AxisEnum.COLUMNS.literal, (datamart.source as DatamartTask)))
-					result.add(EObjectDescription.create(AxisEnum.ROWS.literal, (datamart.source as DatamartTask)))
-				}
-			}
-		}
-		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
-	}
-
-	def void getEntityAxes(DatamartEntity entity, ArrayList<IEObjectDescription> result) {
-		for (navigation : entity.navigations) {
-			if (navigation instanceof DatamartMember) {
-				(navigation as DatamartMember).datamartEntity.getEntityAxes(result)
-				for (property : (navigation as DatamartMember).datamartEntity.properties) {
-					if (!result.containsName(property.axis.literal)) {
-						result.add(EObjectDescription.create(property.axis.literal, property as DatamartAxis))
-					}
-				}
-			}
-			if (navigation instanceof DatamartOwner) {
-				(navigation as DatamartOwner).datamartEntity.getEntityAxes(result)
-				for (property : (navigation as DatamartOwner).datamartEntity.properties) {
-					if (!result.containsName(property.axis.literal)) {
-						result.add(EObjectDescription.create(property.axis.literal, property as DatamartAxis))
-					}
-				}
-			}
-		}
-		for (property : entity.properties) {
-			if (property.axis != null) {
-				if (!result.containsName(property.axis.literal)) {
-					result.add(EObjectDescription.create(property.axis.literal, property as DatamartAxis))
-				}
-			} else {
-				if (!result.containsName(property.axis.literal)) {
-					result.add(EObjectDescription.create(property.axis.literal, property as DatamartAxis))
-				}
-			}
-		}
-	}
-
-	def boolean containsName(ArrayList<IEObjectDescription> list, String name) {
-		for (obj : list) {
-			var oname = obj.name.toString
-			if (oname.equals(name)) {
-				return true
-			}
-		}
-		return false
-	}
-
-	def void getEntityProperties(DatamartEntity entity, ArrayList<IEObjectDescription> result,
-		String requestedAxisName) {
-		for (navigation : entity.navigations) {
-			if (navigation instanceof DatamartMember) {
-				(navigation as DatamartMember).datamartEntity.getEntityProperties(result, requestedAxisName)
-				for (property : (navigation as DatamartMember).datamartEntity.properties) {
-					if (property.axis.literal.equals(requestedAxisName)) {
-						result.add(
-							EObjectDescription.create(datamartInferrer.getPropertyName(property),
-								property as DatamartProperty))
-					}
-				}
-			}
-			if (navigation instanceof DatamartOwner) {
-				(navigation as DatamartOwner).datamartEntity.getEntityProperties(result, requestedAxisName)
-				for (property : (navigation as DatamartOwner).datamartEntity.properties) {
-					if (property.axis.literal.equals(requestedAxisName)) {
-						result.add(
-							EObjectDescription.create(datamartInferrer.getPropertyName(property),
-								property as DatamartProperty))
-					}
-				}
-			}
-		}
-		for (property : entity.properties) {
-			if (property.axis != null) {
-				if (property.axis.literal.equals(requestedAxisName)) {
-					result.add(
-						EObjectDescription.create(datamartInferrer.getPropertyName(property),
-							property as DatamartProperty))
-				}
-			} else {
-				result.add(
-					EObjectDescription.create(datamartInferrer.getPropertyName(property),
-						property as DatamartProperty))
-					
-			}
-		}
-	}
-
-	def void getTaskColumns(DatamartTask task, ArrayList<IEObjectDescription> result, String requestedAxisName) {
-		for (column : task.columns) {
-			if (AxisEnum.COLUMNS.literal.equals(requestedAxisName)) {
-				result.add(EObjectDescription.create(column.columnRef.literal, column))
-			}
-		}
-	}
-
-	def IScope getScope_Table_valueRef(EObject object, EReference reference) {
-		var result = <IEObjectDescription>newArrayList
-		var eObj = object
-		var requestedAxisName = ""
-		while (!(eObj instanceof TableDatamart)) {
-			eObj = eObj.eContainer
-			if (eObj instanceof TableAxis) {
-				requestedAxisName = (eObj as TableAxis).axis.literal
-			}
-		}
-		if (eObj != null) {
-			var datamart = (eObj as TableDatamart).datamartRef
-			if (datamart != null && datamart.source != null) {
-				if (datamart.source instanceof DatamartCube) {
-					for (axis : (datamart.source as DatamartCube).axisslicer) {
-						if (axis instanceof DatamartAxis) {
-							if ((axis as DatamartAxis).name.literal.equals(requestedAxisName)) {
-								var hasMeasures = false
-								var hasHierarchy = false
-								var hasAggregation = false
-								var isCrossjoined = false
-								for (element : (axis as DatamartAxis).elements) {
-									if (element instanceof DatamartMeasure ||
-										element instanceof DatamartDerivedMeasure) {
-										hasMeasures = true
-									}
+				def void getEntityAxes(DatamartEntity entity, ArrayList<IEObjectDescription> result) {
+					for (navigation : entity.navigations) {
+						if (navigation instanceof DatamartMember) {
+							(navigation as DatamartMember).datamartEntity.getEntityAxes(result)
+							for (property : (navigation as DatamartMember).datamartEntity.attributes) {
+								if (!result.containsName(property.axis.name.literal)) {
+									result.add(
+										EObjectDescription.create(property.axis.name.literal, property as DatamartCubeAxis))
 								}
-								for (element : (axis as DatamartAxis).elements) {
-									if (element instanceof DatamartHierarchy) {
-										if (hasHierarchy) {
-											isCrossjoined = true
-										} else {
-											hasHierarchy = true
-										}
-									}
-									if (element instanceof DatamartSetAggregation) {
-										if (hasAggregation) {
-											isCrossjoined = true
-										} else {
-											hasAggregation = true
-										}
-										hasAggregation = true
-									}
+							}
+						}
+						if (navigation instanceof DatamartOwner) {
+							(navigation as DatamartOwner).datamartEntity.getEntityAxes(result)
+							for (property : (navigation as DatamartOwner).datamartEntity.attributes) {
+								if (!result.containsName(property.axis.name.literal)) {
+									result.add(
+										EObjectDescription.create(property.axis.name.literal, property as DatamartCubeAxis))
 								}
-								if (hasMeasures && (hasHierarchy || hasAggregation)) {
-									isCrossjoined = true
+							}
+						}
+					}
+					for (property : entity.attributes) {
+						if (property.axis !== null) {
+							if (!result.containsName(property.axis.name.literal)) {
+								result.add(EObjectDescription.create(property.axis.name.literal, property as DatamartCubeAxis))
+							}
+						} else {
+							if (!result.containsName(property.axis.name.literal)) {
+								result.add(EObjectDescription.create(property.axis.name.literal, property as DatamartCubeAxis))
+							}
+						}
+					}
+				}
+
+				def boolean containsName(ArrayList<IEObjectDescription> list, String name) {
+					for (obj : list) {
+						var oname = obj.name.toString
+						if (oname.equals(name)) {
+							return true
+						}
+					}
+					return false
+				}
+
+				def void getEntityProperties(DatamartEntity entity, ArrayList<IEObjectDescription> result,
+					String requestedAxisName) {
+					for (navigation : entity.navigations) {
+						if (navigation instanceof DatamartMember) {
+							(navigation as DatamartMember).datamartEntity.getEntityProperties(result, requestedAxisName)
+							for (property : (navigation as DatamartMember).datamartEntity.attributes) {
+								if (property.axis.name.literal.equals(requestedAxisName)) {
+									result.add(
+										EObjectDescription.create(DatamartAttributeUtil.getAliasedAttributeName(property),
+											property as DatamartAttribute))
 								}
-								if (/*!isCrossjoined*/1 == 1) {
-									for (element : (axis as DatamartAxis).elements) {
-										if (element instanceof DatamartMeasure &&
-											reference == TableDSLPackage.Literals.TABLE_MEASURE__VALUE_REF) {
-											if ((element as DatamartMeasure).measureRef != null) {
-												result.add(
-													EObjectDescription.create(
-														(element as DatamartMeasure).measureRef.name,
-														element))
+							}
+						}
+						if (navigation instanceof DatamartOwner) {
+							(navigation as DatamartOwner).datamartEntity.getEntityProperties(result, requestedAxisName)
+							for (property : (navigation as DatamartOwner).datamartEntity.attributes) {
+								if (property.axis.name.literal.equals(requestedAxisName)) {
+									result.add(
+										EObjectDescription.create(DatamartAttributeUtil.getAliasedAttributeName(property),
+											property as DatamartAttribute))
+								}
+							}
+						}
+					}
+					for (property : entity.attributes) {
+						if (property.axis !== null) {
+							if (property.axis.name.literal.equals(requestedAxisName)) {
+								result.add(
+									EObjectDescription.create(DatamartAttributeUtil.getAliasedAttributeName(property),
+										property as DatamartAttribute))
+							}
+						} else {
+							result.add(
+								EObjectDescription.create(DatamartAttributeUtil.getAliasedAttributeName(property),
+									property as DatamartAttribute))
+
+						}
+					}
+				}
+
+				def void getTaskColumns(DatamartTask task, ArrayList<IEObjectDescription> result,
+					String requestedAxisName) {
+					for (column : task.columns) {
+						if (AxisEnum.COLUMNS.literal.equals(requestedAxisName)) {
+							result.add(EObjectDescription.create(column.columnRef.literal, column))
+						}
+					}
+				}
+
+				def IScope getScope_Table_valueRef(EObject object, EReference reference) {
+					var result = <IEObjectDescription>newArrayList
+					var eObj = object
+					var requestedAxisName = ""
+					while (!(eObj instanceof TableDatamart)) {
+						eObj = eObj.eContainer
+						if (eObj instanceof TableAxis) {
+							requestedAxisName = (eObj as TableAxis).axis.literal
+						}
+					}
+					if (eObj !== null) {
+						var datamart = (eObj as TableDatamart).datamartRef
+						if (datamart !== null && datamart.source !== null) {
+							if (datamart.source instanceof DatamartCube) {
+								for (axis : (datamart.source as DatamartCube).axisslicer) {
+									if (axis instanceof DatamartCubeAxis) {
+										if ((axis as DatamartCubeAxis).axis.name.literal.equals(requestedAxisName)) {
+											var hasMeasures = false
+											var hasHierarchy = false
+											var hasAggregation = false
+											var isCrossjoined = false
+											for (element : (axis as DatamartCubeAxis).elements) {
+												if (element instanceof DatamartMeasure ||
+													element instanceof DatamartDerivedMeasure) {
+													hasMeasures = true
+												}
 											}
-										}
-										if (element instanceof DatamartDerivedMeasure &&
-											reference == TableDSLPackage.Literals.TABLE_DERIVED__VALUE_REF) {
-											if ((element as DatamartDerivedMeasure).derivedRef != null) {
-												result.add(
-													EObjectDescription.create(
-														(element as DatamartDerivedMeasure).derivedRef.name,
-														element))
-											}
-										}
-										if (element instanceof DatamartHierarchy && !hasMeasures &&
-											reference == TableDSLPackage.Literals.TABLE_HIERARCHY__VALUE_REF) {
-											if ((element as DatamartHierarchy).hierarchyRef != null) {
-												var hierarchy = element as DatamartHierarchy
-												if (hierarchy.levelRef != null) {
-													if (hierarchy.all) { // detailed was modeled - we must add the complete hierarchy
-														var dimEntity = (hierarchy.levelRef as CubeLevel).eContainer as CubeDimensionEntity
-														for (cubeLevel : dimEntity.hierarchLevels) {
-															result.add(
-																EObjectDescription.create(cubeLevel.name,
-																	cubeLevel))
-														}
+											for (element : (axis as DatamartCubeAxis).elements) {
+												if (element instanceof DatamartHierarchy) {
+													if (hasHierarchy) {
+														isCrossjoined = true
 													} else {
-														result.add(
-															EObjectDescription.create(hierarchy.levelRef.name,
-																(hierarchy.levelRef as CubeLevel)))
+														hasHierarchy = true
 													}
-
-												} else if ((hierarchy.hierarchyRef as CubeHierarchy).allMemberName) {
-													result.add(
-														EObjectDescription.create(
-															(hierarchy.hierarchyRef as CubeHierarchy).
-																allMemberNameValue.toString,
-															(hierarchy.hierarchyRef as CubeHierarchy)))
-												} else if ((hierarchy.defaultMember)) {
-													result.add(
-														EObjectDescription.create(
-															(hierarchy.hierarchyRef as CubeHierarchy).
-																defaultMemberValue.toString,
-															(hierarchy.hierarchyRef as CubeHierarchy)))
+												}
+												if (element instanceof DatamartSetAggregation) {
+													if (hasAggregation) {
+														isCrossjoined = true
+													} else {
+														hasAggregation = true
+													}
+													hasAggregation = true
 												}
 											}
-										}
-									}
-								}
-							}
-						}
-					}
-				} else if (datamart.source instanceof DatamartEntity) {
-					getEntityProperties(datamart.source as DatamartEntity, result, requestedAxisName)
-				} else if (datamart.source instanceof DatamartTask) {
-					getTaskColumns(datamart.source as DatamartTask, result, requestedAxisName)
-				}
-			}
+											if (hasMeasures && (hasHierarchy || hasAggregation)) {
+												isCrossjoined = true
+											}
+											for (element : (axis as DatamartCubeAxis).elements) {
+												if (element instanceof DatamartMeasure && reference ==
+													TableDSLPackage.Literals.TABLE_MEASURE__VALUE_REF) {
+													if ((element as DatamartMeasure).measureRef !== null) {
+														result.add(
+															EObjectDescription.create(
+																(element as DatamartMeasure).measureRef.name,
+																element))
+														}
+													}
+													if (element instanceof DatamartDerivedMeasure && reference ==
+														TableDSLPackage.Literals.TABLE_DERIVED__VALUE_REF) {
+														if ((element as DatamartDerivedMeasure).
+															derivedRef !== null) {
+															result.add(
+																EObjectDescription.create(
+																	(element as DatamartDerivedMeasure).
+																		derivedRef.name, element))
+														}
+													}
+													if (element instanceof DatamartHierarchy && !hasMeasures &&
+														reference == TableDSLPackage.Literals.
+															TABLE_HIERARCHY__VALUE_REF) {
+																if ((element as DatamartHierarchy).
+																	hierarchyRef !== null) {
+																	var hierarchy = element as DatamartHierarchy
+																	if (hierarchy.levelRef !== null) {
+																		if (hierarchy.all) { // detailed was modeled - we must add the complete hierarchy
+																			var dimEntity = (hierarchy.
+																				levelRef as CubeLevel).
+																				eContainer as CubeDimensionEntity
+																			for (cubeLevel : dimEntity.
+																				hierarchLevels) {
+																				result.add(
+																					EObjectDescription.create(
+																						cubeLevel.name, cubeLevel))
+																			}
+																		} else {
+																			result.add(
+																				EObjectDescription.create(
+																					hierarchy.levelRef.name,
+																					(hierarchy.
+																						levelRef as CubeLevel)))
+																			}
 
-		}
-		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
-	}
+																		} else if ((hierarchy.
+																			hierarchyRef as CubeHierarchy).
+																			allMemberName) {
+																			result.add(
+																				EObjectDescription.create(
+																					(hierarchy.
+																						hierarchyRef as CubeHierarchy).
+																						allMemberNameValue.toString,
+																					(hierarchy.
+																						hierarchyRef as CubeHierarchy)))
+																			} else if ((hierarchy.defaultMember)) {
+																				result.add(
+																					EObjectDescription.create(
+																						(hierarchy.
+																							hierarchyRef as CubeHierarchy).
+																							defaultMemberValue.
+																							toString,
+																							(hierarchy.
+																								hierarchyRef as CubeHierarchy)))
+																				}
+																			}
+																		}
+																	}
+																}
+															}
+														}
+													} else if (datamart.source instanceof DatamartEntity) {
+														getEntityProperties(datamart.source as DatamartEntity, result,
+															requestedAxisName)
+													} else if (datamart.source instanceof DatamartTask) {
+														getTaskColumns(datamart.source as DatamartTask, result,
+															requestedAxisName)
+													}
+												}
 
-	def IScope getScope_Table_Aggregation_valueRef(EObject object) {
-		var result = <IEObjectDescription>newArrayList
-		var requestedAxisName = ""
-		var eObj = object
-		while (!(eObj instanceof TableDatamart)) {
-			eObj = eObj.eContainer
-			if (eObj instanceof TableAxis) {
-				requestedAxisName = (eObj as TableAxis).axis.literal
-			}
-		}
-		if (eObj != null) {
-			var datamart = (eObj as TableDatamart).datamartRef
-			if (datamart != null && datamart.source != null) {
-				if (datamart.source instanceof DatamartCube) {
-					for (axis : (datamart.source as DatamartCube).axisslicer) {
-						if (axis instanceof DatamartAxis) {
-							if ((axis as DatamartAxis).name.literal.equals(requestedAxisName)) {
-								var hasMeasures = false
-								var hasHierarchy = false
-								var hasAggregation = false
-								var isCrossjoined = false
-								for (element : (axis as DatamartAxis).elements) {
-									if (element instanceof DatamartMeasure ||
-										element instanceof DatamartDerivedMeasure) {
-										hasMeasures = true
-									}
-								}
-								for (element : (axis as DatamartAxis).elements) {
-									if (element instanceof DatamartHierarchy) {
-										if (hasHierarchy) {
-											isCrossjoined = true
-										} else {
-											hasHierarchy = true
+											}
+											return MapBasedScope.createScope(IScope.NULLSCOPE, result)
 										}
-									}
-									if (element instanceof DatamartSetAggregation) {
-										if (hasAggregation) {
-											isCrossjoined = true
-										} else {
-											hasAggregation = true
-										}
-										hasAggregation = true
-									}
-								}
-								if (hasMeasures && (hasHierarchy || hasAggregation)) {
-									isCrossjoined = true
-								}
-								if (!hasMeasures && !isCrossjoined) {
-									for (element : (axis as DatamartAxis).elements) {
-										if (element instanceof DatamartSetAggregation) {
-											if ((element as DatamartSetAggregation).left != null) {
-												if ((element as DatamartSetAggregation).left.aggregation != null) {
-													var aggregation = ((element as DatamartSetAggregation).left.
-														aggregation) as DatamartSetAggregationFunction
 
-													// with EObjectDescription.create, we use our own name computation for scoping - it must return a created scope
-													result.add(
-														EObjectDescription.create(aggregation.aggregation.literal,
-															aggregation))
+										def IScope getScope_Table_Aggregation_valueRef(EObject object) {
+											var result = <IEObjectDescription>newArrayList
+											var requestedAxisName = ""
+											var eObj = object
+											while (!(eObj instanceof TableDatamart)) {
+												eObj = eObj.eContainer
+												if (eObj instanceof TableAxis) {
+													requestedAxisName = (eObj as TableAxis).axis.literal
 												}
 											}
-										}
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-		}
+											if (eObj !== null) {
+												var datamart = (eObj as TableDatamart).datamartRef
+												if (datamart !== null && datamart.source !== null) {
+													if (datamart.source instanceof DatamartCube) {
+														for (axis : (datamart.source as DatamartCube).axisslicer) {
+															if (axis instanceof DatamartCubeAxis) {
+																if ((axis as DatamartCubeAxis).axis.name.literal.equals(
+																	requestedAxisName)) {
+																	var hasMeasures = false
+																	var hasHierarchy = false
+																	var hasAggregation = false
+																	var isCrossjoined = false
+																	for (element : (axis as DatamartCubeAxis).elements) {
+																		if (element instanceof DatamartMeasure ||
+																			element instanceof DatamartDerivedMeasure) {
+																			hasMeasures = true
+																		}
+																	}
+																	for (element : (axis as DatamartCubeAxis).elements) {
+																		if (element instanceof DatamartHierarchy) {
+																			if (hasHierarchy) {
+																				isCrossjoined = true
+																			} else {
+																				hasHierarchy = true
+																			}
+																		}
+																		if (element instanceof DatamartSetAggregation) {
+																			if (hasAggregation) {
+																				isCrossjoined = true
+																			} else {
+																				hasAggregation = true
+																			}
+																			hasAggregation = true
+																		}
+																	}
+																	if (hasMeasures && (hasHierarchy ||
+																		hasAggregation)) {
+																		isCrossjoined = true
+																	}
+																	if (!hasMeasures && !isCrossjoined) {
+																		for (element : (axis as DatamartCubeAxis).
+																			elements) {
+																			if (element instanceof DatamartSetAggregation) {
+																				if ((element as DatamartSetAggregation).
+																					left !== null) {
+																					if ((element as DatamartSetAggregation).
+																						left.aggregation !== null) {
+																						var aggregation = ((element as DatamartSetAggregation).
+																							left.
+																							aggregation) as DatamartSetAggregationFunction
 
-		// with EObjectDescription.create, we use our own name computation for scoping - it must return a created scope
-		return MapBasedScope.createScope(IScope.NULLSCOPE, result)
-	}
-}
+																							// with EObjectDescription.create, we use our own name computation for scoping - it must return a created scope
+																							result.add(
+																								EObjectDescription.
+																									create(
+																										aggregation.
+																											aggregation.
+																											literal,
+																											aggregation))
+																								}
+																							}
+																						}
+																					}
+																				}
+																			}
+																		}
+																	}
+																}
+															}
+														}
+
+														// with EObjectDescription.create, we use our own name computation for scoping - it must return a created scope
+														return MapBasedScope.createScope(IScope.NULLSCOPE, result)
+													}
+												}
+												
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/validation/TableDSLValidator.xtend b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/validation/TableDSLValidator.xtend
index a9a20a0..a4f83a0 100644
--- a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/validation/TableDSLValidator.xtend
+++ b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/validation/TableDSLValidator.xtend
@@ -1,6 +1,6 @@
 /**
  *                                                                            
- *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *  Copyright (c) 2015 - 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       
@@ -8,28 +8,23 @@
  *  http://www.eclipse.org/legal/epl-v10.html                                 
  *                                                                            
  *  Contributors:                                                      
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 	   Loetz GmbH&Co.KG - Initial implementation
  * 
  * 
  *  This copyright notice shows up in the generated Java code
  *
  */
- 
 package org.eclipse.osbp.xtext.table.validation
 
 import java.util.List
+import org.eclipse.osbp.xtext.table.TableDSLPackage
+import org.eclipse.osbp.xtext.table.TableModel
 import org.eclipse.xtext.common.types.JvmGenericType
 import org.eclipse.xtext.validation.Check
-import org.eclipse.osbp.dsl.semantic.common.types.LTypedPackage
-import org.eclipse.xtext.common.types.util.TypeReferences
-import org.vaadin.hene.popupbutton.PopupButton
-import org.eclipse.osbp.xtext.table.TableDSLPackage
 import org.tepi.filtertable.FilterTable
-import org.eclipse.osbp.xtext.table.TablePackage
-import org.eclipse.osbp.xtext.table.TableModel
+import org.vaadin.hene.popupbutton.PopupButton
 
 //import org.eclipse.xtext.validation.Check
-
 /**
  * Custom validation rules. 
  *
@@ -37,58 +32,4 @@
  */
 class TableDSLValidator extends AbstractTableDSLValidator {
 
-//  public static val INVALID_NAME = 'invalidName'
-//
-//	@Check
-//	def checkGreetingStartsWithCapital(Greeting greeting) {
-//		if (!Character.isUpperCase(greeting.name.charAt(0))) {
-//			warning('Name should start with a capital', 
-//					MyDslPackage.Literals.GREETING__NAME,
-//					INVALID_NAME)
-//		}
-//	}
-
-	public static val String CODE__MISSING__L_RUNTIME_COMMON = "0_108"
-	public static val String CODE__MISSING__DATATYPE_LIB = "0_109"
-	public static val String CODE__MISSING__XBASE_LIB = "0_111"
-	public static val String CODE__MISSING__JDK_1_5 = "0_112"
-
-	@Check
-	def checkClassPath(TableModel tableModel) {
-		var typeReferences = services.typeReferences
-		val listType = typeReferences.findDeclaredType(List, tableModel) as JvmGenericType
-		if (listType == null || listType.getTypeParameters().isEmpty()) {
-			error("Couldn't find a JDK 1.5 or higher on the project's classpath.",
-					tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES,
-					CODE__MISSING__JDK_1_5);
-		}
-		if (typeReferences.findDeclaredType(PopupButton, tableModel) == null) {
-			error("Couldn't find a the mandatory library 'popupbutton.osgi' on the project's classpath.",
-					tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES,
-					"");
-		}
-		if (typeReferences.findDeclaredType(FilterTable, tableModel) == null) {
-			error("Couldn't find a the mandatory library 'filteringtable.osgi' on the project's classpath.",
-					tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES,
-					"");
-		}
-		if (typeReferences.findDeclaredType(
-				"org.eclipse.osbp.runtime.common.annotations.Dispose", tableModel) == null) {
-			error("Couldn't find the mandatory library 'org.eclipse.osbp.runtime.common' on the project's classpath.",
-					tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES,
-					CODE__MISSING__L_RUNTIME_COMMON);
-		}
-		if (typeReferences.findDeclaredType(
-				"org.eclipse.osbp.dsl.common.datatypes.IDatatypeConstants", tableModel) == null) {
-			warning("Couldn't find the optional library 'org.eclipse.osbp.dsl.datatype.lib' on the project's classpath. This may cause resolving problems.",
-					tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES,
-					CODE__MISSING__DATATYPE_LIB);
-		}
-		if (typeReferences.findDeclaredType("javax.validation.Valid", tableModel) == null) {
-			error("Couldn't find the library 'javax.validation' on the project's classpath. This may cause resolving problems.",
-					tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES,
-					CODE__MISSING__DATATYPE_LIB);
-		}
-	}
-
 }
diff --git a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/valueconverter/TableQualifiedNameProvider.java b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/valueconverter/TableQualifiedNameProvider.java
index 9b9645a..f3a1c8e 100644
--- a/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/valueconverter/TableQualifiedNameProvider.java
+++ b/org.eclipse.osbp.xtext.table/src/org/eclipse/osbp/xtext/table/valueconverter/TableQualifiedNameProvider.java
@@ -11,58 +11,27 @@
  * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
  * 
  */
- package org.eclipse.osbp.xtext.table.valueconverter;
-
-import java.util.List;
+package org.eclipse.osbp.xtext.table.valueconverter;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.xtext.naming.IQualifiedNameConverter;
 import org.eclipse.xtext.naming.QualifiedName;
-import org.eclipse.xtext.nodemodel.INode;
-import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
 import org.eclipse.xtext.xbase.scoping.XbaseQualifiedNameProvider;
 
-import com.google.inject.Inject;
-
-import org.eclipse.osbp.xtext.table.Table;
-import org.eclipse.osbp.xtext.table.TablePackage;
-
 @SuppressWarnings("restriction")
 public class TableQualifiedNameProvider extends XbaseQualifiedNameProvider {
 
-	@Inject
-	private IQualifiedNameConverter qualifiedNameConverter;
-
 	@Override
 	public QualifiedName getFullyQualifiedName(EObject obj) {
 		if (obj == null) {
 			return QualifiedName.create("");
 		}
-		if (obj instanceof Table) {
-			Table table = (Table) obj;
-            if (table.getName() == null) {
-            	return null;
-            }
-            return qualifiedNameConverter.toQualifiedName(table.getName());
-		}
+		// if (obj instanceof Table) {
+		// Table table = (Table) obj;
+		// if (table.getName() == null) {
+		// return null;
+		// }
+		// return qualifiedNameConverter.toQualifiedName(table.getName());
+		// }
 		return super.getFullyQualifiedName(obj);
 	}
-
-	// this method evaluates the cross referenced name of an object without causing cyclic lazy linking errors
-	private String getCrossReferenceName(EObject obj, EStructuralFeature feature) {
-		List<INode> nodes = NodeModelUtils.findNodesForFeature(obj, feature);
-		if (nodes.size() == 0) {
-			return null;
-		}
-		return NodeModelUtils.getTokenText(nodes.get(0));
-	}
-
-	private String getPackageName(EObject obj) {
-		EObject o = obj.eContainer();
-		while(!(o instanceof TablePackage)) {
-			o = o.eContainer();
-		}
-		return ((TablePackage)o).getName();
-	}
 }
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/.gitignore b/org.eclipse.osbp.xtext.table/xtend-gen/.gitignore
new file mode 100644
index 0000000..50c402d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/.gitignore
@@ -0,0 +1,6 @@
+/.TableDSLFormatter.xtendbin
+/.TableDSLJvmModelInferrer.xtendbin
+/.TableDSLScopeProvider.xtendbin
+/.TableDSLValidator.xtendbin
+/.TableGridSourceGenerator.xtendbin
+/.TableModelGenerator.xtendbin
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/formatting/.gitignore b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/formatting/.gitignore
new file mode 100644
index 0000000..7a2338a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/formatting/.gitignore
@@ -0,0 +1 @@
+/TableDSLFormatter.java
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/formatting/TableDSLFormatter.java b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/formatting/TableDSLFormatter.java
index d51b85f..b7d8b00 100644
--- a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/formatting/TableDSLFormatter.java
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/formatting/TableDSLFormatter.java
@@ -15,14 +15,13 @@
 package org.eclipse.osbp.xtext.table.formatting;
 
 import com.google.inject.Inject;
-import org.eclipse.osbp.utils.xtext.GenericFormatter;
+import org.eclipse.osbp.xtext.oxtype.formatting.GenericFormatter;
+import org.eclipse.osbp.xtext.oxtype.services.OXtypeGrammarAccess;
 import org.eclipse.xtext.AbstractRule;
-import org.eclipse.xtext.Grammar;
 import org.eclipse.xtext.GrammarUtil;
 import org.eclipse.xtext.ParserRule;
 import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
 import org.eclipse.xtext.formatting.impl.FormattingConfig;
-import org.eclipse.xtext.xbase.services.XtypeGrammarAccess;
 
 /**
  * This class contains custom formatting description.
@@ -35,27 +34,21 @@
 @SuppressWarnings("all")
 public class TableDSLFormatter extends AbstractDeclarativeFormatter {
   @Inject
-  private XtypeGrammarAccess grammarAccess;
+  private OXtypeGrammarAccess grammarAccess;
   
+  @Override
   protected void configureFormatting(final FormattingConfig c) {
     final GenericFormatter genericFormatter = new GenericFormatter();
-    Grammar _grammar = this.grammar.getGrammar();
-    AbstractRule _findRuleForName = GrammarUtil.findRuleForName(_grammar, "NestedField");
+    AbstractRule _findRuleForName = GrammarUtil.findRuleForName(this.grammar.getGrammar(), "NestedField");
     ParserRule nestedFieldDef = ((ParserRule) _findRuleForName);
-    Grammar _grammar_1 = this.grammar.getGrammar();
-    AbstractRule _findRuleForName_1 = GrammarUtil.findRuleForName(_grammar_1, "PropertyStyle");
+    AbstractRule _findRuleForName_1 = GrammarUtil.findRuleForName(this.grammar.getGrammar(), "PropertyStyle");
     ParserRule propertyStyleDef = ((ParserRule) _findRuleForName_1);
-    Grammar _grammar_2 = this.grammar.getGrammar();
-    AbstractRule _findRuleForName_2 = GrammarUtil.findRuleForName(_grammar_2, "TableRangeElement");
+    AbstractRule _findRuleForName_2 = GrammarUtil.findRuleForName(this.grammar.getGrammar(), "TableRangeElement");
     ParserRule rangeElemetDef = ((ParserRule) _findRuleForName_2);
-    FormattingConfig.NoLinewrapLocator _setNoLinewrap = c.setNoLinewrap();
-    _setNoLinewrap.before(nestedFieldDef);
-    FormattingConfig.NoLinewrapLocator _setNoLinewrap_1 = c.setNoLinewrap();
-    _setNoLinewrap_1.before(propertyStyleDef);
-    FormattingConfig.NoLinewrapLocator _setNoLinewrap_2 = c.setNoLinewrap();
-    _setNoLinewrap_2.before(rangeElemetDef);
-    Grammar _grammar_3 = this.grammar.getGrammar();
-    genericFormatter.formatFirstLevelBlocks(c, _grammar_3, "Table", "TableImport");
+    c.setNoLinewrap().before(nestedFieldDef);
+    c.setNoLinewrap().before(propertyStyleDef);
+    c.setNoLinewrap().before(rangeElemetDef);
+    genericFormatter.formatFirstLevelBlocks(c, this.grammar.getGrammar(), "Table");
     genericFormatter.genericFormatting(c, this.grammar, this.grammarAccess);
   }
 }
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/generator/.gitignore b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/generator/.gitignore
new file mode 100644
index 0000000..d4fb0cc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/generator/.gitignore
@@ -0,0 +1 @@
+/TableGridSourceGenerator.java
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/generator/TableGridSourceGenerator.java b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/generator/TableGridSourceGenerator.java
index 1088e40..e8b5121 100644
--- a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/generator/TableGridSourceGenerator.java
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/generator/TableGridSourceGenerator.java
@@ -25,8 +25,6 @@
 import org.eclipse.emf.ecore.xmi.XMLResource;
 import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
 import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
-import org.eclipse.osbp.dsl.semantic.dto.LDto;
-import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField;
 import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle;
 import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle;
@@ -50,33 +48,27 @@
  */
 @SuppressWarnings("all")
 public class TableGridSourceGenerator implements IGenerator {
+  @Override
   public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
     this.toBinary(resource, fsa);
   }
   
   public void toBinary(final Resource input, final IFileSystemAccess fsa) {
-    EList<EObject> _contents = input.getContents();
-    EObject _get = _contents.get(0);
+    EObject _get = input.getContents().get(0);
     final TableModel lModel = ((TableModel) _get);
-    EList<TablePackage> _packages = lModel.getPackages();
-    final Consumer<TablePackage> _function = new Consumer<TablePackage>() {
-      public void accept(final TablePackage it) {
-        final String packageName = it.getName();
-        EList<Table> _tables = it.getTables();
-        final Consumer<Table> _function = new Consumer<Table>() {
-          public void accept(final Table it) {
-            final String tableName = it.getName();
-            TableOption _tabletype = it.getTabletype();
-            if ((_tabletype instanceof TableGrid)) {
-              TableOption _tabletype_1 = it.getTabletype();
-              TableGridSourceGenerator.this.generateXMI(((TableGrid) _tabletype_1), packageName, tableName, fsa);
-            }
-          }
-        };
-        _tables.forEach(_function);
-      }
+    final Consumer<TablePackage> _function = (TablePackage it) -> {
+      final String packageName = it.getName();
+      final Consumer<Table> _function_1 = (Table it_1) -> {
+        final String tableName = it_1.getName();
+        TableOption _tabletype = it_1.getTabletype();
+        if ((_tabletype instanceof TableGrid)) {
+          TableOption _tabletype_1 = it_1.getTabletype();
+          this.generateXMI(((TableGrid) _tabletype_1), packageName, tableName, fsa);
+        }
+      };
+      it.getTables().forEach(_function_1);
     };
-    _packages.forEach(_function);
+    lModel.getPackages().forEach(_function);
   }
   
   public void generateXMI(final TableGrid grid, final String packageName, final String tableName, final IFileSystemAccess fsa) {
@@ -85,22 +77,18 @@
       final TableDtoDatasource ds = grid.getSource();
       ds.setId((((packageName + ".") + tableName) + "Grid"));
       StringConcatenation _builder = new StringConcatenation();
-      LDto _dtoSource = ds.getDtoSource();
-      EObject _eContainer = _dtoSource.eContainer();
+      EObject _eContainer = ds.getDtoSource().eContainer();
       String _name = ((LPackage) _eContainer).getName();
-      _builder.append(_name, "");
+      _builder.append(_name);
       _builder.append(".");
-      LDto _dtoSource_1 = ds.getDtoSource();
-      String _name_1 = _dtoSource_1.getName();
-      _builder.append(_name_1, "");
+      String _name_1 = ds.getDtoSource().getName();
+      _builder.append(_name_1);
       ds.setRootTypeFQN(_builder.toString());
       EList<CxGridProperty> _properties = ds.getProperties();
       for (final CxGridProperty prop : _properties) {
         {
-          String _calcDotPath = Util.calcDotPath(prop);
-          prop.setDotPath(_calcDotPath);
-          CxGridPropStyle _style = prop.getStyle();
-          this.prepare(_style);
+          prop.setDotPath(Util.calcDotPath(prop));
+          this.prepare(prop.getStyle());
         }
       }
       final TableDtoDatasource copy = EcoreUtil.<TableDtoDatasource>copy(ds);
@@ -110,8 +98,7 @@
       outputRes.save(writer, null);
       String _id = ds.getId();
       String _plus = (_id + ".gridsource_xmi");
-      String _string = writer.toString();
-      fsa.generateFile(_plus, "xmi", _string);
+      fsa.generateFile(_plus, "xmi", writer.toString());
     } catch (Throwable _e) {
       throw Exceptions.sneakyThrow(_e);
     }
@@ -121,21 +108,13 @@
   }
   
   protected void _prepare(final CxGridPropPriceStyle style) {
-    CxGridNestedField _valuePropertyPath = style.getValuePropertyPath();
-    String _calcDotPath = Util.calcDotPath(_valuePropertyPath);
-    style.setValuePropertyDotPath(_calcDotPath);
-    CxGridNestedField _currencyPropertyPath = style.getCurrencyPropertyPath();
-    String _calcDotPath_1 = Util.calcDotPath(_currencyPropertyPath);
-    style.setCurrencyPropertyDotPath(_calcDotPath_1);
+    style.setValuePropertyDotPath(Util.calcDotPath(style.getValuePropertyPath()));
+    style.setCurrencyPropertyDotPath(Util.calcDotPath(style.getCurrencyPropertyPath()));
   }
   
   protected void _prepare(final CxGridPropQuantityStyle style) {
-    CxGridNestedField _valuePropertyPath = style.getValuePropertyPath();
-    String _calcDotPath = Util.calcDotPath(_valuePropertyPath);
-    style.setValuePropertyDotPath(_calcDotPath);
-    CxGridNestedField _uomPropertyPath = style.getUomPropertyPath();
-    String _calcDotPath_1 = Util.calcDotPath(_uomPropertyPath);
-    style.setUomPropertyDotPath(_calcDotPath_1);
+    style.setValuePropertyDotPath(Util.calcDotPath(style.getValuePropertyPath()));
+    style.setUomPropertyDotPath(Util.calcDotPath(style.getUomPropertyPath()));
   }
   
   public void prepare(final CxGridPropStyle style) {
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/.gitignore b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/.gitignore
new file mode 100644
index 0000000..dca4589
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/.gitignore
@@ -0,0 +1,6 @@
+/DateComparator.java
+/DoubleComparator.java
+/FormatProperty.java
+/IdProperty.java
+/TableModelGenerator.java
+/TableDSLJvmModelInferrer.java
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/DateComparator.java b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/DateComparator.java
index 017fa4a..272f97b 100644
--- a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/DateComparator.java
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/DateComparator.java
@@ -19,6 +19,7 @@
 
 @SuppressWarnings("all")
 public class DateComparator implements Comparator<Date> {
+  @Override
   public int compare(final Date o1, final Date o2) {
     return o1.compareTo(o2);
   }
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/DoubleComparator.java b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/DoubleComparator.java
index 587db5e..3404043 100644
--- a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/DoubleComparator.java
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/DoubleComparator.java
@@ -21,6 +21,7 @@
  */
 @SuppressWarnings("all")
 public class DoubleComparator implements Comparator<Double> {
+  @Override
   public int compare(final Double arg0, final Double arg1) {
     boolean _lessThan = (arg0.compareTo(arg1) < 0);
     if (_lessThan) {
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/FormatAttribute.java b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/FormatAttribute.java
new file mode 100644
index 0000000..ee30f9f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/FormatAttribute.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.table.jvmmodel;
+
+/**
+ * <p>Container class for a Hashmap value. It carries look and feel information for table cells.</p>
+ */
+@SuppressWarnings("all")
+public class FormatAttribute {
+  public String formatter = null;
+  
+  public String tooltipPattern = null;
+  
+  public boolean hideLabelLookup = false;
+  
+  public boolean hideLabelInterval = false;
+  
+  public boolean hideImageLabel = false;
+  
+  public boolean collapsed = false;
+  
+  public boolean hasImage = false;
+  
+  public boolean hasImageParameter = false;
+  
+  public String imagePathParameter = null;
+  
+  public String imagePath = null;
+  
+  public boolean hasImageResize = false;
+  
+  public String imageResizeString = null;
+  
+  public String iconName = null;
+}
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/IdAttribute.java b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/IdAttribute.java
new file mode 100644
index 0000000..b537c4b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/IdAttribute.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.table.jvmmodel;
+
+@SuppressWarnings("all")
+public class IdAttribute {
+  public boolean collapsed = false;
+}
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/IntegerComparator.java b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/IntegerComparator.java
new file mode 100644
index 0000000..425a8d9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/IntegerComparator.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.table.jvmmodel;
+
+import java.util.Comparator;
+
+@SuppressWarnings("all")
+public class IntegerComparator implements Comparator<Integer> {
+  @Override
+  public int compare(final Integer arg0, final Integer arg1) {
+    boolean _lessThan = (arg0.compareTo(arg1) < 0);
+    if (_lessThan) {
+      return (-1);
+    } else {
+      boolean _greaterThan = (arg0.compareTo(arg1) > 0);
+      if (_greaterThan) {
+        return 1;
+      } else {
+        return 0;
+      }
+    }
+  }
+}
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/TableDSLJvmModelInferrer.java b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/TableDSLJvmModelInferrer.java
index 4e2943d..135db8c 100644
--- a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/TableDSLJvmModelInferrer.java
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/TableDSLJvmModelInferrer.java
@@ -15,30 +15,31 @@
 package org.eclipse.osbp.xtext.table.jvmmodel;
 
 import com.github.wolfie.refresher.Refresher;
-import com.google.common.base.Objects;
-import com.vaadin.data.Property;
+import com.vaadin.server.ClientConnector;
 import com.vaadin.ui.Button;
 import com.vaadin.ui.VerticalLayout;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
-import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Named;
-import org.drools.event.process.ProcessCompletedEvent;
 import org.eclipse.e4.core.contexts.IContextFunction;
 import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.e4.ui.di.Focus;
 import org.eclipse.e4.ui.model.application.MApplication;
 import org.eclipse.e4.ui.workbench.IPresentationEngine;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.osbp.bpm.api.BPMTaskEventType;
+import org.eclipse.osbp.bpm.api.BPMTaskUserEvent;
 import org.eclipse.osbp.bpm.api.IBPMTaskClient;
 import org.eclipse.osbp.bpm.api.IBPMTaskEventNotification;
 import org.eclipse.osbp.bpm.api.IBlipBPMWorkloadModifiableItem;
@@ -46,65 +47,52 @@
 import org.eclipse.osbp.dsl.entity.xtext.extensions.ModelExtensions;
 import org.eclipse.osbp.dsl.semantic.common.types.LDataType;
 import org.eclipse.osbp.dsl.semantic.common.types.LKeyAndValue;
-import org.eclipse.osbp.dsl.semantic.common.types.LReference;
 import org.eclipse.osbp.dsl.semantic.common.types.LScalarType;
-import org.eclipse.osbp.dsl.semantic.common.types.LTypedPackage;
-import org.eclipse.osbp.dsl.semantic.dto.LDto;
 import org.eclipse.osbp.dsl.semantic.entity.LEntity;
 import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
-import org.eclipse.osbp.dsl.semantic.entity.LEntityFeature;
-import org.eclipse.osbp.dsl.semantic.entity.LEntityReference;
 import org.eclipse.osbp.ecview.extension.strategy.AbstractLayoutingStrategy;
 import org.eclipse.osbp.infogrid.api.IGridSourceFacade;
 import org.eclipse.osbp.osgi.hybrid.api.AbstractHybridVaaclipseView;
+import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent;
+import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
 import org.eclipse.osbp.runtime.common.types.ITypeProviderService;
+import org.eclipse.osbp.runtime.web.vaadin.common.data.BeanServiceLazyLoadingContainer;
+import org.eclipse.osbp.runtime.web.vaadin.common.data.IBeanSearchServiceFactory;
 import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider;
-import org.eclipse.osbp.ui.api.datamart.DerivedOlapException;
-import org.eclipse.osbp.ui.api.datamart.IDataMart;
+import org.eclipse.osbp.ui.api.customfields.IBlobService;
+import org.eclipse.osbp.ui.api.datamart.DatamartFilter;
 import org.eclipse.osbp.ui.api.datamart.IDatamartFilterGenerator;
+import org.eclipse.osbp.ui.api.e4.IE4Table;
 import org.eclipse.osbp.ui.api.layout.IViewLayoutManager;
 import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
 import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
 import org.eclipse.osbp.ui.api.user.IUser;
 import org.eclipse.osbp.utils.annotation.CommonUtils;
 import org.eclipse.osbp.utils.common.EntityUtils;
-import org.eclipse.osbp.utils.constants.GeneratorConstants;
 import org.eclipse.osbp.utils.vaadin.PropertyLookup;
 import org.eclipse.osbp.vaaclipse.common.ecview.api.IECViewSessionHelper;
 import org.eclipse.osbp.xtext.action.ActionPackage;
-import org.eclipse.osbp.xtext.action.ActionToolbar;
-import org.eclipse.osbp.xtext.action.ChartActionEnum;
-import org.eclipse.osbp.xtext.action.ReportActionEnum;
-import org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum;
-import org.eclipse.osbp.xtext.action.WorkflowActionEnum;
 import org.eclipse.osbp.xtext.cubedsl.CubeLevel;
-import org.eclipse.osbp.xtext.cubedsl.CubeMeasure;
 import org.eclipse.osbp.xtext.datamart.common.DatamartDefinitionUtil;
 import org.eclipse.osbp.xtext.datamart.common.olap.DerivedCellSet;
 import org.eclipse.osbp.xtext.datamart.common.sql.OperativeDtoContainer;
 import org.eclipse.osbp.xtext.datamartdsl.AxisEnum;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartColumn;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartCube;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartDefineDerivedMeasure;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartAttribute;
 import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartDerivedMeasure;
 import org.eclipse.osbp.xtext.datamartdsl.DatamartEntity;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartMeasure;
 import org.eclipse.osbp.xtext.datamartdsl.DatamartNavigation;
 import org.eclipse.osbp.xtext.datamartdsl.DatamartPackage;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
-import org.eclipse.osbp.xtext.datamartdsl.DatamartSetAggregationFunction;
 import org.eclipse.osbp.xtext.datamartdsl.DatamartSource;
 import org.eclipse.osbp.xtext.datamartdsl.DatamartTask;
-import org.eclipse.osbp.xtext.datamartdsl.SetAggregationEnum;
-import org.eclipse.osbp.xtext.datamartdsl.TaskQueryColumnEnum;
 import org.eclipse.osbp.xtext.datamartdsl.jvmmodel.DatamartDSLJvmModelInferrer;
+import org.eclipse.osbp.xtext.datamartdsl.util.DatamartAttributeUtil;
 import org.eclipse.osbp.xtext.table.RowHeaderMode;
 import org.eclipse.osbp.xtext.table.Table;
 import org.eclipse.osbp.xtext.table.TableAggregation;
 import org.eclipse.osbp.xtext.table.TableAllColumns;
+import org.eclipse.osbp.xtext.table.TableAttribute;
 import org.eclipse.osbp.xtext.table.TableAxis;
-import org.eclipse.osbp.xtext.table.TableBrokerDatamart;
+import org.eclipse.osbp.xtext.table.TableBean;
 import org.eclipse.osbp.xtext.table.TableCellColor;
 import org.eclipse.osbp.xtext.table.TableColumn;
 import org.eclipse.osbp.xtext.table.TableDSLFactory;
@@ -119,7 +107,8 @@
 import org.eclipse.osbp.xtext.table.TableGrid;
 import org.eclipse.osbp.xtext.table.TableHierarchy;
 import org.eclipse.osbp.xtext.table.TableIcon;
-import org.eclipse.osbp.xtext.table.TableImage;
+import org.eclipse.osbp.xtext.table.TableIntInterval;
+import org.eclipse.osbp.xtext.table.TableIntLookup;
 import org.eclipse.osbp.xtext.table.TableInterval;
 import org.eclipse.osbp.xtext.table.TableLookup;
 import org.eclipse.osbp.xtext.table.TableMeasure;
@@ -129,26 +118,25 @@
 import org.eclipse.osbp.xtext.table.TableOrdinal;
 import org.eclipse.osbp.xtext.table.TablePackage;
 import org.eclipse.osbp.xtext.table.TablePreorder;
-import org.eclipse.osbp.xtext.table.TableProperty;
 import org.eclipse.osbp.xtext.table.TableRangeElement;
 import org.eclipse.osbp.xtext.table.TableSelection;
 import org.eclipse.osbp.xtext.table.TableStringLookup;
 import org.eclipse.osbp.xtext.table.TableTable;
-import org.eclipse.osbp.xtext.table.TableTask;
 import org.eclipse.osbp.xtext.table.TableTextColor;
 import org.eclipse.osbp.xtext.table.TableTooltip;
 import org.eclipse.osbp.xtext.table.TableTooltipPattern;
 import org.eclipse.osbp.xtext.table.TableTrend;
 import org.eclipse.osbp.xtext.table.TableValue;
 import org.eclipse.osbp.xtext.table.TableValueElement;
-import org.eclipse.osbp.xtext.table.TrendIconEnum;
+import org.eclipse.osbp.xtext.table.common.BeanFilterTable;
 import org.eclipse.osbp.xtext.table.common.CellSetFilterTable;
 import org.eclipse.osbp.xtext.table.common.CellSetIndexedContainer;
 import org.eclipse.osbp.xtext.table.common.CheckboxSelectionCellSetFilterTable;
 import org.eclipse.osbp.xtext.table.common.TableFilterDecorator;
 import org.eclipse.osbp.xtext.table.jvmmodel.DoubleComparator;
-import org.eclipse.osbp.xtext.table.jvmmodel.FormatProperty;
-import org.eclipse.osbp.xtext.table.jvmmodel.IdProperty;
+import org.eclipse.osbp.xtext.table.jvmmodel.FormatAttribute;
+import org.eclipse.osbp.xtext.table.jvmmodel.IdAttribute;
+import org.eclipse.osbp.xtext.table.jvmmodel.IntegerComparator;
 import org.eclipse.xtend2.lib.StringConcatenation;
 import org.eclipse.xtext.Constants;
 import org.eclipse.xtext.EcoreUtil2;
@@ -175,8 +163,6 @@
 import org.eclipse.xtext.xbase.lib.IterableExtensions;
 import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
 import org.eclipse.xtext.xbase.lib.StringExtensions;
-import org.jbpm.task.event.entity.TaskEventType;
-import org.jbpm.task.event.entity.TaskUserEvent;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.event.EventHandler;
 import org.slf4j.Logger;
@@ -232,117 +218,77 @@
         String clsName = "";
         boolean _isEmbedded = tableoption.isEmbedded();
         if (_isEmbedded) {
-          String _name = pkg.getName();
-          String _string = _name.toString();
-          String _concat = _string.concat(".");
-          String _name_1 = table.getName();
-          String _concat_1 = _concat.concat(_name_1);
-          String _firstUpper = StringExtensions.toFirstUpper(this.fileExtension);
-          String _concat_2 = _concat_1.concat(_firstUpper);
-          String _concat_3 = _concat_2.concat("Embedded");
-          clsName = _concat_3;
+          clsName = pkg.getName().toString().concat(".").concat(table.getName()).concat(StringExtensions.toFirstUpper(this.fileExtension)).concat("Embedded");
         } else {
-          TableOption _tabletype = table.getTabletype();
-          if ((_tabletype instanceof TableGrid)) {
-            String _name_2 = pkg.getName();
-            String _string_1 = _name_2.toString();
-            String _concat_4 = _string_1.concat(".");
-            String _name_3 = table.getName();
-            String _concat_5 = _concat_4.concat(_name_3);
-            String _concat_6 = _concat_5.concat("Grid");
-            clsName = _concat_6;
+          boolean _isGrid = this.isGrid(table);
+          if (_isGrid) {
+            clsName = pkg.getName().toString().concat(".").concat(table.getName()).concat("Grid");
           } else {
-            TableOption _tabletype_1 = table.getTabletype();
-            if ((_tabletype_1 instanceof TableSelection)) {
-              String _name_4 = pkg.getName();
-              String _string_2 = _name_4.toString();
-              String _concat_7 = _string_2.concat(".");
-              String _name_5 = table.getName();
-              String _concat_8 = _concat_7.concat(_name_5);
-              String _concat_9 = _concat_8.concat("Select");
-              clsName = _concat_9;
+            boolean _isBean = this.isBean(table);
+            if (_isBean) {
+              clsName = pkg.getName().toString().concat(".").concat(table.getName()).concat("Bean");
             } else {
-              String _name_6 = pkg.getName();
-              String _string_3 = _name_6.toString();
-              String _concat_10 = _string_3.concat(".");
-              String _name_7 = table.getName();
-              String _concat_11 = _concat_10.concat(_name_7);
-              String _firstUpper_1 = StringExtensions.toFirstUpper(this.fileExtension);
-              String _concat_12 = _concat_11.concat(_firstUpper_1);
-              clsName = _concat_12;
+              boolean _isSelection = this.isSelection(table);
+              if (_isSelection) {
+                clsName = pkg.getName().toString().concat(".").concat(table.getName()).concat("Select");
+              } else {
+                clsName = pkg.getName().toString().concat(".").concat(table.getName()).concat(StringExtensions.toFirstUpper(this.fileExtension));
+              }
             }
           }
         }
         final JvmGenericType cls = this._jvmTypesBuilder.toClass(table, clsName);
         boolean _isEmbedded_1 = tableoption.isEmbedded();
         if (_isEmbedded_1) {
-          EList<JvmTypeReference> _superTypes = cls.getSuperTypes();
-          JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(IViewEmbeddedProvider.class);
-          _superTypes.add(_typeRef);
+          cls.getSuperTypes().add(this._typeReferenceBuilder.typeRef(IViewEmbeddedProvider.class));
         } else {
-          EList<JvmTypeReference> _superTypes_1 = cls.getSuperTypes();
-          JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(AbstractHybridVaaclipseView.class);
-          _superTypes_1.add(_typeRef_1);
+          cls.getSuperTypes().add(this._typeReferenceBuilder.typeRef(AbstractHybridVaaclipseView.class));
         }
-        EList<JvmTypeReference> _superTypes_2 = cls.getSuperTypes();
-        JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(IUser.UserLocaleListener.class);
-        _superTypes_2.add(_typeRef_2);
+        cls.getSuperTypes().add(this._typeReferenceBuilder.typeRef(IUser.UserLocaleListener.class));
+        cls.getSuperTypes().add(this._typeReferenceBuilder.typeRef(ClientConnector.DetachListener.class));
+        cls.getSuperTypes().add(this._typeReferenceBuilder.typeRef(ClientConnector.AttachListener.class));
+        cls.getSuperTypes().add(this._typeReferenceBuilder.typeRef(IEventDispatcher.Receiver.class));
+        cls.getSuperTypes().add(this._typeReferenceBuilder.typeRef(IE4Table.class));
+        if (((!this.isGrid(table)) && (!this.isBean(table)))) {
+          cls.getSuperTypes().add(this._typeReferenceBuilder.typeRef(IDatamartFilterGenerator.FilterChangeListener.class));
+        }
         boolean _isTask = this.isTask(table);
         if (_isTask) {
-          EList<JvmTypeReference> _superTypes_3 = cls.getSuperTypes();
-          JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(IBPMTaskEventNotification.class);
-          _superTypes_3.add(_typeRef_3);
+          cls.getSuperTypes().add(this._typeReferenceBuilder.typeRef(IBPMTaskEventNotification.class));
         }
-        final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
-          public void apply(final JvmGenericType it) {
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION);
-            TableDSLJvmModelInferrer.this.toFields(it, table);
-            TableDSLJvmModelInferrer.this.toConstructor(it, table);
-            TableDSLJvmModelInferrer.this.toGetterSetter(it, table);
-            TableDSLJvmModelInferrer.this.toOperations(it, pkg, table);
-            TableDSLJvmModelInferrer.this.toStringToNumberConverter(it, table);
-          }
+        final Procedure1<JvmGenericType> _function = (JvmGenericType it) -> {
+          this.toFields(it, table);
+          this.toConstructor(it, table);
+          this.toGetterSetter(it, table);
+          this.toOperations(it, pkg, table);
         };
         acceptor.<JvmGenericType>accept(cls, _function);
         boolean _isEmbedded_2 = tableoption.isEmbedded();
         if (_isEmbedded_2) {
-          String _name_8 = table.getName();
-          String _firstUpper_2 = StringExtensions.toFirstUpper(this.fileExtension);
-          String _concat_13 = _name_8.concat(_firstUpper_2);
-          String _concat_14 = _concat_13.concat("Embedded");
-          String contextClassName = (_concat_14 + 
+          String _concat = table.getName().concat(StringExtensions.toFirstUpper(this.fileExtension)).concat("Embedded");
+          String contextClassName = (_concat + 
             "ContextFunction");
           final JvmGenericType contextCls = this._jvmTypesBuilder.toClass(pkg, contextClassName);
           final String tableClsName = clsName;
-          EList<JvmTypeReference> _superTypes_4 = contextCls.getSuperTypes();
-          JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(IContextFunction.class);
-          _superTypes_4.add(_typeRef_4);
-          String _simpleName = contextCls.getSimpleName();
-          String _firstUpper_3 = StringExtensions.toFirstUpper(_simpleName);
-          contextCls.setSimpleName(_firstUpper_3);
-          final Procedure1<JvmGenericType> _function_1 = new Procedure1<JvmGenericType>() {
-            public void apply(final JvmGenericType it) {
-              JvmAnnotationReference annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(
-                Component.class);
-              JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IContextFunction.class);
-              TableDSLJvmModelInferrer.this._commonUtils.addAnnAttr(annotationRef, table, "service", 
-                ((JvmTypeReference) _typeRef));
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append(IContextFunction.SERVICE_CONTEXT_KEY, "");
-              _builder.append("=");
-              String _name = table.getName();
-              String _firstUpper = StringExtensions.toFirstUpper(_name);
-              _builder.append(_firstUpper, "");
-              String propContent = _builder.toString();
-              TableDSLJvmModelInferrer.this._commonUtils.addAnnAttr(annotationRef, table, "property", propContent);
-              EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-              TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef);
-              QualifiedName _fullyQualifiedName = TableDSLJvmModelInferrer.this._iQualifiedNameProvider.getFullyQualifiedName(pkg);
-              String _string = _fullyQualifiedName.toString();
-              it.setPackageName(_string);
-              TableDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION);
-              TableDSLJvmModelInferrer.this.toContextOperations(it, table, tableClsName);
-            }
+          contextCls.getSuperTypes().add(this._typeReferenceBuilder.typeRef(IContextFunction.class));
+          contextCls.setSimpleName(StringExtensions.toFirstUpper(contextCls.getSimpleName()));
+          final Procedure1<JvmGenericType> _function_1 = (JvmGenericType it) -> {
+            JvmAnnotationReference annotationRef = this._annotationTypesBuilder.annotationRef(
+              Component.class);
+            JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(IContextFunction.class);
+            this._commonUtils.addAnnAttr(annotationRef, table, "service", 
+              ((JvmTypeReference) _typeRef));
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append(IContextFunction.SERVICE_CONTEXT_KEY);
+            _builder.append("=");
+            String _firstUpper = StringExtensions.toFirstUpper(table.getName());
+            _builder.append(_firstUpper);
+            String propContent = _builder.toString();
+            this._commonUtils.addAnnAttr(annotationRef, table, "property", propContent);
+            EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+            this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, annotationRef);
+            it.setPackageName(this._iQualifiedNameProvider.getFullyQualifiedName(pkg).toString());
+            this.toContextOperations(it, table, tableClsName);
           };
           acceptor.<JvmGenericType>accept(contextCls, _function_1);
         }
@@ -354,44 +300,36 @@
    * <p>create an injectable context function to be used by an e4 application.</p>
    */
   public void toContextOperations(final JvmGenericType type, final Table table, final String clsName) {
-    JvmOperation operation = null;
     EList<JvmMember> _members = type.getMembers();
-    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Object.class);
-    final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
-      public void apply(final JvmOperation it) {
-        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-        JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-        it.setVisibility(JvmVisibility.PUBLIC);
-        EList<JvmFormalParameter> _parameters = it.getParameters();
-        JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IEclipseContext.class);
-        JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "context", _typeRef);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-        EList<JvmFormalParameter> _parameters_1 = it.getParameters();
-        JvmTypeReference _typeRef_1 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(String.class);
-        JvmFormalParameter _parameter_1 = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "contextKey", _typeRef_1);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            _builder.append("MApplication application = context.get(MApplication.class);");
-            _builder.newLine();
-            _builder.append("IEclipseContext appCtx = application.getContext();");
-            _builder.newLine();
-            _builder.append("IViewEmbeddedProvider provider = ContextInjectionFactory.make(");
-            _builder.append(clsName, "");
-            _builder.append(".class, appCtx);");
-            _builder.newLineIfNotEmpty();
-            _builder.append("appCtx.set(IViewEmbeddedProvider.class, provider);");
-            _builder.newLine();
-            _builder.append("return provider;");
-            it.append(_builder);
-          }
-        };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-      }
+    final Procedure1<JvmOperation> _function = (JvmOperation it) -> {
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      it.setVisibility(JvmVisibility.PUBLIC);
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "eclipseContext", this._typeReferenceBuilder.typeRef(IEclipseContext.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+      JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(table, "contextKey", this._typeReferenceBuilder.typeRef(String.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+      final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("MApplication application = eclipseContext.get(MApplication.class);");
+        _builder.newLine();
+        _builder.append("IEclipseContext appCtx = application.getContext();");
+        _builder.newLine();
+        _builder.append("IViewEmbeddedProvider provider = ContextInjectionFactory.make(");
+        _builder.append(clsName);
+        _builder.append(".class, appCtx);");
+        _builder.newLineIfNotEmpty();
+        _builder.append("appCtx.set(IViewEmbeddedProvider.class, provider);");
+        _builder.newLine();
+        _builder.append("return provider;");
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_1);
     };
-    JvmOperation _method = this._jvmTypesBuilder.toMethod(table, "compute", _typeRef, _function);
+    JvmOperation _method = this._jvmTypesBuilder.toMethod(table, "compute", this._typeReferenceBuilder.typeRef(Object.class), _function);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
   }
   
@@ -399,37 +337,30 @@
    * <p>build the constructors to be used by an e4 application.</p>
    */
   public void toConstructor(final JvmDeclaredType type, final Table table) {
-    TableOption _tabletype = table.getTabletype();
-    boolean _isEmbedded = _tabletype.isEmbedded();
+    boolean _isEmbedded = table.getTabletype().isEmbedded();
     boolean _not = (!_isEmbedded);
     if (_not) {
       EList<JvmMember> _members = type.getMembers();
-      final Procedure1<JvmConstructor> _function = new Procedure1<JvmConstructor>() {
-        public void apply(final JvmConstructor it) {
-          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-          JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-          EList<JvmFormalParameter> _parameters = it.getParameters();
-          JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(VerticalLayout.class);
-          JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "parent", _typeRef);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-          EList<JvmFormalParameter> _parameters_1 = it.getParameters();
-          JvmTypeReference _typeRef_1 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IEclipseContext.class);
-          JvmFormalParameter _parameter_1 = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "context", _typeRef_1);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
-          EList<JvmFormalParameter> _parameters_2 = it.getParameters();
-          JvmTypeReference _typeRef_2 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(MApplication.class);
-          JvmFormalParameter _parameter_2 = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "app", _typeRef_2);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2);
-          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-            public void apply(final ITreeAppendable it) {
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("super(parent,context,app);");
-              it.append(_builder);
-            }
-          };
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-        }
+      final Procedure1<JvmConstructor> _function = (JvmConstructor it) -> {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "parent", this._typeReferenceBuilder.typeRef(VerticalLayout.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+        JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(table, "context", this._typeReferenceBuilder.typeRef(IEclipseContext.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+        EList<JvmFormalParameter> _parameters_2 = it.getParameters();
+        JvmFormalParameter _parameter_2 = this._jvmTypesBuilder.toParameter(table, "app", this._typeReferenceBuilder.typeRef(MApplication.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2);
+        final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          _builder.append("super(parent,context,app);");
+          _builder.newLine();
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_1);
       };
       JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(table, _function);
       this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
@@ -437,65 +368,42 @@
   }
   
   public TableDatamart getDataMartTable(final Table table) {
-    TableOption _tabletype = table.getTabletype();
-    return this.getDataMartTable(_tabletype);
+    return this.getDataMartTable(table.getTabletype());
   }
   
   public TableDatamart getDataMartTable(final TableOption option) {
     boolean _matched = false;
+    if (option instanceof TableTable) {
+      _matched=true;
+      return ((TableTable)option).getSource();
+    }
     if (!_matched) {
-      if (option instanceof TableTable) {
+      if (option instanceof TableBean) {
         _matched=true;
-        return ((TableTable)option).getSource();
+        return ((TableBean)option).getSource();
       }
     }
     return null;
   }
   
   public TableDtoDatasource getDtoGridTable(final Table table) {
-    TableOption _tabletype = table.getTabletype();
-    return this.getDtoGridTable(_tabletype);
+    return this.getDtoGridTable(table.getTabletype());
   }
   
   public TableDtoDatasource getDtoGridTable(final TableOption option) {
     boolean _matched = false;
-    if (!_matched) {
-      if (option instanceof TableGrid) {
-        _matched=true;
-        TableDtoDatasource _source = ((TableGrid)option).getSource();
-        return ((TableDtoDatasource) _source);
-      }
+    if (option instanceof TableGrid) {
+      _matched=true;
+      TableDtoDatasource _source = ((TableGrid)option).getSource();
+      return ((TableDtoDatasource) _source);
     }
     return null;
   }
   
   public String getSourceDataMartRefName(final Table table) {
-    boolean _and = false;
-    boolean _and_1 = false;
-    TableDatamart _dataMartTable = this.getDataMartTable(table);
-    boolean _notEquals = (!Objects.equal(_dataMartTable, null));
-    if (!_notEquals) {
-      _and_1 = false;
-    } else {
-      TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
-      DatamartDefinition _datamartRef = _dataMartTable_1.getDatamartRef();
-      boolean _notEquals_1 = (!Objects.equal(_datamartRef, null));
-      _and_1 = _notEquals_1;
-    }
-    if (!_and_1) {
-      _and = false;
-    } else {
-      TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
-      DatamartDefinition _datamartRef_1 = _dataMartTable_2.getDatamartRef();
-      String _name = _datamartRef_1.getName();
-      boolean _notEquals_2 = (!Objects.equal(_name, null));
-      _and = _notEquals_2;
-    }
-    if (_and) {
-      TableDatamart _dataMartTable_3 = this.getDataMartTable(table);
-      DatamartDefinition _datamartRef_2 = _dataMartTable_3.getDatamartRef();
-      String _name_1 = _datamartRef_2.getName();
-      return _name_1.toString();
+    if ((((this.getDataMartTable(table) != null) && (this.getDataMartTable(table).getDatamartRef() != null)) && 
+      (this.getDataMartTable(table).getDatamartRef().getName() != null))) {
+      return this.getDataMartTable(table).getDatamartRef().getName().toString();
     } else {
       return null;
     }
@@ -506,340 +414,258 @@
    */
   public void toFields(final JvmDeclaredType type, final Table table) {
     JvmField field = null;
-    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Logger.class);
-    final Procedure1<JvmField> _function = new Procedure1<JvmField>() {
-      public void apply(final JvmField it) {
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            _builder.append("org.slf4j.LoggerFactory.getLogger(\"tables\")");
-            it.append(_builder);
-          }
-        };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setInitializer(it, _function);
-      }
+    final Procedure1<JvmField> _function = (JvmField it) -> {
+      final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("org.slf4j.LoggerFactory.getLogger(\"tables\")");
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setInitializer(it, _function_1);
     };
-    JvmField _field = this._jvmTypesBuilder.toField(table, "log", _typeRef, _function);
-    field = _field;
+    field = this._jvmTypesBuilder.toField(table, "log", this._typeReferenceBuilder.typeRef(Logger.class), _function);
     field.setStatic(true);
     field.setVisibility(JvmVisibility.PRIVATE);
     EList<JvmMember> _members = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members, field);
-    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(IEclipseContext.class);
-    final Procedure1<JvmField> _function_1 = new Procedure1<JvmField>() {
-      public void apply(final JvmField it) {
-        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-        JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-      }
+    final Procedure1<JvmField> _function_1 = (JvmField it) -> {
+      final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("false");
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setInitializer(it, _function_2);
     };
-    JvmField _field_1 = this._jvmTypesBuilder.toField(table, "context", _typeRef_1, _function_1);
-    field = _field_1;
+    field = this._jvmTypesBuilder.toField(table, "initDone", this._typeReferenceBuilder.typeRef(boolean.class), _function_1);
     EList<JvmMember> _members_1 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field);
-    JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(IUser.class);
-    final Procedure1<JvmField> _function_2 = new Procedure1<JvmField>() {
-      public void apply(final JvmField it) {
-        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-        JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-      }
+    final Procedure1<JvmField> _function_2 = (JvmField it) -> {
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
     };
-    JvmField _field_2 = this._jvmTypesBuilder.toField(table, "user", _typeRef_2, _function_2);
-    field = _field_2;
+    field = this._jvmTypesBuilder.toField(table, "eclipseContext", this._typeReferenceBuilder.typeRef(IEclipseContext.class), _function_2);
     EList<JvmMember> _members_2 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field);
-    JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(Integer.class);
-    JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(ArrayList.class, _typeRef_3);
-    JvmField _field_3 = this._jvmTypesBuilder.toField(table, "coordinateSystem", _typeRef_4);
-    field = _field_3;
+    final Procedure1<JvmField> _function_3 = (JvmField it) -> {
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+    };
+    field = this._jvmTypesBuilder.toField(table, "user", this._typeReferenceBuilder.typeRef(IUser.class), _function_3);
     EList<JvmMember> _members_3 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field);
-    JvmTypeReference _typeRef_5 = this._typeReferenceBuilder.typeRef(IDatamartFilterGenerator.class);
-    JvmField _field_4 = this._jvmTypesBuilder.toField(table, "filterGenerator", _typeRef_5);
-    field = _field_4;
+    final Procedure1<JvmField> _function_4 = (JvmField it) -> {
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+    };
+    field = this._jvmTypesBuilder.toField(table, "eventDispatcher", this._typeReferenceBuilder.typeRef(IEventDispatcher.class), _function_4);
     EList<JvmMember> _members_4 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field);
-    JvmTypeReference _typeRef_6 = this._typeReferenceBuilder.typeRef(IViewLayoutManager.class);
-    JvmField _field_5 = this._jvmTypesBuilder.toField(table, "layoutManager", _typeRef_6);
-    field = _field_5;
+    field = this._jvmTypesBuilder.toField(table, "coordinateSystem", this._typeReferenceBuilder.typeRef(ArrayList.class, this._typeReferenceBuilder.typeRef(Integer.class)));
     EList<JvmMember> _members_5 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field);
-    JvmTypeReference _typeRef_7 = this._typeReferenceBuilder.typeRef(IDSLMetadataService.class);
-    final Procedure1<JvmField> _function_3 = new Procedure1<JvmField>() {
-      public void apply(final JvmField it) {
-        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-        JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-      }
-    };
-    JvmField _field_6 = this._jvmTypesBuilder.toField(table, "dslMetadataService", _typeRef_7, _function_3);
-    field = _field_6;
+    field = this._jvmTypesBuilder.toField(table, "layoutManager", this._typeReferenceBuilder.typeRef(IViewLayoutManager.class));
     EList<JvmMember> _members_6 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_6, field);
-    JvmTypeReference _typeRef_8 = this._typeReferenceBuilder.typeRef(Locale.class);
-    JvmField _field_7 = this._jvmTypesBuilder.toField(table, "locale", _typeRef_8);
-    field = _field_7;
+    final Procedure1<JvmField> _function_5 = (JvmField it) -> {
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+    };
+    field = this._jvmTypesBuilder.toField(table, "dslMetadataService", this._typeReferenceBuilder.typeRef(IDSLMetadataService.class), _function_5);
     EList<JvmMember> _members_7 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_7, field);
-    String _sourceDataMartRefName = this.getSourceDataMartRefName(table);
-    boolean _notEquals = (!Objects.equal(_sourceDataMartRefName, null));
-    if (_notEquals) {
-      TableDatamart _dataMartTable = this.getDataMartTable(table);
-      DatamartDefinition _datamartRef = _dataMartTable.getDatamartRef();
-      EObject _eContainer = _datamartRef.eContainer();
-      QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(((DatamartPackage) _eContainer));
-      String packageName = _fullyQualifiedName.toString();
+    final Procedure1<JvmField> _function_6 = (JvmField it) -> {
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+    };
+    field = this._jvmTypesBuilder.toField(table, "blobService", this._typeReferenceBuilder.typeRef(IBlobService.class), _function_6);
+    EList<JvmMember> _members_8 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_8, field);
+    if (((this.getSourceDataMartRefName(table) != null) && (!this.isBean(table)))) {
+      EObject _eContainer = this.getDataMartTable(table).getDatamartRef().eContainer();
+      String packageName = this._iQualifiedNameProvider.getFullyQualifiedName(((DatamartPackage) _eContainer)).toString();
       StringConcatenation _builder = new StringConcatenation();
-      _builder.append(packageName, "");
+      _builder.append(packageName);
       _builder.append(".");
-      String _sourceDataMartRefName_1 = this.getSourceDataMartRefName(table);
-      _builder.append(_sourceDataMartRefName_1, "");
+      String _sourceDataMartRefName = this.getSourceDataMartRefName(table);
+      _builder.append(_sourceDataMartRefName);
       _builder.append("Datamart");
-      JvmTypeReference _typeRef_9 = this._typeReferenceBuilder.typeRef(_builder.toString());
-      JvmField _field_8 = this._jvmTypesBuilder.toField(table, "datamartClass", _typeRef_9);
-      field = _field_8;
-      EList<JvmMember> _members_8 = type.getMembers();
-      this._jvmTypesBuilder.<JvmField>operator_add(_members_8, field);
-    }
-    TableOption _tabletype = table.getTabletype();
-    if ((_tabletype instanceof TableGrid)) {
-      JvmTypeReference _typeRef_10 = this._typeReferenceBuilder.typeRef(IGridSourceFacade.class);
-      final Procedure1<JvmField> _function_4 = new Procedure1<JvmField>() {
-        public void apply(final JvmField it) {
-          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-          JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-        }
-      };
-      JvmField _field_9 = this._jvmTypesBuilder.toField(table, "gridSourceService", _typeRef_10, _function_4);
-      field = _field_9;
+      field = this._jvmTypesBuilder.toField(table, "datamartInstance", 
+        this._typeReferenceBuilder.typeRef(_builder.toString()));
       EList<JvmMember> _members_9 = type.getMembers();
       this._jvmTypesBuilder.<JvmField>operator_add(_members_9, field);
-      JvmTypeReference _typeRef_11 = this._typeReferenceBuilder.typeRef(IECViewSessionHelper.class);
-      final Procedure1<JvmField> _function_5 = new Procedure1<JvmField>() {
-        public void apply(final JvmField it) {
-          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-          JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-        }
-      };
-      JvmField _field_10 = this._jvmTypesBuilder.toField(table, "ecviewPropsProvider", _typeRef_11, _function_5);
-      field = _field_10;
+      field = this._jvmTypesBuilder.toField(table, "filterGenerator", this._typeReferenceBuilder.typeRef(IDatamartFilterGenerator.class));
       EList<JvmMember> _members_10 = type.getMembers();
       this._jvmTypesBuilder.<JvmField>operator_add(_members_10, field);
-      JvmTypeReference _typeRef_12 = this._typeReferenceBuilder.typeRef(ITypeProviderService.class);
-      final Procedure1<JvmField> _function_6 = new Procedure1<JvmField>() {
-        public void apply(final JvmField it) {
-          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-          JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-        }
+    }
+    boolean _isGrid = this.isGrid(table);
+    if (_isGrid) {
+      final Procedure1<JvmField> _function_7 = (JvmField it) -> {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
       };
-      JvmField _field_11 = this._jvmTypesBuilder.toField(table, "bundleSpaceTypeProvider", _typeRef_12, _function_6);
-      field = _field_11;
+      field = this._jvmTypesBuilder.toField(table, "gridSourceService", this._typeReferenceBuilder.typeRef(IGridSourceFacade.class), _function_7);
       EList<JvmMember> _members_11 = type.getMembers();
       this._jvmTypesBuilder.<JvmField>operator_add(_members_11, field);
-      JvmTypeReference _typeRef_13 = this._typeReferenceBuilder.typeRef("org.eclipse.osbp.infogrid.vaaclipse.SingleInfoGridComponent");
-      JvmField _field_12 = this._jvmTypesBuilder.toField(table, "grid", _typeRef_13);
-      field = _field_12;
+      final Procedure1<JvmField> _function_8 = (JvmField it) -> {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      };
+      field = this._jvmTypesBuilder.toField(table, "ecviewPropsProvider", this._typeReferenceBuilder.typeRef(IECViewSessionHelper.class), _function_8);
       EList<JvmMember> _members_12 = type.getMembers();
       this._jvmTypesBuilder.<JvmField>operator_add(_members_12, field);
+      final Procedure1<JvmField> _function_9 = (JvmField it) -> {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      };
+      field = this._jvmTypesBuilder.toField(table, "bundleSpaceTypeProvider", this._typeReferenceBuilder.typeRef(ITypeProviderService.class), _function_9);
+      EList<JvmMember> _members_13 = type.getMembers();
+      this._jvmTypesBuilder.<JvmField>operator_add(_members_13, field);
+      field = this._jvmTypesBuilder.toField(table, "grid", this._typeReferenceBuilder.typeRef("org.eclipse.osbp.infogrid.vaaclipse.SingleInfoGridComponent"));
+      EList<JvmMember> _members_14 = type.getMembers();
+      this._jvmTypesBuilder.<JvmField>operator_add(_members_14, field);
     }
-    JvmTypeReference _typeRef_14 = this._typeReferenceBuilder.typeRef(Property.ValueChangeListener.class);
-    JvmField _field_13 = this._jvmTypesBuilder.toField(table, "filterChangeListener", _typeRef_14);
-    field = _field_13;
-    EList<JvmMember> _members_13 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_13, field);
-    JvmTypeReference _typeRef_15 = this._typeReferenceBuilder.typeRef(Refresher.class);
-    JvmField _field_14 = this._jvmTypesBuilder.toField(table, "tableSelectDelay", _typeRef_15);
-    field = _field_14;
-    EList<JvmMember> _members_14 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_14, field);
-    JvmTypeReference _typeRef_16 = this._typeReferenceBuilder.typeRef(Refresher.class);
-    JvmField _field_15 = this._jvmTypesBuilder.toField(table, "tableRefresher", _typeRef_16);
-    field = _field_15;
-    EList<JvmMember> _members_15 = type.getMembers();
-    this._jvmTypesBuilder.<JvmField>operator_add(_members_15, field);
-    JvmTypeReference _typeRef_17 = this._typeReferenceBuilder.typeRef(com.vaadin.ui.Component.class);
-    JvmField _field_16 = this._jvmTypesBuilder.toField(table, "dataComponent", _typeRef_17);
-    field = _field_16;
+    boolean _isBean = this.isBean(table);
+    if (_isBean) {
+      final Procedure1<JvmField> _function_10 = (JvmField it) -> {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      };
+      field = this._jvmTypesBuilder.toField(table, "factory", this._typeReferenceBuilder.typeRef(IBeanSearchServiceFactory.class), _function_10);
+      EList<JvmMember> _members_15 = type.getMembers();
+      this._jvmTypesBuilder.<JvmField>operator_add(_members_15, field);
+    }
+    field = this._jvmTypesBuilder.toField(table, "tableSelectDelay", this._typeReferenceBuilder.typeRef(Refresher.class));
     EList<JvmMember> _members_16 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_16, field);
-    JvmTypeReference _typeRef_18 = this._typeReferenceBuilder.typeRef(String.class);
-    JvmTypeReference _typeRef_19 = this._typeReferenceBuilder.typeRef(PropertyLookup.class);
-    JvmTypeReference _typeRef_20 = this._typeReferenceBuilder.typeRef(HashMap.class, _typeRef_18, _typeRef_19);
-    JvmField _field_17 = this._jvmTypesBuilder.toField(table, "propertyLookupMap", _typeRef_20);
-    field = _field_17;
+    field = this._jvmTypesBuilder.toField(table, "tableRefresher", this._typeReferenceBuilder.typeRef(Refresher.class));
     EList<JvmMember> _members_17 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_17, field);
-    JvmTypeReference _typeRef_21 = this._typeReferenceBuilder.typeRef(CellSetIndexedContainer.class);
-    JvmField _field_18 = this._jvmTypesBuilder.toField(table, "dataSourceContainer", _typeRef_21);
-    field = _field_18;
+    field = this._jvmTypesBuilder.toField(table, "dataComponent", this._typeReferenceBuilder.typeRef(com.vaadin.ui.Component.class));
     EList<JvmMember> _members_18 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_18, field);
-    JvmTypeReference _typeRef_22 = this._typeReferenceBuilder.typeRef(OperativeDtoContainer.class);
-    JvmField _field_19 = this._jvmTypesBuilder.toField(table, "operativeDtoContainer", _typeRef_22);
-    field = _field_19;
+    field = this._jvmTypesBuilder.toField(table, "attributeLookupMap", 
+      this._typeReferenceBuilder.typeRef(HashMap.class, this._typeReferenceBuilder.typeRef(String.class), this._typeReferenceBuilder.typeRef(PropertyLookup.class)));
     EList<JvmMember> _members_19 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_19, field);
-    JvmTypeReference _typeRef_23 = this._typeReferenceBuilder.typeRef(CellSetFilterTable.class);
-    JvmTypeReference _typeRef_24 = this._typeReferenceBuilder.typeRef(ArrayList.class, _typeRef_23);
-    JvmField _field_20 = this._jvmTypesBuilder.toField(table, "tables", _typeRef_24);
-    field = _field_20;
+    field = this._jvmTypesBuilder.toField(table, "tabSheets", 
+      this._typeReferenceBuilder.typeRef(HashMap.class, this._typeReferenceBuilder.typeRef(com.vaadin.ui.Component.class), this._typeReferenceBuilder.typeRef(ArrayList.class, this._typeReferenceBuilder.typeRef(String.class))));
     EList<JvmMember> _members_20 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_20, field);
-    JvmTypeReference _typeRef_25 = this._typeReferenceBuilder.typeRef(IEventBroker.class);
-    final Procedure1<JvmField> _function_7 = new Procedure1<JvmField>() {
-      public void apply(final JvmField it) {
-        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-        JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-      }
-    };
-    JvmField _field_21 = this._jvmTypesBuilder.toField(table, "eventBroker", _typeRef_25, _function_7);
-    field = _field_21;
+    boolean _isBean_1 = this.isBean(table);
+    boolean _not = (!_isBean_1);
+    if (_not) {
+      field = this._jvmTypesBuilder.toField(table, "dataSourceContainer", this._typeReferenceBuilder.typeRef(CellSetIndexedContainer.class));
+    } else {
+      field = this._jvmTypesBuilder.toField(table, "dataSourceContainer", this._typeReferenceBuilder.typeRef(BeanServiceLazyLoadingContainer.class, this._typeReferenceBuilder.wildcard()));
+    }
     EList<JvmMember> _members_21 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_21, field);
-    JvmTypeReference _typeRef_26 = this._typeReferenceBuilder.typeRef(IPresentationEngine.class);
-    final Procedure1<JvmField> _function_8 = new Procedure1<JvmField>() {
-      public void apply(final JvmField it) {
-        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-        JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-      }
-    };
-    JvmField _field_22 = this._jvmTypesBuilder.toField(table, "renderingEngine", _typeRef_26, _function_8);
-    field = _field_22;
+    field = this._jvmTypesBuilder.toField(table, "operativeDtoContainer", this._typeReferenceBuilder.typeRef(OperativeDtoContainer.class));
     EList<JvmMember> _members_22 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_22, field);
-    JvmTypeReference _typeRef_27 = this._typeReferenceBuilder.typeRef(IThemeResourceService.class);
-    final Procedure1<JvmField> _function_9 = new Procedure1<JvmField>() {
-      public void apply(final JvmField it) {
-        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-        JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-      }
-    };
-    JvmField _field_23 = this._jvmTypesBuilder.toField(table, "themeResourceService", _typeRef_27, _function_9);
-    field = _field_23;
+    boolean _isBean_2 = this.isBean(table);
+    boolean _not_1 = (!_isBean_2);
+    if (_not_1) {
+      field = this._jvmTypesBuilder.toField(table, "tables", 
+        this._typeReferenceBuilder.typeRef(ArrayList.class, this._typeReferenceBuilder.typeRef(CellSetFilterTable.class)));
+    } else {
+      field = this._jvmTypesBuilder.toField(table, "table", 
+        this._typeReferenceBuilder.typeRef(BeanFilterTable.class));
+    }
     EList<JvmMember> _members_23 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_23, field);
-    JvmTypeReference _typeRef_28 = this._typeReferenceBuilder.typeRef(EventHandler.class);
-    JvmField _field_24 = this._jvmTypesBuilder.toField(table, "refreshView", _typeRef_28);
-    field = _field_24;
+    final Procedure1<JvmField> _function_11 = (JvmField it) -> {
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+    };
+    field = this._jvmTypesBuilder.toField(table, "eventBroker", this._typeReferenceBuilder.typeRef(IEventBroker.class), _function_11);
     EList<JvmMember> _members_24 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_24, field);
-    JvmTypeReference _typeRef_29 = this._typeReferenceBuilder.typeRef(EventHandler.class);
-    JvmField _field_25 = this._jvmTypesBuilder.toField(table, "delegatedTask", _typeRef_29);
-    field = _field_25;
+    final Procedure1<JvmField> _function_12 = (JvmField it) -> {
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+    };
+    field = this._jvmTypesBuilder.toField(table, "renderingEngine", this._typeReferenceBuilder.typeRef(IPresentationEngine.class), _function_12);
     EList<JvmMember> _members_25 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_25, field);
-    TableOption _tabletype_1 = table.getTabletype();
-    boolean _isEmbedded = _tabletype_1.isEmbedded();
-    boolean _not = (!_isEmbedded);
-    if (_not) {
-      JvmTypeReference _typeRef_30 = this._typeReferenceBuilder.typeRef(EventHandler.class);
-      JvmField _field_26 = this._jvmTypesBuilder.toField(table, "dispatchAction", _typeRef_30);
-      field = _field_26;
-      EList<JvmMember> _members_26 = type.getMembers();
-      this._jvmTypesBuilder.<JvmField>operator_add(_members_26, field);
-    }
-    JvmTypeReference _typeRef_31 = this._typeReferenceBuilder.typeRef(TableFilterDecorator.class);
-    JvmField _field_27 = this._jvmTypesBuilder.toField(table, "tableFilterDecorator", _typeRef_31);
-    field = _field_27;
+    final Procedure1<JvmField> _function_13 = (JvmField it) -> {
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+    };
+    field = this._jvmTypesBuilder.toField(table, "themeResourceService", this._typeReferenceBuilder.typeRef(IThemeResourceService.class), _function_13);
+    EList<JvmMember> _members_26 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_26, field);
+    field = this._jvmTypesBuilder.toField(table, "delegatedTask", this._typeReferenceBuilder.typeRef(EventHandler.class));
     EList<JvmMember> _members_27 = type.getMembers();
     this._jvmTypesBuilder.<JvmField>operator_add(_members_27, field);
+    field = this._jvmTypesBuilder.toField(table, "tableFilterDecorator", this._typeReferenceBuilder.typeRef(TableFilterDecorator.class));
+    EList<JvmMember> _members_28 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_28, field);
     boolean _isTask = this.isTask(table);
     if (_isTask) {
-      JvmTypeReference _typeRef_32 = this._typeReferenceBuilder.typeRef(IBPMTaskClient.class);
-      final Procedure1<JvmField> _function_10 = new Procedure1<JvmField>() {
-        public void apply(final JvmField it) {
-          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-          JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-        }
+      final Procedure1<JvmField> _function_14 = (JvmField it) -> {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        EList<JvmAnnotationReference> _annotations_1 = it.getAnnotations();
+        JvmAnnotationReference _annotationRef_1 = this._annotationTypesBuilder.annotationRef(Optional.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations_1, _annotationRef_1);
       };
-      JvmField _field_28 = this._jvmTypesBuilder.toField(table, "taskClient", _typeRef_32, _function_10);
-      field = _field_28;
-      EList<JvmMember> _members_28 = type.getMembers();
-      this._jvmTypesBuilder.<JvmField>operator_add(_members_28, field);
-      JvmTypeReference _typeRef_33 = this._typeReferenceBuilder.typeRef(Long.class);
-      JvmField _field_29 = this._jvmTypesBuilder.toField(table, "currentTaskId", _typeRef_33);
-      field = _field_29;
+      field = this._jvmTypesBuilder.toField(table, "taskClient", this._typeReferenceBuilder.typeRef(IBPMTaskClient.class), _function_14);
       EList<JvmMember> _members_29 = type.getMembers();
       this._jvmTypesBuilder.<JvmField>operator_add(_members_29, field);
-      JvmTypeReference _typeRef_34 = this._typeReferenceBuilder.typeRef(Button.class);
-      JvmTypeReference _typeRef_35 = this._typeReferenceBuilder.typeRef(ArrayList.class, _typeRef_34);
-      JvmField _field_30 = this._jvmTypesBuilder.toField(table, "taskButtons", _typeRef_35);
-      field = _field_30;
+      field = this._jvmTypesBuilder.toField(table, "currentTaskId", this._typeReferenceBuilder.typeRef(Long.class));
       EList<JvmMember> _members_30 = type.getMembers();
       this._jvmTypesBuilder.<JvmField>operator_add(_members_30, field);
-    }
-    TableOption _tabletype_2 = table.getTabletype();
-    if ((_tabletype_2 instanceof TableSelection)) {
-      JvmTypeReference _typeRef_36 = this._typeReferenceBuilder.typeRef(IBPMTaskClient.class);
-      final Procedure1<JvmField> _function_11 = new Procedure1<JvmField>() {
-        public void apply(final JvmField it) {
-          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-          JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-        }
-      };
-      JvmField _field_31 = this._jvmTypesBuilder.toField(table, "taskClient", _typeRef_36, _function_11);
-      field = _field_31;
+      field = this._jvmTypesBuilder.toField(table, "taskButtons", 
+        this._typeReferenceBuilder.typeRef(ArrayList.class, this._typeReferenceBuilder.typeRef(Button.class)));
       EList<JvmMember> _members_31 = type.getMembers();
       this._jvmTypesBuilder.<JvmField>operator_add(_members_31, field);
-      JvmTypeReference _typeRef_37 = this._typeReferenceBuilder.typeRef(CheckboxSelectionCellSetFilterTable.class);
-      JvmField _field_32 = this._jvmTypesBuilder.toField(table, "selectTable", _typeRef_37);
-      field = _field_32;
+    }
+    boolean _isSelection = this.isSelection(table);
+    if (_isSelection) {
+      final Procedure1<JvmField> _function_15 = (JvmField it) -> {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Inject.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        EList<JvmAnnotationReference> _annotations_1 = it.getAnnotations();
+        JvmAnnotationReference _annotationRef_1 = this._annotationTypesBuilder.annotationRef(Optional.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations_1, _annotationRef_1);
+      };
+      field = this._jvmTypesBuilder.toField(table, "taskClient", this._typeReferenceBuilder.typeRef(IBPMTaskClient.class), _function_15);
       EList<JvmMember> _members_32 = type.getMembers();
       this._jvmTypesBuilder.<JvmField>operator_add(_members_32, field);
-    }
-    boolean _and = false;
-    boolean _and_1 = false;
-    TableOption _tabletype_3 = table.getTabletype();
-    boolean _isEmbedded_1 = _tabletype_3.isEmbedded();
-    boolean _not_1 = (!_isEmbedded_1);
-    if (!_not_1) {
-      _and_1 = false;
-    } else {
-      TableOption _tabletype_4 = table.getTabletype();
-      ActionToolbar _toolbar = _tabletype_4.getToolbar();
-      boolean _notEquals_1 = (!Objects.equal(_toolbar, null));
-      _and_1 = _notEquals_1;
-    }
-    if (!_and_1) {
-      _and = false;
-    } else {
-      TableOption _tabletype_5 = table.getTabletype();
-      ActionToolbar _toolbar_1 = _tabletype_5.getToolbar();
-      EObject _eContainer_1 = _toolbar_1.eContainer();
-      boolean _notEquals_2 = (!Objects.equal(_eContainer_1, null));
-      _and = _notEquals_2;
-    }
-    if (_and) {
-      TableOption _tabletype_6 = table.getTabletype();
-      ActionToolbar _toolbar_2 = _tabletype_6.getToolbar();
-      EObject _eContainer_2 = _toolbar_2.eContainer();
-      QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(((ActionPackage) _eContainer_2));
-      String packageName_1 = _fullyQualifiedName_1.toString();
-      StringConcatenation _builder_1 = new StringConcatenation();
-      _builder_1.append(packageName_1, "");
-      _builder_1.append(".");
-      TableOption _tabletype_7 = table.getTabletype();
-      ActionToolbar _toolbar_3 = _tabletype_7.getToolbar();
-      String _name = _toolbar_3.getName();
-      String _string = _name.toString();
-      String _firstUpper = StringExtensions.toFirstUpper(_string);
-      _builder_1.append(_firstUpper, "");
-      _builder_1.append("Action");
-      JvmTypeReference _typeRef_38 = this._typeReferenceBuilder.typeRef(_builder_1.toString());
-      JvmField _field_33 = this._jvmTypesBuilder.toField(table, "toolbarClass", _typeRef_38);
-      field = _field_33;
+      field = this._jvmTypesBuilder.toField(table, "selectTable", this._typeReferenceBuilder.typeRef(CheckboxSelectionCellSetFilterTable.class));
       EList<JvmMember> _members_33 = type.getMembers();
       this._jvmTypesBuilder.<JvmField>operator_add(_members_33, field);
     }
+    if ((((!table.getTabletype().isEmbedded()) && (table.getTabletype().getToolbar() != null)) && (table.getTabletype().getToolbar().eContainer() != null))) {
+      EObject _eContainer_1 = table.getTabletype().getToolbar().eContainer();
+      String packageName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(((ActionPackage) _eContainer_1)).toString();
+      field = this._jvmTypesBuilder.toField(table, "toolbarUUID", this._typeReferenceBuilder.typeRef(String.class));
+      EList<JvmMember> _members_34 = type.getMembers();
+      this._jvmTypesBuilder.<JvmField>operator_add(_members_34, field);
+      StringConcatenation _builder_1 = new StringConcatenation();
+      _builder_1.append(packageName_1);
+      _builder_1.append(".");
+      String _firstUpper = StringExtensions.toFirstUpper(table.getTabletype().getToolbar().getName().toString());
+      _builder_1.append(_firstUpper);
+      _builder_1.append("Toolbar");
+      field = this._jvmTypesBuilder.toField(table, "toolbarClass", this._typeReferenceBuilder.typeRef(_builder_1.toString()));
+      EList<JvmMember> _members_35 = type.getMembers();
+      this._jvmTypesBuilder.<JvmField>operator_add(_members_35, field);
+    }
   }
   
   /**
@@ -847,10 +673,8 @@
    */
   public void toGetterSetter(final JvmDeclaredType type, final Table table) {
     JvmOperation operation = null;
-    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Integer.class);
-    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(ArrayList.class, _typeRef);
-    JvmOperation _getter = this._jvmTypesBuilder.toGetter(table, "coordinateSystem", _typeRef_1);
-    operation = _getter;
+    operation = this._jvmTypesBuilder.toGetter(table, "coordinateSystem", 
+      this._typeReferenceBuilder.typeRef(ArrayList.class, this._typeReferenceBuilder.typeRef(Integer.class)));
     operation.setVisibility(JvmVisibility.PUBLIC);
     EList<JvmMember> _members = type.getMembers();
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members, operation);
@@ -860,542 +684,835 @@
    * <p>build the methods.</p>
    */
   public void toOperations(final JvmDeclaredType type, final TablePackage pkg, final Table table) {
-    EList<JvmMember> _members = type.getMembers();
-    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(DerivedCellSet.class);
-    final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
-      public void apply(final JvmOperation it) {
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            _builder.append("operativeDtoContainer = null;");
-            _builder.newLine();
-            {
-              TableDatamart _dataMartTable = TableDSLJvmModelInferrer.this.getDataMartTable(table);
-              boolean _notEquals = (!Objects.equal(_dataMartTable, null));
-              if (_notEquals) {
-                _builder.append("DerivedCellSet cellSet = datamartClass.getResults(");
-                _builder.newLine();
-                _builder.append("\t");
-                {
-                  boolean _isTask = TableDSLJvmModelInferrer.this.isTask(table);
-                  if (_isTask) {
-                    _builder.append("taskClient, ");
-                  }
-                }
-                _builder.append("user,");
-                _builder.newLineIfNotEmpty();
-                _builder.append("\t");
-                _builder.append("filterGenerator.getFilter(");
-                TableDatamart _dataMartTable_1 = TableDSLJvmModelInferrer.this.getDataMartTable(table);
-                DatamartDefinition _datamartRef = _dataMartTable_1.getDatamartRef();
-                DatamartSource _source = _datamartRef.getSource();
-                boolean _booleanValue = Boolean.valueOf((_source instanceof DatamartCube)).booleanValue();
-                String _string = Boolean.valueOf(_booleanValue).toString();
-                _builder.append(_string, "\t");
-                _builder.append(")");
-                _builder.newLineIfNotEmpty();
-                _builder.append("\t");
-                {
-                  boolean _isTask_1 = TableDSLJvmModelInferrer.this.isTask(table);
-                  boolean _not = (!_isTask_1);
-                  if (_not) {
-                    {
-                      boolean _or = false;
-                      TableOption _tabletype = table.getTabletype();
-                      if ((_tabletype instanceof TableSelection)) {
-                        _or = true;
-                      } else {
-                        TableOption _tabletype_1 = table.getTabletype();
-                        boolean _isEmbedded = _tabletype_1.isEmbedded();
-                        _or = _isEmbedded;
-                      }
-                      if (_or) {
-                        _builder.append(", null, null");
-                      } else {
-                        _builder.append(", getTaskOperativeDtoClass(), getTaskInitialOperativeDtos()");
-                      }
+    boolean _isBean = this.isBean(table);
+    boolean _not = (!_isBean);
+    if (_not) {
+      EList<JvmMember> _members = type.getMembers();
+      final Procedure1<JvmOperation> _function = (JvmOperation it) -> {
+        final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          _builder.append("operativeDtoContainer = null;");
+          _builder.newLine();
+          {
+            TableDatamart _dataMartTable = this.getDataMartTable(table);
+            boolean _tripleNotEquals = (_dataMartTable != null);
+            if (_tripleNotEquals) {
+              _builder.append("DerivedCellSet cellSet = datamartInstance.getResults(");
+              {
+                boolean _isTask = this.isTask(table);
+                if (_isTask) {
+                } else {
+                  {
+                    if ((this.isSelection(table) || table.getTabletype().isEmbedded())) {
+                      _builder.append("null, null");
+                    } else {
+                      _builder.append("getTaskOperativeDtoClass(), getTaskInitialOperativeDtos()");
                     }
                   }
                 }
-                _builder.newLineIfNotEmpty();
-                _builder.append(");");
-                _builder.newLine();
-              } else {
-                _builder.append("DerivedCellSet cellSet = null;");
-                _builder.newLine();
               }
+              _builder.append(");");
+              _builder.newLineIfNotEmpty();
+            } else {
+              _builder.append("DerivedCellSet cellSet = null;");
+              _builder.newLine();
             }
-            _builder.append("if\t(cellSet != null) {");
+          }
+          _builder.append("if\t(cellSet != null) {");
+          _builder.newLine();
+          _builder.append("\t");
+          _builder.append("operativeDtoContainer = cellSet.getOperativeDtoContainer();");
+          _builder.newLine();
+          _builder.append("}");
+          _builder.newLine();
+          _builder.append("return cellSet;");
+          _builder.newLine();
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_1);
+      };
+      JvmOperation _method = this._jvmTypesBuilder.toMethod(table, "getCellSet", this._typeReferenceBuilder.typeRef(DerivedCellSet.class), _function);
+      this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+    }
+    EList<JvmMember> _members_1 = type.getMembers();
+    final Procedure1<JvmOperation> _function_1 = (JvmOperation it) -> {
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Focus.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      boolean _isBean_1 = this.isBean(table);
+      if (_isBean_1) {
+        final Procedure1<ITreeAppendable> _function_2 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          _builder.append("if(table != null) {");
+          _builder.newLine();
+          _builder.append("\t");
+          _builder.append("table.focus();");
+          _builder.newLine();
+          _builder.append("}");
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_2);
+      } else {
+        boolean _isGrid = this.isGrid(table);
+        if (_isGrid) {
+          final Procedure1<ITreeAppendable> _function_3 = (ITreeAppendable it_1) -> {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("if(grid != null) {");
             _builder.newLine();
             _builder.append("\t");
-            _builder.append("operativeDtoContainer = cellSet.getOperativeDtoContainer();");
+            _builder.append("grid.focus();");
+            _builder.newLine();
+            _builder.append("}");
+            it_1.append(_builder);
+          };
+          this._jvmTypesBuilder.setBody(it, _function_3);
+        } else {
+          final Procedure1<ITreeAppendable> _function_4 = (ITreeAppendable it_1) -> {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("if(!tables.isEmpty()) {");
+            _builder.newLine();
+            _builder.append("\t");
+            _builder.append("tables.get(0).focus();");
+            _builder.newLine();
+            _builder.append("}");
+            it_1.append(_builder);
+          };
+          this._jvmTypesBuilder.setBody(it, _function_4);
+        }
+      }
+    };
+    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(table, "setFocus", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_1);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+    EList<JvmMember> _members_2 = type.getMembers();
+    final Procedure1<JvmOperation> _function_2 = (JvmOperation it) -> {
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "event", this._typeReferenceBuilder.typeRef(ClientConnector.AttachEvent.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      final Procedure1<ITreeAppendable> _function_3 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("user.addUserLocaleListener(this);");
+        _builder.newLine();
+        _builder.append("eventDispatcher.addEventReceiver(this);");
+        _builder.newLine();
+        {
+          boolean _isTask = this.isTask(table);
+          if (_isTask) {
+            _builder.append("if(taskClient != null) {");
+            _builder.newLine();
+            _builder.append("\t");
+            _builder.append("taskClient.subscribeTaskEventNotification(this);");
+            _builder.newLine();
+            _builder.append("\t");
+            _builder.append("taskClient.subscribeProcessCompletedEventNotification(this);");
             _builder.newLine();
             _builder.append("}");
             _builder.newLine();
-            _builder.append("return cellSet;");
-            _builder.newLine();
-            it.append(_builder);
           }
-        };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-      }
-    };
-    JvmOperation _method = this._jvmTypesBuilder.toMethod(table, "getCellSet", _typeRef, _function);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
-    EList<JvmMember> _members_1 = type.getMembers();
-    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-    final Procedure1<JvmOperation> _function_1 = new Procedure1<JvmOperation>() {
-      public void apply(final JvmOperation it) {
-        EList<JvmFormalParameter> _parameters = it.getParameters();
-        JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(VerticalLayout.class);
-        JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "parent", _typeRef);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-        TableOption _tabletype = table.getTabletype();
-        boolean _isEmbedded = _tabletype.isEmbedded();
-        if (_isEmbedded) {
-          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-          JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
         }
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            String _createView = TableDSLJvmModelInferrer.this.createView(table, pkg);
-            _builder.append(_createView, "");
-            it.append(_builder);
+        {
+          if (((!this.isGrid(table)) && (!this.isBean(table)))) {
+            _builder.append("filterGenerator.addFilterChangeListener(this);");
+            _builder.newLine();
           }
-        };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-      }
+        }
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_3);
     };
-    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(table, "createView", _typeRef_1, _function_1);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
-    EList<JvmMember> _members_2 = type.getMembers();
-    JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-    final Procedure1<JvmOperation> _function_2 = new Procedure1<JvmOperation>() {
-      public void apply(final JvmOperation it) {
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            String _createComponents = TableDSLJvmModelInferrer.this.createComponents(table);
-            _builder.append(_createComponents, "");
-            it.append(_builder);
-          }
-        };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-      }
-    };
-    JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(table, "createComponents", _typeRef_2, _function_2);
+    JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(table, "attach", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_2);
     this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _method_2);
+    EList<JvmMember> _members_3 = type.getMembers();
+    final Procedure1<JvmOperation> _function_3 = (JvmOperation it) -> {
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "event", this._typeReferenceBuilder.typeRef(ClientConnector.DetachEvent.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      final Procedure1<ITreeAppendable> _function_4 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("user.removeUserLocaleListener(this);");
+        _builder.newLine();
+        _builder.append("eventDispatcher.removeEventReceiver(this);");
+        _builder.newLine();
+        {
+          boolean _isTask = this.isTask(table);
+          if (_isTask) {
+            _builder.append("if(taskClient != null) {");
+            _builder.newLine();
+            _builder.append("\t");
+            _builder.append("taskClient.unsubscribeTaskEventNotification(this);");
+            _builder.newLine();
+            _builder.append("\t");
+            _builder.append("taskClient.unsubscribeProcessCompletedEventNotification(this);");
+            _builder.newLine();
+            _builder.append("}");
+            _builder.newLine();
+          }
+        }
+        {
+          if (((!this.isGrid(table)) && (!this.isBean(table)))) {
+            _builder.append("filterGenerator.removeFilterChangeListener(this);");
+            _builder.newLine();
+          }
+        }
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_4);
+    };
+    JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(table, "detach", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_3);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3);
+    EList<JvmMember> _members_4 = type.getMembers();
+    final Procedure1<JvmOperation> _function_4 = (JvmOperation it) -> {
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "parent", this._typeReferenceBuilder.typeRef(VerticalLayout.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      boolean _isEmbedded = table.getTabletype().isEmbedded();
+      if (_isEmbedded) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+      final Procedure1<ITreeAppendable> _function_5 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        String _createView = this.createView(table, pkg);
+        _builder.append(_createView);
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_5);
+    };
+    JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(table, "createView", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_4);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _method_4);
+    EList<JvmMember> _members_5 = type.getMembers();
+    final Procedure1<JvmOperation> _function_5 = (JvmOperation it) -> {
+      final Procedure1<ITreeAppendable> _function_6 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        String _createComponents = this.createComponents(table);
+        _builder.append(_createComponents);
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_6);
+    };
+    JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(table, "createComponents", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_5);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _method_5);
     TableOption _tabletype = table.getTabletype();
     boolean _matched = false;
+    if (_tabletype instanceof TableTable) {
+      _matched=true;
+      EList<JvmMember> _members_6 = type.getMembers();
+      final Procedure1<JvmOperation> _function_6 = (JvmOperation it) -> {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "cellSet", this._typeReferenceBuilder.typeRef(DerivedCellSet.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+        JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(table, "axisNo", this._typeReferenceBuilder.typeRef(Integer.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+        final Procedure1<ITreeAppendable> _function_7 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          String _createTabSheet = this.createTabSheet(table);
+          _builder.append(_createTabSheet);
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_7);
+      };
+      JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(table, "createTabSheet", this._typeReferenceBuilder.typeRef(com.vaadin.ui.Component.class), _function_6);
+      this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _method_6);
+      EList<JvmMember> _members_7 = type.getMembers();
+      final Procedure1<JvmOperation> _function_7 = (JvmOperation it) -> {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "cellSet", this._typeReferenceBuilder.typeRef(DerivedCellSet.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        final Procedure1<ITreeAppendable> _function_8 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          String _createTable = this.createTable(table);
+          _builder.append(_createTable);
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_8);
+      };
+      JvmOperation _method_7 = this._jvmTypesBuilder.toMethod(table, "createTable", this._typeReferenceBuilder.typeRef(com.vaadin.ui.Component.class), _function_7);
+      this._jvmTypesBuilder.<JvmOperation>operator_add(_members_7, _method_7);
+      EList<JvmMember> _members_8 = type.getMembers();
+      final Procedure1<JvmOperation> _function_8 = (JvmOperation it) -> {
+        final Procedure1<ITreeAppendable> _function_9 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          String _dataRefresh = this.dataRefresh(table);
+          _builder.append(_dataRefresh);
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_9);
+      };
+      JvmOperation _method_8 = this._jvmTypesBuilder.toMethod(table, "dataRefresh", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_8);
+      this._jvmTypesBuilder.<JvmOperation>operator_add(_members_8, _method_8);
+    }
     if (!_matched) {
-      if (_tabletype instanceof TableTable) {
+      if (_tabletype instanceof TableBean) {
         _matched=true;
-        EList<JvmMember> _members_3 = type.getMembers();
-        JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(com.vaadin.ui.Component.class);
-        final Procedure1<JvmOperation> _function_3 = new Procedure1<JvmOperation>() {
-          public void apply(final JvmOperation it) {
-            EList<JvmTypeReference> _exceptions = it.getExceptions();
-            JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(DerivedOlapException.class);
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
-            EList<JvmFormalParameter> _parameters = it.getParameters();
-            JvmTypeReference _typeRef_1 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(DerivedCellSet.class);
-            JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "cellSet", _typeRef_1);
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-            EList<JvmFormalParameter> _parameters_1 = it.getParameters();
-            JvmTypeReference _typeRef_2 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(Integer.class);
-            JvmFormalParameter _parameter_1 = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "axisNo", _typeRef_2);
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
-            final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-              public void apply(final ITreeAppendable it) {
-                StringConcatenation _builder = new StringConcatenation();
-                String _createTabSheet = TableDSLJvmModelInferrer.this.createTabSheet(table);
-                _builder.append(_createTabSheet, "");
-                it.append(_builder);
-              }
-            };
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-          }
+        EList<JvmMember> _members_6 = type.getMembers();
+        final Procedure1<JvmOperation> _function_6 = (JvmOperation it) -> {
+          final Procedure1<ITreeAppendable> _function_7 = (ITreeAppendable it_1) -> {
+            StringConcatenation _builder = new StringConcatenation();
+            String _createTable = this.createTable(table);
+            _builder.append(_createTable);
+            it_1.append(_builder);
+          };
+          this._jvmTypesBuilder.setBody(it, _function_7);
         };
-        JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(table, "createTabSheet", _typeRef_3, _function_3);
-        this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3);
-        EList<JvmMember> _members_4 = type.getMembers();
-        JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(com.vaadin.ui.Component.class);
-        final Procedure1<JvmOperation> _function_4 = new Procedure1<JvmOperation>() {
-          public void apply(final JvmOperation it) {
-            EList<JvmTypeReference> _exceptions = it.getExceptions();
-            JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(DerivedOlapException.class);
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
-            EList<JvmFormalParameter> _parameters = it.getParameters();
-            JvmTypeReference _typeRef_1 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(DerivedCellSet.class);
-            JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "cellSet", _typeRef_1);
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-            final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-              public void apply(final ITreeAppendable it) {
-                StringConcatenation _builder = new StringConcatenation();
-                String _createTable = TableDSLJvmModelInferrer.this.createTable(table);
-                _builder.append(_createTable, "");
-                it.append(_builder);
-              }
-            };
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-          }
+        JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(table, "createTable", this._typeReferenceBuilder.typeRef(com.vaadin.ui.Component.class), _function_6);
+        this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _method_6);
+        EList<JvmMember> _members_7 = type.getMembers();
+        final Procedure1<JvmOperation> _function_7 = (JvmOperation it) -> {
+          final Procedure1<ITreeAppendable> _function_8 = (ITreeAppendable it_1) -> {
+            StringConcatenation _builder = new StringConcatenation();
+            String _dataRefresh = this.dataRefresh(table);
+            _builder.append(_dataRefresh);
+            it_1.append(_builder);
+          };
+          this._jvmTypesBuilder.setBody(it, _function_8);
         };
-        JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(table, "createTable", _typeRef_4, _function_4);
-        this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _method_4);
-        EList<JvmMember> _members_5 = type.getMembers();
-        JvmTypeReference _typeRef_5 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-        final Procedure1<JvmOperation> _function_5 = new Procedure1<JvmOperation>() {
-          public void apply(final JvmOperation it) {
-            final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-              public void apply(final ITreeAppendable it) {
-                StringConcatenation _builder = new StringConcatenation();
-                CharSequence _dataRefresh = TableDSLJvmModelInferrer.this.dataRefresh(table);
-                _builder.append(_dataRefresh, "");
-                it.append(_builder);
-              }
-            };
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-          }
-        };
-        JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(table, "dataRefresh", _typeRef_5, _function_5);
-        this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _method_5);
+        JvmOperation _method_7 = this._jvmTypesBuilder.toMethod(table, "dataRefresh", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_7);
+        this._jvmTypesBuilder.<JvmOperation>operator_add(_members_7, _method_7);
       }
     }
     if (!_matched) {
       if (_tabletype instanceof TableGrid) {
         _matched=true;
-        EList<JvmMember> _members_3 = type.getMembers();
-        JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(com.vaadin.ui.Component.class);
-        final Procedure1<JvmOperation> _function_3 = new Procedure1<JvmOperation>() {
-          public void apply(final JvmOperation it) {
-            EList<JvmTypeReference> _exceptions = it.getExceptions();
-            JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(DerivedOlapException.class);
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef);
-            TableOption _tabletype = table.getTabletype();
-            TableDtoDatasource _source = ((TableGrid) _tabletype).getSource();
-            LDto _dtoSource = _source.getDtoSource();
-            QualifiedName _fullyQualifiedName = TableDSLJvmModelInferrer.this._iQualifiedNameProvider.getFullyQualifiedName(_dtoSource);
-            String _string = null;
-            if (_fullyQualifiedName!=null) {
-              _string=_fullyQualifiedName.toString();
-            }
-            final String gridDtoFqn = _string;
-            final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-              public void apply(final ITreeAppendable it) {
-                StringConcatenation _builder = new StringConcatenation();
-                _builder.append("IEclipseContext childContext = context.createChild();");
-                _builder.newLine();
-                _builder.append("childContext.set(Locale.class, user.getLocale());");
-                _builder.newLine();
-                _builder.append("childContext.set(\"gridSourceId\", \"");
-                String _name = pkg.getName();
-                String _string = _name.toString();
-                String _concat = _string.concat(".");
-                String _name_1 = table.getName();
-                String _concat_1 = _concat.concat(_name_1);
-                String _concat_2 = _concat_1.concat("Grid");
-                _builder.append(_concat_2, "");
-                _builder.append("\");");
-                _builder.newLineIfNotEmpty();
-                _builder.append("if (\"");
-                _builder.append(gridDtoFqn, "");
-                _builder.append("\".equals(getTaskOperativeDtoFqn())) {");
-                _builder.newLineIfNotEmpty();
-                _builder.append("\t");
-                _builder.append("childContext.set(\"inputdata\", getTaskInitialOperativeDtos());");
-                _builder.newLine();
-                _builder.append("}");
-                _builder.newLine();
-                _builder.append("grid = ContextInjectionFactory.make(SingleInfoGridComponent.class, childContext);");
-                _builder.newLine();
-                _builder.append("return grid;");
-                it.append(_builder);
-              }
-            };
-            TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+        EList<JvmMember> _members_6 = type.getMembers();
+        final Procedure1<JvmOperation> _function_6 = (JvmOperation it) -> {
+          QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(this.getDtoGridTable(table).getDtoSource());
+          String _string = null;
+          if (_fullyQualifiedName!=null) {
+            _string=_fullyQualifiedName.toString();
           }
+          final String gridDtoFqn = _string;
+          EObject _resolve = EcoreUtil2.resolve(this.getDtoGridTable(table).getDtoSource().getWrappedType(), table.eResource());
+          final LEntity entity = ((LEntity) _resolve);
+          final Procedure1<ITreeAppendable> _function_7 = (ITreeAppendable it_1) -> {
+            StringConcatenation _builder = new StringConcatenation();
+            CharSequence _createGridComponent = this.createGridComponent(pkg, table, entity, gridDtoFqn);
+            _builder.append(_createGridComponent);
+            _builder.newLineIfNotEmpty();
+            _builder.append("return grid;");
+            it_1.append(_builder);
+          };
+          this._jvmTypesBuilder.setBody(it, _function_7);
         };
-        JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(table, "createDtoGrid", _typeRef_3, _function_3);
-        this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3);
+        JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(table, "createDtoGrid", this._typeReferenceBuilder.typeRef(com.vaadin.ui.Component.class), _function_6);
+        this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _method_6);
       }
     }
-    EList<JvmMember> _members_3 = type.getMembers();
-    JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-    final Procedure1<JvmOperation> _function_3 = new Procedure1<JvmOperation>() {
-      public void apply(final JvmOperation it) {
-        it.setVisibility(JvmVisibility.PROTECTED);
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            String _setup = TableDSLJvmModelInferrer.this.setup(table);
-            _builder.append(_setup, "");
-            it.append(_builder);
-          }
-        };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-      }
-    };
-    JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(table, "setup", _typeRef_3, _function_3);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_3);
-    EList<JvmMember> _members_4 = type.getMembers();
-    JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-    final Procedure1<JvmOperation> _function_4 = new Procedure1<JvmOperation>() {
-      public void apply(final JvmOperation it) {
-        it.setVisibility(JvmVisibility.PROTECTED);
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            String _subscribe = TableDSLJvmModelInferrer.this.subscribe(table);
-            _builder.append(_subscribe, "");
-            it.append(_builder);
-          }
-        };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-      }
-    };
-    JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(table, "subscribe", _typeRef_4, _function_4);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _method_4);
-    EList<JvmMember> _members_5 = type.getMembers();
-    JvmTypeReference _typeRef_5 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-    final Procedure1<JvmOperation> _function_5 = new Procedure1<JvmOperation>() {
-      public void apply(final JvmOperation it) {
-        it.setVisibility(JvmVisibility.PROTECTED);
-        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-        JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(PreDestroy.class);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            String _unsubscribe = TableDSLJvmModelInferrer.this.unsubscribe(table);
-            _builder.append(_unsubscribe, "");
-            it.append(_builder);
-          }
-        };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-      }
-    };
-    JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(table, "unsubscribe", _typeRef_5, _function_5);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _method_5);
     EList<JvmMember> _members_6 = type.getMembers();
-    JvmTypeReference _typeRef_6 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-    final Procedure1<JvmOperation> _function_6 = new Procedure1<JvmOperation>() {
-      public void apply(final JvmOperation it) {
+    final Procedure1<JvmOperation> _function_6 = (JvmOperation it) -> {
+      it.setVisibility(JvmVisibility.PUBLIC);
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "locale", this._typeReferenceBuilder.typeRef(Locale.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      final Procedure1<ITreeAppendable> _function_7 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        CharSequence _localeChanged = this.localeChanged(table);
+        _builder.append(_localeChanged);
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_7);
+    };
+    JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(table, "localeChanged", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_6);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _method_6);
+    EList<JvmMember> _members_7 = type.getMembers();
+    final Procedure1<JvmOperation> _function_7 = (JvmOperation it) -> {
+      it.setVisibility(JvmVisibility.PUBLIC);
+      EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+      JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
+      this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      EList<JvmFormalParameter> _parameters = it.getParameters();
+      JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "event", this._typeReferenceBuilder.typeRef(EventDispatcherEvent.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+      final Procedure1<ITreeAppendable> _function_8 = (ITreeAppendable it_1) -> {
+        StringConcatenation _builder = new StringConcatenation();
+        String _receiveEvent = this.receiveEvent(table);
+        _builder.append(_receiveEvent);
+        it_1.append(_builder);
+      };
+      this._jvmTypesBuilder.setBody(it, _function_8);
+    };
+    JvmOperation _method_7 = this._jvmTypesBuilder.toMethod(table, "receiveEvent", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_7);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_7, _method_7);
+    if (((!this.isGrid(table)) && (!this.isBean(table)))) {
+      EList<JvmMember> _members_8 = type.getMembers();
+      final Procedure1<JvmOperation> _function_8 = (JvmOperation it) -> {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "changedFilter", this._typeReferenceBuilder.typeRef(DatamartFilter.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
         it.setVisibility(JvmVisibility.PUBLIC);
         EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-        JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-        EList<JvmFormalParameter> _parameters = it.getParameters();
-        JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(Locale.class);
-        JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "locale", _typeRef);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            CharSequence _localeChanged = TableDSLJvmModelInferrer.this.localeChanged(table);
-            _builder.append(_localeChanged, "");
-            it.append(_builder);
-          }
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function_9 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          String _filterChanged = this.filterChanged(table);
+          _builder.append(_filterChanged);
+          it_1.append(_builder);
         };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-      }
-    };
-    JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(table, "localeChanged", _typeRef_6, _function_6);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _method_6);
-    boolean _isTask = this.isTask(table);
-    if (_isTask) {
-      EList<JvmMember> _members_7 = type.getMembers();
-      JvmTypeReference _typeRef_7 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-      final Procedure1<JvmOperation> _function_7 = new Procedure1<JvmOperation>() {
-        public void apply(final JvmOperation it) {
-          it.setVisibility(JvmVisibility.PUBLIC);
-          EList<JvmFormalParameter> _parameters = it.getParameters();
-          JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(TaskEventType.class);
-          JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "type", _typeRef);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-          EList<JvmFormalParameter> _parameters_1 = it.getParameters();
-          JvmTypeReference _typeRef_1 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(TaskUserEvent.class);
-          JvmFormalParameter _parameter_1 = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "event", _typeRef_1);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
-          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-          JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-            public void apply(final ITreeAppendable it) {
-              StringConcatenation _builder = new StringConcatenation();
-              CharSequence _notifyTaskEvent = TableDSLJvmModelInferrer.this.notifyTaskEvent(table);
-              _builder.append(_notifyTaskEvent, "");
-              it.append(_builder);
-            }
-          };
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-        }
+        this._jvmTypesBuilder.setBody(it, _function_9);
       };
-      JvmOperation _method_7 = this._jvmTypesBuilder.toMethod(table, "notifyTaskEvent", _typeRef_7, _function_7);
-      this._jvmTypesBuilder.<JvmOperation>operator_add(_members_7, _method_7);
-      EList<JvmMember> _members_8 = type.getMembers();
-      JvmTypeReference _typeRef_8 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-      final Procedure1<JvmOperation> _function_8 = new Procedure1<JvmOperation>() {
-        public void apply(final JvmOperation it) {
-          it.setVisibility(JvmVisibility.PUBLIC);
-          EList<JvmFormalParameter> _parameters = it.getParameters();
-          JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(ProcessCompletedEvent.class);
-          JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "event", _typeRef);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
-          JvmAnnotationReference _annotationRef = TableDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
-          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-            public void apply(final ITreeAppendable it) {
-              StringConcatenation _builder = new StringConcatenation();
-              CharSequence _notifyTaskEvent = TableDSLJvmModelInferrer.this.notifyTaskEvent(table);
-              _builder.append(_notifyTaskEvent, "");
-              it.append(_builder);
-            }
-          };
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-        }
-      };
-      JvmOperation _method_8 = this._jvmTypesBuilder.toMethod(table, "notifyProcessCompletedEvent", _typeRef_8, _function_8);
+      JvmOperation _method_8 = this._jvmTypesBuilder.toMethod(table, "filterChanged", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_8);
       this._jvmTypesBuilder.<JvmOperation>operator_add(_members_8, _method_8);
     }
-    TableOption _tabletype_1 = table.getTabletype();
-    boolean _isEmbedded = _tabletype_1.isEmbedded();
-    boolean _not = (!_isEmbedded);
-    if (_not) {
+    boolean _isTask = this.isTask(table);
+    if (_isTask) {
       EList<JvmMember> _members_9 = type.getMembers();
-      JvmTypeReference _typeRef_9 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-      final Procedure1<JvmOperation> _function_9 = new Procedure1<JvmOperation>() {
-        public void apply(final JvmOperation it) {
-          EList<JvmFormalParameter> _parameters = it.getParameters();
-          JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(String.class);
-          JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "entity", _typeRef);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-          EList<JvmFormalParameter> _parameters_1 = it.getParameters();
-          JvmTypeReference _typeRef_1 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(Object.class);
-          JvmFormalParameter _parameter_1 = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "id", _typeRef_1);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
-          it.setVisibility(JvmVisibility.PUBLIC);
-          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-            public void apply(final ITreeAppendable it) {
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("super.refreshViewDueToModifiedEntityId(entity, id);");
-              _builder.newLine();
-              String _callDataRefreshMethod = TableDSLJvmModelInferrer.this.getCallDataRefreshMethod(table);
-              _builder.append(_callDataRefreshMethod, "");
-              _builder.newLineIfNotEmpty();
-              it.append(_builder);
-            }
-          };
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-        }
+      final Procedure1<JvmOperation> _function_9 = (JvmOperation it) -> {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "type", this._typeReferenceBuilder.typeRef(BPMTaskEventType.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+        JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(table, "event", this._typeReferenceBuilder.typeRef(BPMTaskUserEvent.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+        it.setVisibility(JvmVisibility.PUBLIC);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function_10 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          CharSequence _notifyTaskEvent = this.notifyTaskEvent(table);
+          _builder.append(_notifyTaskEvent);
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_10);
       };
-      JvmOperation _method_9 = this._jvmTypesBuilder.toMethod(table, "refreshViewDueToModifiedEntityId", _typeRef_9, _function_9);
+      JvmOperation _method_9 = this._jvmTypesBuilder.toMethod(table, "notifyTaskEvent", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_9);
       this._jvmTypesBuilder.<JvmOperation>operator_add(_members_9, _method_9);
-    }
-    TableOption _tabletype_2 = table.getTabletype();
-    if ((_tabletype_2 instanceof TableSelection)) {
       EList<JvmMember> _members_10 = type.getMembers();
-      JvmTypeReference _typeRef_10 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-      final Procedure1<JvmOperation> _function_10 = new Procedure1<JvmOperation>() {
-        public void apply(final JvmOperation it) {
-          it.setVisibility(JvmVisibility.PUBLIC);
-          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-            public void apply(final ITreeAppendable it) {
-              StringConcatenation _builder = new StringConcatenation();
-              CharSequence _selectItemsFromWorkloadDto = TableDSLJvmModelInferrer.this.selectItemsFromWorkloadDto(table);
-              _builder.append(_selectItemsFromWorkloadDto, "");
-              it.append(_builder);
-            }
-          };
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-        }
+      final Procedure1<JvmOperation> _function_10 = (JvmOperation it) -> {
+        it.setVisibility(JvmVisibility.PUBLIC);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = this._annotationTypesBuilder.annotationRef(Override.class);
+        this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function_11 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          CharSequence _notifyTaskEvent = this.notifyTaskEvent(table);
+          _builder.append(_notifyTaskEvent);
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_11);
       };
-      JvmOperation _method_10 = this._jvmTypesBuilder.toMethod(table, "selectItemsFromWorkloadDto", _typeRef_10, _function_10);
+      JvmOperation _method_10 = this._jvmTypesBuilder.toMethod(table, "notifyProcessCompletedEvent", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_10);
       this._jvmTypesBuilder.<JvmOperation>operator_add(_members_10, _method_10);
+    }
+    boolean _isSelection = this.isSelection(table);
+    if (_isSelection) {
       EList<JvmMember> _members_11 = type.getMembers();
-      JvmTypeReference _typeRef_11 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-      final Procedure1<JvmOperation> _function_11 = new Procedure1<JvmOperation>() {
-        public void apply(final JvmOperation it) {
-          it.setVisibility(JvmVisibility.PUBLIC);
-          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-            public void apply(final ITreeAppendable it) {
-              StringConcatenation _builder = new StringConcatenation();
-              CharSequence _addAllItemsToWorkloadDto = TableDSLJvmModelInferrer.this.addAllItemsToWorkloadDto(table);
-              _builder.append(_addAllItemsToWorkloadDto, "");
-              it.append(_builder);
-            }
-          };
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-        }
+      final Procedure1<JvmOperation> _function_11 = (JvmOperation it) -> {
+        it.setVisibility(JvmVisibility.PUBLIC);
+        final Procedure1<ITreeAppendable> _function_12 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          CharSequence _selectItemsFromWorkloadDto = this.selectItemsFromWorkloadDto(table);
+          _builder.append(_selectItemsFromWorkloadDto);
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_12);
       };
-      JvmOperation _method_11 = this._jvmTypesBuilder.toMethod(table, "addAllItemsToWorkloadDto", _typeRef_11, _function_11);
+      JvmOperation _method_11 = this._jvmTypesBuilder.toMethod(table, "selectItemsFromWorkloadDto", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_11);
       this._jvmTypesBuilder.<JvmOperation>operator_add(_members_11, _method_11);
       EList<JvmMember> _members_12 = type.getMembers();
-      JvmTypeReference _typeRef_12 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-      final Procedure1<JvmOperation> _function_12 = new Procedure1<JvmOperation>() {
-        public void apply(final JvmOperation it) {
-          it.setVisibility(JvmVisibility.PROTECTED);
-          EList<JvmFormalParameter> _parameters = it.getParameters();
-          JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IBlipBPMWorkloadModifiableItem.class);
-          JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "task", _typeRef);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-          EList<JvmFormalParameter> _parameters_1 = it.getParameters();
-          JvmTypeReference _typeRef_1 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IDto.class);
-          JvmFormalParameter _parameter_1 = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "workloadDto", _typeRef_1);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
-          EList<JvmFormalParameter> _parameters_2 = it.getParameters();
-          JvmTypeReference _typeRef_2 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(Integer.class);
-          JvmFormalParameter _parameter_2 = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "selection", _typeRef_2);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2);
-          EList<JvmFormalParameter> _parameters_3 = it.getParameters();
-          JvmTypeReference _typeRef_3 = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(boolean.class);
-          JvmFormalParameter _parameter_3 = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "selected", _typeRef_3);
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_3, _parameter_3);
-          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-            public void apply(final ITreeAppendable it) {
-              StringConcatenation _builder = new StringConcatenation();
-              CharSequence _addOrRemoveItemToWorkloadDto = TableDSLJvmModelInferrer.this.addOrRemoveItemToWorkloadDto(table);
-              _builder.append(_addOrRemoveItemToWorkloadDto, "");
-              it.append(_builder);
-            }
-          };
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-        }
+      final Procedure1<JvmOperation> _function_12 = (JvmOperation it) -> {
+        it.setVisibility(JvmVisibility.PUBLIC);
+        final Procedure1<ITreeAppendable> _function_13 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          CharSequence _addAllItemsToWorkloadDto = this.addAllItemsToWorkloadDto(table);
+          _builder.append(_addAllItemsToWorkloadDto);
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_13);
       };
-      JvmOperation _method_12 = this._jvmTypesBuilder.toMethod(table, "addOrRemoveItemToWorkloadDto", _typeRef_12, _function_12);
+      JvmOperation _method_12 = this._jvmTypesBuilder.toMethod(table, "addAllItemsToWorkloadDto", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_12);
       this._jvmTypesBuilder.<JvmOperation>operator_add(_members_12, _method_12);
       EList<JvmMember> _members_13 = type.getMembers();
-      JvmTypeReference _typeRef_13 = this._typeReferenceBuilder.typeRef(Void.TYPE);
-      final Procedure1<JvmOperation> _function_13 = new Procedure1<JvmOperation>() {
-        public void apply(final JvmOperation it) {
-          it.setVisibility(JvmVisibility.PUBLIC);
-          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-            public void apply(final ITreeAppendable it) {
-              StringConcatenation _builder = new StringConcatenation();
-              CharSequence _removeAllItemsFromWorkloadDto = TableDSLJvmModelInferrer.this.removeAllItemsFromWorkloadDto(table);
-              _builder.append(_removeAllItemsFromWorkloadDto, "");
-              it.append(_builder);
-            }
-          };
-          TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-        }
+      final Procedure1<JvmOperation> _function_13 = (JvmOperation it) -> {
+        it.setVisibility(JvmVisibility.PROTECTED);
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmFormalParameter _parameter = this._jvmTypesBuilder.toParameter(table, "task", this._typeReferenceBuilder.typeRef(IBlipBPMWorkloadModifiableItem.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+        JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(table, "workloadDto", this._typeReferenceBuilder.typeRef(IDto.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+        EList<JvmFormalParameter> _parameters_2 = it.getParameters();
+        JvmFormalParameter _parameter_2 = this._jvmTypesBuilder.toParameter(table, "selection", this._typeReferenceBuilder.typeRef(Integer.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2);
+        EList<JvmFormalParameter> _parameters_3 = it.getParameters();
+        JvmFormalParameter _parameter_3 = this._jvmTypesBuilder.toParameter(table, "selected", this._typeReferenceBuilder.typeRef(boolean.class));
+        this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_3, _parameter_3);
+        final Procedure1<ITreeAppendable> _function_14 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          CharSequence _addOrRemoveItemToWorkloadDto = this.addOrRemoveItemToWorkloadDto(table);
+          _builder.append(_addOrRemoveItemToWorkloadDto);
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_14);
       };
-      JvmOperation _method_13 = this._jvmTypesBuilder.toMethod(table, "removeAllItemsFromWorkloadDto", _typeRef_13, _function_13);
+      JvmOperation _method_13 = this._jvmTypesBuilder.toMethod(table, "addOrRemoveItemToWorkloadDto", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_13);
       this._jvmTypesBuilder.<JvmOperation>operator_add(_members_13, _method_13);
+      EList<JvmMember> _members_14 = type.getMembers();
+      final Procedure1<JvmOperation> _function_14 = (JvmOperation it) -> {
+        it.setVisibility(JvmVisibility.PUBLIC);
+        final Procedure1<ITreeAppendable> _function_15 = (ITreeAppendable it_1) -> {
+          StringConcatenation _builder = new StringConcatenation();
+          CharSequence _removeAllItemsFromWorkloadDto = this.removeAllItemsFromWorkloadDto(table);
+          _builder.append(_removeAllItemsFromWorkloadDto);
+          it_1.append(_builder);
+        };
+        this._jvmTypesBuilder.setBody(it, _function_15);
+      };
+      JvmOperation _method_14 = this._jvmTypesBuilder.toMethod(table, "removeAllItemsFromWorkloadDto", this._typeReferenceBuilder.typeRef(Void.TYPE), _function_14);
+      this._jvmTypesBuilder.<JvmOperation>operator_add(_members_14, _method_14);
     }
   }
   
+  public LEntity baseType(final LEntity entityRef) {
+    if ((((entityRef.getSuperType() != null) && 
+      (!entityRef.getSuperType().isMappedSuperclass())) && 
+      (!entityRef.getSuperType().equals(entityRef)))) {
+      return entityRef.getSuperType();
+    }
+    return entityRef;
+  }
+  
+  protected CharSequence createGridComponent(final TablePackage pkg, final Table table, final LEntity entity, final String gridDtoFqn) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("IEclipseContext childContext = eclipseContext.createChild();");
+    _builder.newLine();
+    _builder.append("childContext.set(Locale.class, user.getLocale());");
+    _builder.newLine();
+    _builder.append("childContext.set(\"gridSourceId\", \"");
+    String _concat = pkg.getName().toString().concat(".").concat(table.getName()).concat("Grid");
+    _builder.append(_concat);
+    _builder.append("\");");
+    _builder.newLineIfNotEmpty();
+    _builder.append("childContext.set(\"selectionEvnt\", new EventDispatcherEvent(EventDispatcherCommand.SELECT, \"");
+    QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(this.baseType(entity));
+    _builder.append(_fullyQualifiedName);
+    _builder.append(".");
+    String _idAttributeName = entity.getIdAttributeName();
+    _builder.append(_idAttributeName);
+    _builder.append("\", \"");
+    QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(table);
+    _builder.append(_fullyQualifiedName_1);
+    _builder.append("\"));");
+    _builder.newLineIfNotEmpty();
+    _builder.append("if (\"");
+    _builder.append(gridDtoFqn);
+    _builder.append("\".equals(getTaskOperativeDtoFqn())) {");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t");
+    _builder.append("childContext.set(\"inputdata\", getTaskInitialOperativeDtos());");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("grid = ContextInjectionFactory.make(SingleInfoGridComponent.class, childContext);");
+    return _builder;
+  }
+  
+  public String filterChanged(final Table table) {
+    String body = "";
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(body);
+    _builder.newLineIfNotEmpty();
+    _builder.append("if(changedFilter != null) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("EventDispatcherEvent evnt = new EventDispatcherEvent(EventDispatcherCommand.SELECT, changedFilter.getName(), \"");
+    QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(table);
+    _builder.append(_fullyQualifiedName, "\t");
+    _builder.append("\");");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t");
+    _builder.append("evnt.addData(changedFilter.getSelectedData());");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("eventDispatcher.sendEvent(evnt);");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("dataRefresh();");
+    _builder.newLine();
+    body = _builder.toString();
+    return body;
+  }
+  
+  public String receiveEvent(final Table table) {
+    String body = "";
+    boolean _isTable = this.isTable(table);
+    if (_isTable) {
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append(body);
+      _builder.newLineIfNotEmpty();
+      _builder.append("switch(event.getCommand()) {");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("case SELECT:");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("if(!event.getSender().equals(\"");
+      QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(table);
+      _builder.append(_fullyQualifiedName, "\t\t");
+      _builder.append("\")) {");
+      _builder.newLineIfNotEmpty();
+      _builder.append("\t\t\t");
+      _builder.append("if(filterGenerator.selectItem(event, ");
+      TableOption _tabletype = table.getTabletype();
+      boolean _booleanValue = Boolean.valueOf(((TableTable) _tabletype).isSelectById()).booleanValue();
+      _builder.append(_booleanValue, "\t\t\t");
+      _builder.append(")) {");
+      _builder.newLineIfNotEmpty();
+      {
+        if ((table.getTabletype().isEmbedded() || this.isTask(table))) {
+          _builder.append("\t\t\t\t");
+          _builder.append("createComponents();");
+          _builder.newLine();
+        } else {
+          _builder.append("\t\t\t\t");
+          _builder.append("renderData();");
+          _builder.newLine();
+        }
+      }
+      _builder.append("\t\t\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("break;");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("case SAVE:");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("case DELETE:");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("if(!event.getSender().equals(\"");
+      QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(table);
+      _builder.append(_fullyQualifiedName_1, "\t\t");
+      _builder.append("\")) {");
+      _builder.newLineIfNotEmpty();
+      {
+        Set<LEntity> _findRequestedEntities = this.findRequestedEntities(table);
+        for(final LEntity e : _findRequestedEntities) {
+          _builder.append("\t\t\t");
+          _builder.append("if(event.getTopic().equals(\"");
+          QualifiedName _fullyQualifiedName_2 = this._iQualifiedNameProvider.getFullyQualifiedName(e);
+          _builder.append(_fullyQualifiedName_2, "\t\t\t");
+          _builder.append("\")){");
+          _builder.newLineIfNotEmpty();
+          _builder.append("\t\t\t");
+          _builder.append("\t");
+          _builder.append("datamartInstance.clearCache();");
+          _builder.newLine();
+          _builder.append("\t\t\t");
+          _builder.append("\t");
+          _builder.append("List<DatamartPrimary<?>> primaryKeys = datamartInstance.getPrimaryList();");
+          _builder.newLine();
+          _builder.append("\t\t\t");
+          _builder.append("\t");
+          _builder.append("for(DatamartPrimary key : primaryKeys) {");
+          _builder.newLine();
+          _builder.append("\t\t\t");
+          _builder.append("\t\t");
+          _builder.append("if(key.contains(event.getData().get(EventDispatcherDataTag.ID))) {");
+          _builder.newLine();
+          _builder.append("\t\t\t");
+          _builder.append("\t\t\t");
+          _builder.append("dataRefresh();");
+          _builder.newLine();
+          _builder.append("\t\t\t");
+          _builder.append("\t\t");
+          _builder.append("}");
+          _builder.newLine();
+          _builder.append("\t\t\t");
+          _builder.append("\t");
+          _builder.append("}");
+          _builder.newLine();
+          _builder.append("\t\t\t");
+          _builder.append("}");
+          _builder.newLine();
+        }
+      }
+      _builder.append("\t\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("break;");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("case REFRESH:");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("if(!event.getSender().equals(\"");
+      QualifiedName _fullyQualifiedName_3 = this._iQualifiedNameProvider.getFullyQualifiedName(table);
+      _builder.append(_fullyQualifiedName_3, "\t\t");
+      _builder.append("\")) {");
+      _builder.newLineIfNotEmpty();
+      {
+        Set<LEntity> _findRequestedEntities_1 = this.findRequestedEntities(table);
+        for(final LEntity e_1 : _findRequestedEntities_1) {
+          _builder.append("\t\t\t");
+          _builder.append("if(event.getTopic().equals(\"");
+          QualifiedName _fullyQualifiedName_4 = this._iQualifiedNameProvider.getFullyQualifiedName(e_1);
+          _builder.append(_fullyQualifiedName_4, "\t\t\t");
+          _builder.append("\")){");
+          _builder.newLineIfNotEmpty();
+          _builder.append("\t\t\t");
+          _builder.append("\t");
+          _builder.append("datamartInstance.clearCache();");
+          _builder.newLine();
+          _builder.append("\t\t\t");
+          _builder.append("\t");
+          _builder.append("dataRefresh();");
+          _builder.newLine();
+          _builder.append("\t\t\t");
+          _builder.append("}");
+          _builder.newLine();
+        }
+      }
+      _builder.append("\t\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("break;");
+      _builder.newLine();
+      body = _builder.toString();
+      boolean _isSelection = this.isSelection(table);
+      if (_isSelection) {
+        StringConcatenation _builder_1 = new StringConcatenation();
+        _builder_1.append(body);
+        _builder_1.newLineIfNotEmpty();
+        _builder_1.append("\t");
+        _builder_1.append("case ACTION:");
+        _builder_1.newLine();
+        _builder_1.append("\t\t");
+        _builder_1.append("if (toolbarUUID.equals(event.getTopic()) && event.getData().containsKey(EventDispatcherDataTag.BUTTON_ID)) {");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t");
+        _builder_1.append("Object id = event.getData().get(EventDispatcherDataTag.BUTTON_ID);");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t");
+        _builder_1.append("if (id instanceof SelectWorkloadActionEnum) {");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t\t");
+        _builder_1.append("SelectWorkloadActionEnum enumId = (SelectWorkloadActionEnum) id;");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t\t");
+        _builder_1.append("switch (enumId) {");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t\t");
+        _builder_1.append("case WORKLOAD_SELECT_ACTION_REMOVE_ALL:");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t\t\t");
+        _builder_1.append("removeAllItemsFromWorkloadDto();");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t\t\t");
+        _builder_1.append("break;");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t\t");
+        _builder_1.append("case WORKLOAD_SELECT_ACTION_ADD_ALL:");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t\t\t");
+        _builder_1.append("addAllItemsToWorkloadDto();");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t\t\t");
+        _builder_1.append("break;");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t\t");
+        _builder_1.append("}");
+        _builder_1.newLine();
+        _builder_1.append("\t\t\t");
+        _builder_1.append("}");
+        _builder_1.newLine();
+        _builder_1.append("\t\t");
+        _builder_1.append("}");
+        _builder_1.newLine();
+        body = _builder_1.toString();
+      }
+      StringConcatenation _builder_2 = new StringConcatenation();
+      _builder_2.append(body);
+      _builder_2.newLineIfNotEmpty();
+      _builder_2.append("\t");
+      _builder_2.append("}");
+      _builder_2.newLine();
+      body = _builder_2.toString();
+    } else {
+      boolean _isGrid = this.isGrid(table);
+      if (_isGrid) {
+        StringConcatenation _builder_3 = new StringConcatenation();
+        _builder_3.append(body);
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("switch(event.getCommand()) {");
+        _builder_3.newLine();
+        _builder_3.append("\t");
+        _builder_3.append("case SAVE:");
+        _builder_3.newLine();
+        _builder_3.append("\t");
+        _builder_3.append("case DELETE:");
+        _builder_3.newLine();
+        _builder_3.append("\t");
+        _builder_3.append("case REFRESH:");
+        _builder_3.newLine();
+        _builder_3.append("\t\t");
+        _builder_3.append("if(!event.getSender().equals(\"");
+        QualifiedName _fullyQualifiedName_5 = this._iQualifiedNameProvider.getFullyQualifiedName(table);
+        _builder_3.append(_fullyQualifiedName_5, "\t\t");
+        _builder_3.append("\")) {");
+        _builder_3.newLineIfNotEmpty();
+        {
+          Set<LEntity> _findRequestedEntities_2 = this.findRequestedEntities(table);
+          for(final LEntity e_2 : _findRequestedEntities_2) {
+            _builder_3.append("\t\t\t");
+            _builder_3.append("if(event.getTopic().equals(\"");
+            QualifiedName _fullyQualifiedName_6 = this._iQualifiedNameProvider.getFullyQualifiedName(e_2);
+            _builder_3.append(_fullyQualifiedName_6, "\t\t\t");
+            _builder_3.append("\")){");
+            _builder_3.newLineIfNotEmpty();
+            _builder_3.append("\t\t\t");
+            _builder_3.append("\t");
+            _builder_3.append("// TODO: GridRefresh");
+            _builder_3.newLine();
+            _builder_3.append("\t\t\t");
+            _builder_3.append("}");
+            _builder_3.newLine();
+          }
+        }
+        _builder_3.append("\t\t");
+        _builder_3.append("}");
+        _builder_3.newLine();
+        _builder_3.append("\t\t");
+        _builder_3.append("break;");
+        _builder_3.newLine();
+        _builder_3.append("}");
+        _builder_3.newLine();
+        body = _builder_3.toString();
+      }
+    }
+    return body;
+  }
+  
+  public CharSequence refreshCondition(final LEntity entity) {
+    String _name = entity.getName();
+    return ((CharSequence) _name);
+  }
+  
   public String getCallDataRefreshMethod(final Table table) {
     String _switchResult = null;
     TableOption _tabletype = table.getTabletype();
     boolean _matched = false;
-    if (!_matched) {
-      if (_tabletype instanceof TableTable) {
-        _matched=true;
-        _switchResult = "dataRefresh();";
-      }
+    if (_tabletype instanceof TableTable) {
+      _matched=true;
+      _switchResult = "dataRefresh();";
     }
     if (!_matched) {
       if (_tabletype instanceof TableGrid) {
@@ -1409,63 +1526,11 @@
   public CharSequence notifyTaskEvent(final Table table) {
     StringConcatenation _builder = new StringConcatenation();
     String _callDataRefreshMethod = this.getCallDataRefreshMethod(table);
-    _builder.append(_callDataRefreshMethod, "");
+    _builder.append(_callDataRefreshMethod);
     return _builder;
   }
   
   /**
-   * <p>build the methods.</p>
-   */
-  public void toStringToNumberConverter(final JvmDeclaredType type, final Table table) {
-    EList<JvmMember> _members = type.getMembers();
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append(this.CONVERT_METHOD_PREFIX, "");
-    _builder.append("Int");
-    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(int.class);
-    final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
-      public void apply(final JvmOperation it) {
-        EList<JvmFormalParameter> _parameters = it.getParameters();
-        JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(String.class);
-        JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "value", _typeRef);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            _builder.append("return Double.valueOf(value).intValue();");
-            it.append(_builder);
-          }
-        };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-      }
-    };
-    JvmOperation _method = this._jvmTypesBuilder.toMethod(table, _builder.toString(), _typeRef, _function);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
-    EList<JvmMember> _members_1 = type.getMembers();
-    StringConcatenation _builder_1 = new StringConcatenation();
-    _builder_1.append(this.CONVERT_METHOD_PREFIX, "");
-    _builder_1.append("Double");
-    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(double.class);
-    final Procedure1<JvmOperation> _function_1 = new Procedure1<JvmOperation>() {
-      public void apply(final JvmOperation it) {
-        EList<JvmFormalParameter> _parameters = it.getParameters();
-        JvmTypeReference _typeRef = TableDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(String.class);
-        JvmFormalParameter _parameter = TableDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(table, "value", _typeRef);
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
-          public void apply(final ITreeAppendable it) {
-            StringConcatenation _builder = new StringConcatenation();
-            _builder.append("return Double.valueOf(value);");
-            it.append(_builder);
-          }
-        };
-        TableDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
-      }
-    };
-    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(table, _builder_1.toString(), _typeRef_1, _function_1);
-    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
-  }
-  
-  /**
    * <p>build the main method to be called from e4.</p>
    * 
    * tablePageLabel = new Label();
@@ -1483,187 +1548,149 @@
   public String createView(final Table table, final TablePackage pkg) {
     StringConcatenation _builder = new StringConcatenation();
     {
+      boolean _isEmbedded = table.getTabletype().isEmbedded();
+      if (_isEmbedded) {
+        _builder.append("eclipseContext");
+      } else {
+        _builder.append("getContext()");
+      }
+    }
+    _builder.append(".set(IE4Table.class, this);");
+    _builder.newLineIfNotEmpty();
+    {
       boolean _isTask = this.isTask(table);
       if (_isTask) {
-        _builder.append("taskClient.subscribeTaskEventNotification(this);");
-        _builder.newLine();
-        _builder.append("taskClient.subscribeProcessCompletedEventNotification(this);");
-        _builder.newLine();
         _builder.append("currentTaskId = -1L;");
         _builder.newLine();
       }
     }
-    _builder.append("tables = new ArrayList<CellSetFilterTable>();");
-    _builder.newLine();
-    _builder.append("tableFilterDecorator = new TableFilterDecorator(dslMetadataService);");
+    {
+      boolean _isBean = this.isBean(table);
+      boolean _not = (!_isBean);
+      if (_not) {
+        _builder.append("tables = new ArrayList<CellSetFilterTable>();");
+      }
+    }
+    _builder.newLineIfNotEmpty();
+    _builder.append("tableFilterDecorator = new TableFilterDecorator(dslMetadataService, user.getLocale());");
     _builder.newLine();
     _builder.append("// the timeout to begin the filter process after the last key pressed");
     _builder.newLine();
     _builder.append("tableFilterDecorator.setTextChangeTimeout(500);");
     _builder.newLine();
+    _builder.append("parent.setPrimaryStyleName(\"osbp\");");
+    _builder.newLine();
+    _builder.append("parent.setId(\"parent\");");
+    _builder.newLine();
+    _builder.append("parent.setSizeFull();");
+    _builder.newLine();
+    _builder.append("parent.addAttachListener(this);");
+    _builder.newLine();
+    _builder.append("parent.addDetachListener(this);");
+    _builder.newLine();
+    _builder.append("layoutManager = new ViewLayoutManager();");
+    _builder.newLine();
+    _builder.append("layoutManager.init(parent);");
+    _builder.newLine();
     String body = _builder.toString();
-    TableOption _tabletype = table.getTabletype();
-    if ((_tabletype instanceof TableGrid)) {
-      TableOption _tabletype_1 = table.getTabletype();
-      TableDtoDatasource _source = ((TableGrid) _tabletype_1).getSource();
-      LDto _dtoSource = _source.getDtoSource();
-      QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(_dtoSource);
-      final String gridDtoFqn = _fullyQualifiedName.toString();
-      TableOption _tabletype_2 = table.getTabletype();
-      TableDtoDatasource _source_1 = ((TableGrid) _tabletype_2).getSource();
-      LDto _dtoSource_1 = _source_1.getDtoSource();
-      final LEntity entity = EntityUtils.getEntityFromDto(_dtoSource_1);
+    boolean _isGrid = this.isGrid(table);
+    if (_isGrid) {
+      final String gridDtoFqn = this._iQualifiedNameProvider.getFullyQualifiedName(this.getDtoGridTable(table).getDtoSource()).toString();
+      final LEntity entity = EntityUtils.getEntityFromDto(this.getDtoGridTable(table).getDtoSource());
       StringConcatenation _builder_1 = new StringConcatenation();
-      _builder_1.append(body, "");
+      _builder_1.append(body);
       _builder_1.newLineIfNotEmpty();
       _builder_1.append("persistenceService.registerPersistenceUnit(\"");
       String _persistenceUnit = null;
       if (entity!=null) {
         _persistenceUnit=entity.getPersistenceUnit();
       }
-      _builder_1.append(_persistenceUnit, "");
+      _builder_1.append(_persistenceUnit);
       _builder_1.append("\", ");
       _builder_1.newLineIfNotEmpty();
       _builder_1.append("\t\t\t\t\t\t");
-      QualifiedName _fullyQualifiedName_1 = null;
+      QualifiedName _fullyQualifiedName = null;
       if (entity!=null) {
-        _fullyQualifiedName_1=this._iQualifiedNameProvider.getFullyQualifiedName(entity);
+        _fullyQualifiedName=this._iQualifiedNameProvider.getFullyQualifiedName(entity);
       }
-      _builder_1.append(_fullyQualifiedName_1, "\t\t\t\t\t\t");
+      _builder_1.append(_fullyQualifiedName, "\t\t\t\t\t\t");
       _builder_1.append(".class);");
       _builder_1.newLineIfNotEmpty();
       _builder_1.append("log.debug(\"PersistenceService registered\");");
       _builder_1.newLine();
-      _builder_1.append("IEclipseContext childContext = context.createChild();");
-      _builder_1.newLine();
-      _builder_1.append("childContext.set(Locale.class, user.getLocale());");
-      _builder_1.newLine();
-      _builder_1.append("childContext.set(\"gridSourceId\", \"");
-      String _name = pkg.getName();
-      String _string = _name.toString();
-      String _concat = _string.concat(".");
-      String _name_1 = table.getName();
-      String _concat_1 = _concat.concat(_name_1);
-      String _concat_2 = _concat_1.concat("Grid");
-      _builder_1.append(_concat_2, "");
-      _builder_1.append("\");");
-      _builder_1.newLineIfNotEmpty();
-      _builder_1.append("if  (\"");
-      _builder_1.append(gridDtoFqn, "");
-      _builder_1.append("\".equals(getTaskOperativeDtoFqn())) {");
-      _builder_1.newLineIfNotEmpty();
-      _builder_1.append("\t");
-      _builder_1.append("childContext.set(\"inputdata\", getTaskInitialOperativeDtos());");
-      _builder_1.newLine();
-      _builder_1.append("}");
-      _builder_1.newLine();
-      _builder_1.append("grid = ContextInjectionFactory.make(SingleInfoGridComponent.class, childContext);");
+      CharSequence _createGridComponent = this.createGridComponent(pkg, table, entity, gridDtoFqn);
+      _builder_1.append(_createGridComponent);
       body = _builder_1.toString();
-    }
-    StringConcatenation _builder_2 = new StringConcatenation();
-    _builder_2.append(body, "");
-    _builder_2.newLineIfNotEmpty();
-    _builder_2.append("coordinateSystem = new ArrayList<Integer>();");
-    _builder_2.newLine();
-    _builder_2.append("filterGenerator = new DatamartFilterGenerator();");
-    _builder_2.newLine();
-    _builder_2.append("filterGenerator.setDslMetadataService(dslMetadataService);");
-    _builder_2.newLine();
-    _builder_2.append("layoutManager = new ViewLayoutManager();");
-    _builder_2.newLine();
-    _builder_2.append("tableSelectDelay = new Refresher();");
-    _builder_2.newLine();
-    _builder_2.append("tableRefresher = new Refresher();");
-    _builder_2.newLine();
-    _builder_2.append("propertyLookupMap = new HashMap<String,PropertyLookup>();");
-    _builder_2.newLine();
-    body = _builder_2.toString();
-    String _sourceDataMartRefName = this.getSourceDataMartRefName(table);
-    boolean _notEquals = (!Objects.equal(_sourceDataMartRefName, null));
-    if (_notEquals) {
-      StringConcatenation _builder_3 = new StringConcatenation();
-      _builder_3.append(body, "");
-      _builder_3.newLineIfNotEmpty();
-      _builder_3.append("datamartClass = new ");
-      String _sourceDataMartRefName_1 = this.getSourceDataMartRefName(table);
-      _builder_3.append(_sourceDataMartRefName_1, "");
-      _builder_3.append("Datamart();");
-      body = _builder_3.toString();
-    }
-    boolean _and = false;
-    TableOption _tabletype_3 = table.getTabletype();
-    boolean _isEmbedded = _tabletype_3.isEmbedded();
-    boolean _not = (!_isEmbedded);
-    if (!_not) {
-      _and = false;
     } else {
-      TableOption _tabletype_4 = table.getTabletype();
-      ActionToolbar _toolbar = _tabletype_4.getToolbar();
-      boolean _notEquals_1 = (!Objects.equal(_toolbar, null));
-      _and = _notEquals_1;
-    }
-    if (_and) {
-      StringConcatenation _builder_4 = new StringConcatenation();
-      _builder_4.append(body, "");
-      _builder_4.newLineIfNotEmpty();
-      _builder_4.append("toolbarClass = new ");
-      TableOption _tabletype_5 = table.getTabletype();
-      ActionToolbar _toolbar_1 = _tabletype_5.getToolbar();
-      String _name_2 = _toolbar_1.getName();
-      String _string_1 = _name_2.toString();
-      String _firstUpper = StringExtensions.toFirstUpper(_string_1);
-      _builder_4.append(_firstUpper, "");
-      _builder_4.append("Action(UUID.randomUUID().toString());");
-      _builder_4.newLineIfNotEmpty();
-      _builder_4.append("toolbarClass.createToolbar(getContext(), renderingEngine, themeResourceService);");
-      body = _builder_4.toString();
-    }
-    StringConcatenation _builder_5 = new StringConcatenation();
-    _builder_5.append(body, "");
-    _builder_5.newLineIfNotEmpty();
-    _builder_5.append("parent.setPrimaryStyleName(\"osbp\");");
-    _builder_5.newLine();
-    _builder_5.append("parent.setId(\"parent\");");
-    _builder_5.newLine();
-    _builder_5.append("parent.setSizeFull();");
-    _builder_5.newLine();
-    _builder_5.append("layoutManager.init(parent);");
-    _builder_5.newLine();
-    _builder_5.append("refreshView = ");
-    String _refreshView = this.refreshView(table);
-    _builder_5.append(_refreshView, "");
-    _builder_5.newLineIfNotEmpty();
-    {
-      boolean _and_1 = false;
-      TableOption _tabletype_6 = table.getTabletype();
-      boolean _isEmbedded_1 = _tabletype_6.isEmbedded();
-      boolean _not_1 = (!_isEmbedded_1);
-      if (!_not_1) {
-        _and_1 = false;
+      boolean _isBean_1 = this.isBean(table);
+      if (_isBean_1) {
+        TableOption _tabletype = table.getTabletype();
+        DatamartDefinition _datamartRef = ((TableBean) _tabletype).getSource().getDatamartRef();
+        if ((_datamartRef instanceof DatamartEntity)) {
+          StringConcatenation _builder_2 = new StringConcatenation();
+          _builder_2.append(body);
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("persistenceService.registerPersistenceUnit(\"");
+          TableOption _tabletype_1 = table.getTabletype();
+          DatamartDefinition _datamartRef_1 = ((TableBean) _tabletype_1).getSource().getDatamartRef();
+          String _persistenceUnit_1 = ((DatamartEntity) _datamartRef_1).getEntityRef().getPersistenceUnit();
+          _builder_2.append(_persistenceUnit_1);
+          _builder_2.append("\")");
+          body = _builder_2.toString();
+        }
       } else {
-        TableOption _tabletype_7 = table.getTabletype();
-        ActionToolbar _toolbar_2 = _tabletype_7.getToolbar();
-        boolean _notEquals_2 = (!Objects.equal(_toolbar_2, null));
-        _and_1 = _notEquals_2;
-      }
-      if (_and_1) {
-        _builder_5.append("dispatchAction = ");
-        String _dispatchAction = this.dispatchAction(table);
-        _builder_5.append(_dispatchAction, "");
+        StringConcatenation _builder_3 = new StringConcatenation();
+        _builder_3.append(body);
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("datamartInstance = new ");
+        String _sourceDataMartRefName = this.getSourceDataMartRefName(table);
+        _builder_3.append(_sourceDataMartRefName);
+        _builder_3.append("Datamart();");
+        _builder_3.newLineIfNotEmpty();
+        _builder_3.append("datamartInstance.setUser(user);");
+        _builder_3.newLine();
+        _builder_3.append("filterGenerator = new DatamartFilterGenerator(datamartInstance, dslMetadataService);");
+        _builder_3.newLine();
+        _builder_3.append("filterGenerator.createUIFilters(layoutManager);");
+        _builder_3.newLine();
+        body = _builder_3.toString();
       }
     }
-    _builder_5.newLineIfNotEmpty();
-    body = _builder_5.toString();
-    TableOption _tabletype_8 = table.getTabletype();
-    boolean _isPolling = _tabletype_8.isPolling();
+    StringConcatenation _builder_4 = new StringConcatenation();
+    _builder_4.append(body);
+    _builder_4.newLineIfNotEmpty();
+    _builder_4.append("coordinateSystem = new ArrayList<Integer>();");
+    _builder_4.newLine();
+    _builder_4.append("tableSelectDelay = new Refresher();");
+    _builder_4.newLine();
+    _builder_4.append("tableRefresher = new Refresher();");
+    _builder_4.newLine();
+    _builder_4.append("attributeLookupMap = new HashMap<>();");
+    _builder_4.newLine();
+    _builder_4.append("tabSheets = new HashMap<>();");
+    body = _builder_4.toString();
+    if (((!table.getTabletype().isEmbedded()) && (table.getTabletype().getToolbar() != null))) {
+      StringConcatenation _builder_5 = new StringConcatenation();
+      _builder_5.append(body);
+      _builder_5.newLineIfNotEmpty();
+      _builder_5.append("toolbarUUID = UUID.randomUUID().toString();");
+      _builder_5.newLine();
+      _builder_5.append("toolbarClass = new ");
+      String _firstUpper = StringExtensions.toFirstUpper(table.getTabletype().getToolbar().getName().toString());
+      _builder_5.append(_firstUpper);
+      _builder_5.append("Toolbar(toolbarUUID);");
+      _builder_5.newLineIfNotEmpty();
+      _builder_5.append("toolbarClass.createToolbar(eclipseContext, renderingEngine, themeResourceService);");
+      body = _builder_5.toString();
+    }
+    boolean _isPolling = table.getTabletype().isPolling();
     if (_isPolling) {
       StringConcatenation _builder_6 = new StringConcatenation();
-      _builder_6.append(body, "");
+      _builder_6.append(body);
       _builder_6.newLineIfNotEmpty();
       _builder_6.append("tableRefresher.setRefreshInterval(");
-      TableOption _tabletype_9 = table.getTabletype();
-      String _pollingTime = _tabletype_9.getPollingTime();
-      _builder_6.append(_pollingTime, "");
+      String _pollingTime = table.getTabletype().getPollingTime();
+      _builder_6.append(_pollingTime);
       _builder_6.append("*1000);");
       _builder_6.newLineIfNotEmpty();
       _builder_6.append("tableRefresher.addListener(new com.github.wolfie.refresher.Refresher.RefreshListener() {");
@@ -1687,327 +1714,120 @@
       _builder_6.newLine();
       body = _builder_6.toString();
     }
-    boolean _and_2 = false;
-    boolean _and_3 = false;
-    TableDatamart _dataMartTable = this.getDataMartTable(table);
-    if (!(_dataMartTable instanceof TableDatamart)) {
-      _and_3 = false;
-    } else {
-      TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
-      boolean _notEquals_3 = (!Objects.equal(_dataMartTable_1, null));
-      _and_3 = _notEquals_3;
-    }
-    if (!_and_3) {
-      _and_2 = false;
-    } else {
-      _and_2 = ((((TableDatamart) this.getDataMartTable(table)).getDatamartRef().getSource() instanceof DatamartEntity) || 
-        (((TableDatamart) this.getDataMartTable(table)).getDatamartRef().getSource() instanceof DatamartCube));
-    }
-    if (_and_2) {
-      StringConcatenation _builder_7 = new StringConcatenation();
-      _builder_7.append(body, "");
-      _builder_7.newLineIfNotEmpty();
-      _builder_7.append("filterChangeListener = new ValueChangeListener() {");
-      _builder_7.newLine();
-      _builder_7.append("\t");
-      _builder_7.append("@Override");
-      _builder_7.newLine();
-      _builder_7.append("\t");
-      _builder_7.append("public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {");
-      _builder_7.newLine();
-      _builder_7.append("\t\t");
-      String _callDataRefreshMethod_1 = this.getCallDataRefreshMethod(table);
-      _builder_7.append(_callDataRefreshMethod_1, "\t\t");
-      _builder_7.newLineIfNotEmpty();
-      _builder_7.append("\t");
-      _builder_7.append("}");
-      _builder_7.newLine();
-      _builder_7.append("};");
-      _builder_7.newLine();
-      _builder_7.append("filterGenerator.createFilter(datamartClass, user, filterChangeListener, layoutManager);");
-      _builder_7.newLine();
-      body = _builder_7.toString();
-    }
-    StringConcatenation _builder_8 = new StringConcatenation();
-    _builder_8.append(body, "");
-    _builder_8.append("setup();");
-    _builder_8.newLineIfNotEmpty();
-    _builder_8.append("user.addUserLocaleListener(this);");
-    _builder_8.newLine();
-    body = _builder_8.toString();
+    StringConcatenation _builder_7 = new StringConcatenation();
+    _builder_7.append(body);
+    _builder_7.newLineIfNotEmpty();
+    _builder_7.append("initDone = true;");
+    _builder_7.newLine();
+    body = _builder_7.toString();
     return body;
   }
   
   public boolean isTask(final Table table) {
-    boolean _and = false;
-    TableDatamart _dataMartTable = this.getDataMartTable(table);
-    if (!(_dataMartTable instanceof TableDatamart)) {
-      _and = false;
-    } else {
-      TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
-      DatamartDefinition _datamartRef = ((TableDatamart) _dataMartTable_1).getDatamartRef();
-      DatamartSource _source = _datamartRef.getSource();
-      _and = (_source instanceof DatamartTask);
-    }
-    return _and;
+    return ((this.getDataMartTable(table) instanceof TableDatamart) && 
+      (((TableDatamart) this.getDataMartTable(table)).getDatamartRef().getSource() instanceof DatamartTask));
   }
   
-  public CharSequence dataRefresh(final Table table) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("try {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("// if no current ui found");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("if (UI.getCurrent() == null) {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("for(CellSetFilterTable table:tables) {");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("UI.setCurrent(table.getUI());");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("break;");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("if(dataSourceContainer== null || !dataSourceContainer.updateContainer(getCellSet())) {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("log.debug(\"cannot update container - full refresh\");");
-    _builder.newLine();
-    {
-      TableOption _tabletype = table.getTabletype();
-      boolean _isEmbedded = _tabletype.isEmbedded();
-      if (_isEmbedded) {
-        _builder.append("\t\t");
-        _builder.append("createComponents();");
-        _builder.newLine();
-      } else {
-        _builder.append("\t\t");
-        _builder.append("renderData();");
-        _builder.newLine();
-      }
-    }
-    _builder.append("\t\t\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("for(CellSetFilterTable table:tables) {");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
-    _builder.append("table.sanitizeSelection();");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
-    CharSequence _notifyBPMNChart = this.notifyBPMNChart(table);
-    _builder.append(_notifyBPMNChart, "\t\t\t\t");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t\t\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("catch (Exception e) {");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("log.error(\"dataRefresh\", e);");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("}");
-    return _builder;
-  }
-  
-  /**
-   * <p>create a handler for external triggered refresh requests.</p>
-   */
-  public String refreshView(final Table table) {
-    String body = "";
-    String updateFiler = "";
+  public boolean isGrid(final Table table) {
     TableOption _tabletype = table.getTabletype();
-    boolean _matched = false;
-    if (!_matched) {
-      if (_tabletype instanceof TableTable) {
-        _matched=true;
-        updateFiler = "filterGenerator.updateFilter(datamartClass, user, filterChangeListener);";
-      }
-    }
-    if (!_matched) {
-      if (_tabletype instanceof TableGrid) {
-        _matched=true;
-      }
-    }
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append(body, "");
-    _builder.newLineIfNotEmpty();
-    _builder.append("new EventHandler() {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("@Override");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("public void handleEvent(Event event) {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("// data could be changed externally - update filters");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append(updateFiler, "\t\t");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t\t");
-    String _callDataRefreshMethod = this.getCallDataRefreshMethod(table);
-    _builder.append(_callDataRefreshMethod, "\t\t");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("};");
-    _builder.newLine();
-    body = _builder.toString();
-    return body;
+    return (_tabletype instanceof TableGrid);
   }
   
-  /**
-   * <p>create a handler for external triggered task actions.</p>
-   */
-  public String dispatchAction(final Table table) {
+  public boolean isTable(final Table table) {
+    TableOption _tabletype = table.getTabletype();
+    return (_tabletype instanceof TableTable);
+  }
+  
+  public boolean isBean(final Table table) {
+    TableOption _tabletype = table.getTabletype();
+    return (_tabletype instanceof TableBean);
+  }
+  
+  public boolean isSelection(final Table table) {
+    TableOption _tabletype = table.getTabletype();
+    return (_tabletype instanceof TableSelection);
+  }
+  
+  public String dataRefresh(final Table table) {
     String body = "";
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append(body, "");
-    _builder.newLineIfNotEmpty();
-    _builder.append("new EventHandler() {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("@Override");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("public void handleEvent(Event event) {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("EventBrokerMsg msg = (EventBrokerMsg)event.getProperty(EventUtils.DATA);");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("log.debug(\"dispatch action received in ");
-    String _name = table.getName();
-    _builder.append(_name, "\t\t");
-    _builder.append(" for \"+msg.getName());");
-    _builder.newLineIfNotEmpty();
-    {
-      boolean _isTask = this.isTask(table);
-      if (_isTask) {
-        _builder.append("\t\t");
-        _builder.append("currentTaskId = msg.getLong();");
-        _builder.newLine();
-        _builder.append("\t\t");
-        _builder.append("taskClient.operations(msg.getLong(), user, null, Operation.valueOf(msg.getName()));");
-        _builder.newLine();
-      } else {
-        TableOption _tabletype = table.getTabletype();
-        if ((_tabletype instanceof TableSelection)) {
-          _builder.append("\t\t");
-          _builder.append("switch(msg.getName()) {");
-          _builder.newLine();
-          _builder.append("\t\t");
-          _builder.append("\t");
-          _builder.append("case \"");
-          String _literal = SelectWorkloadActionEnum.WORKLOAD_SELECT_ACTION_ADD_ALL.getLiteral();
-          _builder.append(_literal, "\t\t\t");
-          _builder.append("\":");
-          _builder.newLineIfNotEmpty();
-          _builder.append("\t\t");
-          _builder.append("\t\t");
-          _builder.append("addAllItemsToWorkloadDto();");
-          _builder.newLine();
-          _builder.append("\t\t");
-          _builder.append("\t\t");
-          _builder.append("break;");
-          _builder.newLine();
-          _builder.append("\t\t");
-          _builder.append("\t");
-          _builder.append("case \"");
-          String _literal_1 = SelectWorkloadActionEnum.WORKLOAD_SELECT_ACTION_REMOVE_ALL.getLiteral();
-          _builder.append(_literal_1, "\t\t\t");
-          _builder.append("\":");
-          _builder.newLineIfNotEmpty();
-          _builder.append("\t\t");
-          _builder.append("\t\t");
-          _builder.append("removeAllItemsFromWorkloadDto();");
-          _builder.newLine();
-          _builder.append("\t\t");
-          _builder.append("\t\t");
-          _builder.append("break;");
-          _builder.newLine();
-          _builder.append("\t\t");
-          _builder.append("}");
-          _builder.newLine();
+    boolean _isBean = this.isBean(table);
+    if (_isBean) {
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append(body);
+      _builder.newLineIfNotEmpty();
+      _builder.append("if(table != null) {");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("table.refreshRowCache();");
+      _builder.newLine();
+      _builder.append("}");
+      _builder.newLine();
+      body = _builder.toString();
+    } else {
+      StringConcatenation _builder_1 = new StringConcatenation();
+      _builder_1.append(body);
+      _builder_1.newLineIfNotEmpty();
+      _builder_1.append("try {");
+      _builder_1.newLine();
+      _builder_1.append("\t");
+      _builder_1.append("// if no current ui found");
+      _builder_1.newLine();
+      _builder_1.append("\t");
+      _builder_1.append("if (UI.getCurrent() == null) {");
+      _builder_1.newLine();
+      _builder_1.append("\t\t");
+      _builder_1.append("for(CellSetFilterTable table:tables) {");
+      _builder_1.newLine();
+      _builder_1.append("\t\t\t");
+      _builder_1.append("UI.setCurrent(table.getUI());");
+      _builder_1.newLine();
+      _builder_1.append("\t\t\t");
+      _builder_1.append("break;");
+      _builder_1.newLine();
+      _builder_1.append("\t\t");
+      _builder_1.append("}");
+      _builder_1.newLine();
+      _builder_1.append("\t");
+      _builder_1.append("}");
+      _builder_1.newLine();
+      _builder_1.append("\t");
+      _builder_1.append("if(dataSourceContainer== null || !dataSourceContainer.updateContainer(getCellSet())) {");
+      _builder_1.newLine();
+      _builder_1.append("\t\t");
+      _builder_1.append("log.debug(\"cannot update container - full refresh\");");
+      _builder_1.newLine();
+      {
+        boolean _isEmbedded = table.getTabletype().isEmbedded();
+        if (_isEmbedded) {
+          _builder_1.append("\t\t");
+          _builder_1.append("createComponents();");
+          _builder_1.newLine();
         } else {
-          _builder.append("\t\t");
-          _builder.append("switch(msg.getName()) {");
-          _builder.newLine();
-          _builder.append("\t\t");
-          _builder.append("\t");
-          _builder.append("case \"");
-          String _literal_2 = ReportActionEnum.REPORT_ACTION_PRINT_ON_SERVER_PDF.getLiteral();
-          _builder.append(_literal_2, "\t\t\t");
-          _builder.append("\":");
-          _builder.newLineIfNotEmpty();
-          _builder.append("\t\t");
-          _builder.append("\t\t");
-          _builder.append("break;");
-          _builder.newLine();
-          _builder.append("\t\t");
-          _builder.append("\t");
-          _builder.append("case \"");
-          String _literal_3 = ReportActionEnum.REPORT_ACTION_DOWNLOAD_PDF.getLiteral();
-          _builder.append(_literal_3, "\t\t\t");
-          _builder.append("\":");
-          _builder.newLineIfNotEmpty();
-          _builder.append("\t\t");
-          _builder.append("\t\t");
-          _builder.append("break;");
-          _builder.newLine();
-          _builder.append("\t\t");
-          _builder.append("\t");
-          _builder.append("case \"");
-          String _literal_4 = ChartActionEnum.CHART_ACTION_DOWNLOAD.getLiteral();
-          _builder.append(_literal_4, "\t\t\t");
-          _builder.append("\":");
-          _builder.newLineIfNotEmpty();
-          _builder.append("\t\t");
-          _builder.append("\t\t");
-          _builder.append("break;");
-          _builder.newLine();
-          _builder.append("\t\t");
-          _builder.append("\t");
-          _builder.append("case \"");
-          String _literal_5 = WorkflowActionEnum.WORKFLOW_ACTION_START.getLiteral();
-          _builder.append(_literal_5, "\t\t\t");
-          _builder.append("\":");
-          _builder.newLineIfNotEmpty();
-          _builder.append("\t\t");
-          _builder.append("\t\t");
-          _builder.append("break;");
-          _builder.newLine();
-          _builder.append("\t\t");
-          _builder.append("}");
-          _builder.newLine();
+          _builder_1.append("\t\t");
+          _builder_1.append("renderData();");
+          _builder_1.newLine();
         }
       }
+      _builder_1.append("\t");
+      _builder_1.append("}");
+      _builder_1.newLine();
+      _builder_1.append("\t");
+      _builder_1.append("for(CellSetFilterTable table:tables) {");
+      _builder_1.newLine();
+      _builder_1.append("\t\t");
+      _builder_1.append("table.sanitizeSelection();");
+      _builder_1.newLine();
+      _builder_1.append("\t");
+      _builder_1.append("}");
+      _builder_1.newLine();
+      _builder_1.append("} catch (Exception e) {");
+      _builder_1.newLine();
+      _builder_1.append("\t");
+      _builder_1.append("log.error(\"dataRefresh\", e);");
+      _builder_1.newLine();
+      _builder_1.append("}");
+      body = _builder_1.toString();
     }
-    _builder.append("\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("};");
-    _builder.newLine();
-    body = _builder.toString();
     return body;
   }
   
@@ -2017,7 +1837,7 @@
   public String delegatedTask(final Table table) {
     String body = "";
     StringConcatenation _builder = new StringConcatenation();
-    _builder.append(body, "");
+    _builder.append(body);
     _builder.newLineIfNotEmpty();
     _builder.append("new EventHandler() {");
     _builder.newLine();
@@ -2031,7 +1851,7 @@
     _builder.append("EventBrokerMsg msg = (EventBrokerMsg)event.getProperty(EventUtils.DATA);");
     _builder.newLine();
     _builder.append("\t\t");
-    _builder.append("datamartClass.operations(msg.getLong(), user, msg.getName(), Operation.Delegate);");
+    _builder.append("datamartInstance.operations(msg.getLong(), user, msg.getName(), BPMOperation.Delegate);");
     _builder.newLine();
     _builder.append("\t");
     _builder.append("}");
@@ -2046,263 +1866,210 @@
    * <p>build the data components.</p>
    */
   public String createComponents(final Table table) {
-    String body = "resetListeningForEntityIdsModifications();";
-    TableDatamart _dataMartTable = this.getDataMartTable(table);
-    boolean _notEquals = (!Objects.equal(_dataMartTable, null));
-    if (_notEquals) {
+    String body = "";
+    if (((this.getDataMartTable(table) != null) && (!this.isBean(table)))) {
       StringConcatenation _builder = new StringConcatenation();
-      String generateModifyLister = _builder.toString();
-      boolean _and = false;
-      boolean _and_1 = false;
-      TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
-      boolean _notEquals_1 = (!Objects.equal(_dataMartTable_1, null));
-      if (!_notEquals_1) {
-        _and_1 = false;
-      } else {
-        TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
-        DatamartDefinition _datamartRef = _dataMartTable_2.getDatamartRef();
-        boolean _notEquals_2 = (!Objects.equal(_datamartRef, null));
-        _and_1 = _notEquals_2;
-      }
-      if (!_and_1) {
-        _and = false;
-      } else {
-        TableDatamart _dataMartTable_3 = this.getDataMartTable(table);
-        DatamartDefinition _datamartRef_1 = _dataMartTable_3.getDatamartRef();
-        DatamartSource _source = _datamartRef_1.getSource();
-        _and = (_source instanceof DatamartEntity);
-      }
-      if (_and) {
-        StringConcatenation _builder_1 = new StringConcatenation();
-        _builder_1.append("datamartClass.addEntityIdsToModifyListener(this, cellSet);");
-        generateModifyLister = _builder_1.toString();
-      }
-      StringConcatenation _builder_2 = new StringConcatenation();
-      _builder_2.append("try {");
-      _builder_2.newLine();
-      _builder_2.append("\t");
-      _builder_2.append("// get the results");
-      _builder_2.newLine();
-      _builder_2.append("\t");
-      _builder_2.append("final DerivedCellSet cellSet = getCellSet();");
-      _builder_2.newLine();
-      _builder_2.append("\t");
-      _builder_2.append("if (cellSet == null) {");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
+      _builder.append("// get the results");
+      _builder.newLine();
+      _builder.append("final DerivedCellSet cellSet = getCellSet();");
+      _builder.newLine();
+      _builder.append("if (cellSet == null) {");
+      _builder.newLine();
+      _builder.append("\t");
       {
-        TableOption _tabletype = table.getTabletype();
-        boolean _isEmbedded = _tabletype.isEmbedded();
+        boolean _isEmbedded = table.getTabletype().isEmbedded();
         boolean _not = (!_isEmbedded);
         if (_not) {
-          _builder_2.append("promptSecurityMessage(dslMetadataService.translate(locale.toLanguageTag(), \"securityMessage\"), layoutManager.getDataArea());");
+          _builder.append("promptSecurityMessage(dslMetadataService.translate(user.getLocale().toLanguageTag(), \"securityMessage\"), layoutManager.getDataArea());");
         }
       }
-      _builder_2.newLineIfNotEmpty();
-      _builder_2.append("\t\t");
-      _builder_2.append("return;");
-      _builder_2.newLine();
-      _builder_2.append("\t");
-      _builder_2.append("} else {");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("layoutManager.getDataArea().removeAllComponents();");
-      _builder_2.newLine();
-      _builder_2.append("\t");
-      _builder_2.append("}");
-      _builder_2.newLine();
-      {
-        TableOption _tabletype_1 = table.getTabletype();
-        boolean _isEmbedded_1 = _tabletype_1.isEmbedded();
-        boolean _not_1 = (!_isEmbedded_1);
-        if (_not_1) {
-          _builder_2.append("\t");
-          _builder_2.append("resetListeningForEntityIdsModifications();");
-          _builder_2.newLine();
-          _builder_2.append("\t");
-          _builder_2.append(generateModifyLister, "\t");
-          _builder_2.newLineIfNotEmpty();
-        }
-      }
-      _builder_2.append("\t");
-      _builder_2.append("getCoordinateSystem().clear();");
-      _builder_2.newLine();
-      _builder_2.append("\t");
-      _builder_2.append("// generate a new result component");
-      _builder_2.newLine();
-      _builder_2.append("\t");
-      _builder_2.append("if (cellSet != null) {");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("// create a multidimensional coordinate system against the cellSet");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("for\t(int axis = 0; axis < cellSet.getAxes().size(); axis++) {");
-      _builder_2.newLine();
-      _builder_2.append("\t\t\t");
-      _builder_2.append("getCoordinateSystem().add(0);");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("}");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("// remove any previous component");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("if\t(dataComponent != null) {");
-      _builder_2.newLine();
-      _builder_2.append("\t\t\t");
-      _builder_2.append("layoutManager.getDataArea().removeComponent(dataComponent);");
-      _builder_2.newLine();
-      _builder_2.append("\t\t\t");
-      _builder_2.append("dataComponent = null;");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("}");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("if (cellSet.getAxes().size() < 2) {");
-      _builder_2.newLine();
-      _builder_2.append("\t\t\t");
-      _builder_2.append("log.error(\"at least 2 axes from referenced datamart ");
-      TableDatamart _dataMartTable_4 = this.getDataMartTable(table);
-      DatamartDefinition _datamartRef_2 = _dataMartTable_4.getDatamartRef();
-      String _name = _datamartRef_2.getName();
-      _builder_2.append(_name, "\t\t\t");
-      _builder_2.append(" are needed to render ");
+      _builder.newLineIfNotEmpty();
+      _builder.append("\t");
+      _builder.append("return;");
+      _builder.newLine();
+      _builder.append("} else {");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("layoutManager.getDataArea().removeAllComponents();");
+      _builder.newLine();
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("getCoordinateSystem().clear();");
+      _builder.newLine();
+      _builder.append("// generate a new result component");
+      _builder.newLine();
+      _builder.append("if (cellSet != null) {");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("// create a multidimensional coordinate system against the cellSet");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("for\t(int axis = 0; axis < cellSet.getAxes().size(); axis++) {");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("getCoordinateSystem().add(0);");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("// remove any previous component");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("if\t(dataComponent != null) {");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("layoutManager.getDataArea().removeComponent(dataComponent);");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("dataComponent = null;");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("if (cellSet.getAxes().size() < 2) {");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("log.error(\"at least 2 axes from referenced datamart ");
+      String _name = this.getDataMartTable(table).getDatamartRef().getName();
+      _builder.append(_name, "\t\t");
+      _builder.append(" are needed to render ");
       String _name_1 = table.getName();
-      _builder_2.append(_name_1, "\t\t\t");
-      _builder_2.append("\");");
-      _builder_2.newLineIfNotEmpty();
-      _builder_2.append("\t\t");
-      _builder_2.append("}");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("dataComponent = createTabSheet(cellSet, cellSet.getAxes().size());");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("if\t(dataComponent != null) {");
-      _builder_2.newLine();
-      _builder_2.append("\t\t\t");
-      _builder_2.append("dataComponent.setSizeFull();");
-      _builder_2.newLine();
-      _builder_2.append("\t\t\t");
-      _builder_2.append("dataComponent.setId(\"dataComponent\");");
-      _builder_2.newLine();
-      _builder_2.append("\t\t\t");
-      _builder_2.append("layoutManager.getDataArea().addComponent(dataComponent);");
-      _builder_2.newLine();
+      _builder.append(_name_1, "\t\t");
+      _builder.append("\");");
+      _builder.newLineIfNotEmpty();
+      _builder.append("\t");
+      _builder.append("} else {");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("dataComponent = createTabSheet(cellSet, cellSet.getAxes().size());");
+      _builder.newLine();
+      _builder.append("\t\t");
+      _builder.append("if\t(dataComponent != null) {");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("dataComponent.setSizeFull();");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("dataComponent.setId(\"dataComponent\");");
+      _builder.newLine();
+      _builder.append("\t\t\t");
+      _builder.append("layoutManager.getDataArea().addComponent(dataComponent);");
+      _builder.newLine();
       {
-        TableOption _tabletype_2 = table.getTabletype();
-        if ((_tabletype_2 instanceof TableSelection)) {
-          _builder_2.append("\t\t\t");
-          _builder_2.append("selectItemsFromWorkloadDto();");
-          _builder_2.newLine();
+        boolean _isSelection = this.isSelection(table);
+        if (_isSelection) {
+          _builder.append("\t\t\t");
+          _builder.append("selectItemsFromWorkloadDto();");
+          _builder.newLine();
         }
       }
-      _builder_2.append("\t\t\t");
-      _builder_2.append("layoutManager.getDataArea().setExpandRatio(dataComponent, 1);");
-      _builder_2.newLine();
-      _builder_2.append("\t\t\t");
+      _builder.append("\t\t\t");
+      _builder.append("layoutManager.getDataArea().setExpandRatio(dataComponent, 1);");
+      _builder.newLine();
+      _builder.append("\t\t\t");
       String _selectAlways = this.getSelectAlways(table);
-      _builder_2.append(_selectAlways, "\t\t\t");
-      _builder_2.newLineIfNotEmpty();
-      _builder_2.append("\t\t");
-      _builder_2.append("}");
-      _builder_2.newLine();
-      _builder_2.append("\t");
-      _builder_2.append("} ");
-      _builder_2.newLine();
-      _builder_2.append("\t");
-      _builder_2.append("else {");
-      _builder_2.newLine();
-      _builder_2.append("\t\t");
-      _builder_2.append("log.error(\"referenced datamart ");
-      TableDatamart _dataMartTable_5 = this.getDataMartTable(table);
-      DatamartDefinition _datamartRef_3 = _dataMartTable_5.getDatamartRef();
-      String _name_2 = _datamartRef_3.getName();
-      _builder_2.append(_name_2, "\t\t");
-      _builder_2.append(" generates no results\");");
-      _builder_2.newLineIfNotEmpty();
-      _builder_2.append("\t");
-      _builder_2.append("}");
-      _builder_2.newLine();
-      _builder_2.append("} catch (DerivedOlapException e) {");
-      _builder_2.newLine();
-      _builder_2.append("\t");
-      _builder_2.append("log.error(\"createComponents\", e);");
-      _builder_2.newLine();
-      _builder_2.append("}");
-      _builder_2.newLine();
-      body = _builder_2.toString();
+      _builder.append(_selectAlways, "\t\t\t");
+      _builder.newLineIfNotEmpty();
+      _builder.append("\t\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("} ");
+      _builder.newLine();
+      _builder.append("else {");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("log.error(\"referenced datamart ");
+      String _name_2 = this.getDataMartTable(table).getDatamartRef().getName();
+      _builder.append(_name_2, "\t");
+      _builder.append(" generates no results\");");
+      _builder.newLineIfNotEmpty();
+      _builder.append("}");
+      _builder.newLine();
+      body = _builder.toString();
     } else {
-      StringConcatenation _builder_3 = new StringConcatenation();
-      _builder_3.append(body, "");
-      _builder_3.newLineIfNotEmpty();
-      _builder_3.append("// generate a new result component");
-      _builder_3.newLine();
-      _builder_3.append("try {");
-      _builder_3.newLine();
-      _builder_3.append("\t");
-      _builder_3.append("// remove any previous component");
-      _builder_3.newLine();
-      _builder_3.append("\t");
-      _builder_3.append("if\t(dataComponent != null) {");
-      _builder_3.newLine();
-      _builder_3.append("\t\t");
-      _builder_3.append("layoutManager.getDataArea().removeComponent(dataComponent);");
-      _builder_3.newLine();
-      _builder_3.append("\t\t");
-      _builder_3.append("dataComponent = null;");
-      _builder_3.newLine();
-      _builder_3.append("\t");
-      _builder_3.append("}");
-      _builder_3.newLine();
-      _builder_3.append("\t");
-      _builder_3.append("dataComponent = createDtoGrid();");
-      _builder_3.newLine();
-      _builder_3.append("\t");
-      _builder_3.append("dataComponent.setSizeFull();");
-      _builder_3.newLine();
-      _builder_3.append("\t");
-      _builder_3.append("dataComponent.setId(\"dataComponent\");");
-      _builder_3.newLine();
-      _builder_3.append("\t");
-      _builder_3.append("layoutManager.getDataArea().addComponent(dataComponent);");
-      _builder_3.newLine();
-      _builder_3.append("\t");
-      _builder_3.append("layoutManager.getDataArea().setExpandRatio(dataComponent, 1);");
-      _builder_3.newLine();
-      _builder_3.append("\t");
-      String _selectAlways_1 = this.getSelectAlways(table);
-      _builder_3.append(_selectAlways_1, "\t");
-      _builder_3.newLineIfNotEmpty();
-      _builder_3.append("} catch (DerivedOlapException e) {");
-      _builder_3.newLine();
-      _builder_3.append("\t");
-      _builder_3.append("log.error(\"createComponents\", e);");
-      _builder_3.newLine();
-      _builder_3.append("}");
-      _builder_3.newLine();
-      body = _builder_3.toString();
+      boolean _isGrid = this.isGrid(table);
+      if (_isGrid) {
+        StringConcatenation _builder_1 = new StringConcatenation();
+        _builder_1.append(body);
+        _builder_1.newLineIfNotEmpty();
+        _builder_1.append("// generate a new result component");
+        _builder_1.newLine();
+        _builder_1.append("// remove any previous component");
+        _builder_1.newLine();
+        _builder_1.append("if\t(dataComponent != null) {");
+        _builder_1.newLine();
+        _builder_1.append("\t");
+        _builder_1.append("layoutManager.getDataArea().removeComponent(dataComponent);");
+        _builder_1.newLine();
+        _builder_1.append("\t");
+        _builder_1.append("dataComponent = null;");
+        _builder_1.newLine();
+        _builder_1.append("}");
+        _builder_1.newLine();
+        _builder_1.append("dataComponent = createDtoGrid();");
+        _builder_1.newLine();
+        _builder_1.append("dataComponent.setSizeFull();");
+        _builder_1.newLine();
+        _builder_1.append("dataComponent.setId(\"dataComponent\");");
+        _builder_1.newLine();
+        _builder_1.append("layoutManager.getDataArea().addComponent(dataComponent);");
+        _builder_1.newLine();
+        _builder_1.append("layoutManager.getDataArea().setExpandRatio(dataComponent, 1);");
+        _builder_1.newLine();
+        String _selectAlways_1 = this.getSelectAlways(table);
+        _builder_1.append(_selectAlways_1);
+        _builder_1.newLineIfNotEmpty();
+        body = _builder_1.toString();
+      } else {
+        boolean _isBean = this.isBean(table);
+        if (_isBean) {
+          StringConcatenation _builder_2 = new StringConcatenation();
+          _builder_2.append(body);
+          _builder_2.newLineIfNotEmpty();
+          _builder_2.append("// generate a new result component");
+          _builder_2.newLine();
+          _builder_2.append("// remove any previous component");
+          _builder_2.newLine();
+          _builder_2.append("if\t(dataComponent != null) {");
+          _builder_2.newLine();
+          _builder_2.append("\t");
+          _builder_2.append("layoutManager.getDataArea().removeComponent(dataComponent);");
+          _builder_2.newLine();
+          _builder_2.append("\t");
+          _builder_2.append("dataComponent = null;");
+          _builder_2.newLine();
+          _builder_2.append("}");
+          _builder_2.newLine();
+          _builder_2.append("dataComponent = createTable();");
+          _builder_2.newLine();
+          _builder_2.append("dataComponent.setSizeFull();");
+          _builder_2.newLine();
+          _builder_2.append("dataComponent.setId(\"dataComponent\");");
+          _builder_2.newLine();
+          _builder_2.append("layoutManager.getDataArea().addComponent(dataComponent);");
+          _builder_2.newLine();
+          _builder_2.append("layoutManager.getDataArea().setExpandRatio(dataComponent, 1);");
+          _builder_2.newLine();
+          String _selectAlways_2 = this.getSelectAlways(table);
+          _builder_2.append(_selectAlways_2);
+          _builder_2.newLineIfNotEmpty();
+          body = _builder_2.toString();
+        }
+      }
     }
     return body;
   }
   
   public String getSelectAlways(final Table table) {
     String body = "";
-    boolean _and = false;
-    TableOption _tabletype = table.getTabletype();
-    if (!(_tabletype instanceof TableTable)) {
-      _and = false;
-    } else {
-      TableOption _tabletype_1 = table.getTabletype();
-      boolean _isSelectalways = ((TableTable) _tabletype_1).isSelectalways();
-      _and = _isSelectalways;
-    }
-    if (_and) {
+    if ((this.isTable(table) && ((TableTable) table.getTabletype()).isSelectalways())) {
       StringConcatenation _builder = new StringConcatenation();
-      _builder.append(body, "");
+      _builder.append(body);
       _builder.newLineIfNotEmpty();
       _builder.append("tableSelectDelay.setRefreshInterval(1000);");
       _builder.newLine();
@@ -2359,7 +2126,7 @@
   public String createTabSheet(final Table table) {
     String body = "";
     StringConcatenation _builder = new StringConcatenation();
-    _builder.append(body, "");
+    _builder.append(body);
     _builder.newLineIfNotEmpty();
     _builder.append("tables.clear();");
     _builder.newLine();
@@ -2386,6 +2153,9 @@
     _builder.append("tabsheet.setSizeFull();");
     _builder.newLine();
     _builder.append("\t");
+    _builder.append("tabSheets.put(tabsheet, new ArrayList<String>());");
+    _builder.newLine();
+    _builder.append("\t");
     _builder.append("DerivedAxis tabAxis = cellSet.getAxes().get(axis);");
     _builder.newLine();
     _builder.append("\t");
@@ -2401,28 +2171,10 @@
     _builder.append("// create the title for the axis");
     _builder.newLine();
     _builder.append("\t\t");
-    _builder.append("String title = null;");
-    _builder.newLine();
-    _builder.append("\t\t");
     _builder.append("for (DerivedMember member : column.getMembers()) {");
     _builder.newLine();
     _builder.append("\t\t\t");
-    _builder.append("if\t(title == null) {");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
-    _builder.append("title = dslMetadataService.translate(locale.toLanguageTag(), member.getCaption());");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("else {");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
-    _builder.append("title += \" / \"+dslMetadataService.translate(locale.toLanguageTag(), member.getCaption());");
-    _builder.newLine();
-    _builder.append("\t\t\t");
-    _builder.append("}");
+    _builder.append("tabSheets.get(tabsheet).add(member.getCaption());");
     _builder.newLine();
     _builder.append("\t\t");
     _builder.append("}");
@@ -2443,18 +2195,18 @@
     _builder.append("if (component != null) {");
     _builder.newLine();
     _builder.append("\t\t\t");
-    _builder.append("component.setCaption(title);");
+    _builder.append("component.setCaption(\"\");");
     _builder.newLine();
     _builder.append("\t\t\t");
     _builder.append("tabsheet.addComponent(component);");
     _builder.newLine();
-    _builder.append("\t\t\t    \t\t");
+    _builder.append("    \t\t");
     _builder.append("if (component instanceof CellSetFilterTable) {");
     _builder.newLine();
-    _builder.append("\t\t\t    \t\t");
+    _builder.append("\t    \t\t");
     _builder.append("tabsheet.addComponent(((CellSetFilterTable)component));");
     _builder.newLine();
-    _builder.append("\t\t\t    \t\t");
+    _builder.append("    \t\t");
     _builder.append("}");
     _builder.newLine();
     _builder.append("\t\t");
@@ -2483,14 +2235,20 @@
     String body = "";
     TableAxis category_axis = null;
     TableAxis data_axis = null;
-    HashMap<String, IdProperty> idMap = CollectionLiterals.<String, IdProperty>newHashMap();
-    HashMap<String, FormatProperty> formatMap = CollectionLiterals.<String, FormatProperty>newHashMap();
+    HashMap<String, IdAttribute> idMap = CollectionLiterals.<String, IdAttribute>newHashMap();
+    HashMap<String, FormatAttribute> formatMap = CollectionLiterals.<String, FormatAttribute>newHashMap();
     HashMap<String, Map<Double, Map<String, String>>> intervalStyleMap = CollectionLiterals.<String, Map<Double, Map<String, String>>>newHashMap();
     HashMap<String, Map<Double, Map<String, String>>> intervalIconMap = CollectionLiterals.<String, Map<Double, Map<String, String>>>newHashMap();
     HashMap<String, Map<Double, Map<String, String>>> intervalTooltipMap = CollectionLiterals.<String, Map<Double, Map<String, String>>>newHashMap();
     HashMap<String, Map<Double, Map<String, String>>> numberLookupStyleMap = CollectionLiterals.<String, Map<Double, Map<String, String>>>newHashMap();
     HashMap<String, Map<Double, Map<String, String>>> numberLookupIconMap = CollectionLiterals.<String, Map<Double, Map<String, String>>>newHashMap();
     HashMap<String, Map<Double, Map<String, String>>> numberLookupTooltipMap = CollectionLiterals.<String, Map<Double, Map<String, String>>>newHashMap();
+    HashMap<String, Map<Integer, Map<String, String>>> intIntervalStyleMap = CollectionLiterals.<String, Map<Integer, Map<String, String>>>newHashMap();
+    HashMap<String, Map<Integer, Map<String, String>>> intIntervalIconMap = CollectionLiterals.<String, Map<Integer, Map<String, String>>>newHashMap();
+    HashMap<String, Map<Integer, Map<String, String>>> intIntervalTooltipMap = CollectionLiterals.<String, Map<Integer, Map<String, String>>>newHashMap();
+    HashMap<String, Map<Integer, Map<String, String>>> intLookupStyleMap = CollectionLiterals.<String, Map<Integer, Map<String, String>>>newHashMap();
+    HashMap<String, Map<Integer, Map<String, String>>> intLookupIconMap = CollectionLiterals.<String, Map<Integer, Map<String, String>>>newHashMap();
+    HashMap<String, Map<Integer, Map<String, String>>> intLookupTooltipMap = CollectionLiterals.<String, Map<Integer, Map<String, String>>>newHashMap();
     HashMap<String, Map<String, Map<String, String>>> stringLookupStyleMap = CollectionLiterals.<String, Map<String, Map<String, String>>>newHashMap();
     HashMap<String, Map<String, Map<String, String>>> stringLookupIconMap = CollectionLiterals.<String, Map<String, Map<String, String>>>newHashMap();
     HashMap<String, Map<String, Map<String, String>>> stringLookupTooltipMap = CollectionLiterals.<String, Map<String, Map<String, String>>>newHashMap();
@@ -2499,299 +2257,316 @@
     HashMap<String, Map<Double, Map<String, String>>> dateLookupTooltipMap = CollectionLiterals.<String, Map<Double, Map<String, String>>>newHashMap();
     HashMap<String, String> blobLookupMap = CollectionLiterals.<String, String>newHashMap();
     String rowStyle = "";
-    TableDatamart _dataMartTable = this.getDataMartTable(table);
-    EList<TableElement> _elements = _dataMartTable.getElements();
+    EList<TableElement> _elements = this.getDataMartTable(table).getElements();
     for (final TableElement element : _elements) {
       if ((element instanceof TableAxis)) {
         TableAxis axis = ((TableAxis) element);
-        AxisEnum _axis = axis.getAxis();
-        String _name = _axis.getName();
-        boolean _equals = _name.equals("COLUMNS");
+        boolean _equals = axis.getAxis().getName().equals("COLUMNS");
         if (_equals) {
           data_axis = axis;
         }
-        AxisEnum _axis_1 = axis.getAxis();
-        String _name_1 = _axis_1.getName();
-        boolean _equals_1 = _name_1.equals("ROWS");
+        boolean _equals_1 = axis.getAxis().getName().equals("ROWS");
         if (_equals_1) {
           category_axis = axis;
         }
       }
     }
-    boolean _equals_2 = Objects.equal(category_axis, null);
-    if (_equals_2) {
-      TableAxis _createTableAxis = TableDSLFactory.eINSTANCE.createTableAxis();
-      category_axis = _createTableAxis;
+    if ((category_axis == null)) {
+      category_axis = TableDSLFactory.eINSTANCE.createTableAxis();
       category_axis.setAxis(AxisEnum.ROWS);
-      TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
-      EList<TableElement> _elements_1 = _dataMartTable_1.getElements();
-      _elements_1.add(category_axis);
+      this.getDataMartTable(table).getElements().add(category_axis);
     }
-    boolean _equals_3 = Objects.equal(data_axis, null);
-    if (_equals_3) {
-      TableAxis _createTableAxis_1 = TableDSLFactory.eINSTANCE.createTableAxis();
-      data_axis = _createTableAxis_1;
+    if ((data_axis == null)) {
+      data_axis = TableDSLFactory.eINSTANCE.createTableAxis();
       data_axis.setAxis(AxisEnum.COLUMNS);
-      TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
-      EList<TableElement> _elements_2 = _dataMartTable_2.getElements();
-      _elements_2.add(data_axis);
+      this.getDataMartTable(table).getElements().add(data_axis);
     }
     String constructTable = "final CellSetFilterTable table = new CellSetFilterTable();";
     boolean multiSelect = false;
-    TableOption _tabletype = table.getTabletype();
-    if ((_tabletype instanceof TableSelection)) {
+    boolean _isSelection = this.isSelection(table);
+    if (_isSelection) {
       StringConcatenation _builder = new StringConcatenation();
       _builder.append("final CheckboxSelectionCellSetFilterTable table = new CheckboxSelectionCellSetFilterTable();");
       _builder.newLine();
       _builder.append("selectTable = table;");
       _builder.newLine();
       constructTable = _builder.toString();
-      TableOption _tabletype_1 = table.getTabletype();
-      boolean _isMultiSelection = ((TableSelection) _tabletype_1).isMultiSelection();
-      multiSelect = _isMultiSelection;
+      TableOption _tabletype = table.getTabletype();
+      multiSelect = ((TableSelection) _tabletype).isMultiSelection();
     }
-    StringConcatenation _builder_1 = new StringConcatenation();
-    _builder_1.append(body, "");
-    _builder_1.append(constructTable, "");
-    _builder_1.newLineIfNotEmpty();
-    _builder_1.append("VerticalLayout tableLayout = new VerticalLayout();");
-    _builder_1.newLine();
+    boolean _isBean = this.isBean(table);
+    if (_isBean) {
+      StringConcatenation _builder_1 = new StringConcatenation();
+      _builder_1.append("final BeanFilterTable table = new BeanFilterTable();");
+      _builder_1.newLine();
+      constructTable = _builder_1.toString();
+    }
+    StringConcatenation _builder_2 = new StringConcatenation();
+    _builder_2.append(body);
+    _builder_2.append(constructTable);
+    _builder_2.newLineIfNotEmpty();
+    _builder_2.append("VerticalLayout tableLayout = new VerticalLayout();");
+    _builder_2.newLine();
     {
-      boolean _and = false;
-      TableOption _tabletype_2 = table.getTabletype();
-      boolean _isEmbedded = _tabletype_2.isEmbedded();
-      if (!_isEmbedded) {
-        _and = false;
-      } else {
-        boolean _isTask = this.isTask(table);
-        _and = _isTask;
-      }
-      if (_and) {
-        _builder_1.append("taskButtons = new ArrayList<Button>();");
-        _builder_1.newLine();
-        _builder_1.append("HorizontalLayout tools = new HorizontalLayout();");
-        _builder_1.newLine();
-        _builder_1.append("tools.addStyleName(\"os-embedded-toolbar\");");
-        _builder_1.newLine();
-        _builder_1.append("tools.setSpacing(false);");
-        _builder_1.newLine();
-        _builder_1.newLine();
-        _builder_1.append("Button b = new Button(null, new Button.ClickListener() {");
-        _builder_1.newLine();
-        _builder_1.append("    ");
-        _builder_1.append("public void buttonClick(ClickEvent event) {");
-        _builder_1.newLine();
-        _builder_1.append("    \t");
-        _builder_1.append("taskClient.operations(dataSourceContainer.getTaskId((int)table.getValue()), user, null, Operation.Start);");
-        _builder_1.newLine();
-        _builder_1.append("    \t");
-        _builder_1.append("eventBroker.send(EventBrokerMsg.MENU_CLOSE, null);");
-        _builder_1.newLine();
-        _builder_1.append("    ");
-        _builder_1.append("}");
-        _builder_1.newLine();
-        _builder_1.append("});");
-        _builder_1.newLine();
-        _builder_1.append("b.setIcon(themeResourceService.getThemeResource(\"task_action_start\", ThemeResourceType.ICON));");
-        _builder_1.newLine();
-        _builder_1.append("b.setDescription(null);");
-        _builder_1.newLine();
-        _builder_1.append("b.setEnabled(false);");
-        _builder_1.newLine();
-        _builder_1.append("b.addStyleName(\"v-button-small\");");
-        _builder_1.newLine();
-        _builder_1.append("tools.addComponent(b);");
-        _builder_1.newLine();
-        _builder_1.append("taskButtons.add(b);");
-        _builder_1.newLine();
-        _builder_1.append("tableLayout.addComponent(tools);");
-        _builder_1.newLine();
+      if ((table.getTabletype().isEmbedded() && this.isTask(table))) {
+        _builder_2.append("taskButtons = new ArrayList<Button>();");
+        _builder_2.newLine();
+        _builder_2.append("HorizontalLayout tools = new HorizontalLayout();");
+        _builder_2.newLine();
+        _builder_2.append("tools.addStyleName(\"os-embedded-toolbar\");");
+        _builder_2.newLine();
+        _builder_2.append("tools.setSpacing(false);");
+        _builder_2.newLine();
+        _builder_2.newLine();
+        _builder_2.append("Button b = new Button(null, new Button.ClickListener() {");
+        _builder_2.newLine();
+        _builder_2.append("    ");
+        _builder_2.append("public void buttonClick(ClickEvent event) {");
+        _builder_2.newLine();
+        _builder_2.append("    \t");
+        _builder_2.append("if(taskClient != null) {");
+        _builder_2.newLine();
+        _builder_2.append("\t    \t");
+        _builder_2.append("taskClient.operations(dataSourceContainer.getTaskId((int)table.getValue()), user, null, BPMOperation.Start);");
+        _builder_2.newLine();
+        _builder_2.append("    \t\t");
+        _builder_2.append("eventBroker.send(EventBrokerMsg.MENU_CLOSE, null);");
+        _builder_2.newLine();
+        _builder_2.append("    \t");
+        _builder_2.append("}");
+        _builder_2.newLine();
+        _builder_2.append("    ");
+        _builder_2.append("}");
+        _builder_2.newLine();
+        _builder_2.append("});");
+        _builder_2.newLine();
+        _builder_2.append("b.setIcon(themeResourceService.getThemeResource(\"task_action_start\", ThemeResourceType.ICON));");
+        _builder_2.newLine();
+        _builder_2.append("b.setDescription(null);");
+        _builder_2.newLine();
+        _builder_2.append("b.setEnabled(false);");
+        _builder_2.newLine();
+        _builder_2.append("b.addStyleName(\"v-button-small\");");
+        _builder_2.newLine();
+        _builder_2.append("tools.addComponent(b);");
+        _builder_2.newLine();
+        _builder_2.append("taskButtons.add(b);");
+        _builder_2.newLine();
+        _builder_2.append("tableLayout.addComponent(tools);");
+        _builder_2.newLine();
       }
     }
-    _builder_1.append("table.setImmediate(true);");
-    _builder_1.newLine();
-    _builder_1.append("table.setMultiSelect(");
-    _builder_1.append(multiSelect, "");
-    _builder_1.append(");");
-    _builder_1.newLineIfNotEmpty();
-    _builder_1.append("table.setColumnCollapsingAllowed(true);");
-    _builder_1.newLine();
-    _builder_1.append("table.setColumnReorderingAllowed(true);");
-    _builder_1.newLine();
-    _builder_1.append("table.setId(\"table\");");
-    _builder_1.newLine();
-    _builder_1.append("table.setRowHeaderMode(RowHeaderMode.");
+    _builder_2.append("table.setImmediate(true);");
+    _builder_2.newLine();
+    _builder_2.append("table.setMultiSelect(");
+    _builder_2.append(multiSelect);
+    _builder_2.append(");");
+    _builder_2.newLineIfNotEmpty();
+    _builder_2.append("table.setColumnCollapsingAllowed(true);");
+    _builder_2.newLine();
+    _builder_2.append("table.setColumnReorderingAllowed(true);");
+    _builder_2.newLine();
+    _builder_2.append("table.setId(\"table\");");
+    _builder_2.newLine();
     {
-      TableOption _tabletype_3 = table.getTabletype();
-      RowHeaderMode _headerMode = ((TableTable) _tabletype_3).getHeaderMode();
-      boolean _notEquals = (!Objects.equal(_headerMode, null));
-      if (_notEquals) {
-        TableOption _tabletype_4 = table.getTabletype();
-        RowHeaderMode _headerMode_1 = ((TableTable) _tabletype_4).getHeaderMode();
-        String _name_2 = _headerMode_1.name();
-        _builder_1.append(_name_2, "");
-      } else {
-        _builder_1.append("HIDDEN");
+      boolean _isTable = this.isTable(table);
+      if (_isTable) {
+        _builder_2.append("table.setRowHeaderMode(RowHeaderMode.");
+        {
+          TableOption _tabletype_1 = table.getTabletype();
+          RowHeaderMode _headerMode = ((TableTable) _tabletype_1).getHeaderMode();
+          boolean _tripleNotEquals = (_headerMode != null);
+          if (_tripleNotEquals) {
+            TableOption _tabletype_2 = table.getTabletype();
+            String _name = ((TableTable) _tabletype_2).getHeaderMode().name();
+            _builder_2.append(_name);
+          } else {
+            _builder_2.append("HIDDEN");
+          }
+        }
+        _builder_2.append(");");
+        _builder_2.newLineIfNotEmpty();
       }
     }
-    _builder_1.append(");");
-    _builder_1.newLineIfNotEmpty();
-    _builder_1.append("table.setFilterDecorator(tableFilterDecorator);");
-    _builder_1.newLine();
-    _builder_1.append("table.setFilterBarVisible(");
-    TableOption _tabletype_5 = table.getTabletype();
-    boolean _isFiltering = _tabletype_5.isFiltering();
-    boolean _booleanValue = Boolean.valueOf(_isFiltering).booleanValue();
-    _builder_1.append(_booleanValue, "");
-    _builder_1.append(");");
-    _builder_1.newLineIfNotEmpty();
-    _builder_1.append("table.setSelectable(true);");
-    _builder_1.newLine();
-    _builder_1.append("table.setSizeFull();");
-    _builder_1.newLine();
-    _builder_1.append("tableLayout.addComponent(table);");
-    _builder_1.newLine();
-    _builder_1.append("tables.add(table);");
-    _builder_1.newLine();
-    body = _builder_1.toString();
+    {
+      boolean _isBean_1 = this.isBean(table);
+      if (_isBean_1) {
+        _builder_2.append("table.setRowHeaderMode(RowHeaderMode.");
+        {
+          TableOption _tabletype_3 = table.getTabletype();
+          RowHeaderMode _headerMode_1 = ((TableBean) _tabletype_3).getHeaderMode();
+          boolean _tripleNotEquals_1 = (_headerMode_1 != null);
+          if (_tripleNotEquals_1) {
+            TableOption _tabletype_4 = table.getTabletype();
+            String _name_1 = ((TableBean) _tabletype_4).getHeaderMode().name();
+            _builder_2.append(_name_1);
+          } else {
+            _builder_2.append("HIDDEN");
+          }
+        }
+        _builder_2.append(");");
+        _builder_2.newLineIfNotEmpty();
+      }
+    }
+    _builder_2.append("table.setFilterDecorator(tableFilterDecorator);");
+    _builder_2.newLine();
+    _builder_2.append("table.setFilterBarVisible(");
+    boolean _booleanValue = Boolean.valueOf(table.getTabletype().isFiltering()).booleanValue();
+    _builder_2.append(_booleanValue);
+    _builder_2.append(");");
+    _builder_2.newLineIfNotEmpty();
+    _builder_2.append("table.setSelectable(true);");
+    _builder_2.newLine();
+    _builder_2.append("table.setSizeFull();");
+    _builder_2.newLine();
+    _builder_2.append("tableLayout.addComponent(table);");
+    _builder_2.newLine();
+    {
+      boolean _isBean_2 = this.isBean(table);
+      boolean _not = (!_isBean_2);
+      if (_not) {
+        _builder_2.append("tables.add(table);");
+      }
+    }
+    _builder_2.newLineIfNotEmpty();
+    body = _builder_2.toString();
     this.initBlobLookup(table, blobLookupMap);
     this.initIdMap(table, idMap);
     boolean _isHasDetails = category_axis.isHasDetails();
     if (_isHasDetails) {
-      this.initPropertyLookups(category_axis, formatMap, intervalStyleMap, intervalIconMap, intervalTooltipMap, numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, stringLookupStyleMap, stringLookupIconMap, stringLookupTooltipMap, dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap);
+      this.initPropertyLookups(category_axis, formatMap, intervalStyleMap, intervalIconMap, intervalTooltipMap, numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, intIntervalStyleMap, intIntervalIconMap, intIntervalTooltipMap, intLookupStyleMap, intLookupIconMap, intLookupTooltipMap, stringLookupStyleMap, stringLookupIconMap, stringLookupTooltipMap, dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap);
     }
     boolean _isHasDetails_1 = data_axis.isHasDetails();
     if (_isHasDetails_1) {
-      this.initPropertyLookups(data_axis, formatMap, intervalStyleMap, intervalIconMap, intervalTooltipMap, numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, stringLookupStyleMap, stringLookupIconMap, stringLookupTooltipMap, dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap);
+      this.initPropertyLookups(data_axis, formatMap, intervalStyleMap, intervalIconMap, intervalTooltipMap, numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, intIntervalStyleMap, intIntervalIconMap, intIntervalTooltipMap, intLookupStyleMap, intLookupIconMap, intLookupTooltipMap, stringLookupStyleMap, stringLookupIconMap, stringLookupTooltipMap, dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap);
     }
-    boolean _or = false;
-    Set<String> _keySet = intervalStyleMap.keySet();
-    int _size = _keySet.size();
-    Set<String> _keySet_1 = numberLookupStyleMap.keySet();
-    int _size_1 = _keySet_1.size();
-    int _plus = (_size + _size_1);
-    Set<String> _keySet_2 = stringLookupStyleMap.keySet();
-    int _size_2 = _keySet_2.size();
-    int _plus_1 = (_plus + _size_2);
-    Set<String> _keySet_3 = dateLookupStyleMap.keySet();
-    int _size_3 = _keySet_3.size();
-    int _plus_2 = (_plus_1 + _size_3);
-    boolean _greaterThan = (_plus_2 > 0);
-    if (_greaterThan) {
-      _or = true;
+    if ((((((((intervalStyleMap.keySet().size() + numberLookupStyleMap.keySet().size()) + stringLookupStyleMap.keySet().size()) + intLookupStyleMap.keySet().size()) + intIntervalStyleMap.keySet().size()) + 
+      dateLookupStyleMap.keySet().size()) > 0) || category_axis.isHasRowHeight())) {
+      StringConcatenation _builder_3 = new StringConcatenation();
+      _builder_3.append(body);
+      _builder_3.append("// add styles to page for the axis\'s custom styles");
+      _builder_3.newLineIfNotEmpty();
+      _builder_3.append("Styles styles = Page.getCurrent().getStyles();");
+      _builder_3.newLine();
+      body = _builder_3.toString();
+    }
+    boolean _isHasRowHeight = category_axis.isHasRowHeight();
+    if (_isHasRowHeight) {
+      this.customformatCounter = (this.customformatCounter + 1);
+      StringConcatenation _builder_4 = new StringConcatenation();
+      _builder_4.append("rowcustomformat");
+      _builder_4.append(this.customformatCounter);
+      rowStyle = _builder_4.toString();
+      StringConcatenation _builder_5 = new StringConcatenation();
+      _builder_5.append(body);
+      _builder_5.append("styles.add(\".v-table-row-");
+      _builder_5.append(rowStyle);
+      _builder_5.append(" {height: ");
+      String _rowHeight = category_axis.getRowHeight();
+      _builder_5.append(_rowHeight);
+      _builder_5.append("px;}\");");
+      _builder_5.newLineIfNotEmpty();
+      body = _builder_5.toString();
+    }
+    StringConcatenation _builder_6 = new StringConcatenation();
+    _builder_6.append(body);
+    String _createStyles = this.createStyles(intervalStyleMap, numberLookupStyleMap, intIntervalStyleMap, intLookupStyleMap, stringLookupStyleMap, dateLookupStyleMap);
+    _builder_6.append(_createStyles);
+    _builder_6.append(" ");
+    body = _builder_6.toString();
+    StringConcatenation _builder_7 = new StringConcatenation();
+    _builder_7.append(body);
+    String _generatePropertyLookups = this.generatePropertyLookups(idMap, formatMap, intervalStyleMap, intervalIconMap, intervalTooltipMap, numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, intIntervalStyleMap, intIntervalIconMap, intIntervalTooltipMap, intLookupStyleMap, intLookupIconMap, intLookupTooltipMap, stringLookupStyleMap, stringLookupIconMap, stringLookupTooltipMap, dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap, blobLookupMap);
+    _builder_7.append(_generatePropertyLookups);
+    body = _builder_7.toString();
+    boolean _isBean_3 = this.isBean(table);
+    boolean _not_1 = (!_isBean_3);
+    if (_not_1) {
+      StringConcatenation _builder_8 = new StringConcatenation();
+      _builder_8.append(body);
+      _builder_8.append("dataSourceContainer = new CellSetIndexedContainer(dslMetadataService, user.getLocale(), themeResourceService, blobService, attributeLookupMap, cellSet, coordinateSystem, ");
+      boolean _isDatamartCrossJoined = this.isDatamartCrossJoined(table);
+      _builder_8.append(_isDatamartCrossJoined);
+      _builder_8.append(");");
+      _builder_8.newLineIfNotEmpty();
+      _builder_8.append("table.setContainerDataSource(dataSourceContainer);");
+      _builder_8.newLine();
+      _builder_8.append("dataSourceContainer.addExtras(table);");
+      _builder_8.newLine();
+      body = _builder_8.toString();
     } else {
-      boolean _isHasRowHeight = category_axis.isHasRowHeight();
-      _or = _isHasRowHeight;
-    }
-    if (_or) {
-      StringConcatenation _builder_2 = new StringConcatenation();
-      _builder_2.append(body, "");
-      _builder_2.append("// add styles to page for the axis\'s custom styles");
-      _builder_2.newLineIfNotEmpty();
-      _builder_2.append("Styles styles = Page.getCurrent().getStyles();");
-      _builder_2.newLine();
-      body = _builder_2.toString();
+      StringConcatenation _builder_9 = new StringConcatenation();
+      _builder_9.append(body);
+      _builder_9.append("dataSourceContainer = new BeanServiceLazyLoadingContainer(factory.createService(");
+      TableOption _tabletype_5 = table.getTabletype();
+      QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(this.getDataMartTable(((TableBean) _tabletype_5)).getDatamartRef());
+      _builder_9.append(_fullyQualifiedName);
+      _builder_9.append("DatamartContainer.class), ");
+      TableOption _tabletype_6 = table.getTabletype();
+      QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(this.getDataMartTable(((TableBean) _tabletype_6)).getDatamartRef());
+      _builder_9.append(_fullyQualifiedName_1);
+      _builder_9.append("DatamartContainer.class, null);");
+      _builder_9.newLineIfNotEmpty();
+      _builder_9.append("table.setContainerDataSource(dataSourceContainer);");
+      _builder_9.newLine();
+      body = _builder_9.toString();
     }
     boolean _isHasRowHeight_1 = category_axis.isHasRowHeight();
     if (_isHasRowHeight_1) {
-      this.customformatCounter = (this.customformatCounter + 1);
-      StringConcatenation _builder_3 = new StringConcatenation();
-      _builder_3.append("rowcustomformat");
-      _builder_3.append(this.customformatCounter, "");
-      rowStyle = _builder_3.toString();
-      StringConcatenation _builder_4 = new StringConcatenation();
-      _builder_4.append(body, "");
-      _builder_4.append("styles.add(\".v-table-row-");
-      _builder_4.append(rowStyle, "");
-      _builder_4.append(" {height: ");
-      String _rowHeight = category_axis.getRowHeight();
-      _builder_4.append(_rowHeight, "");
-      _builder_4.append("px;}\");");
-      _builder_4.newLineIfNotEmpty();
-      body = _builder_4.toString();
+      StringConcatenation _builder_10 = new StringConcatenation();
+      _builder_10.append(body);
+      _builder_10.append("dataSourceContainer.setRowStyle(\"");
+      _builder_10.append(rowStyle);
+      _builder_10.append("\");");
+      _builder_10.newLineIfNotEmpty();
+      body = _builder_10.toString();
     }
-    StringConcatenation _builder_5 = new StringConcatenation();
-    _builder_5.append(body, "");
-    String _createStyles = this.createStyles(intervalStyleMap, numberLookupStyleMap, stringLookupStyleMap, dateLookupStyleMap);
-    _builder_5.append(_createStyles, "");
-    _builder_5.append(" ");
-    body = _builder_5.toString();
-    StringConcatenation _builder_6 = new StringConcatenation();
-    _builder_6.append(body, "");
-    String _generatePropertyLookups = this.generatePropertyLookups(idMap, formatMap, intervalStyleMap, intervalIconMap, intervalTooltipMap, numberLookupStyleMap, numberLookupIconMap, numberLookupTooltipMap, stringLookupStyleMap, stringLookupIconMap, stringLookupTooltipMap, dateLookupStyleMap, dateLookupIconMap, dateLookupTooltipMap, blobLookupMap);
-    _builder_6.append(_generatePropertyLookups, "");
-    body = _builder_6.toString();
-    StringConcatenation _builder_7 = new StringConcatenation();
-    _builder_7.append(body, "");
-    _builder_7.append("dataSourceContainer = new CellSetIndexedContainer(dslMetadataService, locale, themeResourceService, propertyLookupMap, cellSet, coordinateSystem, ");
-    boolean _isDatamartCrossJoined = this.isDatamartCrossJoined(table);
-    _builder_7.append(_isDatamartCrossJoined, "");
-    _builder_7.append(");");
-    _builder_7.newLineIfNotEmpty();
-    _builder_7.append("table.setContainerDataSource(dataSourceContainer);");
-    _builder_7.newLine();
-    _builder_7.append("dataSourceContainer.addExtras(table);");
-    _builder_7.newLine();
-    body = _builder_7.toString();
-    boolean _isHasRowHeight_2 = category_axis.isHasRowHeight();
-    if (_isHasRowHeight_2) {
-      StringConcatenation _builder_8 = new StringConcatenation();
-      _builder_8.append(body, "");
-      _builder_8.append("dataSourceContainer.setRowStyle(\"");
-      _builder_8.append(rowStyle, "");
-      _builder_8.append("\");");
-      _builder_8.newLineIfNotEmpty();
-      body = _builder_8.toString();
-    }
-    TableOption _tabletype_6 = table.getTabletype();
-    if ((_tabletype_6 instanceof TableTable)) {
-      TableDatamart _dataMartTable_3 = this.getDataMartTable(table);
-      if ((_dataMartTable_3 instanceof TableDatamart)) {
-        TableDatamart _dataMartTable_4 = this.getDataMartTable(table);
-        EList<TableElement> _elements_3 = ((TableDatamart) _dataMartTable_4).getElements();
-        for (final TableElement element_1 : _elements_3) {
+    boolean _isTable_1 = this.isTable(table);
+    if (_isTable_1) {
+      TableDatamart _dataMartTable = this.getDataMartTable(table);
+      if ((_dataMartTable instanceof TableDatamart)) {
+        TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
+        EList<TableElement> _elements_1 = ((TableDatamart) _dataMartTable_1).getElements();
+        for (final TableElement element_1 : _elements_1) {
           if ((element_1 instanceof TableAxis)) {
             TablePreorder _preOrder = ((TableAxis) element_1).getPreOrder();
-            boolean _notEquals_1 = (!Objects.equal(_preOrder, null));
-            if (_notEquals_1) {
-              StringConcatenation _builder_9 = new StringConcatenation();
-              _builder_9.append(body, "");
-              TablePreorder _preOrder_1 = ((TableAxis) element_1).getPreOrder();
-              String _preOrder_2 = this.preOrder(_preOrder_1, ((TableAxis) element_1));
-              _builder_9.append(_preOrder_2, "");
-              body = _builder_9.toString();
+            boolean _tripleNotEquals_2 = (_preOrder != null);
+            if (_tripleNotEquals_2) {
+              StringConcatenation _builder_11 = new StringConcatenation();
+              _builder_11.append(body);
+              String _preOrder_1 = this.preOrder(((TableAxis) element_1).getPreOrder(), ((TableAxis) element_1));
+              _builder_11.append(_preOrder_1);
+              body = _builder_11.toString();
             }
           }
         }
       }
     }
-    StringConcatenation _builder_10 = new StringConcatenation();
-    _builder_10.append(body, "");
-    String _sendEvent = this.sendEvent(table);
-    _builder_10.append(_sendEvent, "");
-    _builder_10.newLineIfNotEmpty();
-    body = _builder_10.toString();
-    TableOption _tabletype_7 = table.getTabletype();
-    if ((_tabletype_7 instanceof TableSelection)) {
-      StringConcatenation _builder_11 = new StringConcatenation();
-      _builder_11.append(body, "");
-      _builder_11.newLineIfNotEmpty();
-      _builder_11.append("\t\t\t");
-      _builder_11.append("selectItemsFromWorkloadDto();");
-      _builder_11.newLine();
-      body = _builder_11.toString();
-    }
     StringConcatenation _builder_12 = new StringConcatenation();
-    _builder_12.append(body, "");
-    _builder_12.append("return tableLayout;");
+    _builder_12.append(body);
+    String _sendEvent = this.sendEvent(table);
+    _builder_12.append(_sendEvent);
+    _builder_12.newLineIfNotEmpty();
     body = _builder_12.toString();
+    boolean _isSelection_1 = this.isSelection(table);
+    if (_isSelection_1) {
+      StringConcatenation _builder_13 = new StringConcatenation();
+      _builder_13.append(body);
+      _builder_13.newLineIfNotEmpty();
+      _builder_13.append("selectItemsFromWorkloadDto();");
+      _builder_13.newLine();
+      body = _builder_13.toString();
+    }
+    StringConcatenation _builder_14 = new StringConcatenation();
+    _builder_14.append(body);
+    _builder_14.append("return tableLayout;");
+    body = _builder_14.toString();
     return body;
   }
   
   public boolean isDatamartCrossJoined(final Table table) {
     TableDatamart _dataMartTable = this.getDataMartTable(table);
-    DatamartDefinition _datamartRef = ((TableDatamart) _dataMartTable).getDatamartRef();
-    return this.datamartInferrer.isCrossJoined(_datamartRef);
+    return this.datamartInferrer.isCrossJoined(((TableDatamart) _dataMartTable).getDatamartRef());
   }
   
   public String modifyOddStyle(final String style) {
@@ -2801,8 +2576,7 @@
       int pos = style.indexOf("(", start);
       if ((pos >= 0)) {
         String newrgb = "";
-        int _indexOf = style.indexOf(")", pos);
-        end = _indexOf;
+        end = style.indexOf(")", pos);
         String rgb = style.substring((pos + 1), end);
         String[] colors = rgb.split(",");
         for (final String color : colors) {
@@ -2814,7 +2588,7 @@
             }
             colorValue = (colorValue - diff);
             StringConcatenation _builder = new StringConcatenation();
-            _builder.append(newrgb, "");
+            _builder.append(newrgb);
             {
               int _length = newrgb.length();
               boolean _greaterThan = (_length > 0);
@@ -2823,18 +2597,18 @@
               }
             }
             String _string = Integer.valueOf(colorValue).toString();
-            _builder.append(_string, "");
+            _builder.append(_string);
             newrgb = _builder.toString();
           }
         }
         StringConcatenation _builder = new StringConcatenation();
         String _substring = style.substring(0, start);
-        _builder.append(_substring, "");
+        _builder.append(_substring);
         _builder.append("background-color: rgb(");
-        _builder.append(newrgb, "");
+        _builder.append(newrgb);
         _builder.append(")");
         String _substring_1 = style.substring((end + 1));
-        _builder.append(_substring_1, "");
+        _builder.append(_substring_1);
         return _builder.toString();
       }
     }
@@ -2844,43 +2618,36 @@
   /**
    * <p>collected styles from the model are applied to code. Styles aside from the CSS are created at runtime.</p>
    */
-  public String createStyles(final HashMap<String, Map<Double, Map<String, String>>> intervalStyleMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupStyleMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupStyleMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupStyleMap) {
+  public String createStyles(final HashMap<String, Map<Double, Map<String, String>>> intervalStyleMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupStyleMap, final HashMap<String, Map<Integer, Map<String, String>>> intIntervalStyleMap, final HashMap<String, Map<Integer, Map<String, String>>> intLookupStyleMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupStyleMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupStyleMap) {
     String stylePrefix = ".v-table-cell-content-";
     String body = "";
     Set<String> _keySet = intervalStyleMap.keySet();
     for (final String format : _keySet) {
-      Map<Double, Map<String, String>> _get = intervalStyleMap.get(format);
-      Set<Double> _keySet_1 = _get.keySet();
+      Set<Double> _keySet_1 = intervalStyleMap.get(format).keySet();
       for (final Double interval : _keySet_1) {
-        Map<Double, Map<String, String>> _get_1 = intervalStyleMap.get(format);
-        Map<String, String> _get_2 = _get_1.get(interval);
-        Set<String> _keySet_2 = _get_2.keySet();
+        Set<String> _keySet_2 = intervalStyleMap.get(format).get(interval).keySet();
         for (final String style : _keySet_2) {
           {
             StringConcatenation _builder = new StringConcatenation();
-            _builder.append(body, "");
+            _builder.append(body);
             _builder.append("styles.add(\"");
-            _builder.append(stylePrefix, "");
-            _builder.append(style, "");
+            _builder.append(stylePrefix);
+            _builder.append(style);
             _builder.append(" {");
-            Map<Double, Map<String, String>> _get_3 = intervalStyleMap.get(format);
-            Map<String, String> _get_4 = _get_3.get(interval);
-            String _get_5 = _get_4.get(style);
-            _builder.append(_get_5, "");
+            String _get = intervalStyleMap.get(format).get(interval).get(style);
+            _builder.append(_get);
             _builder.append("}\");");
             _builder.newLineIfNotEmpty();
             body = _builder.toString();
             StringConcatenation _builder_1 = new StringConcatenation();
-            _builder_1.append(body, "");
+            _builder_1.append(body);
             _builder_1.append("styles.add(\"");
-            _builder_1.append(stylePrefix, "");
-            _builder_1.append(style, "");
+            _builder_1.append(stylePrefix);
+            _builder_1.append(style);
             _builder_1.append("-odd {");
-            Map<Double, Map<String, String>> _get_6 = intervalStyleMap.get(format);
-            Map<String, String> _get_7 = _get_6.get(interval);
-            String _get_8 = _get_7.get(style);
-            String _modifyOddStyle = this.modifyOddStyle(_get_8);
-            _builder_1.append(_modifyOddStyle, "");
+            String _modifyOddStyle = this.modifyOddStyle(
+              intervalStyleMap.get(format).get(interval).get(style));
+            _builder_1.append(_modifyOddStyle);
             _builder_1.append("}\");");
             _builder_1.newLineIfNotEmpty();
             body = _builder_1.toString();
@@ -2890,38 +2657,31 @@
     }
     Set<String> _keySet_3 = numberLookupStyleMap.keySet();
     for (final String format_1 : _keySet_3) {
-      Map<Double, Map<String, String>> _get_3 = numberLookupStyleMap.get(format_1);
-      Set<Double> _keySet_4 = _get_3.keySet();
+      Set<Double> _keySet_4 = numberLookupStyleMap.get(format_1).keySet();
       for (final Double interval_1 : _keySet_4) {
-        Map<Double, Map<String, String>> _get_4 = numberLookupStyleMap.get(format_1);
-        Map<String, String> _get_5 = _get_4.get(interval_1);
-        Set<String> _keySet_5 = _get_5.keySet();
+        Set<String> _keySet_5 = numberLookupStyleMap.get(format_1).get(interval_1).keySet();
         for (final String style_1 : _keySet_5) {
           {
             StringConcatenation _builder = new StringConcatenation();
-            _builder.append(body, "");
+            _builder.append(body);
             _builder.append("styles.add(\"");
-            _builder.append(stylePrefix, "");
-            _builder.append(style_1, "");
+            _builder.append(stylePrefix);
+            _builder.append(style_1);
             _builder.append(" {");
-            Map<Double, Map<String, String>> _get_6 = numberLookupStyleMap.get(format_1);
-            Map<String, String> _get_7 = _get_6.get(interval_1);
-            String _get_8 = _get_7.get(style_1);
-            _builder.append(_get_8, "");
+            String _get = numberLookupStyleMap.get(format_1).get(interval_1).get(style_1);
+            _builder.append(_get);
             _builder.append("}\");");
             _builder.newLineIfNotEmpty();
             body = _builder.toString();
             StringConcatenation _builder_1 = new StringConcatenation();
-            _builder_1.append(body, "");
+            _builder_1.append(body);
             _builder_1.append("styles.add(\"");
-            _builder_1.append(stylePrefix, "");
-            _builder_1.append(style_1, "");
+            _builder_1.append(stylePrefix);
+            _builder_1.append(style_1);
             _builder_1.append("-odd {");
-            Map<Double, Map<String, String>> _get_9 = numberLookupStyleMap.get(format_1);
-            Map<String, String> _get_10 = _get_9.get(interval_1);
-            String _get_11 = _get_10.get(style_1);
-            String _modifyOddStyle = this.modifyOddStyle(_get_11);
-            _builder_1.append(_modifyOddStyle, "");
+            String _modifyOddStyle = this.modifyOddStyle(
+              numberLookupStyleMap.get(format_1).get(interval_1).get(style_1));
+            _builder_1.append(_modifyOddStyle);
             _builder_1.append("}\");");
             _builder_1.newLineIfNotEmpty();
             body = _builder_1.toString();
@@ -2929,40 +2689,33 @@
         }
       }
     }
-    Set<String> _keySet_6 = stringLookupStyleMap.keySet();
+    Set<String> _keySet_6 = intIntervalStyleMap.keySet();
     for (final String format_2 : _keySet_6) {
-      Map<String, Map<String, String>> _get_6 = stringLookupStyleMap.get(format_2);
-      Set<String> _keySet_7 = _get_6.keySet();
-      for (final String interval_2 : _keySet_7) {
-        Map<String, Map<String, String>> _get_7 = stringLookupStyleMap.get(format_2);
-        Map<String, String> _get_8 = _get_7.get(interval_2);
-        Set<String> _keySet_8 = _get_8.keySet();
+      Set<Integer> _keySet_7 = intIntervalStyleMap.get(format_2).keySet();
+      for (final Integer interval_2 : _keySet_7) {
+        Set<String> _keySet_8 = intIntervalStyleMap.get(format_2).get(interval_2).keySet();
         for (final String style_2 : _keySet_8) {
           {
             StringConcatenation _builder = new StringConcatenation();
-            _builder.append(body, "");
+            _builder.append(body);
             _builder.append("styles.add(\"");
-            _builder.append(stylePrefix, "");
-            _builder.append(style_2, "");
+            _builder.append(stylePrefix);
+            _builder.append(style_2);
             _builder.append(" {");
-            Map<String, Map<String, String>> _get_9 = stringLookupStyleMap.get(format_2);
-            Map<String, String> _get_10 = _get_9.get(interval_2);
-            String _get_11 = _get_10.get(style_2);
-            _builder.append(_get_11, "");
+            String _get = intIntervalStyleMap.get(format_2).get(interval_2).get(style_2);
+            _builder.append(_get);
             _builder.append("}\");");
             _builder.newLineIfNotEmpty();
             body = _builder.toString();
             StringConcatenation _builder_1 = new StringConcatenation();
-            _builder_1.append(body, "");
+            _builder_1.append(body);
             _builder_1.append("styles.add(\"");
-            _builder_1.append(stylePrefix, "");
-            _builder_1.append(style_2, "");
+            _builder_1.append(stylePrefix);
+            _builder_1.append(style_2);
             _builder_1.append("-odd {");
-            Map<String, Map<String, String>> _get_12 = stringLookupStyleMap.get(format_2);
-            Map<String, String> _get_13 = _get_12.get(interval_2);
-            String _get_14 = _get_13.get(style_2);
-            String _modifyOddStyle = this.modifyOddStyle(_get_14);
-            _builder_1.append(_modifyOddStyle, "");
+            String _modifyOddStyle = this.modifyOddStyle(
+              intIntervalStyleMap.get(format_2).get(interval_2).get(style_2));
+            _builder_1.append(_modifyOddStyle);
             _builder_1.append("}\");");
             _builder_1.newLineIfNotEmpty();
             body = _builder_1.toString();
@@ -2970,40 +2723,101 @@
         }
       }
     }
-    Set<String> _keySet_9 = dateLookupStyleMap.keySet();
+    Set<String> _keySet_9 = intLookupStyleMap.keySet();
     for (final String format_3 : _keySet_9) {
-      Map<Double, Map<String, String>> _get_9 = dateLookupStyleMap.get(format_3);
-      Set<Double> _keySet_10 = _get_9.keySet();
-      for (final Double interval_3 : _keySet_10) {
-        Map<Double, Map<String, String>> _get_10 = dateLookupStyleMap.get(format_3);
-        Map<String, String> _get_11 = _get_10.get(interval_3);
-        Set<String> _keySet_11 = _get_11.keySet();
+      Set<Integer> _keySet_10 = intLookupStyleMap.get(format_3).keySet();
+      for (final Integer interval_3 : _keySet_10) {
+        Set<String> _keySet_11 = intLookupStyleMap.get(format_3).get(interval_3).keySet();
         for (final String style_3 : _keySet_11) {
           {
             StringConcatenation _builder = new StringConcatenation();
-            _builder.append(body, "");
+            _builder.append(body);
             _builder.append("styles.add(\"");
-            _builder.append(stylePrefix, "");
-            _builder.append(style_3, "");
+            _builder.append(stylePrefix);
+            _builder.append(style_3);
             _builder.append(" {");
-            Map<Double, Map<String, String>> _get_12 = dateLookupStyleMap.get(format_3);
-            Map<String, String> _get_13 = _get_12.get(interval_3);
-            String _get_14 = _get_13.get(style_3);
-            _builder.append(_get_14, "");
+            String _get = intLookupStyleMap.get(format_3).get(interval_3).get(style_3);
+            _builder.append(_get);
             _builder.append("}\");");
             _builder.newLineIfNotEmpty();
             body = _builder.toString();
             StringConcatenation _builder_1 = new StringConcatenation();
-            _builder_1.append(body, "");
+            _builder_1.append(body);
             _builder_1.append("styles.add(\"");
-            _builder_1.append(stylePrefix, "");
-            _builder_1.append(style_3, "");
+            _builder_1.append(stylePrefix);
+            _builder_1.append(style_3);
             _builder_1.append("-odd {");
-            Map<Double, Map<String, String>> _get_15 = dateLookupStyleMap.get(format_3);
-            Map<String, String> _get_16 = _get_15.get(interval_3);
-            String _get_17 = _get_16.get(style_3);
-            String _modifyOddStyle = this.modifyOddStyle(_get_17);
-            _builder_1.append(_modifyOddStyle, "");
+            String _modifyOddStyle = this.modifyOddStyle(
+              intLookupStyleMap.get(format_3).get(interval_3).get(style_3));
+            _builder_1.append(_modifyOddStyle);
+            _builder_1.append("}\");");
+            _builder_1.newLineIfNotEmpty();
+            body = _builder_1.toString();
+          }
+        }
+      }
+    }
+    Set<String> _keySet_12 = stringLookupStyleMap.keySet();
+    for (final String format_4 : _keySet_12) {
+      Set<String> _keySet_13 = stringLookupStyleMap.get(format_4).keySet();
+      for (final String interval_4 : _keySet_13) {
+        Set<String> _keySet_14 = stringLookupStyleMap.get(format_4).get(interval_4).keySet();
+        for (final String style_4 : _keySet_14) {
+          {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append(body);
+            _builder.append("styles.add(\"");
+            _builder.append(stylePrefix);
+            _builder.append(style_4);
+            _builder.append(" {");
+            String _get = stringLookupStyleMap.get(format_4).get(interval_4).get(style_4);
+            _builder.append(_get);
+            _builder.append("}\");");
+            _builder.newLineIfNotEmpty();
+            body = _builder.toString();
+            StringConcatenation _builder_1 = new StringConcatenation();
+            _builder_1.append(body);
+            _builder_1.append("styles.add(\"");
+            _builder_1.append(stylePrefix);
+            _builder_1.append(style_4);
+            _builder_1.append("-odd {");
+            String _modifyOddStyle = this.modifyOddStyle(
+              stringLookupStyleMap.get(format_4).get(interval_4).get(style_4));
+            _builder_1.append(_modifyOddStyle);
+            _builder_1.append("}\");");
+            _builder_1.newLineIfNotEmpty();
+            body = _builder_1.toString();
+          }
+        }
+      }
+    }
+    Set<String> _keySet_15 = dateLookupStyleMap.keySet();
+    for (final String format_5 : _keySet_15) {
+      Set<Double> _keySet_16 = dateLookupStyleMap.get(format_5).keySet();
+      for (final Double interval_5 : _keySet_16) {
+        Set<String> _keySet_17 = dateLookupStyleMap.get(format_5).get(interval_5).keySet();
+        for (final String style_5 : _keySet_17) {
+          {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append(body);
+            _builder.append("styles.add(\"");
+            _builder.append(stylePrefix);
+            _builder.append(style_5);
+            _builder.append(" {");
+            String _get = dateLookupStyleMap.get(format_5).get(interval_5).get(style_5);
+            _builder.append(_get);
+            _builder.append("}\");");
+            _builder.newLineIfNotEmpty();
+            body = _builder.toString();
+            StringConcatenation _builder_1 = new StringConcatenation();
+            _builder_1.append(body);
+            _builder_1.append("styles.add(\"");
+            _builder_1.append(stylePrefix);
+            _builder_1.append(style_5);
+            _builder_1.append("-odd {");
+            String _modifyOddStyle = this.modifyOddStyle(
+              dateLookupStyleMap.get(format_5).get(interval_5).get(style_5));
+            _builder_1.append(_modifyOddStyle);
             _builder_1.append("}\");");
             _builder_1.newLineIfNotEmpty();
             body = _builder_1.toString();
@@ -3017,103 +2831,84 @@
   /**
    * <p>In order to customize the cellGenerator, methods must be called inferred from the model.</p>
    */
-  public String generatePropertyLookups(final HashMap<String, IdProperty> idMap, final HashMap<String, FormatProperty> formatMap, final HashMap<String, Map<Double, Map<String, String>>> intervalStyleMap, final HashMap<String, Map<Double, Map<String, String>>> intervalIconMap, final HashMap<String, Map<Double, Map<String, String>>> intervalTooltipMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupStyleMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupIconMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupTooltipMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupStyleMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupIconMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupTooltipMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupStyleMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupIconMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupTooltipMap, final HashMap<String, String> blobLookupMap) {
-    HashSet<String> properties = CollectionLiterals.<String>newHashSet();
-    Set<String> _keySet = formatMap.keySet();
-    properties.addAll(_keySet);
-    Set<String> _keySet_1 = intervalStyleMap.keySet();
-    properties.addAll(_keySet_1);
-    Set<String> _keySet_2 = intervalIconMap.keySet();
-    properties.addAll(_keySet_2);
-    Set<String> _keySet_3 = intervalTooltipMap.keySet();
-    properties.addAll(_keySet_3);
-    Set<String> _keySet_4 = numberLookupStyleMap.keySet();
-    properties.addAll(_keySet_4);
-    Set<String> _keySet_5 = numberLookupIconMap.keySet();
-    properties.addAll(_keySet_5);
-    Set<String> _keySet_6 = numberLookupTooltipMap.keySet();
-    properties.addAll(_keySet_6);
-    Set<String> _keySet_7 = stringLookupStyleMap.keySet();
-    properties.addAll(_keySet_7);
-    Set<String> _keySet_8 = stringLookupIconMap.keySet();
-    properties.addAll(_keySet_8);
-    Set<String> _keySet_9 = stringLookupTooltipMap.keySet();
-    properties.addAll(_keySet_9);
-    Set<String> _keySet_10 = dateLookupStyleMap.keySet();
-    properties.addAll(_keySet_10);
-    Set<String> _keySet_11 = dateLookupIconMap.keySet();
-    properties.addAll(_keySet_11);
-    Set<String> _keySet_12 = dateLookupTooltipMap.keySet();
-    properties.addAll(_keySet_12);
-    Set<String> _keySet_13 = blobLookupMap.keySet();
-    properties.addAll(_keySet_13);
-    Set<String> _keySet_14 = idMap.keySet();
-    properties.addAll(_keySet_14);
+  public String generatePropertyLookups(final HashMap<String, IdAttribute> idMap, final HashMap<String, FormatAttribute> formatMap, final HashMap<String, Map<Double, Map<String, String>>> intervalStyleMap, final HashMap<String, Map<Double, Map<String, String>>> intervalIconMap, final HashMap<String, Map<Double, Map<String, String>>> intervalTooltipMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupStyleMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupIconMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupTooltipMap, final HashMap<String, Map<Integer, Map<String, String>>> intIntervalStyleMap, final HashMap<String, Map<Integer, Map<String, String>>> intIntervalIconMap, final HashMap<String, Map<Integer, Map<String, String>>> intIntervalTooltipMap, final HashMap<String, Map<Integer, Map<String, String>>> intLookupStyleMap, final HashMap<String, Map<Integer, Map<String, String>>> intLookupIconMap, final HashMap<String, Map<Integer, Map<String, String>>> intLookupTooltipMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupStyleMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupIconMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupTooltipMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupStyleMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupIconMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupTooltipMap, final HashMap<String, String> blobLookupMap) {
+    HashSet<String> attributes = CollectionLiterals.<String>newHashSet();
+    attributes.addAll(formatMap.keySet());
+    attributes.addAll(intervalStyleMap.keySet());
+    attributes.addAll(intervalIconMap.keySet());
+    attributes.addAll(intervalTooltipMap.keySet());
+    attributes.addAll(numberLookupStyleMap.keySet());
+    attributes.addAll(numberLookupIconMap.keySet());
+    attributes.addAll(numberLookupTooltipMap.keySet());
+    attributes.addAll(intIntervalStyleMap.keySet());
+    attributes.addAll(intIntervalIconMap.keySet());
+    attributes.addAll(intIntervalTooltipMap.keySet());
+    attributes.addAll(intLookupStyleMap.keySet());
+    attributes.addAll(intLookupIconMap.keySet());
+    attributes.addAll(intLookupTooltipMap.keySet());
+    attributes.addAll(stringLookupStyleMap.keySet());
+    attributes.addAll(stringLookupIconMap.keySet());
+    attributes.addAll(stringLookupTooltipMap.keySet());
+    attributes.addAll(dateLookupStyleMap.keySet());
+    attributes.addAll(dateLookupIconMap.keySet());
+    attributes.addAll(dateLookupTooltipMap.keySet());
+    attributes.addAll(blobLookupMap.keySet());
+    attributes.addAll(idMap.keySet());
     String body = "";
-    int _size = properties.size();
+    int _size = attributes.size();
     boolean _greaterThan = (_size > 0);
     if (_greaterThan) {
       StringConcatenation _builder = new StringConcatenation();
-      _builder.append(body, "");
-      _builder.append("// add propertyLookups for column and row property supplements");
+      _builder.append(body);
+      _builder.append("// add attributeLookups for column and row attribute supplements");
       _builder.newLineIfNotEmpty();
       body = _builder.toString();
     }
-    for (final String property : properties) {
+    for (final String attribute : attributes) {
       {
-        boolean hadProperty = false;
-        boolean _notEquals = (!Objects.equal(property, null));
-        if (_notEquals) {
-          hadProperty = true;
+        boolean hadAttribute = false;
+        if ((attribute != null)) {
+          hadAttribute = true;
           StringConcatenation _builder_1 = new StringConcatenation();
-          _builder_1.append(body, "");
-          _builder_1.append("propertyLookupMap.put(\"");
-          String _string = property.toString();
-          String _upperCase = _string.toUpperCase();
-          _builder_1.append(_upperCase, "");
-          _builder_1.append("\", new PropertyLookup(themeResourceService, dslMetadataService, locale)");
+          _builder_1.append(body);
+          _builder_1.append("attributeLookupMap.put(\"");
+          String _upperCase = attribute.toString().toUpperCase();
+          _builder_1.append(_upperCase);
+          _builder_1.append("\", new PropertyLookup(themeResourceService, dslMetadataService, blobService, user.getLocale())");
           body = _builder_1.toString();
-          boolean _containsKey = idMap.containsKey(property);
+          boolean _containsKey = idMap.containsKey(attribute);
           if (_containsKey) {
             StringConcatenation _builder_2 = new StringConcatenation();
-            _builder_2.append(body, "");
+            _builder_2.append(body);
             _builder_2.newLineIfNotEmpty();
             _builder_2.append("\t");
             _builder_2.append(".setCollapseColumn(");
-            IdProperty _get = idMap.get(property);
-            boolean _booleanValue = Boolean.valueOf(_get.collapsed).booleanValue();
-            String _string_1 = Boolean.valueOf(_booleanValue).toString();
-            _builder_2.append(_string_1, "\t");
+            String _string = Boolean.valueOf(Boolean.valueOf(idMap.get(attribute).collapsed).booleanValue()).toString();
+            _builder_2.append(_string, "\t");
             _builder_2.append(")");
             _builder_2.newLineIfNotEmpty();
             body = _builder_2.toString();
           }
-          boolean _containsKey_1 = formatMap.containsKey(property);
+          boolean _containsKey_1 = formatMap.containsKey(attribute);
           if (_containsKey_1) {
-            FormatProperty _get_1 = formatMap.get(property);
-            boolean _notEquals_1 = (!Objects.equal(_get_1.formatter, null));
-            if (_notEquals_1) {
+            if ((formatMap.get(attribute).formatter != null)) {
               StringConcatenation _builder_3 = new StringConcatenation();
-              _builder_3.append(body, "");
+              _builder_3.append(body);
               _builder_3.newLineIfNotEmpty();
               _builder_3.append("\t");
               _builder_3.append(".setFormat(\"");
-              FormatProperty _get_2 = formatMap.get(property);
-              _builder_3.append(_get_2.formatter, "\t");
+              _builder_3.append(formatMap.get(attribute).formatter, "\t");
               _builder_3.append("\")");
               _builder_3.newLineIfNotEmpty();
               body = _builder_3.toString();
             }
-            FormatProperty _get_3 = formatMap.get(property);
-            boolean _notEquals_2 = (!Objects.equal(_get_3.tooltipPattern, null));
-            if (_notEquals_2) {
+            if ((formatMap.get(attribute).tooltipPattern != null)) {
               StringConcatenation _builder_4 = new StringConcatenation();
-              _builder_4.append(body, "");
+              _builder_4.append(body);
               _builder_4.newLineIfNotEmpty();
               _builder_4.append("\t");
               _builder_4.append(".setTooltipPattern(\"");
-              FormatProperty _get_4 = formatMap.get(property);
-              _builder_4.append(_get_4.tooltipPattern, "\t");
+              _builder_4.append(formatMap.get(attribute).tooltipPattern, "\t");
               _builder_4.append("\")");
               _builder_4.newLineIfNotEmpty();
               body = _builder_4.toString();
@@ -3122,120 +2917,102 @@
             boolean _greaterThan_1 = (_size_1 > 0);
             if (_greaterThan_1) {
               StringConcatenation _builder_5 = new StringConcatenation();
-              _builder_5.append(body, "");
+              _builder_5.append(body);
               _builder_5.newLineIfNotEmpty();
               _builder_5.append("\t");
               _builder_5.append(".setHideLabel(");
-              FormatProperty _get_5 = formatMap.get(property);
-              boolean _booleanValue_1 = Boolean.valueOf(_get_5.hideLabelInterval).booleanValue();
-              String _string_2 = Boolean.valueOf(_booleanValue_1).toString();
-              _builder_5.append(_string_2, "\t");
+              String _string_1 = Boolean.valueOf(Boolean.valueOf(formatMap.get(attribute).hideLabelInterval).booleanValue()).toString();
+              _builder_5.append(_string_1, "\t");
               _builder_5.append(")");
               _builder_5.newLineIfNotEmpty();
               body = _builder_5.toString();
             } else {
               int _size_2 = numberLookupIconMap.size();
-              int _size_3 = stringLookupIconMap.size();
+              int _size_3 = intLookupIconMap.size();
               int _plus = (_size_2 + _size_3);
-              int _size_4 = dateLookupIconMap.size();
+              int _size_4 = stringLookupIconMap.size();
               int _plus_1 = (_plus + _size_4);
-              boolean _greaterThan_2 = (_plus_1 > 0);
+              int _size_5 = dateLookupIconMap.size();
+              int _plus_2 = (_plus_1 + _size_5);
+              boolean _greaterThan_2 = (_plus_2 > 0);
               if (_greaterThan_2) {
                 StringConcatenation _builder_6 = new StringConcatenation();
-                _builder_6.append(body, "");
+                _builder_6.append(body);
                 _builder_6.newLineIfNotEmpty();
                 _builder_6.append("\t");
                 _builder_6.append(".setHideLabel(");
-                FormatProperty _get_6 = formatMap.get(property);
-                boolean _booleanValue_2 = Boolean.valueOf(_get_6.hideLabelLookup).booleanValue();
-                String _string_3 = Boolean.valueOf(_booleanValue_2).toString();
-                _builder_6.append(_string_3, "\t");
+                String _string_2 = Boolean.valueOf(Boolean.valueOf(formatMap.get(attribute).hideLabelLookup).booleanValue()).toString();
+                _builder_6.append(_string_2, "\t");
                 _builder_6.append(")");
                 _builder_6.newLineIfNotEmpty();
                 body = _builder_6.toString();
               } else {
                 StringConcatenation _builder_7 = new StringConcatenation();
-                _builder_7.append(body, "");
+                _builder_7.append(body);
                 _builder_7.newLineIfNotEmpty();
                 _builder_7.append("\t");
                 _builder_7.append(".setHideLabel(");
-                FormatProperty _get_7 = formatMap.get(property);
-                boolean _booleanValue_3 = Boolean.valueOf(_get_7.hideImageLabel).booleanValue();
-                String _string_4 = Boolean.valueOf(_booleanValue_3).toString();
-                _builder_7.append(_string_4, "\t");
+                String _string_3 = Boolean.valueOf(Boolean.valueOf(formatMap.get(attribute).hideImageLabel).booleanValue()).toString();
+                _builder_7.append(_string_3, "\t");
                 _builder_7.append(")");
                 _builder_7.newLineIfNotEmpty();
                 body = _builder_7.toString();
               }
             }
             StringConcatenation _builder_8 = new StringConcatenation();
-            _builder_8.append(body, "");
+            _builder_8.append(body);
             _builder_8.newLineIfNotEmpty();
             _builder_8.append("\t");
             _builder_8.append(".setCollapseColumn(");
-            FormatProperty _get_8 = formatMap.get(property);
-            boolean _booleanValue_4 = Boolean.valueOf(_get_8.collapsed).booleanValue();
-            String _string_5 = Boolean.valueOf(_booleanValue_4).toString();
-            _builder_8.append(_string_5, "\t");
+            String _string_4 = Boolean.valueOf(Boolean.valueOf(formatMap.get(attribute).collapsed).booleanValue()).toString();
+            _builder_8.append(_string_4, "\t");
             _builder_8.append(")");
             _builder_8.newLineIfNotEmpty();
             body = _builder_8.toString();
-            FormatProperty _get_9 = formatMap.get(property);
-            if (_get_9.hasImage) {
+            if (formatMap.get(attribute).hasImage) {
               StringConcatenation _builder_9 = new StringConcatenation();
-              _builder_9.append(body, "");
+              _builder_9.append(body);
               _builder_9.newLineIfNotEmpty();
               _builder_9.append("\t");
               _builder_9.append(".setImageService(\"");
-              FormatProperty _get_10 = formatMap.get(property);
-              _builder_9.append(_get_10.imagePath, "\t");
+              _builder_9.append(formatMap.get(attribute).imagePath, "\t");
               _builder_9.append("\", ");
-              FormatProperty _get_11 = formatMap.get(property);
-              boolean _booleanValue_5 = Boolean.valueOf(_get_11.hasImageParameter).booleanValue();
-              String _string_6 = Boolean.valueOf(_booleanValue_5).toString();
-              _builder_9.append(_string_6, "\t");
+              String _string_5 = Boolean.valueOf(Boolean.valueOf(formatMap.get(attribute).hasImageParameter).booleanValue()).toString();
+              _builder_9.append(_string_5, "\t");
               _builder_9.append(")");
               _builder_9.newLineIfNotEmpty();
               body = _builder_9.toString();
-              FormatProperty _get_12 = formatMap.get(property);
-              if (_get_12.hasImageResize) {
+              if (formatMap.get(attribute).hasImageResize) {
                 StringConcatenation _builder_10 = new StringConcatenation();
-                _builder_10.append(body, "");
+                _builder_10.append(body);
                 _builder_10.newLineIfNotEmpty();
                 _builder_10.append("\t");
                 _builder_10.append(".setResizeString(\"");
-                FormatProperty _get_13 = formatMap.get(property);
-                _builder_10.append(_get_13.imageResizeString, "\t");
+                _builder_10.append(formatMap.get(attribute).imageResizeString, "\t");
                 _builder_10.append("\")");
                 body = _builder_10.toString();
               }
             }
-            FormatProperty _get_14 = formatMap.get(property);
-            boolean _notEquals_3 = (!Objects.equal(_get_14.iconName, null));
-            if (_notEquals_3) {
+            if ((formatMap.get(attribute).iconName != null)) {
               StringConcatenation _builder_11 = new StringConcatenation();
-              _builder_11.append(body, "");
+              _builder_11.append(body);
               _builder_11.newLineIfNotEmpty();
               _builder_11.append("\t");
               _builder_11.append(".setColumnIcon(\"");
-              FormatProperty _get_15 = formatMap.get(property);
-              _builder_11.append(_get_15.iconName, "\t");
+              _builder_11.append(formatMap.get(attribute).iconName, "\t");
               _builder_11.append("\")");
               _builder_11.newLineIfNotEmpty();
               body = _builder_11.toString();
             }
           }
-          boolean _containsKey_2 = intervalStyleMap.containsKey(property);
+          boolean _containsKey_2 = intervalStyleMap.containsKey(attribute);
           if (_containsKey_2) {
-            Map<Double, Map<String, String>> _get_16 = intervalStyleMap.get(property);
-            Set<Double> _keySet_15 = _get_16.keySet();
-            for (final Double interval : _keySet_15) {
-              Map<Double, Map<String, String>> _get_17 = intervalStyleMap.get(property);
-              Map<String, String> _get_18 = _get_17.get(interval);
-              Set<String> _keySet_16 = _get_18.keySet();
-              for (final String style : _keySet_16) {
+            Set<Double> _keySet = intervalStyleMap.get(attribute).keySet();
+            for (final Double interval : _keySet) {
+              Set<String> _keySet_1 = intervalStyleMap.get(attribute).get(interval).keySet();
+              for (final String style : _keySet_1) {
                 StringConcatenation _builder_12 = new StringConcatenation();
-                _builder_12.append(body, "");
+                _builder_12.append(body);
                 _builder_12.newLineIfNotEmpty();
                 _builder_12.append("\t");
                 _builder_12.append(".addStyleInterval(");
@@ -3257,17 +3034,14 @@
               }
             }
           }
-          boolean _containsKey_3 = intervalIconMap.containsKey(property);
+          boolean _containsKey_3 = intervalIconMap.containsKey(attribute);
           if (_containsKey_3) {
-            Map<Double, Map<String, String>> _get_19 = intervalIconMap.get(property);
-            Set<Double> _keySet_17 = _get_19.keySet();
-            for (final Double interval_1 : _keySet_17) {
-              Map<Double, Map<String, String>> _get_20 = intervalIconMap.get(property);
-              Map<String, String> _get_21 = _get_20.get(interval_1);
-              Set<String> _keySet_18 = _get_21.keySet();
-              for (final String style_1 : _keySet_18) {
+            Set<Double> _keySet_2 = intervalIconMap.get(attribute).keySet();
+            for (final Double interval_1 : _keySet_2) {
+              Set<String> _keySet_3 = intervalIconMap.get(attribute).get(interval_1).keySet();
+              for (final String style_1 : _keySet_3) {
                 StringConcatenation _builder_13 = new StringConcatenation();
-                _builder_13.append(body, "");
+                _builder_13.append(body);
                 _builder_13.newLineIfNotEmpty();
                 _builder_13.append("\t");
                 _builder_13.append(".addResourceInterval(");
@@ -3282,27 +3056,22 @@
                   }
                 }
                 _builder_13.append(", \"");
-                Map<Double, Map<String, String>> _get_22 = intervalIconMap.get(property);
-                Map<String, String> _get_23 = _get_22.get(interval_1);
-                String _get_24 = _get_23.get(style_1);
-                _builder_13.append(_get_24, "\t");
+                String _get = intervalIconMap.get(attribute).get(interval_1).get(style_1);
+                _builder_13.append(_get, "\t");
                 _builder_13.append("\")");
                 _builder_13.newLineIfNotEmpty();
                 body = _builder_13.toString();
               }
             }
           }
-          boolean _containsKey_4 = intervalTooltipMap.containsKey(property);
+          boolean _containsKey_4 = intervalTooltipMap.containsKey(attribute);
           if (_containsKey_4) {
-            Map<Double, Map<String, String>> _get_25 = intervalTooltipMap.get(property);
-            Set<Double> _keySet_19 = _get_25.keySet();
-            for (final Double interval_2 : _keySet_19) {
-              Map<Double, Map<String, String>> _get_26 = intervalTooltipMap.get(property);
-              Map<String, String> _get_27 = _get_26.get(interval_2);
-              Set<String> _keySet_20 = _get_27.keySet();
-              for (final String style_2 : _keySet_20) {
+            Set<Double> _keySet_4 = intervalTooltipMap.get(attribute).keySet();
+            for (final Double interval_2 : _keySet_4) {
+              Set<String> _keySet_5 = intervalTooltipMap.get(attribute).get(interval_2).keySet();
+              for (final String style_2 : _keySet_5) {
                 StringConcatenation _builder_14 = new StringConcatenation();
-                _builder_14.append(body, "");
+                _builder_14.append(body);
                 _builder_14.newLineIfNotEmpty();
                 _builder_14.append("\t");
                 _builder_14.append(".addTooltipInterval(");
@@ -3316,28 +3085,23 @@
                     _builder_14.append(interval_2, "\t");
                   }
                 }
-                _builder_14.append(", dslMetadataService.translate(locale.toLanguageTag(), \"");
-                Map<Double, Map<String, String>> _get_28 = intervalTooltipMap.get(property);
-                Map<String, String> _get_29 = _get_28.get(interval_2);
-                String _get_30 = _get_29.get(style_2);
-                _builder_14.append(_get_30, "\t");
-                _builder_14.append("\"))");
+                _builder_14.append(", \"");
+                String _get_1 = intervalTooltipMap.get(attribute).get(interval_2).get(style_2);
+                _builder_14.append(_get_1, "\t");
+                _builder_14.append("\")");
                 _builder_14.newLineIfNotEmpty();
                 body = _builder_14.toString();
               }
             }
           }
-          boolean _containsKey_5 = numberLookupStyleMap.containsKey(property);
+          boolean _containsKey_5 = numberLookupStyleMap.containsKey(attribute);
           if (_containsKey_5) {
-            Map<Double, Map<String, String>> _get_31 = numberLookupStyleMap.get(property);
-            Set<Double> _keySet_21 = _get_31.keySet();
-            for (final Double interval_3 : _keySet_21) {
-              Map<Double, Map<String, String>> _get_32 = numberLookupStyleMap.get(property);
-              Map<String, String> _get_33 = _get_32.get(interval_3);
-              Set<String> _keySet_22 = _get_33.keySet();
-              for (final String style_3 : _keySet_22) {
+            Set<Double> _keySet_6 = numberLookupStyleMap.get(attribute).keySet();
+            for (final Double interval_3 : _keySet_6) {
+              Set<String> _keySet_7 = numberLookupStyleMap.get(attribute).get(interval_3).keySet();
+              for (final String style_3 : _keySet_7) {
                 StringConcatenation _builder_15 = new StringConcatenation();
-                _builder_15.append(body, "");
+                _builder_15.append(body);
                 _builder_15.newLineIfNotEmpty();
                 _builder_15.append("\t");
                 _builder_15.append(".addStyleLookup(");
@@ -3350,74 +3114,70 @@
               }
             }
           }
-          boolean _containsKey_6 = numberLookupIconMap.containsKey(property);
+          boolean _containsKey_6 = numberLookupIconMap.containsKey(attribute);
           if (_containsKey_6) {
-            Map<Double, Map<String, String>> _get_34 = numberLookupIconMap.get(property);
-            Set<Double> _keySet_23 = _get_34.keySet();
-            for (final Double interval_4 : _keySet_23) {
-              Map<Double, Map<String, String>> _get_35 = numberLookupIconMap.get(property);
-              Map<String, String> _get_36 = _get_35.get(interval_4);
-              Set<String> _keySet_24 = _get_36.keySet();
-              for (final String style_4 : _keySet_24) {
+            Set<Double> _keySet_8 = numberLookupIconMap.get(attribute).keySet();
+            for (final Double interval_4 : _keySet_8) {
+              Set<String> _keySet_9 = numberLookupIconMap.get(attribute).get(interval_4).keySet();
+              for (final String style_4 : _keySet_9) {
                 StringConcatenation _builder_16 = new StringConcatenation();
-                _builder_16.append(body, "");
+                _builder_16.append(body);
                 _builder_16.newLineIfNotEmpty();
                 _builder_16.append("\t");
                 _builder_16.append(".addResourceLookup(");
                 _builder_16.append(interval_4, "\t");
                 _builder_16.append(", \"");
-                Map<Double, Map<String, String>> _get_37 = numberLookupIconMap.get(property);
-                Map<String, String> _get_38 = _get_37.get(interval_4);
-                String _get_39 = _get_38.get(style_4);
-                _builder_16.append(_get_39, "\t");
+                String _get_2 = numberLookupIconMap.get(attribute).get(interval_4).get(style_4);
+                _builder_16.append(_get_2, "\t");
                 _builder_16.append("\")");
                 _builder_16.newLineIfNotEmpty();
                 body = _builder_16.toString();
               }
             }
           }
-          boolean _containsKey_7 = numberLookupTooltipMap.containsKey(property);
+          boolean _containsKey_7 = numberLookupTooltipMap.containsKey(attribute);
           if (_containsKey_7) {
-            Map<Double, Map<String, String>> _get_40 = numberLookupTooltipMap.get(property);
-            Set<Double> _keySet_25 = _get_40.keySet();
-            for (final Double interval_5 : _keySet_25) {
-              Map<Double, Map<String, String>> _get_41 = numberLookupTooltipMap.get(property);
-              Map<String, String> _get_42 = _get_41.get(interval_5);
-              Set<String> _keySet_26 = _get_42.keySet();
-              for (final String style_5 : _keySet_26) {
+            Set<Double> _keySet_10 = numberLookupTooltipMap.get(attribute).keySet();
+            for (final Double interval_5 : _keySet_10) {
+              Set<String> _keySet_11 = numberLookupTooltipMap.get(attribute).get(interval_5).keySet();
+              for (final String style_5 : _keySet_11) {
                 StringConcatenation _builder_17 = new StringConcatenation();
-                _builder_17.append(body, "");
+                _builder_17.append(body);
                 _builder_17.newLineIfNotEmpty();
                 _builder_17.append("\t");
                 _builder_17.append(".addTooltipLookup(");
                 _builder_17.append(interval_5, "\t");
-                _builder_17.append(", dslMetadataService.translate(locale.toLanguageTag(), \"");
-                Map<Double, Map<String, String>> _get_43 = numberLookupTooltipMap.get(property);
-                Map<String, String> _get_44 = _get_43.get(interval_5);
-                String _get_45 = _get_44.get(style_5);
-                _builder_17.append(_get_45, "\t");
-                _builder_17.append("\"))");
+                _builder_17.append(", ");
+                String _get_3 = numberLookupTooltipMap.get(attribute).get(interval_5).get(style_5);
+                _builder_17.append(_get_3, "\t");
+                _builder_17.append("\")");
                 _builder_17.newLineIfNotEmpty();
                 body = _builder_17.toString();
               }
             }
           }
-          boolean _containsKey_8 = stringLookupStyleMap.containsKey(property);
+          boolean _containsKey_8 = intIntervalStyleMap.containsKey(attribute);
           if (_containsKey_8) {
-            Map<String, Map<String, String>> _get_46 = stringLookupStyleMap.get(property);
-            Set<String> _keySet_27 = _get_46.keySet();
-            for (final String interval_6 : _keySet_27) {
-              Map<String, Map<String, String>> _get_47 = stringLookupStyleMap.get(property);
-              Map<String, String> _get_48 = _get_47.get(interval_6);
-              Set<String> _keySet_28 = _get_48.keySet();
-              for (final String style_6 : _keySet_28) {
+            Set<Integer> _keySet_12 = intIntervalStyleMap.get(attribute).keySet();
+            for (final Integer intInterval : _keySet_12) {
+              Set<String> _keySet_13 = intIntervalStyleMap.get(attribute).get(intInterval).keySet();
+              for (final String style_6 : _keySet_13) {
                 StringConcatenation _builder_18 = new StringConcatenation();
-                _builder_18.append(body, "");
+                _builder_18.append(body);
                 _builder_18.newLineIfNotEmpty();
                 _builder_18.append("\t");
-                _builder_18.append(".addStyleLookup(\"");
-                _builder_18.append(interval_6, "\t");
-                _builder_18.append("\", \"");
+                _builder_18.append(".addStyleInterval(");
+                {
+                  boolean _startsWith_3 = style_6.startsWith("date");
+                  if (_startsWith_3) {
+                    _builder_18.append("ExtendedDate.add(new Date(), (long)");
+                    _builder_18.append(((intInterval).intValue() * (-1)), "\t");
+                    _builder_18.append(", TimeUnit.DAYS)");
+                  } else {
+                    _builder_18.append(intInterval, "\t");
+                  }
+                }
+                _builder_18.append(", \"");
                 _builder_18.append(style_6, "\t");
                 _builder_18.append("\")");
                 _builder_18.newLineIfNotEmpty();
@@ -3425,74 +3185,79 @@
               }
             }
           }
-          boolean _containsKey_9 = stringLookupIconMap.containsKey(property);
+          boolean _containsKey_9 = intIntervalIconMap.containsKey(attribute);
           if (_containsKey_9) {
-            Map<String, Map<String, String>> _get_49 = stringLookupIconMap.get(property);
-            Set<String> _keySet_29 = _get_49.keySet();
-            for (final String interval_7 : _keySet_29) {
-              Map<String, Map<String, String>> _get_50 = stringLookupIconMap.get(property);
-              Map<String, String> _get_51 = _get_50.get(interval_7);
-              Set<String> _keySet_30 = _get_51.keySet();
-              for (final String style_7 : _keySet_30) {
+            Set<Integer> _keySet_14 = intIntervalIconMap.get(attribute).keySet();
+            for (final Integer intInterval_1 : _keySet_14) {
+              Set<String> _keySet_15 = intIntervalIconMap.get(attribute).get(intInterval_1).keySet();
+              for (final String style_7 : _keySet_15) {
                 StringConcatenation _builder_19 = new StringConcatenation();
-                _builder_19.append(body, "");
+                _builder_19.append(body);
                 _builder_19.newLineIfNotEmpty();
                 _builder_19.append("\t");
-                _builder_19.append(".addResourceLookup(\"");
-                _builder_19.append(interval_7, "\t");
-                _builder_19.append("\", \"");
-                Map<String, Map<String, String>> _get_52 = stringLookupIconMap.get(property);
-                Map<String, String> _get_53 = _get_52.get(interval_7);
-                String _get_54 = _get_53.get(style_7);
-                _builder_19.append(_get_54, "\t");
+                _builder_19.append(".addResourceInterval(");
+                {
+                  boolean _startsWith_4 = style_7.startsWith("date");
+                  if (_startsWith_4) {
+                    _builder_19.append("ExtendedDate.add(new Date(), (long)");
+                    _builder_19.append(((intInterval_1).intValue() * (-1)), "\t");
+                    _builder_19.append(", TimeUnit.DAYS)");
+                  } else {
+                    _builder_19.append(intInterval_1, "\t");
+                  }
+                }
+                _builder_19.append(", \"");
+                String _get_4 = intIntervalIconMap.get(attribute).get(intInterval_1).get(style_7);
+                _builder_19.append(_get_4, "\t");
                 _builder_19.append("\")");
                 _builder_19.newLineIfNotEmpty();
                 body = _builder_19.toString();
               }
             }
           }
-          boolean _containsKey_10 = stringLookupTooltipMap.containsKey(property);
+          boolean _containsKey_10 = intIntervalTooltipMap.containsKey(attribute);
           if (_containsKey_10) {
-            Map<String, Map<String, String>> _get_55 = stringLookupTooltipMap.get(property);
-            Set<String> _keySet_31 = _get_55.keySet();
-            for (final String interval_8 : _keySet_31) {
-              Map<String, Map<String, String>> _get_56 = stringLookupTooltipMap.get(property);
-              Map<String, String> _get_57 = _get_56.get(interval_8);
-              Set<String> _keySet_32 = _get_57.keySet();
-              for (final String style_8 : _keySet_32) {
+            Set<Integer> _keySet_16 = intIntervalTooltipMap.get(attribute).keySet();
+            for (final Integer intInterval_2 : _keySet_16) {
+              Set<String> _keySet_17 = intIntervalTooltipMap.get(attribute).get(intInterval_2).keySet();
+              for (final String style_8 : _keySet_17) {
                 StringConcatenation _builder_20 = new StringConcatenation();
-                _builder_20.append(body, "");
+                _builder_20.append(body);
                 _builder_20.newLineIfNotEmpty();
                 _builder_20.append("\t");
-                _builder_20.append(".addTooltipLookup(\"");
-                _builder_20.append(interval_8, "\t");
-                _builder_20.append("\", dslMetadataService.translate(locale.toLanguageTag(), \"");
-                Map<String, Map<String, String>> _get_58 = stringLookupTooltipMap.get(property);
-                Map<String, String> _get_59 = _get_58.get(interval_8);
-                String _get_60 = _get_59.get(style_8);
-                _builder_20.append(_get_60, "\t");
-                _builder_20.append("\"))");
+                _builder_20.append(".addTooltipInterval(");
+                {
+                  boolean _startsWith_5 = style_8.startsWith("date");
+                  if (_startsWith_5) {
+                    _builder_20.append("ExtendedDate.add(new Date(), (long)");
+                    _builder_20.append(((intInterval_2).intValue() * (-1)), "\t");
+                    _builder_20.append(", TimeUnit.DAYS)");
+                  } else {
+                    _builder_20.append(intInterval_2, "\t");
+                  }
+                }
+                _builder_20.append(", \"");
+                String _get_5 = intIntervalTooltipMap.get(attribute).get(intInterval_2).get(style_8);
+                _builder_20.append(_get_5, "\t");
+                _builder_20.append("\")");
                 _builder_20.newLineIfNotEmpty();
                 body = _builder_20.toString();
               }
             }
           }
-          boolean _containsKey_11 = dateLookupStyleMap.containsKey(property);
+          boolean _containsKey_11 = intLookupStyleMap.containsKey(attribute);
           if (_containsKey_11) {
-            Map<Double, Map<String, String>> _get_61 = dateLookupStyleMap.get(property);
-            Set<Double> _keySet_33 = _get_61.keySet();
-            for (final Double interval_9 : _keySet_33) {
-              Map<Double, Map<String, String>> _get_62 = dateLookupStyleMap.get(property);
-              Map<String, String> _get_63 = _get_62.get(interval_9);
-              Set<String> _keySet_34 = _get_63.keySet();
-              for (final String style_9 : _keySet_34) {
+            Set<Integer> _keySet_18 = intLookupStyleMap.get(attribute).keySet();
+            for (final Integer interval_6 : _keySet_18) {
+              Set<String> _keySet_19 = intLookupStyleMap.get(attribute).get(interval_6).keySet();
+              for (final String style_9 : _keySet_19) {
                 StringConcatenation _builder_21 = new StringConcatenation();
-                _builder_21.append(body, "");
+                _builder_21.append(body);
                 _builder_21.newLineIfNotEmpty();
                 _builder_21.append("\t");
-                _builder_21.append(".addStyleLookup(ExtendedDate.add(new Date(),");
-                _builder_21.append(((interval_9).doubleValue() * (-1)), "\t");
-                _builder_21.append(",TimeUnit.DAYS), \"");
+                _builder_21.append(".addStyleLookup(");
+                _builder_21.append(interval_6, "\t");
+                _builder_21.append(", \"");
                 _builder_21.append(style_9, "\t");
                 _builder_21.append("\")");
                 _builder_21.newLineIfNotEmpty();
@@ -3500,78 +3265,192 @@
               }
             }
           }
-          boolean _containsKey_12 = dateLookupIconMap.containsKey(property);
+          boolean _containsKey_12 = intLookupIconMap.containsKey(attribute);
           if (_containsKey_12) {
-            Map<Double, Map<String, String>> _get_64 = dateLookupIconMap.get(property);
-            Set<Double> _keySet_35 = _get_64.keySet();
-            for (final Double interval_10 : _keySet_35) {
-              Map<Double, Map<String, String>> _get_65 = dateLookupIconMap.get(property);
-              Map<String, String> _get_66 = _get_65.get(interval_10);
-              Set<String> _keySet_36 = _get_66.keySet();
-              for (final String style_10 : _keySet_36) {
+            Set<Integer> _keySet_20 = intLookupIconMap.get(attribute).keySet();
+            for (final Integer interval_7 : _keySet_20) {
+              Set<String> _keySet_21 = intLookupIconMap.get(attribute).get(interval_7).keySet();
+              for (final String style_10 : _keySet_21) {
                 StringConcatenation _builder_22 = new StringConcatenation();
-                _builder_22.append(body, "");
+                _builder_22.append(body);
                 _builder_22.newLineIfNotEmpty();
                 _builder_22.append("\t");
-                _builder_22.append(".addResourceLookup(ExtendedDate.add(new Date(),");
-                _builder_22.append(((interval_10).doubleValue() * (-1)), "\t");
-                _builder_22.append(",TimeUnit.DAYS), \"");
-                Map<Double, Map<String, String>> _get_67 = dateLookupIconMap.get(property);
-                Map<String, String> _get_68 = _get_67.get(interval_10);
-                String _get_69 = _get_68.get(style_10);
-                _builder_22.append(_get_69, "\t");
+                _builder_22.append(".addResourceLookup(");
+                _builder_22.append(interval_7, "\t");
+                _builder_22.append(", \"");
+                String _get_6 = intLookupIconMap.get(attribute).get(interval_7).get(style_10);
+                _builder_22.append(_get_6, "\t");
                 _builder_22.append("\")");
                 _builder_22.newLineIfNotEmpty();
                 body = _builder_22.toString();
               }
             }
           }
-          boolean _containsKey_13 = dateLookupTooltipMap.containsKey(property);
+          boolean _containsKey_13 = intLookupTooltipMap.containsKey(attribute);
           if (_containsKey_13) {
-            Map<Double, Map<String, String>> _get_70 = dateLookupTooltipMap.get(property);
-            Set<Double> _keySet_37 = _get_70.keySet();
-            for (final Double interval_11 : _keySet_37) {
-              Map<Double, Map<String, String>> _get_71 = dateLookupTooltipMap.get(property);
-              Map<String, String> _get_72 = _get_71.get(interval_11);
-              Set<String> _keySet_38 = _get_72.keySet();
-              for (final String style_11 : _keySet_38) {
+            Set<Integer> _keySet_22 = intLookupTooltipMap.get(attribute).keySet();
+            for (final Integer interval_8 : _keySet_22) {
+              Set<String> _keySet_23 = intLookupTooltipMap.get(attribute).get(interval_8).keySet();
+              for (final String style_11 : _keySet_23) {
                 StringConcatenation _builder_23 = new StringConcatenation();
-                _builder_23.append(body, "");
+                _builder_23.append(body);
                 _builder_23.newLineIfNotEmpty();
                 _builder_23.append("\t");
-                _builder_23.append(".addTooltipLookup(ExtendedDate.add(new Date(),");
-                _builder_23.append(((interval_11).doubleValue() * (-1)), "\t");
-                _builder_23.append(",TimeUnit.DAYS), dslMetadataService.translate(locale.toLanguageTag(), \"");
-                Map<Double, Map<String, String>> _get_73 = dateLookupTooltipMap.get(property);
-                Map<String, String> _get_74 = _get_73.get(interval_11);
-                String _get_75 = _get_74.get(style_11);
-                _builder_23.append(_get_75, "\t");
-                _builder_23.append("\"))");
+                _builder_23.append(".addTooltipLookup(");
+                _builder_23.append(interval_8, "\t");
+                _builder_23.append(", \"");
+                String _get_7 = intLookupTooltipMap.get(attribute).get(interval_8).get(style_11);
+                _builder_23.append(_get_7, "\t");
+                _builder_23.append("\")");
                 _builder_23.newLineIfNotEmpty();
                 body = _builder_23.toString();
               }
             }
           }
-          boolean _containsKey_14 = blobLookupMap.containsKey(property);
+          boolean _containsKey_14 = stringLookupStyleMap.containsKey(attribute);
           if (_containsKey_14) {
-            StringConcatenation _builder_24 = new StringConcatenation();
-            _builder_24.append(body, "");
-            _builder_24.newLineIfNotEmpty();
-            _builder_24.append("\t");
-            _builder_24.append(".setBlob(true, ");
-            String _get_76 = blobLookupMap.get(property);
-            _builder_24.append(_get_76, "\t");
-            _builder_24.append(")");
-            _builder_24.newLineIfNotEmpty();
-            body = _builder_24.toString();
+            Set<String> _keySet_24 = stringLookupStyleMap.get(attribute).keySet();
+            for (final String interval_9 : _keySet_24) {
+              Set<String> _keySet_25 = stringLookupStyleMap.get(attribute).get(interval_9).keySet();
+              for (final String style_12 : _keySet_25) {
+                StringConcatenation _builder_24 = new StringConcatenation();
+                _builder_24.append(body);
+                _builder_24.newLineIfNotEmpty();
+                _builder_24.append("\t");
+                _builder_24.append(".addStyleLookup(\"");
+                _builder_24.append(interval_9, "\t");
+                _builder_24.append("\", \"");
+                _builder_24.append(style_12, "\t");
+                _builder_24.append("\")");
+                _builder_24.newLineIfNotEmpty();
+                body = _builder_24.toString();
+              }
+            }
+          }
+          boolean _containsKey_15 = stringLookupIconMap.containsKey(attribute);
+          if (_containsKey_15) {
+            Set<String> _keySet_26 = stringLookupIconMap.get(attribute).keySet();
+            for (final String interval_10 : _keySet_26) {
+              Set<String> _keySet_27 = stringLookupIconMap.get(attribute).get(interval_10).keySet();
+              for (final String style_13 : _keySet_27) {
+                StringConcatenation _builder_25 = new StringConcatenation();
+                _builder_25.append(body);
+                _builder_25.newLineIfNotEmpty();
+                _builder_25.append("\t");
+                _builder_25.append(".addResourceLookup(\"");
+                _builder_25.append(interval_10, "\t");
+                _builder_25.append("\", \"");
+                String _get_8 = stringLookupIconMap.get(attribute).get(interval_10).get(style_13);
+                _builder_25.append(_get_8, "\t");
+                _builder_25.append("\")");
+                _builder_25.newLineIfNotEmpty();
+                body = _builder_25.toString();
+              }
+            }
+          }
+          boolean _containsKey_16 = stringLookupTooltipMap.containsKey(attribute);
+          if (_containsKey_16) {
+            Set<String> _keySet_28 = stringLookupTooltipMap.get(attribute).keySet();
+            for (final String interval_11 : _keySet_28) {
+              Set<String> _keySet_29 = stringLookupTooltipMap.get(attribute).get(interval_11).keySet();
+              for (final String style_14 : _keySet_29) {
+                StringConcatenation _builder_26 = new StringConcatenation();
+                _builder_26.append(body);
+                _builder_26.newLineIfNotEmpty();
+                _builder_26.append("\t");
+                _builder_26.append(".addTooltipLookup(\"");
+                _builder_26.append(interval_11, "\t");
+                _builder_26.append("\", \"");
+                String _get_9 = stringLookupTooltipMap.get(attribute).get(interval_11).get(style_14);
+                _builder_26.append(_get_9, "\t");
+                _builder_26.append("\")");
+                _builder_26.newLineIfNotEmpty();
+                body = _builder_26.toString();
+              }
+            }
+          }
+          boolean _containsKey_17 = dateLookupStyleMap.containsKey(attribute);
+          if (_containsKey_17) {
+            Set<Double> _keySet_30 = dateLookupStyleMap.get(attribute).keySet();
+            for (final Double interval_12 : _keySet_30) {
+              Set<String> _keySet_31 = dateLookupStyleMap.get(attribute).get(interval_12).keySet();
+              for (final String style_15 : _keySet_31) {
+                StringConcatenation _builder_27 = new StringConcatenation();
+                _builder_27.append(body);
+                _builder_27.newLineIfNotEmpty();
+                _builder_27.append("\t");
+                _builder_27.append(".addStyleLookup(ExtendedDate.add(new Date(),");
+                _builder_27.append(((interval_12).doubleValue() * (-1)), "\t");
+                _builder_27.append(",TimeUnit.DAYS), \"");
+                _builder_27.append(style_15, "\t");
+                _builder_27.append("\")");
+                _builder_27.newLineIfNotEmpty();
+                body = _builder_27.toString();
+              }
+            }
+          }
+          boolean _containsKey_18 = dateLookupIconMap.containsKey(attribute);
+          if (_containsKey_18) {
+            Set<Double> _keySet_32 = dateLookupIconMap.get(attribute).keySet();
+            for (final Double interval_13 : _keySet_32) {
+              Set<String> _keySet_33 = dateLookupIconMap.get(attribute).get(interval_13).keySet();
+              for (final String style_16 : _keySet_33) {
+                StringConcatenation _builder_28 = new StringConcatenation();
+                _builder_28.append(body);
+                _builder_28.newLineIfNotEmpty();
+                _builder_28.append("\t");
+                _builder_28.append(".addResourceLookup(ExtendedDate.add(new Date(),");
+                _builder_28.append(((interval_13).doubleValue() * (-1)), "\t");
+                _builder_28.append(",TimeUnit.DAYS), \"");
+                String _get_10 = dateLookupIconMap.get(attribute).get(interval_13).get(style_16);
+                _builder_28.append(_get_10, "\t");
+                _builder_28.append("\")");
+                _builder_28.newLineIfNotEmpty();
+                body = _builder_28.toString();
+              }
+            }
+          }
+          boolean _containsKey_19 = dateLookupTooltipMap.containsKey(attribute);
+          if (_containsKey_19) {
+            Set<Double> _keySet_34 = dateLookupTooltipMap.get(attribute).keySet();
+            for (final Double interval_14 : _keySet_34) {
+              Set<String> _keySet_35 = dateLookupTooltipMap.get(attribute).get(interval_14).keySet();
+              for (final String style_17 : _keySet_35) {
+                StringConcatenation _builder_29 = new StringConcatenation();
+                _builder_29.append(body);
+                _builder_29.newLineIfNotEmpty();
+                _builder_29.append("\t");
+                _builder_29.append(".addTooltipLookup(ExtendedDate.add(new Date(),");
+                _builder_29.append(((interval_14).doubleValue() * (-1)), "\t");
+                _builder_29.append(",TimeUnit.DAYS), \"");
+                String _get_11 = dateLookupTooltipMap.get(attribute).get(interval_14).get(style_17);
+                _builder_29.append(_get_11, "\t");
+                _builder_29.append("\")");
+                _builder_29.newLineIfNotEmpty();
+                body = _builder_29.toString();
+              }
+            }
+          }
+          boolean _containsKey_20 = blobLookupMap.containsKey(attribute);
+          if (_containsKey_20) {
+            StringConcatenation _builder_30 = new StringConcatenation();
+            _builder_30.append(body);
+            _builder_30.newLineIfNotEmpty();
+            _builder_30.append("\t");
+            _builder_30.append(".setBlob(true, ");
+            String _get_12 = blobLookupMap.get(attribute);
+            _builder_30.append(_get_12, "\t");
+            _builder_30.append(")");
+            _builder_30.newLineIfNotEmpty();
+            body = _builder_30.toString();
           }
         }
-        if (hadProperty) {
-          StringConcatenation _builder_25 = new StringConcatenation();
-          _builder_25.append(body, "");
-          _builder_25.append(");");
-          _builder_25.newLineIfNotEmpty();
-          body = _builder_25.toString();
+        if (hadAttribute) {
+          StringConcatenation _builder_31 = new StringConcatenation();
+          _builder_31.append(body);
+          _builder_31.append(");");
+          _builder_31.newLineIfNotEmpty();
+          body = _builder_31.toString();
         }
       }
     }
@@ -3582,365 +3461,353 @@
    * <p>infer the model's setting for cell configuration including blobs.</p>
    */
   public void initBlobLookup(final Table table, final Map<String, String> blobMap) {
-    TableDatamart _dataMartTable = this.getDataMartTable(table);
-    DatamartDefinition _datamartRef = _dataMartTable.getDatamartRef();
-    DatamartSource datamartSource = _datamartRef.getSource();
+    DatamartSource datamartSource = this.getDataMartTable(table).getDatamartRef().getSource();
     if ((datamartSource instanceof DatamartEntity)) {
-      EList<DatamartProperty> _properties = ((DatamartEntity) datamartSource).getProperties();
-      for (final DatamartProperty property : _properties) {
-        LEntityAttribute _propertyRef = property.getPropertyRef();
-        EList<LKeyAndValue> _properties_1 = _propertyRef.getProperties();
-        final Function1<LKeyAndValue, Boolean> _function = new Function1<LKeyAndValue, Boolean>() {
-          public Boolean apply(final LKeyAndValue it) {
-            String _key = it.getKey();
-            String _lowerCase = _key.toLowerCase();
-            return Boolean.valueOf(_lowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB));
-          }
-        };
-        boolean _exists = IterableExtensions.<LKeyAndValue>exists(_properties_1, _function);
-        if (_exists) {
-          LEntityAttribute _propertyRef_1 = property.getPropertyRef();
-          EList<LKeyAndValue> _properties_2 = _propertyRef_1.getProperties();
-          final Function1<LKeyAndValue, Boolean> _function_1 = new Function1<LKeyAndValue, Boolean>() {
-            public Boolean apply(final LKeyAndValue it) {
-              String _key = it.getKey();
-              String _lowerCase = _key.toLowerCase();
-              return Boolean.valueOf(_lowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB));
+      List<LEntityAttribute> _allAttributes = ((DatamartEntity) datamartSource).getEntityRef().getAllAttributes();
+      for (final LEntityAttribute attribute : _allAttributes) {
+        {
+          LKeyAndValue resolution = this.getResolution(attribute);
+          if ((resolution != null)) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _name = null;
+            if (attribute!=null) {
+              _name=attribute.getName();
             }
-          };
-          LKeyAndValue resolution = IterableExtensions.<LKeyAndValue>findFirst(_properties_2, _function_1);
-          String _propertyName = this.datamartInferrer.getPropertyName(property);
-          String _value = null;
-          if (resolution!=null) {
-            _value=resolution.getValue();
-          }
-          blobMap.put(_propertyName, _value);
-        } else {
-          LEntityAttribute _propertyRef_2 = property.getPropertyRef();
-          LScalarType _type = _propertyRef_2.getType();
-          if ((_type instanceof LDataType)) {
-            LEntityAttribute _propertyRef_3 = property.getPropertyRef();
-            LScalarType _type_1 = _propertyRef_3.getType();
-            EList<LKeyAndValue> _properties_3 = ((LDataType) _type_1).getProperties();
-            final Function1<LKeyAndValue, Boolean> _function_2 = new Function1<LKeyAndValue, Boolean>() {
-              public Boolean apply(final LKeyAndValue it) {
-                String _key = it.getKey();
-                String _lowerCase = _key.toLowerCase();
-                return Boolean.valueOf(_lowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB));
-              }
-            };
-            boolean _exists_1 = IterableExtensions.<LKeyAndValue>exists(_properties_3, _function_2);
-            if (_exists_1) {
-              LEntityAttribute _propertyRef_4 = property.getPropertyRef();
-              LScalarType _type_2 = _propertyRef_4.getType();
-              EList<LKeyAndValue> _properties_4 = ((LDataType) _type_2).getProperties();
-              final Function1<LKeyAndValue, Boolean> _function_3 = new Function1<LKeyAndValue, Boolean>() {
-                public Boolean apply(final LKeyAndValue it) {
-                  String _key = it.getKey();
-                  String _lowerCase = _key.toLowerCase();
-                  return Boolean.valueOf(_lowerCase.equals(AbstractLayoutingStrategy.PROPERTY_BLOB));
-                }
-              };
-              LKeyAndValue resolution_1 = IterableExtensions.<LKeyAndValue>findFirst(_properties_4, _function_3);
-              String _propertyName_1 = this.datamartInferrer.getPropertyName(property);
-              String _value_1 = null;
-              if (resolution_1!=null) {
-                _value_1=resolution_1.getValue();
-              }
-              blobMap.put(_propertyName_1, _value_1);
+            String _replace = null;
+            if (_name!=null) {
+              _replace=_name.replace("^", "");
             }
+            _builder.append(_replace);
+            String _value = null;
+            if (resolution!=null) {
+              _value=resolution.getValue();
+            }
+            blobMap.put(_builder.toString(), _value);
+          }
+        }
+      }
+      EList<DatamartAttribute> _attributes = ((DatamartEntity) datamartSource).getAttributes();
+      for (final DatamartAttribute attribute_1 : _attributes) {
+        {
+          LKeyAndValue resolution = this.getResolution(attribute_1.getAttributeRef());
+          if ((resolution != null)) {
+            String _aliasedAttributeName = DatamartAttributeUtil.getAliasedAttributeName(attribute_1);
+            String _value = null;
+            if (resolution!=null) {
+              _value=resolution.getValue();
+            }
+            blobMap.put(_aliasedAttributeName, _value);
           }
         }
       }
     }
   }
   
+  public LKeyAndValue getResolution(final LEntityAttribute attribute) {
+    final Function1<LKeyAndValue, Boolean> _function = (LKeyAndValue it) -> {
+      return Boolean.valueOf(it.getKey().toLowerCase().equals(AbstractLayoutingStrategy.PROPERTY_BLOB));
+    };
+    boolean _exists = IterableExtensions.<LKeyAndValue>exists(attribute.getProperties(), _function);
+    if (_exists) {
+      final Function1<LKeyAndValue, Boolean> _function_1 = (LKeyAndValue it) -> {
+        return Boolean.valueOf(it.getKey().toLowerCase().equals(AbstractLayoutingStrategy.PROPERTY_BLOB));
+      };
+      return IterableExtensions.<LKeyAndValue>findFirst(attribute.getProperties(), _function_1);
+    } else {
+      LScalarType _type = attribute.getType();
+      if ((_type instanceof LDataType)) {
+        LScalarType _type_1 = attribute.getType();
+        final Function1<LKeyAndValue, Boolean> _function_2 = (LKeyAndValue it) -> {
+          return Boolean.valueOf(it.getKey().toLowerCase().equals(AbstractLayoutingStrategy.PROPERTY_BLOB));
+        };
+        boolean _exists_1 = IterableExtensions.<LKeyAndValue>exists(((LDataType) _type_1).getProperties(), _function_2);
+        if (_exists_1) {
+          LScalarType _type_2 = attribute.getType();
+          final Function1<LKeyAndValue, Boolean> _function_3 = (LKeyAndValue it) -> {
+            return Boolean.valueOf(it.getKey().toLowerCase().equals(AbstractLayoutingStrategy.PROPERTY_BLOB));
+          };
+          return IterableExtensions.<LKeyAndValue>findFirst(((LDataType) _type_2).getProperties(), _function_3);
+        }
+      }
+    }
+    return null;
+  }
+  
   /**
    * <p>infer the model's setting for cell configuration including styles and images.</p>
    */
-  public void initPropertyLookups(final TableAxis axis, final HashMap<String, FormatProperty> formatMap, final HashMap<String, Map<Double, Map<String, String>>> intervalStyleMap, final HashMap<String, Map<Double, Map<String, String>>> intervalIconMap, final HashMap<String, Map<Double, Map<String, String>>> intervalTooltipMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupStyleMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupIconMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupTooltipMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupStyleMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupIconMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupTooltipMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupStyleMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupIconMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupTooltipMap) {
+  public void initPropertyLookups(final TableAxis axis, final HashMap<String, FormatAttribute> formatMap, final HashMap<String, Map<Double, Map<String, String>>> intervalStyleMap, final HashMap<String, Map<Double, Map<String, String>>> intervalIconMap, final HashMap<String, Map<Double, Map<String, String>>> intervalTooltipMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupStyleMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupIconMap, final HashMap<String, Map<Double, Map<String, String>>> numberLookupTooltipMap, final HashMap<String, Map<Integer, Map<String, String>>> intIntervalStyleMap, final HashMap<String, Map<Integer, Map<String, String>>> intIntervalIconMap, final HashMap<String, Map<Integer, Map<String, String>>> intIntervalTooltipMap, final HashMap<String, Map<Integer, Map<String, String>>> intLookupStyleMap, final HashMap<String, Map<Integer, Map<String, String>>> intLookupIconMap, final HashMap<String, Map<Integer, Map<String, String>>> intLookupTooltipMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupStyleMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupIconMap, final HashMap<String, Map<String, Map<String, String>>> stringLookupTooltipMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupStyleMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupIconMap, final HashMap<String, Map<Double, Map<String, String>>> dateLookupTooltipMap) {
     EList<TableValue> _values = axis.getValues();
     for (final TableValue value : _values) {
       {
-        FormatProperty prop = new FormatProperty();
+        FormatAttribute prop = new FormatAttribute();
         TableFormatter _formatter = value.getFormatter();
-        boolean _notEquals = (!Objects.equal(_formatter, null));
-        if (_notEquals) {
-          TableFormatter _formatter_1 = value.getFormatter();
-          String _format = _formatter_1.getFormat();
-          prop.formatter = _format;
+        boolean _tripleNotEquals = (_formatter != null);
+        if (_tripleNotEquals) {
+          prop.formatter = value.getFormatter().getFormat();
         }
         TableTooltipPattern _tooltipPattern = value.getTooltipPattern();
-        boolean _notEquals_1 = (!Objects.equal(_tooltipPattern, null));
-        if (_notEquals_1) {
-          TableTooltipPattern _tooltipPattern_1 = value.getTooltipPattern();
-          String _tooltipPattern_2 = _tooltipPattern_1.getTooltipPattern();
-          prop.tooltipPattern = _tooltipPattern_2;
+        boolean _tripleNotEquals_1 = (_tooltipPattern != null);
+        if (_tripleNotEquals_1) {
+          prop.tooltipPattern = value.getTooltipPattern().getTooltipPattern();
         }
-        boolean _isHideLabelLookup = value.isHideLabelLookup();
-        prop.hideLabelLookup = _isHideLabelLookup;
-        boolean _isCollapsed = value.isCollapsed();
-        prop.collapsed = _isCollapsed;
-        boolean _isHasImage = value.isHasImage();
-        prop.hasImage = _isHasImage;
-        String _iconName = value.getIconName();
-        prop.iconName = _iconName;
-        boolean _and = false;
-        boolean _isHasImage_1 = value.isHasImage();
-        if (!_isHasImage_1) {
-          _and = false;
-        } else {
-          TableImage _image = value.getImage();
-          boolean _notEquals_2 = (!Objects.equal(_image, null));
-          _and = _notEquals_2;
-        }
-        if (_and) {
-          TableImage _image_1 = value.getImage();
-          boolean _isHasParameter = _image_1.isHasParameter();
-          prop.hasImageParameter = _isHasParameter;
-          TableImage _image_2 = value.getImage();
-          String _imagePathPattern = _image_2.getImagePathPattern();
-          prop.imagePath = _imagePathPattern;
-          TableImage _image_3 = value.getImage();
-          boolean _isHideImageLabel = _image_3.isHideImageLabel();
-          prop.hideImageLabel = _isHideImageLabel;
-          TableImage _image_4 = value.getImage();
-          boolean _isResize = _image_4.isResize();
-          prop.hasImageResize = _isResize;
-          TableImage _image_5 = value.getImage();
-          String _resizeString = _image_5.getResizeString();
-          prop.imageResizeString = _resizeString;
-          TableImage _image_6 = value.getImage();
-          boolean _isHasParameter_1 = _image_6.isHasParameter();
-          if (_isHasParameter_1) {
-            TableImage _image_7 = value.getImage();
-            TableValueElement _imagePathParameter = _image_7.getImagePathParameter();
+        prop.hideLabelLookup = value.isHideLabelLookup();
+        prop.collapsed = value.isCollapsed();
+        prop.hasImage = value.isHasImage();
+        prop.iconName = value.getIconName();
+        if ((value.isHasImage() && (value.getImage() != null))) {
+          prop.hasImageParameter = value.getImage().isHasParameter();
+          prop.imagePath = value.getImage().getImagePathPattern();
+          prop.hideImageLabel = value.getImage().isHideImageLabel();
+          prop.hasImageResize = value.getImage().isResize();
+          prop.imageResizeString = value.getImage().getResizeString();
+          boolean _isHasParameter = value.getImage().isHasParameter();
+          if (_isHasParameter) {
+            TableValueElement _imagePathParameter = value.getImage().getImagePathParameter();
             boolean _matched = false;
-            if (!_matched) {
-              if (_imagePathParameter instanceof TableColumn) {
-                _matched=true;
-                TableImage _image_8 = value.getImage();
-                TableValueElement _imagePathParameter_1 = _image_8.getImagePathParameter();
-                DatamartColumn _valueRef = ((TableColumn) _imagePathParameter_1).getValueRef();
-                TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-                String _literal = _columnRef.getLiteral();
-                prop.imagePathParameter = _literal;
-              }
+            if (_imagePathParameter instanceof TableColumn) {
+              _matched=true;
+              TableValueElement _imagePathParameter_1 = value.getImage().getImagePathParameter();
+              prop.imagePathParameter = ((TableColumn) _imagePathParameter_1).getValueRef().getColumnRef().getLiteral();
             }
             if (!_matched) {
               if (_imagePathParameter instanceof TableMeasure) {
                 _matched=true;
-                TableImage _image_8 = value.getImage();
-                TableValueElement _imagePathParameter_1 = _image_8.getImagePathParameter();
-                DatamartMeasure _valueRef = ((TableMeasure) _imagePathParameter_1).getValueRef();
-                CubeMeasure _measureRef = _valueRef.getMeasureRef();
-                String _name = _measureRef.getName();
-                prop.imagePathParameter = _name;
+                TableValueElement _imagePathParameter_1 = value.getImage().getImagePathParameter();
+                prop.imagePathParameter = ((TableMeasure) _imagePathParameter_1).getValueRef().getMeasureRef().getName();
               }
             }
             if (!_matched) {
               if (_imagePathParameter instanceof TableDerived) {
                 _matched=true;
-                TableImage _image_8 = value.getImage();
-                TableValueElement _imagePathParameter_1 = _image_8.getImagePathParameter();
-                DatamartDerivedMeasure _valueRef = ((TableDerived) _imagePathParameter_1).getValueRef();
-                DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-                String _name = _derivedRef.getName();
-                prop.imagePathParameter = _name;
+                TableValueElement _imagePathParameter_1 = value.getImage().getImagePathParameter();
+                prop.imagePathParameter = ((TableDerived) _imagePathParameter_1).getValueRef().getDerivedRef().getName();
               }
             }
             if (!_matched) {
               if (_imagePathParameter instanceof TableHierarchy) {
                 _matched=true;
-                TableImage _image_8 = value.getImage();
-                TableValueElement _imagePathParameter_1 = _image_8.getImagePathParameter();
-                CubeLevel _valueRef = ((TableHierarchy) _imagePathParameter_1).getValueRef();
-                String _levelName = this.getLevelName(_valueRef);
-                prop.imagePathParameter = _levelName;
+                TableValueElement _imagePathParameter_1 = value.getImage().getImagePathParameter();
+                prop.imagePathParameter = this.getLevelName(((TableHierarchy) _imagePathParameter_1).getValueRef());
               }
             }
             if (!_matched) {
-              if (_imagePathParameter instanceof TableProperty) {
+              if (_imagePathParameter instanceof TableAttribute) {
                 _matched=true;
-                TableImage _image_8 = value.getImage();
-                TableValueElement _imagePathParameter_1 = _image_8.getImagePathParameter();
-                DatamartProperty _valueRef = ((TableProperty) _imagePathParameter_1).getValueRef();
-                String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-                prop.imagePathParameter = _propertyName;
+                TableValueElement _imagePathParameter_1 = value.getImage().getImagePathParameter();
+                prop.imagePathParameter = DatamartAttributeUtil.getAliasedAttributeName(((TableAttribute) _imagePathParameter_1).getValueRef());
               }
             }
             if (!_matched) {
               if (_imagePathParameter instanceof TableAggregation) {
                 _matched=true;
-                TableImage _image_8 = value.getImage();
-                TableValueElement _imagePathParameter_1 = _image_8.getImagePathParameter();
-                DatamartSetAggregationFunction _valueRef = ((TableAggregation) _imagePathParameter_1).getValueRef();
-                SetAggregationEnum _aggregation = _valueRef.getAggregation();
-                String _name = _aggregation.name();
-                prop.imagePathParameter = _name;
+                TableValueElement _imagePathParameter_1 = value.getImage().getImagePathParameter();
+                prop.imagePathParameter = ((TableAggregation) _imagePathParameter_1).getValueRef().getAggregation().name();
               }
             }
           }
         }
+        HashMap<String, String> columnValueMap = CollectionLiterals.<String, String>newHashMap();
         TableValueElement _column = value.getColumn();
         boolean _matched_1 = false;
-        if (!_matched_1) {
-          if (_column instanceof TableOrdinal) {
-            _matched_1=true;
-            StringConcatenation _builder = new StringConcatenation();
-            _builder.append("#");
-            AxisEnum _axis = axis.getAxis();
-            String _literal = _axis.getLiteral();
-            _builder.append(_literal, "");
-            TableValueElement _column_1 = value.getColumn();
-            String _valueRef = ((TableOrdinal) _column_1).getValueRef();
-            String _string = _valueRef.toString();
-            _builder.append(_string, "");
-            formatMap.put(_builder.toString(), prop);
-          }
+        if (_column instanceof TableOrdinal) {
+          _matched_1=true;
+          String _canonicalName = TableOrdinal.class.getCanonicalName();
+          StringConcatenation _builder = new StringConcatenation();
+          _builder.append("#");
+          String _literal = axis.getAxis().getLiteral();
+          _builder.append(_literal);
+          TableValueElement _column_1 = value.getColumn();
+          String _string = ((TableOrdinal) _column_1).getValueRef().toString();
+          _builder.append(_string);
+          columnValueMap.put(_canonicalName, _builder.toString());
+          formatMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), prop);
         }
         if (!_matched_1) {
           if (_column instanceof TableAllColumns) {
             _matched_1=true;
+            String _canonicalName = TableAllColumns.class.getCanonicalName();
             StringConcatenation _builder = new StringConcatenation();
             _builder.append("?");
-            AxisEnum _axis = axis.getAxis();
-            String _literal = _axis.getLiteral();
-            _builder.append(_literal, "");
-            formatMap.put(_builder.toString(), prop);
+            String _literal = axis.getAxis().getLiteral();
+            _builder.append(_literal);
+            columnValueMap.put(_canonicalName, _builder.toString());
+            formatMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), prop);
           }
         }
         if (!_matched_1) {
           if (_column instanceof TableMeasure) {
             _matched_1=true;
+            String _canonicalName = TableMeasure.class.getCanonicalName();
             StringConcatenation _builder = new StringConcatenation();
             TableValueElement _column_1 = value.getColumn();
-            DatamartMeasure _valueRef = ((TableMeasure) _column_1).getValueRef();
-            CubeMeasure _measureRef = _valueRef.getMeasureRef();
-            String _name = _measureRef.getName();
-            _builder.append(_name, "");
-            formatMap.put(_builder.toString(), prop);
+            String _name = ((TableMeasure) _column_1).getValueRef().getMeasureRef().getName();
+            _builder.append(_name);
+            columnValueMap.put(_canonicalName, _builder.toString());
+            formatMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), prop);
           }
         }
         if (!_matched_1) {
           if (_column instanceof TableDerived) {
             _matched_1=true;
+            String _canonicalName = TableDerived.class.getCanonicalName();
             StringConcatenation _builder = new StringConcatenation();
             TableValueElement _column_1 = value.getColumn();
-            DatamartDerivedMeasure _valueRef = ((TableDerived) _column_1).getValueRef();
-            DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-            String _name = _derivedRef.getName();
-            _builder.append(_name, "");
-            formatMap.put(_builder.toString(), prop);
+            String _name = ((TableDerived) _column_1).getValueRef().getDerivedRef().getName();
+            _builder.append(_name);
+            columnValueMap.put(_canonicalName, _builder.toString());
+            formatMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), prop);
           }
         }
         if (!_matched_1) {
           if (_column instanceof TableHierarchy) {
             _matched_1=true;
+            String _canonicalName = TableHierarchy.class.getCanonicalName();
             StringConcatenation _builder = new StringConcatenation();
             TableValueElement _column_1 = value.getColumn();
-            CubeLevel _valueRef = ((TableHierarchy) _column_1).getValueRef();
-            String _levelName = this.getLevelName(_valueRef);
-            _builder.append(_levelName, "");
-            formatMap.put(_builder.toString(), prop);
+            String _levelName = this.getLevelName(((TableHierarchy) _column_1).getValueRef());
+            _builder.append(_levelName);
+            columnValueMap.put(_canonicalName, _builder.toString());
+            formatMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), prop);
           }
         }
         if (!_matched_1) {
-          if (_column instanceof TableProperty) {
+          if (_column instanceof TableAttribute) {
             _matched_1=true;
+            String _canonicalName = TableAttribute.class.getCanonicalName();
             StringConcatenation _builder = new StringConcatenation();
             TableValueElement _column_1 = value.getColumn();
-            DatamartProperty _valueRef = ((TableProperty) _column_1).getValueRef();
-            String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-            _builder.append(_propertyName, "");
-            formatMap.put(_builder.toString(), prop);
+            String _aliasedAttributeName = DatamartAttributeUtil.getAliasedAttributeName(((TableAttribute) _column_1).getValueRef());
+            _builder.append(_aliasedAttributeName);
+            columnValueMap.put(_canonicalName, _builder.toString());
+            formatMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), prop);
           }
         }
         if (!_matched_1) {
           if (_column instanceof TableAggregation) {
             _matched_1=true;
+            String _canonicalName = TableAggregation.class.getCanonicalName();
             StringConcatenation _builder = new StringConcatenation();
             TableValueElement _column_1 = value.getColumn();
-            DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_1).getValueRef();
-            SetAggregationEnum _aggregation = _valueRef.getAggregation();
-            String _name = _aggregation.name();
-            _builder.append(_name, "");
-            formatMap.put(_builder.toString(), prop);
+            String _name = ((TableAggregation) _column_1).getValueRef().getAggregation().name();
+            _builder.append(_name);
+            columnValueMap.put(_canonicalName, _builder.toString());
+            formatMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), prop);
           }
         }
         if (!_matched_1) {
           if (_column instanceof TableColumn) {
             _matched_1=true;
+            String _canonicalName = TableColumn.class.getCanonicalName();
             StringConcatenation _builder = new StringConcatenation();
             TableValueElement _column_1 = value.getColumn();
-            DatamartColumn _valueRef = ((TableColumn) _column_1).getValueRef();
-            TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-            String _literal = _columnRef.getLiteral();
-            _builder.append(_literal, "");
-            formatMap.put(_builder.toString(), prop);
+            String _literal = ((TableColumn) _column_1).getValueRef().getColumnRef().getLiteral();
+            _builder.append(_literal);
+            columnValueMap.put(_canonicalName, _builder.toString());
+            formatMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), prop);
           }
         }
         DoubleComparator _doubleComparator = new DoubleComparator();
         TreeMap<Double, Map<String, String>> valueMap = CollectionLiterals.<Double, Map<String, String>>newTreeMap(_doubleComparator);
+        IntegerComparator _integerComparator = new IntegerComparator();
+        TreeMap<Integer, Map<String, String>> intMap = CollectionLiterals.<Integer, Map<String, String>>newTreeMap(_integerComparator);
         EList<TableInterval> _intervals = value.getIntervals();
         for (final TableInterval interval : _intervals) {
           boolean _matched_2 = false;
-          if (!_matched_2) {
-            if (interval instanceof TableNumberInterval) {
-              _matched_2=true;
-              boolean _or = false;
-              TableRangeElement _numberRange = ((TableNumberInterval) interval).getNumberRange();
-              if ((_numberRange instanceof TableTextColor)) {
-                _or = true;
+          if (interval instanceof TableNumberInterval) {
+            _matched_2=true;
+            if (((((TableNumberInterval) interval).getNumberRange() instanceof TableTextColor) || 
+              (((TableNumberInterval) interval).getNumberRange() instanceof TableCellColor))) {
+              double _numberIntervalValue = ((TableNumberInterval) interval).getNumberIntervalValue();
+              Double key = new Double(_numberIntervalValue);
+              String styleAspect = "";
+              Map<String, String> styleMap = null;
+              boolean _containsKey = valueMap.containsKey(key);
+              if (_containsKey) {
+                styleMap = valueMap.get(key);
+                styleAspect = styleMap.get(((Object[])Conversions.unwrapArray(styleMap.keySet(), Object.class))[0]);
               } else {
-                TableRangeElement _numberRange_1 = ((TableNumberInterval) interval).getNumberRange();
-                _or = (_numberRange_1 instanceof TableCellColor);
+                styleMap = CollectionLiterals.<String, String>newHashMap();
+                styleAspect = "";
+                this.customformatCounter = (this.customformatCounter + 1);
               }
-              if (_or) {
-                double _numberIntervalValue = ((TableNumberInterval) interval).getNumberIntervalValue();
-                Double key = new Double(_numberIntervalValue);
+              TableRangeElement _numberRange = ((TableNumberInterval) interval).getNumberRange();
+              boolean _matched_3 = false;
+              if (_numberRange instanceof TableTextColor) {
+                _matched_3=true;
+                StringConcatenation _builder = new StringConcatenation();
+                _builder.append(styleAspect);
+                _builder.append("color: ");
+                TableRangeElement _numberRange_1 = ((TableNumberInterval) interval).getNumberRange();
+                String _rGB = this.toRGB(((TableTextColor) _numberRange_1).getRgb());
+                _builder.append(_rGB);
+                _builder.append(";");
+                styleAspect = _builder.toString();
+              }
+              if (!_matched_3) {
+                if (_numberRange instanceof TableCellColor) {
+                  _matched_3=true;
+                  StringConcatenation _builder = new StringConcatenation();
+                  _builder.append(styleAspect);
+                  _builder.append("background-color: ");
+                  TableRangeElement _numberRange_1 = ((TableNumberInterval) interval).getNumberRange();
+                  String _rGB = this.toRGB(((TableCellColor) _numberRange_1).getRgb());
+                  _builder.append(_rGB);
+                  _builder.append(";");
+                  styleAspect = _builder.toString();
+                }
+              }
+              int _length = styleAspect.length();
+              boolean _greaterThan = (_length > 0);
+              if (_greaterThan) {
+                StringConcatenation _builder = new StringConcatenation();
+                _builder.append("numbercustomformat");
+                _builder.append(this.customformatCounter);
+                styleMap.put(_builder.toString(), styleAspect);
+                valueMap.put(key, styleMap);
+              }
+            }
+          }
+          if (!_matched_2) {
+            if (interval instanceof TableIntInterval) {
+              _matched_2=true;
+              if (((((TableIntInterval) interval).getIntRange() instanceof TableTextColor) || 
+                (((TableIntInterval) interval).getIntRange() instanceof TableCellColor))) {
+                int _intIntervalValue = ((TableIntInterval) interval).getIntIntervalValue();
+                Integer key = new Integer(_intIntervalValue);
                 String styleAspect = "";
                 Map<String, String> styleMap = null;
                 boolean _containsKey = valueMap.containsKey(key);
                 if (_containsKey) {
-                  Map<String, String> _get = valueMap.get(key);
-                  styleMap = _get;
-                  Set<String> _keySet = styleMap.keySet();
-                  Object _get_1 = ((Object[])Conversions.unwrapArray(_keySet, Object.class))[0];
-                  String _get_2 = styleMap.get(_get_1);
-                  styleAspect = _get_2;
+                  styleMap = valueMap.get(key);
+                  styleAspect = styleMap.get(((Object[])Conversions.unwrapArray(styleMap.keySet(), Object.class))[0]);
                 } else {
-                  HashMap<String, String> _newHashMap = CollectionLiterals.<String, String>newHashMap();
-                  styleMap = _newHashMap;
+                  styleMap = CollectionLiterals.<String, String>newHashMap();
                   styleAspect = "";
                   this.customformatCounter = (this.customformatCounter + 1);
                 }
-                TableRangeElement _numberRange_2 = ((TableNumberInterval) interval).getNumberRange();
+                TableRangeElement _intRange = ((TableIntInterval) interval).getIntRange();
                 boolean _matched_3 = false;
-                if (!_matched_3) {
-                  if (_numberRange_2 instanceof TableTextColor) {
-                    _matched_3=true;
-                    StringConcatenation _builder = new StringConcatenation();
-                    _builder.append(styleAspect, "");
-                    _builder.append("color: ");
-                    TableRangeElement _numberRange_3 = ((TableNumberInterval) interval).getNumberRange();
-                    String _rgb = ((TableTextColor) _numberRange_3).getRgb();
-                    String _rGB = this.toRGB(_rgb);
-                    _builder.append(_rGB, "");
-                    _builder.append(";");
-                    styleAspect = _builder.toString();
-                  }
+                if (_intRange instanceof TableTextColor) {
+                  _matched_3=true;
+                  StringConcatenation _builder = new StringConcatenation();
+                  _builder.append(styleAspect);
+                  _builder.append("color: ");
+                  TableRangeElement _intRange_1 = ((TableIntInterval) interval).getIntRange();
+                  String _rGB = this.toRGB(((TableTextColor) _intRange_1).getRgb());
+                  _builder.append(_rGB);
+                  _builder.append(";");
+                  styleAspect = _builder.toString();
                 }
                 if (!_matched_3) {
-                  if (_numberRange_2 instanceof TableCellColor) {
+                  if (_intRange instanceof TableCellColor) {
                     _matched_3=true;
                     StringConcatenation _builder = new StringConcatenation();
-                    _builder.append(styleAspect, "");
+                    _builder.append(styleAspect);
                     _builder.append("background-color: ");
-                    TableRangeElement _numberRange_3 = ((TableNumberInterval) interval).getNumberRange();
-                    String _rgb = ((TableCellColor) _numberRange_3).getRgb();
-                    String _rGB = this.toRGB(_rgb);
-                    _builder.append(_rGB, "");
+                    TableRangeElement _intRange_1 = ((TableIntInterval) interval).getIntRange();
+                    String _rGB = this.toRGB(((TableCellColor) _intRange_1).getRgb());
+                    _builder.append(_rGB);
                     _builder.append(";");
                     styleAspect = _builder.toString();
                   }
@@ -3950,9 +3817,9 @@
                 if (_greaterThan) {
                   StringConcatenation _builder = new StringConcatenation();
                   _builder.append("numbercustomformat");
-                  _builder.append(this.customformatCounter, "");
+                  _builder.append(this.customformatCounter);
                   styleMap.put(_builder.toString(), styleAspect);
-                  valueMap.put(key, styleMap);
+                  intMap.put(key, styleMap);
                 }
               }
             }
@@ -3960,59 +3827,43 @@
           if (!_matched_2) {
             if (interval instanceof TableDateDayInterval) {
               _matched_2=true;
-              boolean _or = false;
-              TableRangeElement _dateRange = ((TableDateDayInterval) interval).getDateRange();
-              if ((_dateRange instanceof TableTextColor)) {
-                _or = true;
-              } else {
-                TableRangeElement _dateRange_1 = ((TableDateDayInterval) interval).getDateRange();
-                _or = (_dateRange_1 instanceof TableCellColor);
-              }
-              if (_or) {
-                double _dateIntervalValue = ((TableDateDayInterval) interval).getDateIntervalValue();
+              if (((((TableDateDayInterval) interval).getDateRange() instanceof TableTextColor) || 
+                (((TableDateDayInterval) interval).getDateRange() instanceof TableCellColor))) {
+                int _dateIntervalValue = ((TableDateDayInterval) interval).getDateIntervalValue();
                 Double key = new Double(_dateIntervalValue);
                 String styleAspect = "";
                 Map<String, String> styleMap = null;
                 boolean _containsKey = valueMap.containsKey(key);
                 if (_containsKey) {
-                  Map<String, String> _get = valueMap.get(key);
-                  styleMap = _get;
-                  Set<String> _keySet = styleMap.keySet();
-                  Object _get_1 = ((Object[])Conversions.unwrapArray(_keySet, Object.class))[0];
-                  String _get_2 = styleMap.get(_get_1);
-                  styleAspect = _get_2;
+                  styleMap = valueMap.get(key);
+                  styleAspect = styleMap.get(((Object[])Conversions.unwrapArray(styleMap.keySet(), Object.class))[0]);
                 } else {
-                  HashMap<String, String> _newHashMap = CollectionLiterals.<String, String>newHashMap();
-                  styleMap = _newHashMap;
+                  styleMap = CollectionLiterals.<String, String>newHashMap();
                   styleAspect = "";
                   this.customformatCounter = (this.customformatCounter + 1);
                 }
-                TableRangeElement _dateRange_2 = ((TableDateDayInterval) interval).getDateRange();
+                TableRangeElement _dateRange = ((TableDateDayInterval) interval).getDateRange();
                 boolean _matched_3 = false;
-                if (!_matched_3) {
-                  if (_dateRange_2 instanceof TableTextColor) {
-                    _matched_3=true;
-                    StringConcatenation _builder = new StringConcatenation();
-                    _builder.append(styleAspect, "");
-                    _builder.append("color: ");
-                    TableRangeElement _dateRange_3 = ((TableDateDayInterval) interval).getDateRange();
-                    String _rgb = ((TableTextColor) _dateRange_3).getRgb();
-                    String _rGB = this.toRGB(_rgb);
-                    _builder.append(_rGB, "");
-                    _builder.append(";");
-                    styleAspect = _builder.toString();
-                  }
+                if (_dateRange instanceof TableTextColor) {
+                  _matched_3=true;
+                  StringConcatenation _builder = new StringConcatenation();
+                  _builder.append(styleAspect);
+                  _builder.append("color: ");
+                  TableRangeElement _dateRange_1 = ((TableDateDayInterval) interval).getDateRange();
+                  String _rGB = this.toRGB(((TableTextColor) _dateRange_1).getRgb());
+                  _builder.append(_rGB);
+                  _builder.append(";");
+                  styleAspect = _builder.toString();
                 }
                 if (!_matched_3) {
-                  if (_dateRange_2 instanceof TableCellColor) {
+                  if (_dateRange instanceof TableCellColor) {
                     _matched_3=true;
                     StringConcatenation _builder = new StringConcatenation();
-                    _builder.append(styleAspect, "");
+                    _builder.append(styleAspect);
                     _builder.append("background-color: ");
-                    TableRangeElement _dateRange_3 = ((TableDateDayInterval) interval).getDateRange();
-                    String _rgb = ((TableCellColor) _dateRange_3).getRgb();
-                    String _rGB = this.toRGB(_rgb);
-                    _builder.append(_rGB, "");
+                    TableRangeElement _dateRange_1 = ((TableDateDayInterval) interval).getDateRange();
+                    String _rGB = this.toRGB(((TableCellColor) _dateRange_1).getRgb());
+                    _builder.append(_rGB);
                     _builder.append(";");
                     styleAspect = _builder.toString();
                   }
@@ -4022,7 +3873,7 @@
                 if (_greaterThan) {
                   StringConcatenation _builder = new StringConcatenation();
                   _builder.append("datecustomformat");
-                  _builder.append(this.customformatCounter, "");
+                  _builder.append(this.customformatCounter);
                   styleMap.put(_builder.toString(), styleAspect);
                   valueMap.put(key, styleMap);
                 }
@@ -4035,960 +3886,935 @@
         if (_greaterThan) {
           TableValueElement _column_1 = value.getColumn();
           boolean _matched_3 = false;
-          if (!_matched_3) {
-            if (_column_1 instanceof TableOrdinal) {
-              _matched_3=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_2 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_2).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              intervalStyleMap.put(_builder.toString(), valueMap);
-            }
+          if (_column_1 instanceof TableOrdinal) {
+            _matched_3=true;
+            intervalStyleMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), valueMap);
           }
           if (!_matched_3) {
             if (_column_1 instanceof TableAllColumns) {
               _matched_3=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              intervalStyleMap.put(_builder.toString(), valueMap);
+              intervalStyleMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), valueMap);
             }
           }
           if (!_matched_3) {
             if (_column_1 instanceof TableMeasure) {
               _matched_3=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_2 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_2).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              intervalStyleMap.put(_builder.toString(), valueMap);
+              intervalStyleMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), valueMap);
             }
           }
           if (!_matched_3) {
             if (_column_1 instanceof TableDerived) {
               _matched_3=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_2 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_2).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              intervalStyleMap.put(_builder.toString(), valueMap);
+              intervalStyleMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), valueMap);
             }
           }
           if (!_matched_3) {
             if (_column_1 instanceof TableHierarchy) {
               _matched_3=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_2 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_2).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              intervalStyleMap.put(_builder.toString(), valueMap);
+              intervalStyleMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), valueMap);
             }
           }
           if (!_matched_3) {
-            if (_column_1 instanceof TableProperty) {
+            if (_column_1 instanceof TableAttribute) {
               _matched_3=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_2 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_2).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              intervalStyleMap.put(_builder.toString(), valueMap);
+              intervalStyleMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), valueMap);
             }
           }
           if (!_matched_3) {
             if (_column_1 instanceof TableAggregation) {
               _matched_3=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_2 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_2).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              intervalStyleMap.put(_builder.toString(), valueMap);
+              intervalStyleMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), valueMap);
             }
           }
           if (!_matched_3) {
             if (_column_1 instanceof TableColumn) {
               _matched_3=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_2 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_2).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              intervalStyleMap.put(_builder.toString(), valueMap);
+              intervalStyleMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), valueMap);
+            }
+          }
+        }
+        int _size_1 = intMap.size();
+        boolean _greaterThan_1 = (_size_1 > 0);
+        if (_greaterThan_1) {
+          TableValueElement _column_2 = value.getColumn();
+          boolean _matched_4 = false;
+          if (_column_2 instanceof TableOrdinal) {
+            _matched_4=true;
+            intIntervalStyleMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), intMap);
+          }
+          if (!_matched_4) {
+            if (_column_2 instanceof TableAllColumns) {
+              _matched_4=true;
+              intIntervalStyleMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), intMap);
+            }
+          }
+          if (!_matched_4) {
+            if (_column_2 instanceof TableMeasure) {
+              _matched_4=true;
+              intIntervalStyleMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), intMap);
+            }
+          }
+          if (!_matched_4) {
+            if (_column_2 instanceof TableDerived) {
+              _matched_4=true;
+              intIntervalStyleMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), intMap);
+            }
+          }
+          if (!_matched_4) {
+            if (_column_2 instanceof TableHierarchy) {
+              _matched_4=true;
+              intIntervalStyleMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), intMap);
+            }
+          }
+          if (!_matched_4) {
+            if (_column_2 instanceof TableAttribute) {
+              _matched_4=true;
+              intIntervalStyleMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), intMap);
+            }
+          }
+          if (!_matched_4) {
+            if (_column_2 instanceof TableAggregation) {
+              _matched_4=true;
+              intIntervalStyleMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), intMap);
+            }
+          }
+          if (!_matched_4) {
+            if (_column_2 instanceof TableColumn) {
+              _matched_4=true;
+              intIntervalStyleMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), intMap);
             }
           }
         }
         DoubleComparator _doubleComparator_1 = new DoubleComparator();
         TreeMap<Double, Map<String, String>> valueIconMap = CollectionLiterals.<Double, Map<String, String>>newTreeMap(_doubleComparator_1);
+        IntegerComparator _integerComparator_1 = new IntegerComparator();
+        TreeMap<Integer, Map<String, String>> intIconMap = CollectionLiterals.<Integer, Map<String, String>>newTreeMap(_integerComparator_1);
         EList<TableInterval> _intervals_1 = value.getIntervals();
         for (final TableInterval interval_1 : _intervals_1) {
-          boolean _matched_4 = false;
-          if (!_matched_4) {
-            if (interval_1 instanceof TableNumberInterval) {
-              _matched_4=true;
-              double _numberIntervalValue = ((TableNumberInterval) interval_1).getNumberIntervalValue();
-              Double key = new Double(_numberIntervalValue);
+          boolean _matched_5 = false;
+          if (interval_1 instanceof TableNumberInterval) {
+            _matched_5=true;
+            double _numberIntervalValue = ((TableNumberInterval) interval_1).getNumberIntervalValue();
+            Double key = new Double(_numberIntervalValue);
+            String iconAspect = "";
+            Map<String, String> iMap = CollectionLiterals.<String, String>newHashMap();
+            TableRangeElement _numberRange = ((TableNumberInterval) interval_1).getNumberRange();
+            boolean _matched_6 = false;
+            if (_numberRange instanceof TableIcon) {
+              _matched_6=true;
+              StringConcatenation _builder = new StringConcatenation();
+              TableRangeElement _numberRange_1 = ((TableNumberInterval) interval_1).getNumberRange();
+              String _icon = ((TableIcon) _numberRange_1).getIcon();
+              _builder.append(_icon);
+              iconAspect = _builder.toString();
+            }
+            if (!_matched_6) {
+              if (_numberRange instanceof TableTrend) {
+                _matched_6=true;
+                StringConcatenation _builder = new StringConcatenation();
+                _builder.append("trend_");
+                TableRangeElement _numberRange_1 = ((TableNumberInterval) interval_1).getNumberRange();
+                String _literal = ((TableTrend) _numberRange_1).getIcon().getLiteral();
+                _builder.append(_literal);
+                iconAspect = _builder.toString();
+              }
+            }
+            int _length = iconAspect.length();
+            boolean _greaterThan_2 = (_length > 0);
+            if (_greaterThan_2) {
+              iMap.put("numbericon", iconAspect);
+              valueIconMap.put(key, iMap);
+            }
+          }
+          if (!_matched_5) {
+            if (interval_1 instanceof TableIntInterval) {
+              _matched_5=true;
+              int _intIntervalValue = ((TableIntInterval) interval_1).getIntIntervalValue();
+              Integer key = new Integer(_intIntervalValue);
               String iconAspect = "";
               Map<String, String> iMap = CollectionLiterals.<String, String>newHashMap();
-              TableRangeElement _numberRange = ((TableNumberInterval) interval_1).getNumberRange();
-              boolean _matched_5 = false;
-              if (!_matched_5) {
-                if (_numberRange instanceof TableIcon) {
-                  _matched_5=true;
-                  StringConcatenation _builder = new StringConcatenation();
-                  TableRangeElement _numberRange_1 = ((TableNumberInterval) interval_1).getNumberRange();
-                  String _icon = ((TableIcon) _numberRange_1).getIcon();
-                  _builder.append(_icon, "");
-                  iconAspect = _builder.toString();
-                }
+              TableRangeElement _intRange = ((TableIntInterval) interval_1).getIntRange();
+              boolean _matched_6 = false;
+              if (_intRange instanceof TableIcon) {
+                _matched_6=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _intRange_1 = ((TableIntInterval) interval_1).getIntRange();
+                String _icon = ((TableIcon) _intRange_1).getIcon();
+                _builder.append(_icon);
+                iconAspect = _builder.toString();
               }
-              if (!_matched_5) {
-                if (_numberRange instanceof TableTrend) {
-                  _matched_5=true;
+              if (!_matched_6) {
+                if (_intRange instanceof TableTrend) {
+                  _matched_6=true;
                   StringConcatenation _builder = new StringConcatenation();
                   _builder.append("trend_");
-                  TableRangeElement _numberRange_1 = ((TableNumberInterval) interval_1).getNumberRange();
-                  TrendIconEnum _icon = ((TableTrend) _numberRange_1).getIcon();
-                  String _literal = _icon.getLiteral();
-                  _builder.append(_literal, "");
+                  TableRangeElement _intRange_1 = ((TableIntInterval) interval_1).getIntRange();
+                  String _literal = ((TableTrend) _intRange_1).getIcon().getLiteral();
+                  _builder.append(_literal);
                   iconAspect = _builder.toString();
                 }
               }
               int _length = iconAspect.length();
-              boolean _greaterThan_1 = (_length > 0);
-              if (_greaterThan_1) {
+              boolean _greaterThan_2 = (_length > 0);
+              if (_greaterThan_2) {
                 iMap.put("numbericon", iconAspect);
-                valueIconMap.put(key, iMap);
+                intIconMap.put(key, iMap);
               }
             }
           }
-          if (!_matched_4) {
+          if (!_matched_5) {
             if (interval_1 instanceof TableDateDayInterval) {
-              _matched_4=true;
-              double _dateIntervalValue = ((TableDateDayInterval) interval_1).getDateIntervalValue();
+              _matched_5=true;
+              int _dateIntervalValue = ((TableDateDayInterval) interval_1).getDateIntervalValue();
               Double key = new Double(_dateIntervalValue);
               String iconAspect = "";
               Map<String, String> iMap = CollectionLiterals.<String, String>newHashMap();
               TableRangeElement _dateRange = ((TableDateDayInterval) interval_1).getDateRange();
-              boolean _matched_5 = false;
-              if (!_matched_5) {
-                if (_dateRange instanceof TableIcon) {
-                  _matched_5=true;
-                  StringConcatenation _builder = new StringConcatenation();
-                  TableRangeElement _dateRange_1 = ((TableDateDayInterval) interval_1).getDateRange();
-                  String _icon = ((TableIcon) _dateRange_1).getIcon();
-                  _builder.append(_icon, "");
-                  iconAspect = _builder.toString();
-                }
+              boolean _matched_6 = false;
+              if (_dateRange instanceof TableIcon) {
+                _matched_6=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _dateRange_1 = ((TableDateDayInterval) interval_1).getDateRange();
+                String _icon = ((TableIcon) _dateRange_1).getIcon();
+                _builder.append(_icon);
+                iconAspect = _builder.toString();
               }
-              if (!_matched_5) {
+              if (!_matched_6) {
                 if (_dateRange instanceof TableTrend) {
-                  _matched_5=true;
+                  _matched_6=true;
                   StringConcatenation _builder = new StringConcatenation();
                   _builder.append("trend_");
                   TableRangeElement _dateRange_1 = ((TableDateDayInterval) interval_1).getDateRange();
-                  TrendIconEnum _icon = ((TableTrend) _dateRange_1).getIcon();
-                  String _literal = _icon.getLiteral();
-                  _builder.append(_literal, "");
+                  String _literal = ((TableTrend) _dateRange_1).getIcon().getLiteral();
+                  _builder.append(_literal);
                   iconAspect = _builder.toString();
                 }
               }
               int _length = iconAspect.length();
-              boolean _greaterThan_1 = (_length > 0);
-              if (_greaterThan_1) {
+              boolean _greaterThan_2 = (_length > 0);
+              if (_greaterThan_2) {
                 iMap.put("dateicon", iconAspect);
                 valueIconMap.put(key, iMap);
               }
             }
           }
         }
-        int _size_1 = valueIconMap.size();
-        boolean _greaterThan_1 = (_size_1 > 0);
-        if (_greaterThan_1) {
-          TableValueElement _column_2 = value.getColumn();
-          boolean _matched_5 = false;
-          if (!_matched_5) {
-            if (_column_2 instanceof TableOrdinal) {
-              _matched_5=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_3 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_3).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              intervalIconMap.put(_builder.toString(), valueIconMap);
+        int _size_2 = valueIconMap.size();
+        boolean _greaterThan_2 = (_size_2 > 0);
+        if (_greaterThan_2) {
+          TableValueElement _column_3 = value.getColumn();
+          boolean _matched_6 = false;
+          if (_column_3 instanceof TableOrdinal) {
+            _matched_6=true;
+            intervalIconMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), valueIconMap);
+          }
+          if (!_matched_6) {
+            if (_column_3 instanceof TableAllColumns) {
+              _matched_6=true;
+              intervalIconMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), valueIconMap);
             }
           }
-          if (!_matched_5) {
-            if (_column_2 instanceof TableAllColumns) {
-              _matched_5=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              intervalIconMap.put(_builder.toString(), valueIconMap);
+          if (!_matched_6) {
+            if (_column_3 instanceof TableMeasure) {
+              _matched_6=true;
+              intervalIconMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), valueIconMap);
             }
           }
-          if (!_matched_5) {
-            if (_column_2 instanceof TableMeasure) {
-              _matched_5=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_3 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_3).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              intervalIconMap.put(_builder.toString(), valueIconMap);
+          if (!_matched_6) {
+            if (_column_3 instanceof TableDerived) {
+              _matched_6=true;
+              intervalIconMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), valueIconMap);
             }
           }
-          if (!_matched_5) {
-            if (_column_2 instanceof TableDerived) {
-              _matched_5=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_3 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_3).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              intervalIconMap.put(_builder.toString(), valueIconMap);
+          if (!_matched_6) {
+            if (_column_3 instanceof TableHierarchy) {
+              _matched_6=true;
+              intervalIconMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), valueIconMap);
             }
           }
-          if (!_matched_5) {
-            if (_column_2 instanceof TableHierarchy) {
-              _matched_5=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_3 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_3).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              intervalIconMap.put(_builder.toString(), valueIconMap);
+          if (!_matched_6) {
+            if (_column_3 instanceof TableAttribute) {
+              _matched_6=true;
+              intervalIconMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), valueIconMap);
             }
           }
-          if (!_matched_5) {
-            if (_column_2 instanceof TableProperty) {
-              _matched_5=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_3 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_3).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              intervalIconMap.put(_builder.toString(), valueIconMap);
+          if (!_matched_6) {
+            if (_column_3 instanceof TableAggregation) {
+              _matched_6=true;
+              intervalIconMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), valueIconMap);
             }
           }
-          if (!_matched_5) {
-            if (_column_2 instanceof TableAggregation) {
-              _matched_5=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_3 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_3).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              intervalIconMap.put(_builder.toString(), valueIconMap);
+          if (!_matched_6) {
+            if (_column_3 instanceof TableColumn) {
+              _matched_6=true;
+              intervalIconMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), valueIconMap);
             }
           }
-          if (!_matched_5) {
-            if (_column_2 instanceof TableColumn) {
-              _matched_5=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_3 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_3).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              intervalIconMap.put(_builder.toString(), valueIconMap);
+        }
+        int _size_3 = intIconMap.size();
+        boolean _greaterThan_3 = (_size_3 > 0);
+        if (_greaterThan_3) {
+          TableValueElement _column_4 = value.getColumn();
+          boolean _matched_7 = false;
+          if (_column_4 instanceof TableOrdinal) {
+            _matched_7=true;
+            intIntervalIconMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), intIconMap);
+          }
+          if (!_matched_7) {
+            if (_column_4 instanceof TableAllColumns) {
+              _matched_7=true;
+              intIntervalIconMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), intIconMap);
+            }
+          }
+          if (!_matched_7) {
+            if (_column_4 instanceof TableMeasure) {
+              _matched_7=true;
+              intIntervalIconMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), intIconMap);
+            }
+          }
+          if (!_matched_7) {
+            if (_column_4 instanceof TableDerived) {
+              _matched_7=true;
+              intIntervalIconMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), intIconMap);
+            }
+          }
+          if (!_matched_7) {
+            if (_column_4 instanceof TableHierarchy) {
+              _matched_7=true;
+              intIntervalIconMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), intIconMap);
+            }
+          }
+          if (!_matched_7) {
+            if (_column_4 instanceof TableAttribute) {
+              _matched_7=true;
+              intIntervalIconMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), intIconMap);
+            }
+          }
+          if (!_matched_7) {
+            if (_column_4 instanceof TableAggregation) {
+              _matched_7=true;
+              intIntervalIconMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), intIconMap);
+            }
+          }
+          if (!_matched_7) {
+            if (_column_4 instanceof TableColumn) {
+              _matched_7=true;
+              intIntervalIconMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), intIconMap);
             }
           }
         }
         DoubleComparator _doubleComparator_2 = new DoubleComparator();
         TreeMap<Double, Map<String, String>> valueTooltipMap = CollectionLiterals.<Double, Map<String, String>>newTreeMap(_doubleComparator_2);
+        IntegerComparator _integerComparator_2 = new IntegerComparator();
+        TreeMap<Integer, Map<String, String>> intTooltipMap = CollectionLiterals.<Integer, Map<String, String>>newTreeMap(_integerComparator_2);
         EList<TableInterval> _intervals_2 = value.getIntervals();
         for (final TableInterval interval_2 : _intervals_2) {
-          boolean _matched_6 = false;
-          if (!_matched_6) {
-            if (interval_2 instanceof TableNumberInterval) {
-              _matched_6=true;
-              double _numberIntervalValue = ((TableNumberInterval) interval_2).getNumberIntervalValue();
-              Double key = new Double(_numberIntervalValue);
+          boolean _matched_8 = false;
+          if (interval_2 instanceof TableNumberInterval) {
+            _matched_8=true;
+            double _numberIntervalValue = ((TableNumberInterval) interval_2).getNumberIntervalValue();
+            Double key = new Double(_numberIntervalValue);
+            String tooltipAspect = "";
+            Map<String, String> tMap = CollectionLiterals.<String, String>newHashMap();
+            TableRangeElement _numberRange = ((TableNumberInterval) interval_2).getNumberRange();
+            boolean _matched_9 = false;
+            if (_numberRange instanceof TableTooltip) {
+              _matched_9=true;
+              StringConcatenation _builder = new StringConcatenation();
+              TableRangeElement _numberRange_1 = ((TableNumberInterval) interval_2).getNumberRange();
+              String _tooltip = ((TableTooltip) _numberRange_1).getTooltip();
+              _builder.append(_tooltip);
+              tooltipAspect = _builder.toString();
+            }
+            int _length = tooltipAspect.length();
+            boolean _greaterThan_4 = (_length > 0);
+            if (_greaterThan_4) {
+              tMap.put("numbertooltip", tooltipAspect);
+              valueTooltipMap.put(key, tMap);
+            }
+          }
+          if (!_matched_8) {
+            if (interval_2 instanceof TableIntInterval) {
+              _matched_8=true;
+              int _intIntervalValue = ((TableIntInterval) interval_2).getIntIntervalValue();
+              Integer key = new Integer(_intIntervalValue);
               String tooltipAspect = "";
               Map<String, String> tMap = CollectionLiterals.<String, String>newHashMap();
-              TableRangeElement _numberRange = ((TableNumberInterval) interval_2).getNumberRange();
-              boolean _matched_7 = false;
-              if (!_matched_7) {
-                if (_numberRange instanceof TableTooltip) {
-                  _matched_7=true;
-                  StringConcatenation _builder = new StringConcatenation();
-                  TableRangeElement _numberRange_1 = ((TableNumberInterval) interval_2).getNumberRange();
-                  String _tooltip = ((TableTooltip) _numberRange_1).getTooltip();
-                  _builder.append(_tooltip, "");
-                  tooltipAspect = _builder.toString();
-                }
+              TableRangeElement _intRange = ((TableIntInterval) interval_2).getIntRange();
+              boolean _matched_9 = false;
+              if (_intRange instanceof TableTooltip) {
+                _matched_9=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _intRange_1 = ((TableIntInterval) interval_2).getIntRange();
+                String _tooltip = ((TableTooltip) _intRange_1).getTooltip();
+                _builder.append(_tooltip);
+                tooltipAspect = _builder.toString();
               }
               int _length = tooltipAspect.length();
-              boolean _greaterThan_2 = (_length > 0);
-              if (_greaterThan_2) {
+              boolean _greaterThan_4 = (_length > 0);
+              if (_greaterThan_4) {
                 tMap.put("numbertooltip", tooltipAspect);
-                valueTooltipMap.put(key, tMap);
+                intTooltipMap.put(key, tMap);
               }
             }
           }
-          if (!_matched_6) {
+          if (!_matched_8) {
             if (interval_2 instanceof TableDateDayInterval) {
-              _matched_6=true;
-              double _dateIntervalValue = ((TableDateDayInterval) interval_2).getDateIntervalValue();
+              _matched_8=true;
+              int _dateIntervalValue = ((TableDateDayInterval) interval_2).getDateIntervalValue();
               Double key = new Double(_dateIntervalValue);
               String tooltipAspect = "";
               Map<String, String> tMap = CollectionLiterals.<String, String>newHashMap();
               TableRangeElement _dateRange = ((TableDateDayInterval) interval_2).getDateRange();
-              boolean _matched_7 = false;
-              if (!_matched_7) {
-                if (_dateRange instanceof TableTooltip) {
-                  _matched_7=true;
-                  StringConcatenation _builder = new StringConcatenation();
-                  TableRangeElement _dateRange_1 = ((TableDateDayInterval) interval_2).getDateRange();
-                  String _tooltip = ((TableTooltip) _dateRange_1).getTooltip();
-                  _builder.append(_tooltip, "");
-                  tooltipAspect = _builder.toString();
-                }
+              boolean _matched_9 = false;
+              if (_dateRange instanceof TableTooltip) {
+                _matched_9=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _dateRange_1 = ((TableDateDayInterval) interval_2).getDateRange();
+                String _tooltip = ((TableTooltip) _dateRange_1).getTooltip();
+                _builder.append(_tooltip);
+                tooltipAspect = _builder.toString();
               }
               int _length = tooltipAspect.length();
-              boolean _greaterThan_2 = (_length > 0);
-              if (_greaterThan_2) {
+              boolean _greaterThan_4 = (_length > 0);
+              if (_greaterThan_4) {
                 tMap.put("datetooltip", tooltipAspect);
                 valueTooltipMap.put(key, tMap);
               }
             }
           }
         }
-        int _size_2 = valueTooltipMap.size();
-        boolean _greaterThan_2 = (_size_2 > 0);
-        if (_greaterThan_2) {
-          TableValueElement _column_3 = value.getColumn();
-          boolean _matched_7 = false;
-          if (!_matched_7) {
-            if (_column_3 instanceof TableOrdinal) {
-              _matched_7=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_4 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_4).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              intervalTooltipMap.put(_builder.toString(), valueTooltipMap);
+        int _size_4 = valueTooltipMap.size();
+        boolean _greaterThan_4 = (_size_4 > 0);
+        if (_greaterThan_4) {
+          TableValueElement _column_5 = value.getColumn();
+          boolean _matched_9 = false;
+          if (_column_5 instanceof TableOrdinal) {
+            _matched_9=true;
+            intervalTooltipMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), valueTooltipMap);
+          }
+          if (!_matched_9) {
+            if (_column_5 instanceof TableAllColumns) {
+              _matched_9=true;
+              intervalTooltipMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), valueTooltipMap);
             }
           }
-          if (!_matched_7) {
-            if (_column_3 instanceof TableAllColumns) {
-              _matched_7=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              intervalTooltipMap.put(_builder.toString(), valueTooltipMap);
+          if (!_matched_9) {
+            if (_column_5 instanceof TableMeasure) {
+              _matched_9=true;
+              intervalTooltipMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), valueTooltipMap);
             }
           }
-          if (!_matched_7) {
-            if (_column_3 instanceof TableMeasure) {
-              _matched_7=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_4 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_4).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              intervalTooltipMap.put(_builder.toString(), valueTooltipMap);
+          if (!_matched_9) {
+            if (_column_5 instanceof TableDerived) {
+              _matched_9=true;
+              intervalTooltipMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), valueTooltipMap);
             }
           }
-          if (!_matched_7) {
-            if (_column_3 instanceof TableDerived) {
-              _matched_7=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_4 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_4).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              intervalTooltipMap.put(_builder.toString(), valueTooltipMap);
+          if (!_matched_9) {
+            if (_column_5 instanceof TableHierarchy) {
+              _matched_9=true;
+              intervalTooltipMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), valueTooltipMap);
             }
           }
-          if (!_matched_7) {
-            if (_column_3 instanceof TableHierarchy) {
-              _matched_7=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_4 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_4).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              intervalTooltipMap.put(_builder.toString(), valueTooltipMap);
+          if (!_matched_9) {
+            if (_column_5 instanceof TableAttribute) {
+              _matched_9=true;
+              intervalTooltipMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), valueTooltipMap);
             }
           }
-          if (!_matched_7) {
-            if (_column_3 instanceof TableProperty) {
-              _matched_7=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_4 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_4).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              intervalTooltipMap.put(_builder.toString(), valueTooltipMap);
+          if (!_matched_9) {
+            if (_column_5 instanceof TableAggregation) {
+              _matched_9=true;
+              intervalTooltipMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), valueTooltipMap);
             }
           }
-          if (!_matched_7) {
-            if (_column_3 instanceof TableAggregation) {
-              _matched_7=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_4 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_4).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              intervalTooltipMap.put(_builder.toString(), valueTooltipMap);
+          if (!_matched_9) {
+            if (_column_5 instanceof TableColumn) {
+              _matched_9=true;
+              intervalTooltipMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), valueTooltipMap);
             }
           }
-          if (!_matched_7) {
-            if (_column_3 instanceof TableColumn) {
-              _matched_7=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_4 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_4).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              intervalTooltipMap.put(_builder.toString(), valueTooltipMap);
+        }
+        int _size_5 = intTooltipMap.size();
+        boolean _greaterThan_5 = (_size_5 > 0);
+        if (_greaterThan_5) {
+          TableValueElement _column_6 = value.getColumn();
+          boolean _matched_10 = false;
+          if (_column_6 instanceof TableOrdinal) {
+            _matched_10=true;
+            intIntervalTooltipMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), intTooltipMap);
+          }
+          if (!_matched_10) {
+            if (_column_6 instanceof TableAllColumns) {
+              _matched_10=true;
+              intIntervalTooltipMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), intTooltipMap);
+            }
+          }
+          if (!_matched_10) {
+            if (_column_6 instanceof TableMeasure) {
+              _matched_10=true;
+              intIntervalTooltipMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), intTooltipMap);
+            }
+          }
+          if (!_matched_10) {
+            if (_column_6 instanceof TableDerived) {
+              _matched_10=true;
+              intIntervalTooltipMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), intTooltipMap);
+            }
+          }
+          if (!_matched_10) {
+            if (_column_6 instanceof TableHierarchy) {
+              _matched_10=true;
+              intIntervalTooltipMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), intTooltipMap);
+            }
+          }
+          if (!_matched_10) {
+            if (_column_6 instanceof TableAttribute) {
+              _matched_10=true;
+              intIntervalTooltipMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), intTooltipMap);
+            }
+          }
+          if (!_matched_10) {
+            if (_column_6 instanceof TableAggregation) {
+              _matched_10=true;
+              intIntervalTooltipMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), intTooltipMap);
+            }
+          }
+          if (!_matched_10) {
+            if (_column_6 instanceof TableColumn) {
+              _matched_10=true;
+              intIntervalTooltipMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), intTooltipMap);
             }
           }
         }
         DoubleComparator _doubleComparator_3 = new DoubleComparator();
         TreeMap<Double, Map<String, String>> numberValueLookupStyleMap = CollectionLiterals.<Double, Map<String, String>>newTreeMap(_doubleComparator_3);
+        IntegerComparator _integerComparator_3 = new IntegerComparator();
+        TreeMap<Integer, Map<String, String>> intValueLookupStyleMap = CollectionLiterals.<Integer, Map<String, String>>newTreeMap(_integerComparator_3);
         HashMap<String, Map<String, String>> stringValueLookupStyleMap = CollectionLiterals.<String, Map<String, String>>newHashMap();
         DoubleComparator _doubleComparator_4 = new DoubleComparator();
         TreeMap<Double, Map<String, String>> dateValueLookupStyleMap = CollectionLiterals.<Double, Map<String, String>>newTreeMap(_doubleComparator_4);
         EList<TableLookup> _lookups = value.getLookups();
         for (final TableLookup lookup : _lookups) {
           {
-            boolean _and_1 = false;
-            if (!(lookup instanceof TableNumberLookup)) {
-              _and_1 = false;
-            } else {
-              _and_1 = ((((TableNumberLookup) lookup).getDiscrete() instanceof TableTextColor) || 
-                (((TableNumberLookup) lookup).getDiscrete() instanceof TableCellColor));
-            }
-            if (_and_1) {
+            if (((lookup instanceof TableNumberLookup) && ((((TableNumberLookup) lookup).getDiscrete() instanceof TableTextColor) || 
+              (((TableNumberLookup) lookup).getDiscrete() instanceof TableCellColor)))) {
               double _lookupValue = ((TableNumberLookup) lookup).getLookupValue();
               Double key = new Double(_lookupValue);
               String styleAspect = "";
               Map<String, String> styleMap = null;
               boolean _containsKey = numberValueLookupStyleMap.containsKey(key);
               if (_containsKey) {
-                Map<String, String> _get = numberValueLookupStyleMap.get(key);
-                styleMap = _get;
-                Set<String> _keySet = styleMap.keySet();
-                Object _get_1 = ((Object[])Conversions.unwrapArray(_keySet, Object.class))[0];
-                String _get_2 = styleMap.get(_get_1);
-                styleAspect = _get_2;
+                styleMap = numberValueLookupStyleMap.get(key);
+                styleAspect = styleMap.get(((Object[])Conversions.unwrapArray(styleMap.keySet(), Object.class))[0]);
               } else {
-                HashMap<String, String> _newHashMap = CollectionLiterals.<String, String>newHashMap();
-                styleMap = _newHashMap;
+                styleMap = CollectionLiterals.<String, String>newHashMap();
                 styleAspect = "";
                 this.customformatCounter = (this.customformatCounter + 1);
               }
               TableRangeElement _discrete = ((TableNumberLookup) lookup).getDiscrete();
-              boolean _matched_8 = false;
-              if (!_matched_8) {
-                if (_discrete instanceof TableTextColor) {
-                  _matched_8=true;
-                  StringConcatenation _builder = new StringConcatenation();
-                  _builder.append(styleAspect, "");
-                  _builder.append("color: ");
-                  TableRangeElement _discrete_1 = ((TableNumberLookup) lookup).getDiscrete();
-                  String _rgb = ((TableTextColor) _discrete_1).getRgb();
-                  String _rGB = this.toRGB(_rgb);
-                  _builder.append(_rGB, "");
-                  _builder.append(";");
-                  styleAspect = _builder.toString();
-                }
+              boolean _matched_11 = false;
+              if (_discrete instanceof TableTextColor) {
+                _matched_11=true;
+                StringConcatenation _builder = new StringConcatenation();
+                _builder.append(styleAspect);
+                _builder.append("color: ");
+                TableRangeElement _discrete_1 = ((TableNumberLookup) lookup).getDiscrete();
+                String _rGB = this.toRGB(((TableTextColor) _discrete_1).getRgb());
+                _builder.append(_rGB);
+                _builder.append(";");
+                styleAspect = _builder.toString();
               }
-              if (!_matched_8) {
+              if (!_matched_11) {
                 if (_discrete instanceof TableCellColor) {
-                  _matched_8=true;
+                  _matched_11=true;
                   StringConcatenation _builder = new StringConcatenation();
-                  _builder.append(styleAspect, "");
+                  _builder.append(styleAspect);
                   _builder.append("background-color: ");
                   TableRangeElement _discrete_1 = ((TableNumberLookup) lookup).getDiscrete();
-                  String _rgb = ((TableCellColor) _discrete_1).getRgb();
-                  String _rGB = this.toRGB(_rgb);
-                  _builder.append(_rGB, "");
+                  String _rGB = this.toRGB(((TableCellColor) _discrete_1).getRgb());
+                  _builder.append(_rGB);
                   _builder.append(";");
                   styleAspect = _builder.toString();
                 }
               }
               int _length = styleAspect.length();
-              boolean _greaterThan_3 = (_length > 0);
-              if (_greaterThan_3) {
+              boolean _greaterThan_6 = (_length > 0);
+              if (_greaterThan_6) {
                 StringConcatenation _builder = new StringConcatenation();
                 _builder.append("customformat");
-                _builder.append(this.customformatCounter, "");
+                _builder.append(this.customformatCounter);
                 styleMap.put(_builder.toString(), styleAspect);
                 numberValueLookupStyleMap.put(key, styleMap);
               }
             }
-            if ((lookup instanceof TableStringLookup)) {
-              String _lookupValue_1 = ((TableStringLookup) lookup).getLookupValue();
-              String key_1 = new String(_lookupValue_1);
+            if (((lookup instanceof TableIntLookup) && ((((TableIntLookup) lookup).getDiscrete() instanceof TableTextColor) || 
+              (((TableIntLookup) lookup).getDiscrete() instanceof TableCellColor)))) {
+              int _lookupValue_1 = ((TableIntLookup) lookup).getLookupValue();
+              Integer key_1 = new Integer(_lookupValue_1);
               String styleAspect_1 = "";
               Map<String, String> styleMap_1 = null;
-              boolean _containsKey_1 = stringValueLookupStyleMap.containsKey(key_1);
+              boolean _containsKey_1 = intValueLookupStyleMap.containsKey(key_1);
               if (_containsKey_1) {
-                Map<String, String> _get_3 = stringValueLookupStyleMap.get(key_1);
-                styleMap_1 = _get_3;
-                Set<String> _keySet_1 = styleMap_1.keySet();
-                Object _get_4 = ((Object[])Conversions.unwrapArray(_keySet_1, Object.class))[0];
-                String _get_5 = styleMap_1.get(_get_4);
-                styleAspect_1 = _get_5;
+                styleMap_1 = intValueLookupStyleMap.get(key_1);
+                styleAspect_1 = styleMap_1.get(((Object[])Conversions.unwrapArray(styleMap_1.keySet(), Object.class))[0]);
               } else {
-                HashMap<String, String> _newHashMap_1 = CollectionLiterals.<String, String>newHashMap();
-                styleMap_1 = _newHashMap_1;
+                styleMap_1 = CollectionLiterals.<String, String>newHashMap();
                 styleAspect_1 = "";
                 this.customformatCounter = (this.customformatCounter + 1);
               }
-              TableRangeElement _discrete_1 = ((TableStringLookup)lookup).getDiscrete();
-              boolean _matched_9 = false;
-              if (!_matched_9) {
-                if (_discrete_1 instanceof TableTextColor) {
-                  _matched_9=true;
-                  StringConcatenation _builder_1 = new StringConcatenation();
-                  _builder_1.append(styleAspect_1, "");
-                  _builder_1.append("color: ");
-                  TableRangeElement _discrete_2 = ((TableStringLookup)lookup).getDiscrete();
-                  String _rgb = ((TableTextColor) _discrete_2).getRgb();
-                  String _rGB = this.toRGB(_rgb);
-                  _builder_1.append(_rGB, "");
-                  _builder_1.append(";");
-                  styleAspect_1 = _builder_1.toString();
-                }
+              TableRangeElement _discrete_1 = ((TableIntLookup) lookup).getDiscrete();
+              boolean _matched_12 = false;
+              if (_discrete_1 instanceof TableTextColor) {
+                _matched_12=true;
+                StringConcatenation _builder_1 = new StringConcatenation();
+                _builder_1.append(styleAspect_1);
+                _builder_1.append("color: ");
+                TableRangeElement _discrete_2 = ((TableIntLookup) lookup).getDiscrete();
+                String _rGB = this.toRGB(((TableTextColor) _discrete_2).getRgb());
+                _builder_1.append(_rGB);
+                _builder_1.append(";");
+                styleAspect_1 = _builder_1.toString();
               }
-              if (!_matched_9) {
+              if (!_matched_12) {
                 if (_discrete_1 instanceof TableCellColor) {
-                  _matched_9=true;
+                  _matched_12=true;
                   StringConcatenation _builder_1 = new StringConcatenation();
-                  _builder_1.append(styleAspect_1, "");
+                  _builder_1.append(styleAspect_1);
                   _builder_1.append("background-color: ");
-                  TableRangeElement _discrete_2 = ((TableStringLookup)lookup).getDiscrete();
-                  String _rgb = ((TableCellColor) _discrete_2).getRgb();
-                  String _rGB = this.toRGB(_rgb);
-                  _builder_1.append(_rGB, "");
+                  TableRangeElement _discrete_2 = ((TableIntLookup) lookup).getDiscrete();
+                  String _rGB = this.toRGB(((TableCellColor) _discrete_2).getRgb());
+                  _builder_1.append(_rGB);
                   _builder_1.append(";");
                   styleAspect_1 = _builder_1.toString();
                 }
               }
               int _length_1 = styleAspect_1.length();
-              boolean _greaterThan_4 = (_length_1 > 0);
-              if (_greaterThan_4) {
+              boolean _greaterThan_7 = (_length_1 > 0);
+              if (_greaterThan_7) {
                 StringConcatenation _builder_1 = new StringConcatenation();
                 _builder_1.append("customformat");
-                _builder_1.append(this.customformatCounter, "");
+                _builder_1.append(this.customformatCounter);
                 styleMap_1.put(_builder_1.toString(), styleAspect_1);
-                stringValueLookupStyleMap.put(key_1, styleMap_1);
+                intValueLookupStyleMap.put(key_1, styleMap_1);
               }
             }
-            boolean _and_2 = false;
-            if (!(lookup instanceof TableDateDayLookup)) {
-              _and_2 = false;
-            } else {
-              _and_2 = ((((TableDateDayLookup) lookup).getDiscrete() instanceof TableTextColor) || 
-                (((TableDateDayLookup) lookup).getDiscrete() instanceof TableCellColor));
-            }
-            if (_and_2) {
-              double _lookupValue_2 = ((TableDateDayLookup) lookup).getLookupValue();
-              Double key_2 = new Double(_lookupValue_2);
+            if ((lookup instanceof TableStringLookup)) {
+              String _lookupValue_2 = ((TableStringLookup) lookup).getLookupValue();
+              String key_2 = new String(_lookupValue_2);
               String styleAspect_2 = "";
               Map<String, String> styleMap_2 = null;
-              boolean _containsKey_2 = dateValueLookupStyleMap.containsKey(key_2);
+              boolean _containsKey_2 = stringValueLookupStyleMap.containsKey(key_2);
               if (_containsKey_2) {
-                Map<String, String> _get_6 = dateValueLookupStyleMap.get(key_2);
-                styleMap_2 = _get_6;
-                Set<String> _keySet_2 = styleMap_2.keySet();
-                Object _get_7 = ((Object[])Conversions.unwrapArray(_keySet_2, Object.class))[0];
-                String _get_8 = styleMap_2.get(_get_7);
-                styleAspect_2 = _get_8;
+                styleMap_2 = stringValueLookupStyleMap.get(key_2);
+                styleAspect_2 = styleMap_2.get(((Object[])Conversions.unwrapArray(styleMap_2.keySet(), Object.class))[0]);
               } else {
-                HashMap<String, String> _newHashMap_2 = CollectionLiterals.<String, String>newHashMap();
-                styleMap_2 = _newHashMap_2;
+                styleMap_2 = CollectionLiterals.<String, String>newHashMap();
                 styleAspect_2 = "";
                 this.customformatCounter = (this.customformatCounter + 1);
               }
-              TableRangeElement _discrete_2 = ((TableDateDayLookup) lookup).getDiscrete();
-              boolean _matched_10 = false;
-              if (!_matched_10) {
-                if (_discrete_2 instanceof TableTextColor) {
-                  _matched_10=true;
-                  StringConcatenation _builder_2 = new StringConcatenation();
-                  _builder_2.append(styleAspect_2, "");
-                  _builder_2.append("color: ");
-                  TableRangeElement _discrete_3 = ((TableDateDayLookup) lookup).getDiscrete();
-                  String _rgb = ((TableTextColor) _discrete_3).getRgb();
-                  String _rGB = this.toRGB(_rgb);
-                  _builder_2.append(_rGB, "");
-                  _builder_2.append(";");
-                  styleAspect_2 = _builder_2.toString();
-                }
+              TableRangeElement _discrete_2 = ((TableStringLookup)lookup).getDiscrete();
+              boolean _matched_13 = false;
+              if (_discrete_2 instanceof TableTextColor) {
+                _matched_13=true;
+                StringConcatenation _builder_2 = new StringConcatenation();
+                _builder_2.append(styleAspect_2);
+                _builder_2.append("color: ");
+                TableRangeElement _discrete_3 = ((TableStringLookup)lookup).getDiscrete();
+                String _rGB = this.toRGB(((TableTextColor) _discrete_3).getRgb());
+                _builder_2.append(_rGB);
+                _builder_2.append(";");
+                styleAspect_2 = _builder_2.toString();
               }
-              if (!_matched_10) {
+              if (!_matched_13) {
                 if (_discrete_2 instanceof TableCellColor) {
-                  _matched_10=true;
+                  _matched_13=true;
                   StringConcatenation _builder_2 = new StringConcatenation();
-                  _builder_2.append(styleAspect_2, "");
+                  _builder_2.append(styleAspect_2);
                   _builder_2.append("background-color: ");
-                  TableRangeElement _discrete_3 = ((TableDateDayLookup) lookup).getDiscrete();
-                  String _rgb = ((TableCellColor) _discrete_3).getRgb();
-                  String _rGB = this.toRGB(_rgb);
-                  _builder_2.append(_rGB, "");
+                  TableRangeElement _discrete_3 = ((TableStringLookup)lookup).getDiscrete();
+                  String _rGB = this.toRGB(((TableCellColor) _discrete_3).getRgb());
+                  _builder_2.append(_rGB);
                   _builder_2.append(";");
                   styleAspect_2 = _builder_2.toString();
                 }
               }
               int _length_2 = styleAspect_2.length();
-              boolean _greaterThan_5 = (_length_2 > 0);
-              if (_greaterThan_5) {
+              boolean _greaterThan_8 = (_length_2 > 0);
+              if (_greaterThan_8) {
                 StringConcatenation _builder_2 = new StringConcatenation();
                 _builder_2.append("customformat");
-                _builder_2.append(this.customformatCounter, "");
+                _builder_2.append(this.customformatCounter);
                 styleMap_2.put(_builder_2.toString(), styleAspect_2);
-                dateValueLookupStyleMap.put(key_2, styleMap_2);
+                stringValueLookupStyleMap.put(key_2, styleMap_2);
+              }
+            }
+            if (((lookup instanceof TableDateDayLookup) && ((((TableDateDayLookup) lookup).getDiscrete() instanceof TableTextColor) || 
+              (((TableDateDayLookup) lookup).getDiscrete() instanceof TableCellColor)))) {
+              int _lookupValue_3 = ((TableDateDayLookup) lookup).getLookupValue();
+              Double key_3 = new Double(_lookupValue_3);
+              String styleAspect_3 = "";
+              Map<String, String> styleMap_3 = null;
+              boolean _containsKey_3 = dateValueLookupStyleMap.containsKey(key_3);
+              if (_containsKey_3) {
+                styleMap_3 = dateValueLookupStyleMap.get(key_3);
+                styleAspect_3 = styleMap_3.get(((Object[])Conversions.unwrapArray(styleMap_3.keySet(), Object.class))[0]);
+              } else {
+                styleMap_3 = CollectionLiterals.<String, String>newHashMap();
+                styleAspect_3 = "";
+                this.customformatCounter = (this.customformatCounter + 1);
+              }
+              TableRangeElement _discrete_3 = ((TableDateDayLookup) lookup).getDiscrete();
+              boolean _matched_14 = false;
+              if (_discrete_3 instanceof TableTextColor) {
+                _matched_14=true;
+                StringConcatenation _builder_3 = new StringConcatenation();
+                _builder_3.append(styleAspect_3);
+                _builder_3.append("color: ");
+                TableRangeElement _discrete_4 = ((TableDateDayLookup) lookup).getDiscrete();
+                String _rGB = this.toRGB(((TableTextColor) _discrete_4).getRgb());
+                _builder_3.append(_rGB);
+                _builder_3.append(";");
+                styleAspect_3 = _builder_3.toString();
+              }
+              if (!_matched_14) {
+                if (_discrete_3 instanceof TableCellColor) {
+                  _matched_14=true;
+                  StringConcatenation _builder_3 = new StringConcatenation();
+                  _builder_3.append(styleAspect_3);
+                  _builder_3.append("background-color: ");
+                  TableRangeElement _discrete_4 = ((TableDateDayLookup) lookup).getDiscrete();
+                  String _rGB = this.toRGB(((TableCellColor) _discrete_4).getRgb());
+                  _builder_3.append(_rGB);
+                  _builder_3.append(";");
+                  styleAspect_3 = _builder_3.toString();
+                }
+              }
+              int _length_3 = styleAspect_3.length();
+              boolean _greaterThan_9 = (_length_3 > 0);
+              if (_greaterThan_9) {
+                StringConcatenation _builder_3 = new StringConcatenation();
+                _builder_3.append("customformat");
+                _builder_3.append(this.customformatCounter);
+                styleMap_3.put(_builder_3.toString(), styleAspect_3);
+                dateValueLookupStyleMap.put(key_3, styleMap_3);
               }
             }
           }
         }
-        int _size_3 = numberValueLookupStyleMap.size();
-        boolean _greaterThan_3 = (_size_3 > 0);
-        if (_greaterThan_3) {
-          TableValueElement _column_4 = value.getColumn();
-          boolean _matched_8 = false;
-          if (!_matched_8) {
-            if (_column_4 instanceof TableOrdinal) {
-              _matched_8=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_5 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_5).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              numberLookupStyleMap.put(_builder.toString(), numberValueLookupStyleMap);
+        int _size_6 = numberValueLookupStyleMap.size();
+        boolean _greaterThan_6 = (_size_6 > 0);
+        if (_greaterThan_6) {
+          TableValueElement _column_7 = value.getColumn();
+          boolean _matched_11 = false;
+          if (_column_7 instanceof TableOrdinal) {
+            _matched_11=true;
+            numberLookupStyleMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), numberValueLookupStyleMap);
+          }
+          if (!_matched_11) {
+            if (_column_7 instanceof TableAllColumns) {
+              _matched_11=true;
+              numberLookupStyleMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), numberValueLookupStyleMap);
             }
           }
-          if (!_matched_8) {
-            if (_column_4 instanceof TableAllColumns) {
-              _matched_8=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              numberLookupStyleMap.put(_builder.toString(), numberValueLookupStyleMap);
+          if (!_matched_11) {
+            if (_column_7 instanceof TableMeasure) {
+              _matched_11=true;
+              numberLookupStyleMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), numberValueLookupStyleMap);
             }
           }
-          if (!_matched_8) {
-            if (_column_4 instanceof TableMeasure) {
-              _matched_8=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_5 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_5).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              numberLookupStyleMap.put(_builder.toString(), numberValueLookupStyleMap);
+          if (!_matched_11) {
+            if (_column_7 instanceof TableDerived) {
+              _matched_11=true;
+              numberLookupStyleMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), numberValueLookupStyleMap);
             }
           }
-          if (!_matched_8) {
-            if (_column_4 instanceof TableDerived) {
-              _matched_8=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_5 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_5).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              numberLookupStyleMap.put(_builder.toString(), numberValueLookupStyleMap);
+          if (!_matched_11) {
+            if (_column_7 instanceof TableHierarchy) {
+              _matched_11=true;
+              numberLookupStyleMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), numberValueLookupStyleMap);
             }
           }
-          if (!_matched_8) {
-            if (_column_4 instanceof TableHierarchy) {
-              _matched_8=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_5 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_5).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              numberLookupStyleMap.put(_builder.toString(), numberValueLookupStyleMap);
+          if (!_matched_11) {
+            if (_column_7 instanceof TableAttribute) {
+              _matched_11=true;
+              numberLookupStyleMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), numberValueLookupStyleMap);
             }
           }
-          if (!_matched_8) {
-            if (_column_4 instanceof TableProperty) {
-              _matched_8=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_5 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_5).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              numberLookupStyleMap.put(_builder.toString(), numberValueLookupStyleMap);
+          if (!_matched_11) {
+            if (_column_7 instanceof TableAggregation) {
+              _matched_11=true;
+              numberLookupStyleMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), numberValueLookupStyleMap);
             }
           }
-          if (!_matched_8) {
-            if (_column_4 instanceof TableAggregation) {
-              _matched_8=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_5 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_5).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              numberLookupStyleMap.put(_builder.toString(), numberValueLookupStyleMap);
-            }
-          }
-          if (!_matched_8) {
-            if (_column_4 instanceof TableColumn) {
-              _matched_8=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_5 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_5).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              numberLookupStyleMap.put(_builder.toString(), numberValueLookupStyleMap);
+          if (!_matched_11) {
+            if (_column_7 instanceof TableColumn) {
+              _matched_11=true;
+              numberLookupStyleMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), numberValueLookupStyleMap);
             }
           }
         }
-        int _size_4 = stringValueLookupStyleMap.size();
-        boolean _greaterThan_4 = (_size_4 > 0);
-        if (_greaterThan_4) {
-          TableValueElement _column_5 = value.getColumn();
-          boolean _matched_9 = false;
-          if (!_matched_9) {
-            if (_column_5 instanceof TableOrdinal) {
-              _matched_9=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_6 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_6).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              stringLookupStyleMap.put(_builder.toString(), stringValueLookupStyleMap);
+        int _size_7 = intValueLookupStyleMap.size();
+        boolean _greaterThan_7 = (_size_7 > 0);
+        if (_greaterThan_7) {
+          TableValueElement _column_8 = value.getColumn();
+          boolean _matched_12 = false;
+          if (_column_8 instanceof TableOrdinal) {
+            _matched_12=true;
+            intLookupStyleMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), intValueLookupStyleMap);
+          }
+          if (!_matched_12) {
+            if (_column_8 instanceof TableAllColumns) {
+              _matched_12=true;
+              intLookupStyleMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), intValueLookupStyleMap);
             }
           }
-          if (!_matched_9) {
-            if (_column_5 instanceof TableAllColumns) {
-              _matched_9=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              stringLookupStyleMap.put(_builder.toString(), stringValueLookupStyleMap);
+          if (!_matched_12) {
+            if (_column_8 instanceof TableMeasure) {
+              _matched_12=true;
+              intLookupStyleMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), intValueLookupStyleMap);
             }
           }
-          if (!_matched_9) {
-            if (_column_5 instanceof TableMeasure) {
-              _matched_9=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_6 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_6).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              stringLookupStyleMap.put(_builder.toString(), stringValueLookupStyleMap);
+          if (!_matched_12) {
+            if (_column_8 instanceof TableDerived) {
+              _matched_12=true;
+              intLookupStyleMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), intValueLookupStyleMap);
             }
           }
-          if (!_matched_9) {
-            if (_column_5 instanceof TableDerived) {
-              _matched_9=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_6 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_6).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              stringLookupStyleMap.put(_builder.toString(), stringValueLookupStyleMap);
+          if (!_matched_12) {
+            if (_column_8 instanceof TableHierarchy) {
+              _matched_12=true;
+              intLookupStyleMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), intValueLookupStyleMap);
             }
           }
-          if (!_matched_9) {
-            if (_column_5 instanceof TableHierarchy) {
-              _matched_9=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_6 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_6).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              stringLookupStyleMap.put(_builder.toString(), stringValueLookupStyleMap);
+          if (!_matched_12) {
+            if (_column_8 instanceof TableAttribute) {
+              _matched_12=true;
+              intLookupStyleMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), intValueLookupStyleMap);
             }
           }
-          if (!_matched_9) {
-            if (_column_5 instanceof TableProperty) {
-              _matched_9=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_6 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_6).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              stringLookupStyleMap.put(_builder.toString(), stringValueLookupStyleMap);
+          if (!_matched_12) {
+            if (_column_8 instanceof TableAggregation) {
+              _matched_12=true;
+              intLookupStyleMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), intValueLookupStyleMap);
             }
           }
-          if (!_matched_9) {
-            if (_column_5 instanceof TableAggregation) {
-              _matched_9=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_6 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_6).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              stringLookupStyleMap.put(_builder.toString(), stringValueLookupStyleMap);
-            }
-          }
-          if (!_matched_9) {
-            if (_column_5 instanceof TableColumn) {
-              _matched_9=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_6 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_6).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              stringLookupStyleMap.put(_builder.toString(), stringValueLookupStyleMap);
+          if (!_matched_12) {
+            if (_column_8 instanceof TableColumn) {
+              _matched_12=true;
+              intLookupStyleMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), intValueLookupStyleMap);
             }
           }
         }
-        int _size_5 = dateValueLookupStyleMap.size();
-        boolean _greaterThan_5 = (_size_5 > 0);
-        if (_greaterThan_5) {
-          TableValueElement _column_6 = value.getColumn();
-          boolean _matched_10 = false;
-          if (!_matched_10) {
-            if (_column_6 instanceof TableOrdinal) {
-              _matched_10=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_7 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_7).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              dateLookupStyleMap.put(_builder.toString(), dateValueLookupStyleMap);
+        int _size_8 = stringValueLookupStyleMap.size();
+        boolean _greaterThan_8 = (_size_8 > 0);
+        if (_greaterThan_8) {
+          TableValueElement _column_9 = value.getColumn();
+          boolean _matched_13 = false;
+          if (_column_9 instanceof TableOrdinal) {
+            _matched_13=true;
+            stringLookupStyleMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), stringValueLookupStyleMap);
+          }
+          if (!_matched_13) {
+            if (_column_9 instanceof TableAllColumns) {
+              _matched_13=true;
+              stringLookupStyleMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), stringValueLookupStyleMap);
             }
           }
-          if (!_matched_10) {
-            if (_column_6 instanceof TableAllColumns) {
-              _matched_10=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              dateLookupStyleMap.put(_builder.toString(), dateValueLookupStyleMap);
+          if (!_matched_13) {
+            if (_column_9 instanceof TableMeasure) {
+              _matched_13=true;
+              stringLookupStyleMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), stringValueLookupStyleMap);
             }
           }
-          if (!_matched_10) {
-            if (_column_6 instanceof TableMeasure) {
-              _matched_10=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_7 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_7).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              dateLookupStyleMap.put(_builder.toString(), dateValueLookupStyleMap);
+          if (!_matched_13) {
+            if (_column_9 instanceof TableDerived) {
+              _matched_13=true;
+              stringLookupStyleMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), stringValueLookupStyleMap);
             }
           }
-          if (!_matched_10) {
-            if (_column_6 instanceof TableDerived) {
-              _matched_10=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_7 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_7).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              dateLookupStyleMap.put(_builder.toString(), dateValueLookupStyleMap);
+          if (!_matched_13) {
+            if (_column_9 instanceof TableHierarchy) {
+              _matched_13=true;
+              stringLookupStyleMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), stringValueLookupStyleMap);
             }
           }
-          if (!_matched_10) {
-            if (_column_6 instanceof TableHierarchy) {
-              _matched_10=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_7 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_7).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              dateLookupStyleMap.put(_builder.toString(), dateValueLookupStyleMap);
+          if (!_matched_13) {
+            if (_column_9 instanceof TableAttribute) {
+              _matched_13=true;
+              stringLookupStyleMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), stringValueLookupStyleMap);
             }
           }
-          if (!_matched_10) {
-            if (_column_6 instanceof TableProperty) {
-              _matched_10=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_7 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_7).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              dateLookupStyleMap.put(_builder.toString(), dateValueLookupStyleMap);
+          if (!_matched_13) {
+            if (_column_9 instanceof TableAggregation) {
+              _matched_13=true;
+              stringLookupStyleMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), stringValueLookupStyleMap);
             }
           }
-          if (!_matched_10) {
-            if (_column_6 instanceof TableAggregation) {
-              _matched_10=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_7 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_7).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              dateLookupStyleMap.put(_builder.toString(), dateValueLookupStyleMap);
+          if (!_matched_13) {
+            if (_column_9 instanceof TableColumn) {
+              _matched_13=true;
+              stringLookupStyleMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), stringValueLookupStyleMap);
             }
           }
-          if (!_matched_10) {
-            if (_column_6 instanceof TableColumn) {
-              _matched_10=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_7 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_7).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              dateLookupStyleMap.put(_builder.toString(), dateValueLookupStyleMap);
+        }
+        int _size_9 = dateValueLookupStyleMap.size();
+        boolean _greaterThan_9 = (_size_9 > 0);
+        if (_greaterThan_9) {
+          TableValueElement _column_10 = value.getColumn();
+          boolean _matched_14 = false;
+          if (_column_10 instanceof TableOrdinal) {
+            _matched_14=true;
+            dateLookupStyleMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), dateValueLookupStyleMap);
+          }
+          if (!_matched_14) {
+            if (_column_10 instanceof TableAllColumns) {
+              _matched_14=true;
+              dateLookupStyleMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), dateValueLookupStyleMap);
+            }
+          }
+          if (!_matched_14) {
+            if (_column_10 instanceof TableMeasure) {
+              _matched_14=true;
+              dateLookupStyleMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), dateValueLookupStyleMap);
+            }
+          }
+          if (!_matched_14) {
+            if (_column_10 instanceof TableDerived) {
+              _matched_14=true;
+              dateLookupStyleMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), dateValueLookupStyleMap);
+            }
+          }
+          if (!_matched_14) {
+            if (_column_10 instanceof TableHierarchy) {
+              _matched_14=true;
+              dateLookupStyleMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), dateValueLookupStyleMap);
+            }
+          }
+          if (!_matched_14) {
+            if (_column_10 instanceof TableAttribute) {
+              _matched_14=true;
+              dateLookupStyleMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), dateValueLookupStyleMap);
+            }
+          }
+          if (!_matched_14) {
+            if (_column_10 instanceof TableAggregation) {
+              _matched_14=true;
+              dateLookupStyleMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), dateValueLookupStyleMap);
+            }
+          }
+          if (!_matched_14) {
+            if (_column_10 instanceof TableColumn) {
+              _matched_14=true;
+              dateLookupStyleMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), dateValueLookupStyleMap);
             }
           }
         }
         DoubleComparator _doubleComparator_5 = new DoubleComparator();
         TreeMap<Double, Map<String, String>> numberValueLookupIconMap = CollectionLiterals.<Double, Map<String, String>>newTreeMap(_doubleComparator_5);
+        IntegerComparator _integerComparator_4 = new IntegerComparator();
+        TreeMap<Integer, Map<String, String>> intValueLookupIconMap = CollectionLiterals.<Integer, Map<String, String>>newTreeMap(_integerComparator_4);
         HashMap<String, Map<String, String>> stringValueLookupIconMap = CollectionLiterals.<String, Map<String, String>>newHashMap();
         DoubleComparator _doubleComparator_6 = new DoubleComparator();
         TreeMap<Double, Map<String, String>> dateValueLookupIconMap = CollectionLiterals.<Double, Map<String, String>>newTreeMap(_doubleComparator_6);
@@ -5001,405 +4827,334 @@
               String iconAspect = "";
               Map<String, String> iMap = CollectionLiterals.<String, String>newHashMap();
               TableRangeElement _discrete = ((TableNumberLookup)lookup_1).getDiscrete();
-              boolean _matched_11 = false;
-              if (!_matched_11) {
-                if (_discrete instanceof TableIcon) {
-                  _matched_11=true;
-                  StringConcatenation _builder = new StringConcatenation();
-                  TableRangeElement _discrete_1 = ((TableNumberLookup)lookup_1).getDiscrete();
-                  String _icon = ((TableIcon) _discrete_1).getIcon();
-                  _builder.append(_icon, "");
-                  iconAspect = _builder.toString();
-                }
+              boolean _matched_15 = false;
+              if (_discrete instanceof TableIcon) {
+                _matched_15=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _discrete_1 = ((TableNumberLookup)lookup_1).getDiscrete();
+                String _icon = ((TableIcon) _discrete_1).getIcon();
+                _builder.append(_icon);
+                iconAspect = _builder.toString();
               }
-              if (!_matched_11) {
+              if (!_matched_15) {
                 if (_discrete instanceof TableTrend) {
-                  _matched_11=true;
+                  _matched_15=true;
                   StringConcatenation _builder = new StringConcatenation();
                   _builder.append("trend_");
                   TableRangeElement _discrete_1 = ((TableNumberLookup)lookup_1).getDiscrete();
-                  TrendIconEnum _icon = ((TableTrend) _discrete_1).getIcon();
-                  String _literal = _icon.getLiteral();
-                  _builder.append(_literal, "");
+                  String _literal = ((TableTrend) _discrete_1).getIcon().getLiteral();
+                  _builder.append(_literal);
                   iconAspect = _builder.toString();
                 }
               }
               int _length = iconAspect.length();
-              boolean _greaterThan_6 = (_length > 0);
-              if (_greaterThan_6) {
+              boolean _greaterThan_10 = (_length > 0);
+              if (_greaterThan_10) {
                 iMap.put("icon", iconAspect);
                 numberValueLookupIconMap.put(key, iMap);
               }
             }
-            if ((lookup_1 instanceof TableStringLookup)) {
-              String key_1 = ((TableStringLookup) lookup_1).getLookupValue();
+            if ((lookup_1 instanceof TableIntLookup)) {
+              int _lookupValue_1 = ((TableIntLookup) lookup_1).getLookupValue();
+              Integer key_1 = new Integer(_lookupValue_1);
               String iconAspect_1 = "";
               Map<String, String> iMap_1 = CollectionLiterals.<String, String>newHashMap();
-              TableRangeElement _discrete_1 = ((TableStringLookup)lookup_1).getDiscrete();
-              boolean _matched_12 = false;
-              if (!_matched_12) {
-                if (_discrete_1 instanceof TableIcon) {
-                  _matched_12=true;
+              TableRangeElement _discrete_1 = ((TableIntLookup)lookup_1).getDiscrete();
+              boolean _matched_16 = false;
+              if (_discrete_1 instanceof TableIcon) {
+                _matched_16=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _discrete_2 = ((TableIntLookup)lookup_1).getDiscrete();
+                String _icon = ((TableIcon) _discrete_2).getIcon();
+                _builder.append(_icon);
+                iconAspect_1 = _builder.toString();
+              }
+              if (!_matched_16) {
+                if (_discrete_1 instanceof TableTrend) {
+                  _matched_16=true;
                   StringConcatenation _builder = new StringConcatenation();
-                  TableRangeElement _discrete_2 = ((TableStringLookup)lookup_1).getDiscrete();
-                  String _icon = ((TableIcon) _discrete_2).getIcon();
-                  _builder.append(_icon, "");
+                  _builder.append("trend_");
+                  TableRangeElement _discrete_2 = ((TableIntLookup)lookup_1).getDiscrete();
+                  String _literal = ((TableTrend) _discrete_2).getIcon().getLiteral();
+                  _builder.append(_literal);
                   iconAspect_1 = _builder.toString();
                 }
               }
               int _length_1 = iconAspect_1.length();
-              boolean _greaterThan_7 = (_length_1 > 0);
-              if (_greaterThan_7) {
+              boolean _greaterThan_11 = (_length_1 > 0);
+              if (_greaterThan_11) {
                 iMap_1.put("icon", iconAspect_1);
-                stringValueLookupIconMap.put(key_1, iMap_1);
+                intValueLookupIconMap.put(key_1, iMap_1);
+              }
+            }
+            if ((lookup_1 instanceof TableStringLookup)) {
+              String key_2 = ((TableStringLookup) lookup_1).getLookupValue();
+              String iconAspect_2 = "";
+              Map<String, String> iMap_2 = CollectionLiterals.<String, String>newHashMap();
+              TableRangeElement _discrete_2 = ((TableStringLookup)lookup_1).getDiscrete();
+              boolean _matched_17 = false;
+              if (_discrete_2 instanceof TableIcon) {
+                _matched_17=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _discrete_3 = ((TableStringLookup)lookup_1).getDiscrete();
+                String _icon = ((TableIcon) _discrete_3).getIcon();
+                _builder.append(_icon);
+                iconAspect_2 = _builder.toString();
+              }
+              int _length_2 = iconAspect_2.length();
+              boolean _greaterThan_12 = (_length_2 > 0);
+              if (_greaterThan_12) {
+                iMap_2.put("icon", iconAspect_2);
+                stringValueLookupIconMap.put(key_2, iMap_2);
               }
             }
             if ((lookup_1 instanceof TableDateDayLookup)) {
-              double _lookupValue_1 = ((TableDateDayLookup) lookup_1).getLookupValue();
-              Double key_2 = new Double(_lookupValue_1);
-              String iconAspect_2 = "";
-              Map<String, String> iMap_2 = CollectionLiterals.<String, String>newHashMap();
-              TableRangeElement _discrete_2 = ((TableDateDayLookup)lookup_1).getDiscrete();
-              boolean _matched_13 = false;
-              if (!_matched_13) {
-                if (_discrete_2 instanceof TableIcon) {
-                  _matched_13=true;
-                  StringConcatenation _builder = new StringConcatenation();
-                  TableRangeElement _discrete_3 = ((TableDateDayLookup)lookup_1).getDiscrete();
-                  String _icon = ((TableIcon) _discrete_3).getIcon();
-                  _builder.append(_icon, "");
-                  iconAspect_2 = _builder.toString();
-                }
+              int _lookupValue_2 = ((TableDateDayLookup) lookup_1).getLookupValue();
+              Double key_3 = new Double(_lookupValue_2);
+              String iconAspect_3 = "";
+              Map<String, String> iMap_3 = CollectionLiterals.<String, String>newHashMap();
+              TableRangeElement _discrete_3 = ((TableDateDayLookup)lookup_1).getDiscrete();
+              boolean _matched_18 = false;
+              if (_discrete_3 instanceof TableIcon) {
+                _matched_18=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _discrete_4 = ((TableDateDayLookup)lookup_1).getDiscrete();
+                String _icon = ((TableIcon) _discrete_4).getIcon();
+                _builder.append(_icon);
+                iconAspect_3 = _builder.toString();
               }
-              if (!_matched_13) {
-                if (_discrete_2 instanceof TableTrend) {
-                  _matched_13=true;
+              if (!_matched_18) {
+                if (_discrete_3 instanceof TableTrend) {
+                  _matched_18=true;
                   StringConcatenation _builder = new StringConcatenation();
                   _builder.append("trend_");
-                  TableRangeElement _discrete_3 = ((TableDateDayLookup)lookup_1).getDiscrete();
-                  TrendIconEnum _icon = ((TableTrend) _discrete_3).getIcon();
-                  String _literal = _icon.getLiteral();
-                  _builder.append(_literal, "");
-                  iconAspect_2 = _builder.toString();
+                  TableRangeElement _discrete_4 = ((TableDateDayLookup)lookup_1).getDiscrete();
+                  String _literal = ((TableTrend) _discrete_4).getIcon().getLiteral();
+                  _builder.append(_literal);
+                  iconAspect_3 = _builder.toString();
                 }
               }
-              int _length_2 = iconAspect_2.length();
-              boolean _greaterThan_8 = (_length_2 > 0);
-              if (_greaterThan_8) {
-                iMap_2.put("icon", iconAspect_2);
-                dateValueLookupIconMap.put(key_2, iMap_2);
+              int _length_3 = iconAspect_3.length();
+              boolean _greaterThan_13 = (_length_3 > 0);
+              if (_greaterThan_13) {
+                iMap_3.put("icon", iconAspect_3);
+                dateValueLookupIconMap.put(key_3, iMap_3);
               }
             }
           }
         }
-        int _size_6 = numberValueLookupIconMap.size();
-        boolean _greaterThan_6 = (_size_6 > 0);
-        if (_greaterThan_6) {
-          TableValueElement _column_7 = value.getColumn();
-          boolean _matched_11 = false;
-          if (!_matched_11) {
-            if (_column_7 instanceof TableOrdinal) {
-              _matched_11=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_8 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_8).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              numberLookupIconMap.put(_builder.toString(), numberValueLookupIconMap);
+        int _size_10 = numberValueLookupIconMap.size();
+        boolean _greaterThan_10 = (_size_10 > 0);
+        if (_greaterThan_10) {
+          TableValueElement _column_11 = value.getColumn();
+          boolean _matched_15 = false;
+          if (_column_11 instanceof TableOrdinal) {
+            _matched_15=true;
+            numberLookupIconMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), numberValueLookupIconMap);
+          }
+          if (!_matched_15) {
+            if (_column_11 instanceof TableAllColumns) {
+              _matched_15=true;
+              numberLookupIconMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), numberValueLookupIconMap);
             }
           }
-          if (!_matched_11) {
-            if (_column_7 instanceof TableAllColumns) {
-              _matched_11=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              numberLookupIconMap.put(_builder.toString(), numberValueLookupIconMap);
+          if (!_matched_15) {
+            if (_column_11 instanceof TableMeasure) {
+              _matched_15=true;
+              numberLookupIconMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), numberValueLookupIconMap);
             }
           }
-          if (!_matched_11) {
-            if (_column_7 instanceof TableMeasure) {
-              _matched_11=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_8 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_8).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              numberLookupIconMap.put(_builder.toString(), numberValueLookupIconMap);
+          if (!_matched_15) {
+            if (_column_11 instanceof TableDerived) {
+              _matched_15=true;
+              numberLookupIconMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), numberValueLookupIconMap);
             }
           }
-          if (!_matched_11) {
-            if (_column_7 instanceof TableDerived) {
-              _matched_11=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_8 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_8).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              numberLookupIconMap.put(_builder.toString(), numberValueLookupIconMap);
+          if (!_matched_15) {
+            if (_column_11 instanceof TableHierarchy) {
+              _matched_15=true;
+              numberLookupIconMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), numberValueLookupIconMap);
             }
           }
-          if (!_matched_11) {
-            if (_column_7 instanceof TableHierarchy) {
-              _matched_11=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_8 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_8).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              numberLookupIconMap.put(_builder.toString(), numberValueLookupIconMap);
+          if (!_matched_15) {
+            if (_column_11 instanceof TableAttribute) {
+              _matched_15=true;
+              numberLookupIconMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), numberValueLookupIconMap);
             }
           }
-          if (!_matched_11) {
-            if (_column_7 instanceof TableProperty) {
-              _matched_11=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_8 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_8).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              numberLookupIconMap.put(_builder.toString(), numberValueLookupIconMap);
+          if (!_matched_15) {
+            if (_column_11 instanceof TableAggregation) {
+              _matched_15=true;
+              numberLookupIconMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), numberValueLookupIconMap);
             }
           }
-          if (!_matched_11) {
-            if (_column_7 instanceof TableAggregation) {
-              _matched_11=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_8 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_8).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              numberLookupIconMap.put(_builder.toString(), numberValueLookupIconMap);
-            }
-          }
-          if (!_matched_11) {
-            if (_column_7 instanceof TableColumn) {
-              _matched_11=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_8 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_8).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              numberLookupIconMap.put(_builder.toString(), numberValueLookupIconMap);
+          if (!_matched_15) {
+            if (_column_11 instanceof TableColumn) {
+              _matched_15=true;
+              numberLookupIconMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), numberValueLookupIconMap);
             }
           }
         }
-        int _size_7 = stringValueLookupIconMap.size();
-        boolean _greaterThan_7 = (_size_7 > 0);
-        if (_greaterThan_7) {
-          TableValueElement _column_8 = value.getColumn();
-          boolean _matched_12 = false;
-          if (!_matched_12) {
-            if (_column_8 instanceof TableOrdinal) {
-              _matched_12=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_9 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_9).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              stringLookupIconMap.put(_builder.toString(), stringValueLookupIconMap);
+        int _size_11 = intValueLookupIconMap.size();
+        boolean _greaterThan_11 = (_size_11 > 0);
+        if (_greaterThan_11) {
+          TableValueElement _column_12 = value.getColumn();
+          boolean _matched_16 = false;
+          if (_column_12 instanceof TableOrdinal) {
+            _matched_16=true;
+            intLookupIconMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), intValueLookupIconMap);
+          }
+          if (!_matched_16) {
+            if (_column_12 instanceof TableAllColumns) {
+              _matched_16=true;
+              intLookupIconMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), intValueLookupIconMap);
             }
           }
-          if (!_matched_12) {
-            if (_column_8 instanceof TableAllColumns) {
-              _matched_12=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              stringLookupIconMap.put(_builder.toString(), stringValueLookupIconMap);
+          if (!_matched_16) {
+            if (_column_12 instanceof TableMeasure) {
+              _matched_16=true;
+              intLookupIconMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), intValueLookupIconMap);
             }
           }
-          if (!_matched_12) {
-            if (_column_8 instanceof TableMeasure) {
-              _matched_12=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_9 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_9).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              stringLookupIconMap.put(_builder.toString(), stringValueLookupIconMap);
+          if (!_matched_16) {
+            if (_column_12 instanceof TableDerived) {
+              _matched_16=true;
+              intLookupIconMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), intValueLookupIconMap);
             }
           }
-          if (!_matched_12) {
-            if (_column_8 instanceof TableDerived) {
-              _matched_12=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_9 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_9).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              stringLookupIconMap.put(_builder.toString(), stringValueLookupIconMap);
+          if (!_matched_16) {
+            if (_column_12 instanceof TableHierarchy) {
+              _matched_16=true;
+              intLookupIconMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), intValueLookupIconMap);
             }
           }
-          if (!_matched_12) {
-            if (_column_8 instanceof TableHierarchy) {
-              _matched_12=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_9 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_9).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              stringLookupIconMap.put(_builder.toString(), stringValueLookupIconMap);
+          if (!_matched_16) {
+            if (_column_12 instanceof TableAttribute) {
+              _matched_16=true;
+              intLookupIconMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), intValueLookupIconMap);
             }
           }
-          if (!_matched_12) {
-            if (_column_8 instanceof TableProperty) {
-              _matched_12=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_9 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_9).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              stringLookupIconMap.put(_builder.toString(), stringValueLookupIconMap);
+          if (!_matched_16) {
+            if (_column_12 instanceof TableAggregation) {
+              _matched_16=true;
+              intLookupIconMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), intValueLookupIconMap);
             }
           }
-          if (!_matched_12) {
-            if (_column_8 instanceof TableAggregation) {
-              _matched_12=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_9 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_9).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              stringLookupIconMap.put(_builder.toString(), stringValueLookupIconMap);
-            }
-          }
-          if (!_matched_12) {
-            if (_column_8 instanceof TableColumn) {
-              _matched_12=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_9 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_9).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              stringLookupIconMap.put(_builder.toString(), stringValueLookupIconMap);
+          if (!_matched_16) {
+            if (_column_12 instanceof TableColumn) {
+              _matched_16=true;
+              intLookupIconMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), intValueLookupIconMap);
             }
           }
         }
-        int _size_8 = dateValueLookupIconMap.size();
-        boolean _greaterThan_8 = (_size_8 > 0);
-        if (_greaterThan_8) {
-          TableValueElement _column_9 = value.getColumn();
-          boolean _matched_13 = false;
-          if (!_matched_13) {
-            if (_column_9 instanceof TableOrdinal) {
-              _matched_13=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_10 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_10).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              dateLookupIconMap.put(_builder.toString(), dateValueLookupIconMap);
+        int _size_12 = stringValueLookupIconMap.size();
+        boolean _greaterThan_12 = (_size_12 > 0);
+        if (_greaterThan_12) {
+          TableValueElement _column_13 = value.getColumn();
+          boolean _matched_17 = false;
+          if (_column_13 instanceof TableOrdinal) {
+            _matched_17=true;
+            stringLookupIconMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), stringValueLookupIconMap);
+          }
+          if (!_matched_17) {
+            if (_column_13 instanceof TableAllColumns) {
+              _matched_17=true;
+              stringLookupIconMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), stringValueLookupIconMap);
             }
           }
-          if (!_matched_13) {
-            if (_column_9 instanceof TableAllColumns) {
-              _matched_13=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              dateLookupIconMap.put(_builder.toString(), dateValueLookupIconMap);
+          if (!_matched_17) {
+            if (_column_13 instanceof TableMeasure) {
+              _matched_17=true;
+              stringLookupIconMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), stringValueLookupIconMap);
             }
           }
-          if (!_matched_13) {
-            if (_column_9 instanceof TableMeasure) {
-              _matched_13=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_10 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_10).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              dateLookupIconMap.put(_builder.toString(), dateValueLookupIconMap);
+          if (!_matched_17) {
+            if (_column_13 instanceof TableDerived) {
+              _matched_17=true;
+              stringLookupIconMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), stringValueLookupIconMap);
             }
           }
-          if (!_matched_13) {
-            if (_column_9 instanceof TableDerived) {
-              _matched_13=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_10 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_10).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              dateLookupIconMap.put(_builder.toString(), dateValueLookupIconMap);
+          if (!_matched_17) {
+            if (_column_13 instanceof TableHierarchy) {
+              _matched_17=true;
+              stringLookupIconMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), stringValueLookupIconMap);
             }
           }
-          if (!_matched_13) {
-            if (_column_9 instanceof TableHierarchy) {
-              _matched_13=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_10 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_10).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              dateLookupIconMap.put(_builder.toString(), dateValueLookupIconMap);
+          if (!_matched_17) {
+            if (_column_13 instanceof TableAttribute) {
+              _matched_17=true;
+              stringLookupIconMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), stringValueLookupIconMap);
             }
           }
-          if (!_matched_13) {
-            if (_column_9 instanceof TableProperty) {
-              _matched_13=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_10 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_10).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              dateLookupIconMap.put(_builder.toString(), dateValueLookupIconMap);
+          if (!_matched_17) {
+            if (_column_13 instanceof TableAggregation) {
+              _matched_17=true;
+              stringLookupIconMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), stringValueLookupIconMap);
             }
           }
-          if (!_matched_13) {
-            if (_column_9 instanceof TableAggregation) {
-              _matched_13=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_10 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_10).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              dateLookupIconMap.put(_builder.toString(), dateValueLookupIconMap);
+          if (!_matched_17) {
+            if (_column_13 instanceof TableColumn) {
+              _matched_17=true;
+              stringLookupIconMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), stringValueLookupIconMap);
             }
           }
-          if (!_matched_13) {
-            if (_column_9 instanceof TableColumn) {
-              _matched_13=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_10 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_10).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              dateLookupIconMap.put(_builder.toString(), dateValueLookupIconMap);
+        }
+        int _size_13 = dateValueLookupIconMap.size();
+        boolean _greaterThan_13 = (_size_13 > 0);
+        if (_greaterThan_13) {
+          TableValueElement _column_14 = value.getColumn();
+          boolean _matched_18 = false;
+          if (_column_14 instanceof TableOrdinal) {
+            _matched_18=true;
+            dateLookupIconMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), dateValueLookupIconMap);
+          }
+          if (!_matched_18) {
+            if (_column_14 instanceof TableAllColumns) {
+              _matched_18=true;
+              dateLookupIconMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), dateValueLookupIconMap);
+            }
+          }
+          if (!_matched_18) {
+            if (_column_14 instanceof TableMeasure) {
+              _matched_18=true;
+              dateLookupIconMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), dateValueLookupIconMap);
+            }
+          }
+          if (!_matched_18) {
+            if (_column_14 instanceof TableDerived) {
+              _matched_18=true;
+              dateLookupIconMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), dateValueLookupIconMap);
+            }
+          }
+          if (!_matched_18) {
+            if (_column_14 instanceof TableHierarchy) {
+              _matched_18=true;
+              dateLookupIconMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), dateValueLookupIconMap);
+            }
+          }
+          if (!_matched_18) {
+            if (_column_14 instanceof TableAttribute) {
+              _matched_18=true;
+              dateLookupIconMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), dateValueLookupIconMap);
+            }
+          }
+          if (!_matched_18) {
+            if (_column_14 instanceof TableAggregation) {
+              _matched_18=true;
+              dateLookupIconMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), dateValueLookupIconMap);
+            }
+          }
+          if (!_matched_18) {
+            if (_column_14 instanceof TableColumn) {
+              _matched_18=true;
+              dateLookupIconMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), dateValueLookupIconMap);
             }
           }
         }
         DoubleComparator _doubleComparator_7 = new DoubleComparator();
         TreeMap<Double, Map<String, String>> numberValueLookupTooltipMap = CollectionLiterals.<Double, Map<String, String>>newTreeMap(_doubleComparator_7);
+        IntegerComparator _integerComparator_5 = new IntegerComparator();
+        TreeMap<Integer, Map<String, String>> intValueLookupTooltipMap = CollectionLiterals.<Integer, Map<String, String>>newTreeMap(_integerComparator_5);
         HashMap<String, Map<String, String>> stringValueLookupTooltipMap = CollectionLiterals.<String, Map<String, String>>newHashMap();
         DoubleComparator _doubleComparator_8 = new DoubleComparator();
         TreeMap<Double, Map<String, String>> dateValueLookupTooltipMap = CollectionLiterals.<Double, Map<String, String>>newTreeMap(_doubleComparator_8);
@@ -5412,376 +5167,294 @@
               String tooltipAspect = "";
               Map<String, String> tMap = CollectionLiterals.<String, String>newHashMap();
               TableRangeElement _discrete = ((TableNumberLookup)lookup_2).getDiscrete();
-              boolean _matched_14 = false;
-              if (!_matched_14) {
-                if (_discrete instanceof TableTooltip) {
-                  _matched_14=true;
-                  StringConcatenation _builder = new StringConcatenation();
-                  TableRangeElement _discrete_1 = ((TableNumberLookup)lookup_2).getDiscrete();
-                  String _tooltip = ((TableTooltip) _discrete_1).getTooltip();
-                  _builder.append(_tooltip, "");
-                  tooltipAspect = _builder.toString();
-                }
+              boolean _matched_19 = false;
+              if (_discrete instanceof TableTooltip) {
+                _matched_19=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _discrete_1 = ((TableNumberLookup)lookup_2).getDiscrete();
+                String _tooltip = ((TableTooltip) _discrete_1).getTooltip();
+                _builder.append(_tooltip);
+                tooltipAspect = _builder.toString();
               }
               int _length = tooltipAspect.length();
-              boolean _greaterThan_9 = (_length > 0);
-              if (_greaterThan_9) {
+              boolean _greaterThan_14 = (_length > 0);
+              if (_greaterThan_14) {
                 tMap.put("tooltip", tooltipAspect);
                 numberValueLookupTooltipMap.put(key, tMap);
               }
             }
-            if ((lookup_2 instanceof TableStringLookup)) {
-              String key_1 = ((TableStringLookup) lookup_2).getLookupValue();
+            if ((lookup_2 instanceof TableIntLookup)) {
+              int _lookupValue_1 = ((TableIntLookup) lookup_2).getLookupValue();
+              Integer key_1 = new Integer(_lookupValue_1);
               String tooltipAspect_1 = "";
               Map<String, String> tMap_1 = CollectionLiterals.<String, String>newHashMap();
-              TableRangeElement _discrete_1 = ((TableStringLookup)lookup_2).getDiscrete();
-              boolean _matched_15 = false;
-              if (!_matched_15) {
-                if (_discrete_1 instanceof TableTooltip) {
-                  _matched_15=true;
-                  StringConcatenation _builder = new StringConcatenation();
-                  TableRangeElement _discrete_2 = ((TableStringLookup)lookup_2).getDiscrete();
-                  String _tooltip = ((TableTooltip) _discrete_2).getTooltip();
-                  _builder.append(_tooltip, "");
-                  tooltipAspect_1 = _builder.toString();
-                }
+              TableRangeElement _discrete_1 = ((TableIntLookup)lookup_2).getDiscrete();
+              boolean _matched_20 = false;
+              if (_discrete_1 instanceof TableTooltip) {
+                _matched_20=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _discrete_2 = ((TableIntLookup)lookup_2).getDiscrete();
+                String _tooltip = ((TableTooltip) _discrete_2).getTooltip();
+                _builder.append(_tooltip);
+                tooltipAspect_1 = _builder.toString();
               }
               int _length_1 = tooltipAspect_1.length();
-              boolean _greaterThan_10 = (_length_1 > 0);
-              if (_greaterThan_10) {
+              boolean _greaterThan_15 = (_length_1 > 0);
+              if (_greaterThan_15) {
                 tMap_1.put("tooltip", tooltipAspect_1);
-                stringValueLookupTooltipMap.put(key_1, tMap_1);
+                intValueLookupTooltipMap.put(key_1, tMap_1);
+              }
+            }
+            if ((lookup_2 instanceof TableStringLookup)) {
+              String key_2 = ((TableStringLookup) lookup_2).getLookupValue();
+              String tooltipAspect_2 = "";
+              Map<String, String> tMap_2 = CollectionLiterals.<String, String>newHashMap();
+              TableRangeElement _discrete_2 = ((TableStringLookup)lookup_2).getDiscrete();
+              boolean _matched_21 = false;
+              if (_discrete_2 instanceof TableTooltip) {
+                _matched_21=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _discrete_3 = ((TableStringLookup)lookup_2).getDiscrete();
+                String _tooltip = ((TableTooltip) _discrete_3).getTooltip();
+                _builder.append(_tooltip);
+                tooltipAspect_2 = _builder.toString();
+              }
+              int _length_2 = tooltipAspect_2.length();
+              boolean _greaterThan_16 = (_length_2 > 0);
+              if (_greaterThan_16) {
+                tMap_2.put("tooltip", tooltipAspect_2);
+                stringValueLookupTooltipMap.put(key_2, tMap_2);
               }
             }
             if ((lookup_2 instanceof TableDateDayLookup)) {
-              double _lookupValue_1 = ((TableDateDayLookup) lookup_2).getLookupValue();
-              Double key_2 = new Double(_lookupValue_1);
-              String tooltipAspect_2 = "";
-              Map<String, String> tMap_2 = CollectionLiterals.<String, String>newHashMap();
-              TableRangeElement _discrete_2 = ((TableDateDayLookup)lookup_2).getDiscrete();
-              boolean _matched_16 = false;
-              if (!_matched_16) {
-                if (_discrete_2 instanceof TableTooltip) {
-                  _matched_16=true;
-                  StringConcatenation _builder = new StringConcatenation();
-                  TableRangeElement _discrete_3 = ((TableDateDayLookup)lookup_2).getDiscrete();
-                  String _tooltip = ((TableTooltip) _discrete_3).getTooltip();
-                  _builder.append(_tooltip, "");
-                  tooltipAspect_2 = _builder.toString();
-                }
+              int _lookupValue_2 = ((TableDateDayLookup) lookup_2).getLookupValue();
+              Double key_3 = new Double(_lookupValue_2);
+              String tooltipAspect_3 = "";
+              Map<String, String> tMap_3 = CollectionLiterals.<String, String>newHashMap();
+              TableRangeElement _discrete_3 = ((TableDateDayLookup)lookup_2).getDiscrete();
+              boolean _matched_22 = false;
+              if (_discrete_3 instanceof TableTooltip) {
+                _matched_22=true;
+                StringConcatenation _builder = new StringConcatenation();
+                TableRangeElement _discrete_4 = ((TableDateDayLookup)lookup_2).getDiscrete();
+                String _tooltip = ((TableTooltip) _discrete_4).getTooltip();
+                _builder.append(_tooltip);
+                tooltipAspect_3 = _builder.toString();
               }
-              int _length_2 = tooltipAspect_2.length();
-              boolean _greaterThan_11 = (_length_2 > 0);
-              if (_greaterThan_11) {
-                tMap_2.put("tooltip", tooltipAspect_2);
-                dateValueLookupTooltipMap.put(key_2, tMap_2);
+              int _length_3 = tooltipAspect_3.length();
+              boolean _greaterThan_17 = (_length_3 > 0);
+              if (_greaterThan_17) {
+                tMap_3.put("tooltip", tooltipAspect_3);
+                dateValueLookupTooltipMap.put(key_3, tMap_3);
               }
             }
           }
         }
-        int _size_9 = numberValueLookupTooltipMap.size();
-        boolean _greaterThan_9 = (_size_9 > 0);
-        if (_greaterThan_9) {
-          TableValueElement _column_10 = value.getColumn();
-          boolean _matched_14 = false;
-          if (!_matched_14) {
-            if (_column_10 instanceof TableOrdinal) {
-              _matched_14=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_11 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_11).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              numberLookupTooltipMap.put(_builder.toString(), numberValueLookupTooltipMap);
+        int _size_14 = numberValueLookupTooltipMap.size();
+        boolean _greaterThan_14 = (_size_14 > 0);
+        if (_greaterThan_14) {
+          TableValueElement _column_15 = value.getColumn();
+          boolean _matched_19 = false;
+          if (_column_15 instanceof TableOrdinal) {
+            _matched_19=true;
+            numberLookupTooltipMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), numberValueLookupTooltipMap);
+          }
+          if (!_matched_19) {
+            if (_column_15 instanceof TableAllColumns) {
+              _matched_19=true;
+              numberLookupTooltipMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), numberValueLookupTooltipMap);
             }
           }
-          if (!_matched_14) {
-            if (_column_10 instanceof TableAllColumns) {
-              _matched_14=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              numberLookupTooltipMap.put(_builder.toString(), numberValueLookupTooltipMap);
+          if (!_matched_19) {
+            if (_column_15 instanceof TableMeasure) {
+              _matched_19=true;
+              numberLookupTooltipMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), numberValueLookupTooltipMap);
             }
           }
-          if (!_matched_14) {
-            if (_column_10 instanceof TableMeasure) {
-              _matched_14=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_11 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_11).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              numberLookupTooltipMap.put(_builder.toString(), numberValueLookupTooltipMap);
+          if (!_matched_19) {
+            if (_column_15 instanceof TableDerived) {
+              _matched_19=true;
+              numberLookupTooltipMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), numberValueLookupTooltipMap);
             }
           }
-          if (!_matched_14) {
-            if (_column_10 instanceof TableDerived) {
-              _matched_14=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_11 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_11).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              numberLookupTooltipMap.put(_builder.toString(), numberValueLookupTooltipMap);
+          if (!_matched_19) {
+            if (_column_15 instanceof TableHierarchy) {
+              _matched_19=true;
+              numberLookupTooltipMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), numberValueLookupTooltipMap);
             }
           }
-          if (!_matched_14) {
-            if (_column_10 instanceof TableHierarchy) {
-              _matched_14=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_11 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_11).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              numberLookupTooltipMap.put(_builder.toString(), numberValueLookupTooltipMap);
+          if (!_matched_19) {
+            if (_column_15 instanceof TableAttribute) {
+              _matched_19=true;
+              numberLookupTooltipMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), numberValueLookupTooltipMap);
             }
           }
-          if (!_matched_14) {
-            if (_column_10 instanceof TableProperty) {
-              _matched_14=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_11 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_11).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              numberLookupTooltipMap.put(_builder.toString(), numberValueLookupTooltipMap);
+          if (!_matched_19) {
+            if (_column_15 instanceof TableAggregation) {
+              _matched_19=true;
+              numberLookupTooltipMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), numberValueLookupTooltipMap);
             }
           }
-          if (!_matched_14) {
-            if (_column_10 instanceof TableAggregation) {
-              _matched_14=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_11 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_11).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              numberLookupTooltipMap.put(_builder.toString(), numberValueLookupTooltipMap);
-            }
-          }
-          if (!_matched_14) {
-            if (_column_10 instanceof TableColumn) {
-              _matched_14=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_11 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_11).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              numberLookupTooltipMap.put(_builder.toString(), numberValueLookupTooltipMap);
+          if (!_matched_19) {
+            if (_column_15 instanceof TableColumn) {
+              _matched_19=true;
+              numberLookupTooltipMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), numberValueLookupTooltipMap);
             }
           }
         }
-        int _size_10 = stringValueLookupTooltipMap.size();
-        boolean _greaterThan_10 = (_size_10 > 0);
-        if (_greaterThan_10) {
-          TableValueElement _column_11 = value.getColumn();
-          boolean _matched_15 = false;
-          if (!_matched_15) {
-            if (_column_11 instanceof TableOrdinal) {
-              _matched_15=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_12 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_12).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              stringLookupTooltipMap.put(_builder.toString(), stringValueLookupTooltipMap);
+        int _size_15 = intValueLookupTooltipMap.size();
+        boolean _greaterThan_15 = (_size_15 > 0);
+        if (_greaterThan_15) {
+          TableValueElement _column_16 = value.getColumn();
+          boolean _matched_20 = false;
+          if (_column_16 instanceof TableOrdinal) {
+            _matched_20=true;
+            intLookupStyleMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), intValueLookupTooltipMap);
+          }
+          if (!_matched_20) {
+            if (_column_16 instanceof TableAllColumns) {
+              _matched_20=true;
+              intLookupStyleMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), intValueLookupTooltipMap);
             }
           }
-          if (!_matched_15) {
-            if (_column_11 instanceof TableAllColumns) {
-              _matched_15=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              stringLookupTooltipMap.put(_builder.toString(), stringValueLookupTooltipMap);
+          if (!_matched_20) {
+            if (_column_16 instanceof TableMeasure) {
+              _matched_20=true;
+              intLookupStyleMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), intValueLookupTooltipMap);
             }
           }
-          if (!_matched_15) {
-            if (_column_11 instanceof TableMeasure) {
-              _matched_15=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_12 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_12).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              stringLookupTooltipMap.put(_builder.toString(), stringValueLookupTooltipMap);
+          if (!_matched_20) {
+            if (_column_16 instanceof TableDerived) {
+              _matched_20=true;
+              intLookupStyleMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), intValueLookupTooltipMap);
             }
           }
-          if (!_matched_15) {
-            if (_column_11 instanceof TableDerived) {
-              _matched_15=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_12 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_12).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              stringLookupTooltipMap.put(_builder.toString(), stringValueLookupTooltipMap);
+          if (!_matched_20) {
+            if (_column_16 instanceof TableHierarchy) {
+              _matched_20=true;
+              intLookupStyleMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), intValueLookupTooltipMap);
             }
           }
-          if (!_matched_15) {
-            if (_column_11 instanceof TableHierarchy) {
-              _matched_15=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_12 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_12).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              stringLookupTooltipMap.put(_builder.toString(), stringValueLookupTooltipMap);
+          if (!_matched_20) {
+            if (_column_16 instanceof TableAttribute) {
+              _matched_20=true;
+              intLookupStyleMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), intValueLookupTooltipMap);
             }
           }
-          if (!_matched_15) {
-            if (_column_11 instanceof TableProperty) {
-              _matched_15=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_12 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_12).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              stringLookupTooltipMap.put(_builder.toString(), stringValueLookupTooltipMap);
+          if (!_matched_20) {
+            if (_column_16 instanceof TableAggregation) {
+              _matched_20=true;
+              intLookupStyleMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), intValueLookupTooltipMap);
             }
           }
-          if (!_matched_15) {
-            if (_column_11 instanceof TableAggregation) {
-              _matched_15=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_12 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_12).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              stringLookupTooltipMap.put(_builder.toString(), stringValueLookupTooltipMap);
-            }
-          }
-          if (!_matched_15) {
-            if (_column_11 instanceof TableColumn) {
-              _matched_15=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_12 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_12).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              stringLookupTooltipMap.put(_builder.toString(), stringValueLookupTooltipMap);
+          if (!_matched_20) {
+            if (_column_16 instanceof TableColumn) {
+              _matched_20=true;
+              intLookupStyleMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), intValueLookupTooltipMap);
             }
           }
         }
-        int _size_11 = dateValueLookupTooltipMap.size();
-        boolean _greaterThan_11 = (_size_11 > 0);
-        if (_greaterThan_11) {
-          TableValueElement _column_12 = value.getColumn();
-          boolean _matched_16 = false;
-          if (!_matched_16) {
-            if (_column_12 instanceof TableOrdinal) {
-              _matched_16=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("#");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              TableValueElement _column_13 = value.getColumn();
-              String _valueRef = ((TableOrdinal) _column_13).getValueRef();
-              String _string = _valueRef.toString();
-              _builder.append(_string, "");
-              dateLookupTooltipMap.put(_builder.toString(), dateValueLookupTooltipMap);
+        int _size_16 = stringValueLookupTooltipMap.size();
+        boolean _greaterThan_16 = (_size_16 > 0);
+        if (_greaterThan_16) {
+          TableValueElement _column_17 = value.getColumn();
+          boolean _matched_21 = false;
+          if (_column_17 instanceof TableOrdinal) {
+            _matched_21=true;
+            stringLookupTooltipMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), stringValueLookupTooltipMap);
+          }
+          if (!_matched_21) {
+            if (_column_17 instanceof TableAllColumns) {
+              _matched_21=true;
+              stringLookupTooltipMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), stringValueLookupTooltipMap);
             }
           }
-          if (!_matched_16) {
-            if (_column_12 instanceof TableAllColumns) {
-              _matched_16=true;
-              StringConcatenation _builder = new StringConcatenation();
-              _builder.append("?");
-              AxisEnum _axis = axis.getAxis();
-              String _literal = _axis.getLiteral();
-              _builder.append(_literal, "");
-              dateLookupTooltipMap.put(_builder.toString(), dateValueLookupTooltipMap);
+          if (!_matched_21) {
+            if (_column_17 instanceof TableMeasure) {
+              _matched_21=true;
+              stringLookupTooltipMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), stringValueLookupTooltipMap);
             }
           }
-          if (!_matched_16) {
-            if (_column_12 instanceof TableMeasure) {
-              _matched_16=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_13 = value.getColumn();
-              DatamartMeasure _valueRef = ((TableMeasure) _column_13).getValueRef();
-              CubeMeasure _measureRef = _valueRef.getMeasureRef();
-              String _name = _measureRef.getName();
-              _builder.append(_name, "");
-              dateLookupTooltipMap.put(_builder.toString(), dateValueLookupTooltipMap);
+          if (!_matched_21) {
+            if (_column_17 instanceof TableDerived) {
+              _matched_21=true;
+              stringLookupTooltipMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), stringValueLookupTooltipMap);
             }
           }
-          if (!_matched_16) {
-            if (_column_12 instanceof TableDerived) {
-              _matched_16=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_13 = value.getColumn();
-              DatamartDerivedMeasure _valueRef = ((TableDerived) _column_13).getValueRef();
-              DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-              String _name = _derivedRef.getName();
-              _builder.append(_name, "");
-              dateLookupTooltipMap.put(_builder.toString(), dateValueLookupTooltipMap);
+          if (!_matched_21) {
+            if (_column_17 instanceof TableHierarchy) {
+              _matched_21=true;
+              stringLookupTooltipMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), stringValueLookupTooltipMap);
             }
           }
-          if (!_matched_16) {
-            if (_column_12 instanceof TableHierarchy) {
-              _matched_16=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_13 = value.getColumn();
-              CubeLevel _valueRef = ((TableHierarchy) _column_13).getValueRef();
-              String _levelName = this.getLevelName(_valueRef);
-              _builder.append(_levelName, "");
-              dateLookupTooltipMap.put(_builder.toString(), dateValueLookupTooltipMap);
+          if (!_matched_21) {
+            if (_column_17 instanceof TableAttribute) {
+              _matched_21=true;
+              stringLookupTooltipMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), stringValueLookupTooltipMap);
             }
           }
-          if (!_matched_16) {
-            if (_column_12 instanceof TableProperty) {
-              _matched_16=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_13 = value.getColumn();
-              DatamartProperty _valueRef = ((TableProperty) _column_13).getValueRef();
-              String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-              _builder.append(_propertyName, "");
-              dateLookupTooltipMap.put(_builder.toString(), dateValueLookupTooltipMap);
+          if (!_matched_21) {
+            if (_column_17 instanceof TableAggregation) {
+              _matched_21=true;
+              stringLookupTooltipMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), stringValueLookupTooltipMap);
             }
           }
-          if (!_matched_16) {
-            if (_column_12 instanceof TableAggregation) {
-              _matched_16=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_13 = value.getColumn();
-              DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_13).getValueRef();
-              SetAggregationEnum _aggregation = _valueRef.getAggregation();
-              String _name = _aggregation.name();
-              _builder.append(_name, "");
-              dateLookupTooltipMap.put(_builder.toString(), dateValueLookupTooltipMap);
+          if (!_matched_21) {
+            if (_column_17 instanceof TableColumn) {
+              _matched_21=true;
+              stringLookupTooltipMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), stringValueLookupTooltipMap);
             }
           }
-          if (!_matched_16) {
-            if (_column_12 instanceof TableColumn) {
-              _matched_16=true;
-              StringConcatenation _builder = new StringConcatenation();
-              TableValueElement _column_13 = value.getColumn();
-              DatamartColumn _valueRef = ((TableColumn) _column_13).getValueRef();
-              TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-              String _literal = _columnRef.getLiteral();
-              _builder.append(_literal, "");
-              dateLookupTooltipMap.put(_builder.toString(), dateValueLookupTooltipMap);
+        }
+        int _size_17 = dateValueLookupTooltipMap.size();
+        boolean _greaterThan_17 = (_size_17 > 0);
+        if (_greaterThan_17) {
+          TableValueElement _column_18 = value.getColumn();
+          boolean _matched_22 = false;
+          if (_column_18 instanceof TableOrdinal) {
+            _matched_22=true;
+            dateLookupTooltipMap.put(columnValueMap.get(TableOrdinal.class.getCanonicalName()), dateValueLookupTooltipMap);
+          }
+          if (!_matched_22) {
+            if (_column_18 instanceof TableAllColumns) {
+              _matched_22=true;
+              dateLookupTooltipMap.put(columnValueMap.get(TableAllColumns.class.getCanonicalName()), dateValueLookupTooltipMap);
+            }
+          }
+          if (!_matched_22) {
+            if (_column_18 instanceof TableMeasure) {
+              _matched_22=true;
+              dateLookupTooltipMap.put(columnValueMap.get(TableMeasure.class.getCanonicalName()), dateValueLookupTooltipMap);
+            }
+          }
+          if (!_matched_22) {
+            if (_column_18 instanceof TableDerived) {
+              _matched_22=true;
+              dateLookupTooltipMap.put(columnValueMap.get(TableDerived.class.getCanonicalName()), dateValueLookupTooltipMap);
+            }
+          }
+          if (!_matched_22) {
+            if (_column_18 instanceof TableHierarchy) {
+              _matched_22=true;
+              dateLookupTooltipMap.put(columnValueMap.get(TableHierarchy.class.getCanonicalName()), dateValueLookupTooltipMap);
+            }
+          }
+          if (!_matched_22) {
+            if (_column_18 instanceof TableAttribute) {
+              _matched_22=true;
+              dateLookupTooltipMap.put(columnValueMap.get(TableAttribute.class.getCanonicalName()), dateValueLookupTooltipMap);
+            }
+          }
+          if (!_matched_22) {
+            if (_column_18 instanceof TableAggregation) {
+              _matched_22=true;
+              dateLookupTooltipMap.put(columnValueMap.get(TableAggregation.class.getCanonicalName()), dateValueLookupTooltipMap);
+            }
+          }
+          if (!_matched_22) {
+            if (_column_18 instanceof TableColumn) {
+              _matched_22=true;
+              dateLookupTooltipMap.put(columnValueMap.get(TableColumn.class.getCanonicalName()), dateValueLookupTooltipMap);
             }
           }
         }
@@ -5790,10 +5463,10 @@
   }
   
   /**
-   * <p>helper method to get a property name or its alias if present of a entity's property object.</p>
+   * <p>helper method to get a attribute name or its alias if present of a entity's attribute object.</p>
    */
-  public String propertyName(final DatamartProperty property) {
-    return this.datamartInferrer.getPropertyName(property, null);
+  public String attributeName(final DatamartAttribute attribute) {
+    return this.datamartInferrer.getAttributeName(attribute, null);
   }
   
   /**
@@ -5810,29 +5483,24 @@
     String name = "";
     TableValueElement _column = preorder.getColumn();
     boolean _matched = false;
-    if (!_matched) {
-      if (_column instanceof TableOrdinal) {
-        _matched=true;
-        StringConcatenation _builder = new StringConcatenation();
-        _builder.append("#");
-        AxisEnum _axis = axis.getAxis();
-        String _literal = _axis.getLiteral();
-        _builder.append(_literal, "");
-        TableValueElement _column_1 = preorder.getColumn();
-        String _valueRef = ((TableOrdinal) _column_1).getValueRef();
-        String _string = _valueRef.toString();
-        _builder.append(_string, "");
-        name = _builder.toString();
-      }
+    if (_column instanceof TableOrdinal) {
+      _matched=true;
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append("#");
+      String _literal = axis.getAxis().getLiteral();
+      _builder.append(_literal);
+      TableValueElement _column_1 = preorder.getColumn();
+      String _string = ((TableOrdinal) _column_1).getValueRef().toString();
+      _builder.append(_string);
+      name = _builder.toString();
     }
     if (!_matched) {
       if (_column instanceof TableAllColumns) {
         _matched=true;
         StringConcatenation _builder = new StringConcatenation();
         _builder.append("?");
-        AxisEnum _axis = axis.getAxis();
-        String _literal = _axis.getLiteral();
-        _builder.append(_literal, "");
+        String _literal = axis.getAxis().getLiteral();
+        _builder.append(_literal);
         name = _builder.toString();
       }
     }
@@ -5841,10 +5509,8 @@
         _matched=true;
         StringConcatenation _builder = new StringConcatenation();
         TableValueElement _column_1 = preorder.getColumn();
-        DatamartMeasure _valueRef = ((TableMeasure) _column_1).getValueRef();
-        CubeMeasure _measureRef = _valueRef.getMeasureRef();
-        String _name = _measureRef.getName();
-        _builder.append(_name, "");
+        String _name = ((TableMeasure) _column_1).getValueRef().getMeasureRef().getName();
+        _builder.append(_name);
         name = _builder.toString();
       }
     }
@@ -5853,10 +5519,8 @@
         _matched=true;
         StringConcatenation _builder = new StringConcatenation();
         TableValueElement _column_1 = preorder.getColumn();
-        DatamartDerivedMeasure _valueRef = ((TableDerived) _column_1).getValueRef();
-        DatamartDefineDerivedMeasure _derivedRef = _valueRef.getDerivedRef();
-        String _name = _derivedRef.getName();
-        _builder.append(_name, "");
+        String _name = ((TableDerived) _column_1).getValueRef().getDerivedRef().getName();
+        _builder.append(_name);
         name = _builder.toString();
       }
     }
@@ -5865,20 +5529,18 @@
         _matched=true;
         StringConcatenation _builder = new StringConcatenation();
         TableValueElement _column_1 = preorder.getColumn();
-        CubeLevel _valueRef = ((TableHierarchy) _column_1).getValueRef();
-        String _levelName = this.getLevelName(_valueRef);
-        _builder.append(_levelName, "");
+        String _levelName = this.getLevelName(((TableHierarchy) _column_1).getValueRef());
+        _builder.append(_levelName);
         name = _builder.toString();
       }
     }
     if (!_matched) {
-      if (_column instanceof TableProperty) {
+      if (_column instanceof TableAttribute) {
         _matched=true;
         StringConcatenation _builder = new StringConcatenation();
         TableValueElement _column_1 = preorder.getColumn();
-        DatamartProperty _valueRef = ((TableProperty) _column_1).getValueRef();
-        String _propertyName = this.datamartInferrer.getPropertyName(_valueRef);
-        _builder.append(_propertyName, "");
+        String _aliasedAttributeName = DatamartAttributeUtil.getAliasedAttributeName(((TableAttribute) _column_1).getValueRef());
+        _builder.append(_aliasedAttributeName);
         name = _builder.toString();
       }
     }
@@ -5887,10 +5549,8 @@
         _matched=true;
         StringConcatenation _builder = new StringConcatenation();
         TableValueElement _column_1 = preorder.getColumn();
-        DatamartSetAggregationFunction _valueRef = ((TableAggregation) _column_1).getValueRef();
-        SetAggregationEnum _aggregation = _valueRef.getAggregation();
-        String _name = _aggregation.name();
-        _builder.append(_name, "");
+        String _name = ((TableAggregation) _column_1).getValueRef().getAggregation().name();
+        _builder.append(_name);
         name = _builder.toString();
       }
     }
@@ -5899,391 +5559,47 @@
         _matched=true;
         StringConcatenation _builder = new StringConcatenation();
         TableValueElement _column_1 = preorder.getColumn();
-        DatamartColumn _valueRef = ((TableColumn) _column_1).getValueRef();
-        TaskQueryColumnEnum _columnRef = _valueRef.getColumnRef();
-        String _literal = _columnRef.getLiteral();
-        _builder.append(_literal, "");
+        String _literal = ((TableColumn) _column_1).getValueRef().getColumnRef().getLiteral();
+        _builder.append(_literal);
         name = _builder.toString();
       }
     }
     StringConcatenation _builder = new StringConcatenation();
     _builder.append("dataSourceContainer.setSort(table, \"");
-    _builder.append(name, "");
+    _builder.append(name);
     _builder.append("\", ");
-    boolean _isAscending = preorder.isAscending();
-    boolean _booleanValue = Boolean.valueOf(_isAscending).booleanValue();
-    String _string = Boolean.valueOf(_booleanValue).toString();
-    _builder.append(_string, "");
+    String _string = Boolean.valueOf(Boolean.valueOf(preorder.isAscending()).booleanValue()).toString();
+    _builder.append(_string);
     _builder.append(");");
     _builder.newLineIfNotEmpty();
     String body = _builder.toString();
     return body;
   }
   
-  public String setup(final Table table) {
-    String body = "";
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append(body, "");
-    _builder.newLineIfNotEmpty();
-    _builder.append("subscribe();");
-    _builder.newLine();
-    body = _builder.toString();
-    HashMap<String, String> filterIdMap = CollectionLiterals.<String, String>newHashMap();
-    boolean _and = false;
-    boolean _and_1 = false;
-    TableDatamart _dataMartTable = this.getDataMartTable(table);
-    boolean _notEquals = (!Objects.equal(_dataMartTable, null));
-    if (!_notEquals) {
-      _and_1 = false;
-    } else {
-      TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
-      DatamartDefinition _datamartRef = _dataMartTable_1.getDatamartRef();
-      boolean _notEquals_1 = (!Objects.equal(_datamartRef, null));
-      _and_1 = _notEquals_1;
-    }
-    if (!_and_1) {
-      _and = false;
-    } else {
-      TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
-      DatamartDefinition _datamartRef_1 = _dataMartTable_2.getDatamartRef();
-      String _name = _datamartRef_1.getName();
-      boolean _notEquals_2 = (!Objects.equal(_name, null));
-      _and = _notEquals_2;
-    }
-    if (_and) {
-      TableDatamart _dataMartTable_3 = this.getDataMartTable(table);
-      DatamartDefinition _datamartRef_2 = _dataMartTable_3.getDatamartRef();
-      this.datamartInferrer.createFilterMap(_datamartRef_2, filterIdMap);
-    }
-    Set<String> _keySet = filterIdMap.keySet();
-    for (final String filter : _keySet) {
-      String _get = filterIdMap.get(filter);
-      boolean _contains = _get.contains(IDataMart.filterIdPlaceholder);
-      if (_contains) {
-        TableDatamart _dataMartTable_4 = this.getDataMartTable(table);
-        DatamartDefinition _datamartRef_3 = _dataMartTable_4.getDatamartRef();
-        DatamartSource _source = _datamartRef_3.getSource();
-        if ((_source instanceof DatamartEntity)) {
-          TableDatamart _dataMartTable_5 = this.getDataMartTable(table);
-          DatamartDefinition _datamartRef_4 = _dataMartTable_5.getDatamartRef();
-          DatamartSource _source_1 = _datamartRef_4.getSource();
-          LEntity entity = ((DatamartEntity) _source_1).getEntityRef();
-          EList<LEntityFeature> _features = entity.getFeatures();
-          for (final LEntityFeature f : _features) {
-            boolean _and_2 = false;
-            if (!(f instanceof LReference)) {
-              _and_2 = false;
-            } else {
-              boolean _isToMany = this._modelExtensions.isToMany(((LReference) f));
-              boolean _not = (!_isToMany);
-              _and_2 = _not;
-            }
-            if (_and_2) {
-              StringConcatenation _builder_1 = new StringConcatenation();
-              _builder_1.append(body, "");
-              TableDatamart _dataMartTable_6 = this.getDataMartTable(table);
-              DatamartDefinition _datamartRef_5 = _dataMartTable_6.getDatamartRef();
-              String _name_1 = ((LReference) f).getName();
-              String _buildTopic = this.buildTopic(_datamartRef_5, _name_1);
-              String _entityAlias = this.datamartInferrer.getEntityAlias(entity);
-              String _name_2 = ((LReference) f).getName();
-              String _setupIdEvent = this.setupIdEvent(table, _buildTopic, filter, _entityAlias, _name_2);
-              _builder_1.append(_setupIdEvent, "");
-              body = _builder_1.toString();
-            }
-          }
-        }
-      } else {
-        StringConcatenation _builder_2 = new StringConcatenation();
-        _builder_2.append(body, "");
-        String _get_1 = filterIdMap.get(filter);
-        String _setupEvent = this.setupEvent(table, _get_1, filter);
-        _builder_2.append(_setupEvent, "");
-        body = _builder_2.toString();
-      }
-    }
-    return body;
-  }
-  
-  public String subscribe(final Table table) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("eventBroker.subscribe(EventBrokerMsg.REFRESH_VIEW+\"");
-    String _name = table.getName();
-    _builder.append(_name, "");
-    _builder.append("Table\", refreshView);");
-    _builder.newLineIfNotEmpty();
-    {
-      boolean _and = false;
-      boolean _and_1 = false;
-      TableDatamart _dataMartTable = this.getDataMartTable(table);
-      if (!(_dataMartTable instanceof TableDatamart)) {
-        _and_1 = false;
-      } else {
-        TableOption _tabletype = table.getTabletype();
-        boolean _isEmbedded = _tabletype.isEmbedded();
-        boolean _not = (!_isEmbedded);
-        _and_1 = _not;
-      }
-      if (!_and_1) {
-        _and = false;
-      } else {
-        TableOption _tabletype_1 = table.getTabletype();
-        ActionToolbar _toolbar = _tabletype_1.getToolbar();
-        boolean _notEquals = (!Objects.equal(_toolbar, null));
-        _and = _notEquals;
-      }
-      if (_and) {
-        _builder.append("eventBroker.subscribe(EventBrokerMsg.ACTION_BUTTON_EXECUTE_PREFIX+\"");
-        TableOption _tabletype_2 = table.getTabletype();
-        ActionToolbar _toolbar_1 = _tabletype_2.getToolbar();
-        String _name_1 = _toolbar_1.getName();
-        _builder.append(_name_1, "");
-        _builder.append("Action\"+(String)getContext().get(\"");
-        TableOption _tabletype_3 = table.getTabletype();
-        ActionToolbar _toolbar_2 = _tabletype_3.getToolbar();
-        String _name_2 = _toolbar_2.getName();
-        _builder.append(_name_2, "");
-        _builder.append("_TOOLBAR_ID\"), dispatchAction);");
-        _builder.newLineIfNotEmpty();
-      }
-    }
-    String subscribers = _builder.toString();
-    TableOption _tabletype_4 = table.getTabletype();
-    boolean _isEmbedded_1 = _tabletype_4.isEmbedded();
-    boolean _not_1 = (!_isEmbedded_1);
-    if (_not_1) {
-      Set<LEntity> entites = this.findRequestedEntities(table);
-      for (final LEntity entity : entites) {
-        StringConcatenation _builder_1 = new StringConcatenation();
-        _builder_1.append("eventBroker.subscribe(EventBrokerMsg.REFRESH_VIEW+\"");
-        EObject _eContainer = entity.eContainer();
-        String _name_3 = ((LTypedPackage) _eContainer).getName();
-        String _replace = _name_3.replace(".", "/");
-        _builder_1.append(_replace, "");
-        _builder_1.append("/");
-        String _name_4 = entity.getName();
-        _builder_1.append(_name_4, "");
-        _builder_1.append("Entity\", fModifiedEntityIdsListener);");
-        _builder_1.newLineIfNotEmpty();
-        String _concat = subscribers.concat(_builder_1.toString());
-        subscribers = _concat;
-      }
-    }
-    return subscribers;
-  }
-  
   public Set<LEntity> findRequestedEntities(final Table table) {
     HashSet<LEntity> entities = new HashSet<LEntity>();
     TableOption _tabletype = table.getTabletype();
     boolean _matched = false;
-    if (!_matched) {
-      if (_tabletype instanceof TableTable) {
-        _matched=true;
-        TableDatamart _dataMartTable = this.getDataMartTable(table);
-        DatamartDefinition _datamartRef = _dataMartTable.getDatamartRef();
-        Set<LEntity> _findAllEntities = this.datamartInferrer.findAllEntities(_datamartRef);
-        entities.addAll(_findAllEntities);
-      }
+    if (_tabletype instanceof TableTable) {
+      _matched=true;
+      TableOption _tabletype_1 = table.getTabletype();
+      entities.addAll(this.datamartInferrer.findAllEntities(((TableTable) _tabletype_1).getSource().getDatamartRef()));
     }
     if (!_matched) {
       if (_tabletype instanceof TableGrid) {
         _matched=true;
+        EObject _resolve = EcoreUtil2.resolve(this.getDtoGridTable(table).getDtoSource().getWrappedType(), table.eResource());
+        final LEntity entity = ((LEntity) _resolve);
+        entities.add(entity);
       }
     }
     return entities;
   }
   
-  public String unsubscribe(final Table table) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("eventBroker.unsubscribe(refreshView);");
-    _builder.newLine();
-    {
-      boolean _and = false;
-      boolean _and_1 = false;
-      TableDatamart _dataMartTable = this.getDataMartTable(table);
-      if (!(_dataMartTable instanceof TableDatamart)) {
-        _and_1 = false;
-      } else {
-        TableOption _tabletype = table.getTabletype();
-        boolean _isEmbedded = _tabletype.isEmbedded();
-        boolean _not = (!_isEmbedded);
-        _and_1 = _not;
-      }
-      if (!_and_1) {
-        _and = false;
-      } else {
-        TableOption _tabletype_1 = table.getTabletype();
-        ActionToolbar _toolbar = _tabletype_1.getToolbar();
-        boolean _notEquals = (!Objects.equal(_toolbar, null));
-        _and = _notEquals;
-      }
-      if (_and) {
-        _builder.append("eventBroker.unsubscribe(dispatchAction);");
-        _builder.newLine();
-      }
-    }
-    {
-      TableOption _tabletype_2 = table.getTabletype();
-      boolean _isEmbedded_1 = _tabletype_2.isEmbedded();
-      boolean _not_1 = (!_isEmbedded_1);
-      if (_not_1) {
-        _builder.append("eventBroker.unsubscribe(fModifiedEntityIdsListener);");
-        _builder.newLine();
-      }
-    }
-    {
-      boolean _isTask = this.isTask(table);
-      if (_isTask) {
-        _builder.append("taskClient.unsubscribeTaskEventNotification(this);");
-        _builder.newLine();
-      }
-    }
-    String unsubscribers = _builder.toString();
-    return unsubscribers;
-  }
-  
-  public String setupIdEvent(final Table table, final String eventId, final String filter, final String entityName, final String referenceName) {
-    String body = "";
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append(body, "");
-    _builder.newLineIfNotEmpty();
-    _builder.append("eventBroker.subscribe(\"");
-    _builder.append(eventId, "");
-    _builder.append("\",");
-    _builder.newLineIfNotEmpty();
-    _builder.append("new org.osgi.service.event.EventHandler() {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("@Override");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("public void handleEvent(org.osgi.service.event.Event event) {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("final EventBrokerMsg msg = (EventBrokerMsg)event.getProperty(org.eclipse.e4.core.di.extensions.EventUtils.DATA);");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("filterGenerator.setId(\"");
-    _builder.append(filter, "\t\t");
-    _builder.append("\", \" where ");
-    _builder.append(entityName, "\t\t");
-    _builder.append(".");
-    _builder.append(referenceName, "\t\t");
-    _builder.append("=\'\"+msg.getName()+\"\'\");");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t\t");
-    String _callDataRefreshMethod = this.getCallDataRefreshMethod(table);
-    _builder.append(_callDataRefreshMethod, "\t\t");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("});");
-    _builder.newLine();
-    body = _builder.toString();
-    return body;
-  }
-  
-  public CharSequence notifyBPMNChart(final Table table) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("// sync bpmn view");
-    _builder.newLine();
-    _builder.append("if(table.getValue() == null) {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("eventBroker.send(EventBrokerMsg.BPMNCHART_EVENT, new EventBrokerMsg(null, null));");
-    _builder.newLine();
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("else {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("eventBroker.send(EventBrokerMsg.BPMNCHART_EVENT, new EventBrokerMsg(dataSourceContainer.getProcessId((int) table.getValue()), dataSourceContainer.getTaskName((int) table.getValue())));");
-    _builder.newLine();
-    _builder.append("}");
-    _builder.newLine();
-    return _builder;
-  }
-  
-  public String setupEvent(final Table table, final String eventId, final String filter) {
-    String body = "";
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append(body, "");
-    _builder.newLineIfNotEmpty();
-    _builder.append("eventBroker.subscribe(\"");
-    _builder.append(eventId, "");
-    _builder.append("\",");
-    _builder.newLineIfNotEmpty();
-    _builder.append("new org.osgi.service.event.EventHandler() {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("@Override");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("public void handleEvent(org.osgi.service.event.Event event) {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("final EventBrokerMsg msg = (EventBrokerMsg)event.getProperty(org.eclipse.e4.core.di.extensions.EventUtils.DATA);");
-    _builder.newLine();
-    {
-      boolean _isTask = this.isTask(table);
-      if (_isTask) {
-        _builder.append("\t\t");
-        _builder.append("dataSourceContainer.updateContainer(datamartClass.getResultsByTaskId(taskClient, user, msg.getLong()));");
-        _builder.newLine();
-      } else {
-        _builder.append("\t\t");
-        _builder.append("filterGenerator.selectItem(\"");
-        _builder.append(filter, "\t\t");
-        _builder.append("\", msg.getName());");
-        _builder.newLineIfNotEmpty();
-      }
-    }
-    _builder.append("\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("});");
-    _builder.newLine();
-    _builder.append("eventBroker.subscribe(\"");
-    _builder.append(eventId, "");
-    _builder.append("/clear\",");
-    _builder.newLineIfNotEmpty();
-    _builder.append("\t");
-    _builder.append("new org.osgi.service.event.EventHandler() {");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("@Override");
-    _builder.newLine();
-    _builder.append("\t\t");
-    _builder.append("public void handleEvent(org.osgi.service.event.Event event) {");
-    _builder.newLine();
-    {
-      boolean _isTask_1 = this.isTask(table);
-      if (_isTask_1) {
-        _builder.append("\t\t");
-        _builder.append("dataSourceContainer.clearContainer();");
-        _builder.newLine();
-      } else {
-        _builder.append("\t\t");
-        _builder.append("filterGenerator.resetItem(\"");
-        _builder.append(filter, "\t\t");
-        _builder.append("\");");
-        _builder.newLineIfNotEmpty();
-      }
-    }
-    _builder.append("\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("});");
-    _builder.newLine();
-    body = _builder.toString();
-    return body;
-  }
-  
   public String sendEvent(final Table table) {
     String body = "";
     StringConcatenation _builder = new StringConcatenation();
-    _builder.append(body, "");
+    _builder.append(body);
     _builder.newLineIfNotEmpty();
     _builder.append("table.addValueChangeListener(new ValueChangeListener() {");
     _builder.newLine();
@@ -6294,461 +5610,249 @@
     _builder.append("public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {");
     _builder.newLine();
     _builder.append("\t\t");
-    _builder.append("try {");
-    _builder.newLine();
-    _builder.append("\t\t\t");
     _builder.append("Object msg = null;");
     _builder.newLine();
-    _builder.append("\t\t\t");
+    _builder.append("\t\t");
     _builder.append("Object id = null;");
     _builder.newLine();
-    _builder.append("\t\t\t");
+    _builder.append("\t\t");
     _builder.append("String target = null;");
     _builder.newLine();
-    _builder.append("\t\t\t");
+    _builder.append("\t\t");
     _builder.append("Object value = table.getValue();");
     _builder.newLine();
-    _builder.append("\t\t\t");
+    _builder.append("\t\t");
     _builder.append("int selection = -1;");
     _builder.newLine();
-    _builder.append("\t\t\t");
+    _builder.append("\t\t");
     _builder.append("if\t(value instanceof Integer) {");
     _builder.newLine();
-    _builder.append("\t\t\t\t");
+    _builder.append("\t\t\t");
     _builder.append("selection = (Integer)value;");
     _builder.newLine();
-    _builder.append("\t\t\t");
+    _builder.append("\t\t");
     _builder.append("}");
     _builder.newLine();
-    _builder.append("\t\t\t");
+    _builder.append("\t\t");
     _builder.append("else {");
     _builder.newLine();
-    _builder.append("\t\t\t\t");
-    _builder.append("if\t((value instanceof Collection<?>) && (((Collection<?>)value).size() == 1)) {");
+    _builder.append("\t\t\t");
+    _builder.append("if ((value instanceof Collection<?>) && (((Collection<?>)value).size() == 1)) {");
     _builder.newLine();
-    _builder.append("\t\t\t\t\t");
+    _builder.append("\t\t\t\t");
     _builder.append("value = ((Collection<?>)value).iterator().next();");
     _builder.newLine();
-    _builder.append("\t    \t\t\t");
+    _builder.append("    \t\t\t");
     _builder.append("if\t(value instanceof Integer) {");
     _builder.newLine();
-    _builder.append("\t    \t\t\t\t");
+    _builder.append("    \t\t\t\t");
     _builder.append("selection = (Integer)value;");
     _builder.newLine();
-    _builder.append("\t    \t\t\t");
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("\t\t\t\t");
+    _builder.append("    \t\t\t");
     _builder.append("}");
     _builder.newLine();
     _builder.append("\t\t\t");
     _builder.append("}");
     _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("}");
+    _builder.newLine();
     {
-      boolean _and = false;
-      TableOption _tabletype = table.getTabletype();
-      boolean _isEmbedded = _tabletype.isEmbedded();
-      if (!_isEmbedded) {
-        _and = false;
-      } else {
-        boolean _isTask = this.isTask(table);
-        _and = _isTask;
-      }
-      if (_and) {
-        _builder.append("\t\t\t");
+      if ((table.getTabletype().isEmbedded() && this.isTask(table))) {
+        _builder.append("\t\t");
         _builder.append("for(Button b:taskButtons) {");
         _builder.newLine();
-        _builder.append("\t\t\t");
+        _builder.append("\t\t");
         _builder.append("\t");
         _builder.append("b.setEnabled(table.getValue() != null);");
         _builder.newLine();
-        _builder.append("\t\t\t");
+        _builder.append("\t\t");
         _builder.append("}");
         _builder.newLine();
       }
     }
     body = _builder.toString();
-    TableOption _tabletype_1 = table.getTabletype();
-    if ((_tabletype_1 instanceof TableTable)) {
+    boolean _isTable = this.isTable(table);
+    if (_isTable) {
       TableDatamart _dataMartTable = this.getDataMartTable(table);
       if ((_dataMartTable instanceof TableDatamart)) {
-        StringConcatenation _builder_1 = new StringConcatenation();
-        _builder_1.append(body, "");
-        _builder_1.newLineIfNotEmpty();
-        {
-          TableOption _tabletype_2 = table.getTabletype();
-          boolean _isEmbedded_1 = _tabletype_2.isEmbedded();
-          boolean _not = (!_isEmbedded_1);
-          if (_not) {
-            _builder_1.append("\t\t\t");
-            _builder_1.append("dataSourceContainer.registerSelection(getPart().getTransientData(), selection);");
-            _builder_1.newLine();
-          }
-        }
-        body = _builder_1.toString();
         TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
-        DatamartDefinition _datamartRef = ((TableDatamart) _dataMartTable_1).getDatamartRef();
-        DatamartSource _source = _datamartRef.getSource();
+        DatamartSource _source = ((TableDatamart) _dataMartTable_1).getDatamartRef().getSource();
         boolean _matched = false;
-        if (!_matched) {
-          if (_source instanceof DatamartTask) {
-            _matched=true;
-            StringConcatenation _builder_2 = new StringConcatenation();
-            _builder_2.append(body, "");
-            _builder_2.newLineIfNotEmpty();
-            {
-              TableOption _tabletype_3 = table.getTabletype();
-              boolean _isEmbedded_2 = _tabletype_3.isEmbedded();
-              boolean _not_1 = (!_isEmbedded_2);
-              if (_not_1) {
-                _builder_2.append("\t\t\t");
-                _builder_2.append("if (table.getValue() != null) {");
-                _builder_2.newLine();
-                _builder_2.append("\t\t\t");
-                _builder_2.append("\t");
-                _builder_2.append("getPart().getTransientData().put(\"taskSummary\", taskClient.getUserTask(dataSourceContainer.getTaskId(selection), user));");
-                _builder_2.newLine();
-                _builder_2.append("\t\t\t");
-                _builder_2.append("}");
-                _builder_2.newLine();
-                _builder_2.append("\t\t\t");
-                _builder_2.append("else {");
-                _builder_2.newLine();
-                _builder_2.append("\t\t\t");
-                _builder_2.append("\t");
-                _builder_2.append("getPart().getTransientData().put(\"taskSummary\", null);");
-                _builder_2.newLine();
-                _builder_2.append("\t\t\t");
-                _builder_2.append("}");
-                _builder_2.newLine();
-              }
-            }
-            _builder_2.append("\t\t\t");
-            CharSequence _notifyBPMNChart = this.notifyBPMNChart(table);
-            _builder_2.append(_notifyBPMNChart, "\t\t\t");
-            _builder_2.newLineIfNotEmpty();
-            body = _builder_2.toString();
-          }
+        if (_source instanceof DatamartTask) {
+          _matched=true;
+          StringConcatenation _builder_1 = new StringConcatenation();
+          _builder_1.append(body);
+          _builder_1.newLineIfNotEmpty();
+          _builder_1.append("\t\t");
+          _builder_1.append("if (table.getValue() != null && taskClient != null) {");
+          _builder_1.newLine();
+          _builder_1.append("\t\t\t");
+          _builder_1.append("eclipseContext.set(BPMTaskSummary.class, taskClient.getUserTask(dataSourceContainer.getTaskId(selection), user));");
+          _builder_1.newLine();
+          _builder_1.append("\t\t");
+          _builder_1.append("} else {");
+          _builder_1.newLine();
+          _builder_1.append("\t\t\t");
+          _builder_1.append("eclipseContext.set(BPMTaskSummary.class, null);");
+          _builder_1.newLine();
+          _builder_1.append("\t\t");
+          _builder_1.append("}");
+          _builder_1.newLine();
+          body = _builder_1.toString();
         }
         if (!_matched) {
           if (_source instanceof DatamartEntity) {
             _matched=true;
             TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
-            DatamartDefinition _datamartRef_1 = ((TableDatamart) _dataMartTable_2).getDatamartRef();
-            DatamartSource _source_1 = _datamartRef_1.getSource();
+            DatamartSource _source_1 = ((TableDatamart) _dataMartTable_2).getDatamartRef().getSource();
             DatamartEntity datamartEntity = ((DatamartEntity) _source_1);
-            LEntity _entityRef = datamartEntity.getEntityRef();
-            Resource _eResource = table.eResource();
-            EObject _resolve = EcoreUtil2.resolve(_entityRef, _eResource);
+            EObject _resolve = EcoreUtil2.resolve(datamartEntity.getEntityRef(), table.eResource());
             LEntity entity = ((LEntity) _resolve);
             String alias = DatamartDefinitionUtil.getEntityIdAliasName(entity);
-            boolean _notEquals = (!Objects.equal(alias, null));
-            if (_notEquals) {
-              StringConcatenation _builder_2 = new StringConcatenation();
-              _builder_2.append(body, "");
-              _builder_2.newLineIfNotEmpty();
-              _builder_2.append("\t\t\t");
-              _builder_2.append("if\t(selection >= 0) {");
-              _builder_2.newLine();
-              _builder_2.append("\t\t\t\t");
-              _builder_2.append("id = dataSourceContainer.getStringValueByProperty(selection, \"");
-              String _lowerCase = alias.toLowerCase();
-              _builder_2.append(_lowerCase, "\t\t\t\t");
-              _builder_2.append("\");");
-              _builder_2.newLineIfNotEmpty();
-              _builder_2.append("\t\t\t");
-              _builder_2.append("}");
-              _builder_2.newLine();
-              _builder_2.append("\t\t\t");
-              _builder_2.append("if\t((id != null) && (operativeDtoContainer != null) && (operativeDtoContainer.getOperativeDtoIdColumn() != null)) {");
-              _builder_2.newLine();
-              _builder_2.append("\t\t\t\t");
-              _builder_2.append("msg\t= operativeDtoContainer.getOperativeDtoForId(id);");
-              _builder_2.newLine();
-              _builder_2.append("\t\t\t");
-              _builder_2.append("}");
-              _builder_2.newLine();
-              _builder_2.append("\t\t\t");
-              _builder_2.append("if\t(msg == null) {");
-              _builder_2.newLine();
-              _builder_2.append("\t\t\t\t");
-              _builder_2.append("msg = new EventBrokerMsg((String) id, \"");
-              TableDatamart _dataMartTable_3 = this.getDataMartTable(table);
-              DatamartDefinition _datamartRef_2 = _dataMartTable_3.getDatamartRef();
-              DatamartSource _source_2 = _datamartRef_2.getSource();
-              LEntity _entityRef_1 = ((DatamartEntity) _source_2).getEntityRef();
-              QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(((EObject) _entityRef_1));
-              _builder_2.append(_fullyQualifiedName, "\t\t\t\t");
-              _builder_2.append("\");");
-              _builder_2.newLineIfNotEmpty();
-              _builder_2.append("\t\t\t");
-              _builder_2.append("}");
-              _builder_2.newLine();
-              _builder_2.append("\t\t\t");
-              _builder_2.append("target = EventBrokerMsg.AUTOWIRED_ENTITY_PREFIX+\"");
-              TableDatamart _dataMartTable_4 = this.getDataMartTable(table);
-              DatamartDefinition _datamartRef_3 = ((TableDatamart) _dataMartTable_4).getDatamartRef();
-              DatamartSource _source_3 = _datamartRef_3.getSource();
-              LEntity _entityRef_2 = ((DatamartEntity) _source_3).getEntityRef();
-              String _name = _entityRef_2.getName();
-              _builder_2.append(_name, "\t\t\t");
-              _builder_2.append("\";");
-              _builder_2.newLineIfNotEmpty();
-              _builder_2.append("\t\t\t");
-              _builder_2.append("eventBroker.send(target, msg);");
-              body = _builder_2.toString();
+            if ((alias != null)) {
+              StringConcatenation _builder_1 = new StringConcatenation();
+              _builder_1.append(body);
+              _builder_1.newLineIfNotEmpty();
+              {
+                LEntityAttribute _primaryKeyAttribute = entity.getPrimaryKeyAttribute();
+                boolean _tripleNotEquals = (_primaryKeyAttribute != null);
+                if (_tripleNotEquals) {
+                  _builder_1.append("\t\t");
+                  _builder_1.append("EventDispatcherEvent evnt = new EventDispatcherEvent(EventDispatcherCommand.SELECT, \"");
+                  QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(this.baseType(entity));
+                  _builder_1.append(_fullyQualifiedName, "\t\t");
+                  _builder_1.append(".");
+                  String _idAttributeName = entity.getIdAttributeName();
+                  _builder_1.append(_idAttributeName, "\t\t");
+                  _builder_1.append("\", \"");
+                  QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(table);
+                  _builder_1.append(_fullyQualifiedName_1, "\t\t");
+                  _builder_1.append("\");");
+                  _builder_1.newLineIfNotEmpty();
+                  _builder_1.append("\t\t");
+                  _builder_1.append("evnt.addItem(EventDispatcherDataTag.ID, dataSourceContainer.getValueByProperty(selection, \"");
+                  String _lowerCase = alias.toLowerCase();
+                  _builder_1.append(_lowerCase, "\t\t");
+                  _builder_1.append("\"));");
+                  _builder_1.newLineIfNotEmpty();
+                  _builder_1.append("\t\t");
+                  _builder_1.append("eventDispatcher.sendEvent(evnt);");
+                  _builder_1.newLine();
+                }
+              }
+              body = _builder_1.toString();
             }
           }
         }
       }
     }
-    TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
-    EList<TableElement> _elements = _dataMartTable_2.getElements();
+    EList<TableElement> _elements = this.getDataMartTable(table).getElements();
     for (final TableElement element : _elements) {
       if ((element instanceof TableAxis)) {
         TableAxis axis = ((TableAxis) element);
+        int evntCnt = 0;
         EList<TableEvent> _events = axis.getEvents();
         for (final TableEvent event : _events) {
-          EList<TableBrokerDatamart> _brokerDatamarts = event.getBrokerDatamarts();
-          for (final TableBrokerDatamart datamart : _brokerDatamarts) {
+          {
+            StringConcatenation _builder_1 = new StringConcatenation();
+            _builder_1.append(body);
+            _builder_1.newLineIfNotEmpty();
             {
-              String _filter = datamart.getFilter();
-              boolean _notEquals = (!Objects.equal(_filter, null));
-              if (_notEquals) {
-                StringConcatenation _builder_2 = new StringConcatenation();
-                _builder_2.append(body, "");
-                _builder_2.newLineIfNotEmpty();
-                _builder_2.append("\t\t\t");
-                _builder_2.append("if(selection<0) {");
-                _builder_2.newLine();
-                _builder_2.append("\t\t\t\t");
-                _builder_2.append("target = \"");
-                String _filter_1 = datamart.getFilter();
-                _builder_2.append(_filter_1, "\t\t\t\t");
-                _builder_2.append("/clear\";");
-                _builder_2.newLineIfNotEmpty();
-                _builder_2.append("\t\t\t\t");
-                _builder_2.append("msg = new EventBrokerMsg(null, \"*\");");
-                _builder_2.newLine();
-                _builder_2.append("\t\t\t\t");
-                _builder_2.append("eventBroker.send(target, msg);");
-                _builder_2.newLine();
-                _builder_2.append("\t\t\t");
-                _builder_2.append("}");
-                _builder_2.newLine();
-                _builder_2.append("\t\t\t");
-                _builder_2.append("else {");
-                _builder_2.newLine();
-                body = _builder_2.toString();
-              } else {
-                LEntityReference _reference = datamart.getReference();
-                boolean _notEquals_1 = (!Objects.equal(_reference, null));
-                if (_notEquals_1) {
-                  StringConcatenation _builder_3 = new StringConcatenation();
-                  _builder_3.append(body, "");
-                  _builder_3.newLineIfNotEmpty();
-                  _builder_3.append("\t\t\t");
-                  _builder_3.append("if(selection<0) {");
-                  _builder_3.newLine();
-                  _builder_3.append("\t\t\t\t");
-                  _builder_3.append("target = \"");
-                  DatamartDefinition _datamartDef = datamart.getDatamartDef();
-                  LEntityReference _reference_1 = datamart.getReference();
-                  String _name = _reference_1.getName();
-                  String _buildTopic = this.buildTopic(_datamartDef, _name);
-                  _builder_3.append(_buildTopic, "\t\t\t\t");
-                  _builder_3.append("/clear\";");
-                  _builder_3.newLineIfNotEmpty();
-                  _builder_3.append("\t\t\t\t");
-                  _builder_3.append("msg = new EventBrokerMsg(null, \"*\");");
-                  _builder_3.newLine();
-                  _builder_3.append("\t\t\t\t");
-                  _builder_3.append("eventBroker.send(target, msg);");
-                  _builder_3.newLine();
-                  _builder_3.append("\t\t\t");
-                  _builder_3.append("}");
-                  _builder_3.newLine();
-                  _builder_3.append("\t\t\t");
-                  _builder_3.append("else {");
-                  _builder_3.newLine();
-                  body = _builder_3.toString();
-                }
-              }
               TableValueElement _source_1 = event.getSource();
               if ((_source_1 instanceof TableOrdinal)) {
-                StringConcatenation _builder_4 = new StringConcatenation();
-                _builder_4.append(body, "");
-                _builder_4.newLineIfNotEmpty();
-                _builder_4.append("\t\t\t\t");
-                _builder_4.append("target = \"");
-                String _filter_2 = datamart.getFilter();
-                _builder_4.append(_filter_2, "\t\t\t\t");
-                _builder_4.append("\";");
-                _builder_4.newLineIfNotEmpty();
-                _builder_4.append("\t\t\t\t");
-                _builder_4.append("msg = new EventBrokerMsg(null, dataSourceContainer.getStringValueByOrdinal(selection, ");
+                _builder_1.append("\t\t");
+                _builder_1.append("EventDispatcherEvent evnt");
+                _builder_1.append(evntCnt, "\t\t");
+                _builder_1.append(" = new EventDispatcherEvent(EventDispatcherCommand.SELECT, \"");
                 TableValueElement _source_2 = event.getSource();
                 String _valueRef = ((TableOrdinal) _source_2).getValueRef();
-                _builder_4.append(_valueRef, "\t\t\t\t");
-                _builder_4.append("));");
-                _builder_4.newLineIfNotEmpty();
-                _builder_4.append("\t\t\t\t");
-                _builder_4.append("eventBroker.send(target, msg);");
-                _builder_4.newLine();
-                _builder_4.append("\t\t\t");
-                _builder_4.append("}");
-                _builder_4.newLine();
-                body = _builder_4.toString();
+                _builder_1.append(_valueRef, "\t\t");
+                _builder_1.append("\", \"");
+                QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(table);
+                _builder_1.append(_fullyQualifiedName, "\t\t");
+                _builder_1.append("\");");
+                _builder_1.newLineIfNotEmpty();
               } else {
                 TableValueElement _source_3 = event.getSource();
-                if ((_source_3 instanceof TableAggregation)) {
-                  StringConcatenation _builder_5 = new StringConcatenation();
-                  _builder_5.append(body, "");
-                  _builder_5.newLineIfNotEmpty();
-                  _builder_5.append("\t\t\t\t");
-                  _builder_5.append("target = \"");
-                  String _filter_3 = datamart.getFilter();
-                  _builder_5.append(_filter_3, "\t\t\t\t");
-                  _builder_5.append("\";");
-                  _builder_5.newLineIfNotEmpty();
-                  _builder_5.append("\t\t\t\t");
-                  _builder_5.append("msg = new EventBrokerMsg(null, dataSourceContainer.getStringValueByAggregate(selection));");
-                  _builder_5.newLine();
-                  _builder_5.append("\t\t\t\t");
-                  _builder_5.append("eventBroker.send(target, msg);");
-                  _builder_5.newLine();
-                  _builder_5.append("\t\t\t");
-                  _builder_5.append("}");
-                  _builder_5.newLine();
-                  body = _builder_5.toString();
-                } else {
+                if ((_source_3 instanceof TableAttribute)) {
+                  _builder_1.append("\t\t");
+                  _builder_1.append("EventDispatcherEvent evnt");
+                  _builder_1.append(evntCnt, "\t\t");
+                  _builder_1.append(" = new EventDispatcherEvent(EventDispatcherCommand.SELECT, \"");
                   TableValueElement _source_4 = event.getSource();
-                  if ((_source_4 instanceof TableProperty)) {
-                    String _filter_4 = datamart.getFilter();
-                    boolean _notEquals_2 = (!Objects.equal(_filter_4, null));
-                    if (_notEquals_2) {
-                      StringConcatenation _builder_6 = new StringConcatenation();
-                      _builder_6.append(body, "");
-                      _builder_6.newLineIfNotEmpty();
-                      _builder_6.append("\t\t\t\t");
-                      _builder_6.append("target = \"");
-                      String _filter_5 = datamart.getFilter();
-                      _builder_6.append(_filter_5, "\t\t\t\t");
-                      _builder_6.append("\";");
-                      _builder_6.newLineIfNotEmpty();
-                      _builder_6.append("\t\t\t\t");
-                      _builder_6.append("msg = new EventBrokerMsg(null, dataSourceContainer.getStringValueByProperty(selection, \"");
-                      TableValueElement _source_5 = event.getSource();
-                      DatamartProperty _valueRef_1 = ((TableProperty) _source_5).getValueRef();
-                      LEntityAttribute _propertyRef = _valueRef_1.getPropertyRef();
-                      String _name_1 = _propertyRef.getName();
-                      _builder_6.append(_name_1, "\t\t\t\t");
-                      _builder_6.append("\"));");
-                      _builder_6.newLineIfNotEmpty();
-                      _builder_6.append("\t\t\t\t");
-                      _builder_6.append("eventBroker.send(target, msg);");
-                      _builder_6.newLine();
-                      _builder_6.append("\t\t\t");
-                      _builder_6.append("}");
-                      _builder_6.newLine();
-                      body = _builder_6.toString();
-                    } else {
-                      LEntityReference _reference_2 = datamart.getReference();
-                      boolean _notEquals_3 = (!Objects.equal(_reference_2, null));
-                      if (_notEquals_3) {
-                        StringConcatenation _builder_7 = new StringConcatenation();
-                        _builder_7.append(body, "");
-                        _builder_7.newLineIfNotEmpty();
-                        _builder_7.append("\t\t\t\t");
-                        _builder_7.append("target = \"");
-                        DatamartDefinition _datamartDef_1 = datamart.getDatamartDef();
-                        LEntityReference _reference_3 = datamart.getReference();
-                        String _name_2 = _reference_3.getName();
-                        String _buildTopic_1 = this.buildTopic(_datamartDef_1, _name_2);
-                        _builder_7.append(_buildTopic_1, "\t\t\t\t");
-                        _builder_7.append("\";");
-                        _builder_7.newLineIfNotEmpty();
-                        _builder_7.append("\t\t\t\t");
-                        _builder_7.append("msg = new EventBrokerMsg(null, dataSourceContainer.getStringValueByProperty(selection, \"");
-                        TableValueElement _source_6 = event.getSource();
-                        DatamartProperty _valueRef_2 = ((TableProperty) _source_6).getValueRef();
-                        LEntityAttribute _propertyRef_1 = _valueRef_2.getPropertyRef();
-                        String _name_3 = _propertyRef_1.getName();
-                        _builder_7.append(_name_3, "\t\t\t\t");
-                        _builder_7.append("\"));");
-                        _builder_7.newLineIfNotEmpty();
-                        _builder_7.append("\t\t\t\t");
-                        _builder_7.append("eventBroker.send(target, msg);");
-                        _builder_7.newLine();
-                        _builder_7.append("\t\t\t");
-                        _builder_7.append("}");
-                        _builder_7.newLine();
-                        body = _builder_7.toString();
-                      }
-                    }
-                  } else {
-                    TableValueElement _source_7 = event.getSource();
-                    if ((_source_7 instanceof TableTask)) {
-                      StringConcatenation _builder_8 = new StringConcatenation();
-                      _builder_8.append(body, "");
-                      _builder_8.newLineIfNotEmpty();
-                      _builder_8.append("\t\t\t\t");
-                      _builder_8.append("target = \"");
-                      String _filter_6 = datamart.getFilter();
-                      _builder_8.append(_filter_6, "\t\t\t\t");
-                      _builder_8.append("\";");
-                      _builder_8.newLineIfNotEmpty();
-                      _builder_8.append("\t\t\t\t");
-                      _builder_8.append("msg = new EventBrokerMsg(null, null, dataSourceContainer.getTaskId(selection));");
-                      _builder_8.newLine();
-                      _builder_8.append("\t\t\t\t");
-                      _builder_8.append("eventBroker.send(target, msg);");
-                      _builder_8.newLine();
-                      _builder_8.append("\t\t\t");
-                      _builder_8.append("}");
-                      _builder_8.newLine();
-                      body = _builder_8.toString();
-                    }
-                  }
+                  String _name = ((TableAttribute) _source_4).getValueRef().getAttributeRef().getName();
+                  _builder_1.append(_name, "\t\t");
+                  _builder_1.append("\", \"");
+                  QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(table);
+                  _builder_1.append(_fullyQualifiedName_1, "\t\t");
+                  _builder_1.append("\");");
+                  _builder_1.newLineIfNotEmpty();
                 }
               }
             }
+            {
+              TableValueElement _source_5 = event.getSource();
+              if ((_source_5 instanceof TableOrdinal)) {
+                _builder_1.append("\t\t");
+                _builder_1.append("evnt");
+                _builder_1.append(evntCnt, "\t\t");
+                _builder_1.append(".addItem(EventDispatcherDataTag.LIST, dataSourceContainer.getValueByProperty(selection, \"");
+                TableValueElement _source_6 = event.getSource();
+                String _valueRef_1 = ((TableOrdinal) _source_6).getValueRef();
+                _builder_1.append(_valueRef_1, "\t\t");
+                _builder_1.append("\"));");
+                _builder_1.newLineIfNotEmpty();
+                _builder_1.append("\t\t");
+                _builder_1.append("eventDispatcher.sendEvent(evnt");
+                _builder_1.append(evntCnt, "\t\t");
+                _builder_1.append(");");
+                _builder_1.newLineIfNotEmpty();
+              } else {
+                TableValueElement _source_7 = event.getSource();
+                if ((_source_7 instanceof TableAttribute)) {
+                  _builder_1.append("\t\t");
+                  _builder_1.append("evnt");
+                  _builder_1.append(evntCnt, "\t\t");
+                  _builder_1.append(".addItem(EventDispatcherDataTag.LIST, dataSourceContainer.getValueByProperty(selection, \"");
+                  TableValueElement _source_8 = event.getSource();
+                  String _name_1 = ((TableAttribute) _source_8).getValueRef().getAttributeRef().getName();
+                  _builder_1.append(_name_1, "\t\t");
+                  _builder_1.append("\"));");
+                  _builder_1.newLineIfNotEmpty();
+                  _builder_1.append("\t\t");
+                  _builder_1.append("eventDispatcher.sendEvent(evnt");
+                  _builder_1.append(evntCnt, "\t\t");
+                  _builder_1.append(");");
+                  _builder_1.newLineIfNotEmpty();
+                }
+              }
+            }
+            body = _builder_1.toString();
+            evntCnt = (evntCnt + 1);
           }
         }
       }
     }
-    StringConcatenation _builder_2 = new StringConcatenation();
-    _builder_2.append(body, "");
-    _builder_2.newLineIfNotEmpty();
-    _builder_2.append("\t    ");
-    _builder_2.append("} catch (Exception e) {");
-    _builder_2.newLine();
-    _builder_2.append("\t    \t");
-    _builder_2.append("Notification.show(\"sendEvent() caused \"+e.getLocalizedMessage()+\"!\",");
-    _builder_2.newLine();
-    _builder_2.append("\t    \t\t\t");
-    _builder_2.append("Type.ERROR_MESSAGE);");
-    _builder_2.newLine();
-    _builder_2.append("\t    ");
-    _builder_2.append("}");
-    _builder_2.newLine();
-    _builder_2.append("\t");
-    _builder_2.append("}");
-    _builder_2.newLine();
-    _builder_2.append("});");
-    _builder_2.newLine();
-    body = _builder_2.toString();
+    StringConcatenation _builder_1 = new StringConcatenation();
+    _builder_1.append(body);
+    _builder_1.newLineIfNotEmpty();
+    _builder_1.append("\t");
+    _builder_1.append("}");
+    _builder_1.newLine();
+    _builder_1.append("});");
+    _builder_1.newLine();
+    body = _builder_1.toString();
     return body;
   }
   
   public CharSequence getMsgValue(final LEntityAttribute attribute, final String string) {
     StringConcatenation _builder = new StringConcatenation();
-    _builder.append(this.CONVERT_METHOD_PREFIX, "");
-    String _typeName = this._modelExtensions.typeName(attribute);
-    String _firstUpper = StringExtensions.toFirstUpper(_typeName);
-    _builder.append(_firstUpper, "");
+    _builder.append(this.CONVERT_METHOD_PREFIX);
+    String _firstUpper = StringExtensions.toFirstUpper(this._modelExtensions.typeName(attribute));
+    _builder.append(_firstUpper);
     _builder.append("(");
-    _builder.append(string, "");
+    _builder.append(string);
     _builder.append(")");
     return _builder;
   }
@@ -6761,23 +5865,11 @@
       LEntity entity = ((DatamartEntity) _source_1).getEntityRef();
       EObject eObj = datamart.eContainer();
       while ((!(eObj instanceof DatamartPackage))) {
-        EObject _eContainer = eObj.eContainer();
-        eObj = _eContainer;
+        eObj = eObj.eContainer();
       }
-      boolean _notEquals = (!Objects.equal(eObj, null));
-      if (_notEquals) {
-        QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(((DatamartPackage) eObj));
-        String _string = _fullyQualifiedName.toString();
-        String pckName = _string.replace(".", "/");
-        String _concat = pckName.concat("/");
-        String _name = datamart.getName();
-        String _concat_1 = _concat.concat(_name);
-        String _concat_2 = _concat_1.concat("/");
-        String _name_1 = entity.getName();
-        String _concat_3 = _concat_2.concat(_name_1);
-        String _concat_4 = _concat_3.concat("/");
-        String _concat_5 = _concat_4.concat(referenceName);
-        topic = _concat_5;
+      if ((eObj != null)) {
+        String pckName = this._iQualifiedNameProvider.getFullyQualifiedName(((DatamartPackage) eObj)).toString().replace(".", "/");
+        topic = pckName.concat("/").concat(datamart.getName()).concat("/").concat(entity.getName()).concat("/").concat(referenceName);
       }
     }
     return topic;
@@ -6793,9 +5885,9 @@
       {
         Integer i = new Integer(color);
         StringConcatenation _builder = new StringConcatenation();
-        _builder.append(colorHex, "");
+        _builder.append(colorHex);
         String _format = String.format("%02x", i);
-        _builder.append(_format, "");
+        _builder.append(_format);
         colorHex = _builder.toString();
       }
     }
@@ -6808,12 +5900,12 @@
   public String toRGB(final String rgb) {
     StringConcatenation _builder = new StringConcatenation();
     _builder.append("rgb(");
-    _builder.append(rgb, "");
+    _builder.append(rgb);
     _builder.append(")");
     return _builder.toString();
   }
   
-  public void initIdMap(final Table table, final HashMap<String, IdProperty> map) {
+  public void initIdMap(final Table table, final HashMap<String, IdAttribute> map) {
     map.clear();
     TableDatamart _dataMartTable = this.getDataMartTable(table);
     if ((_dataMartTable instanceof TableDatamart)) {
@@ -6828,100 +5920,108 @@
     }
   }
   
-  public void iterateIdMap(final DatamartEntity entity, final HashMap<String, IdProperty> map) {
-    IdProperty prop = new IdProperty();
+  public void iterateIdMap(final DatamartEntity entity, final HashMap<String, IdAttribute> map) {
+    IdAttribute prop = new IdAttribute();
     prop.collapsed = true;
-    LEntity _entityRef = entity.getEntityRef();
-    String _entityIdAliasName = DatamartDefinitionUtil.getEntityIdAliasName(_entityRef);
-    map.put(_entityIdAliasName, prop);
+    map.put(DatamartDefinitionUtil.getEntityIdAliasName(entity.getEntityRef()), prop);
     EList<DatamartNavigation> _navigations = entity.getNavigations();
     for (final DatamartNavigation navigation : _navigations) {
-      DatamartEntity _datamartEntity = navigation.getDatamartEntity();
-      this.iterateIdMap(_datamartEntity, map);
+      this.iterateIdMap(navigation.getDatamartEntity(), map);
     }
   }
   
-  public LEntity getEntity(final TableBrokerDatamart datamart) {
-    DatamartDefinition _datamartDef = datamart.getDatamartDef();
-    DatamartSource _source = _datamartDef.getSource();
-    if ((_source instanceof DatamartEntity)) {
-      DatamartDefinition _datamartDef_1 = datamart.getDatamartDef();
-      DatamartSource _source_1 = _datamartDef_1.getSource();
-      return ((DatamartEntity) _source_1).getEntityRef();
-    }
-    return null;
-  }
-  
   public CharSequence localeChanged(final Table table) {
     StringConcatenation _builder = new StringConcatenation();
-    _builder.append("this.locale = locale;");
-    _builder.newLine();
-    _builder.append("if(tableFilterDecorator != null) {");
+    _builder.append("if(initDone) {");
     _builder.newLine();
     _builder.append("\t");
     _builder.append("tableFilterDecorator.setLocale(locale);");
     _builder.newLine();
-    _builder.append("}");
-    _builder.newLine();
-    _builder.append("for(CellSetFilterTable table:tables) {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("table.setLocale(locale);");
-    _builder.newLine();
     {
-      boolean _and = false;
-      boolean _and_1 = false;
-      TableOption _tabletype = table.getTabletype();
-      if (!(_tabletype instanceof TableTable)) {
-        _and_1 = false;
-      } else {
-        TableDatamart _dataMartTable = this.getDataMartTable(table);
-        DatamartDefinition _datamartRef = ((TableDatamart) _dataMartTable).getDatamartRef();
-        boolean _isDescription = _datamartRef.isDescription();
-        _and_1 = _isDescription;
-      }
-      if (!_and_1) {
-        _and = false;
-      } else {
-        TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
-        DatamartDefinition _datamartRef_1 = ((TableDatamart) _dataMartTable_1).getDatamartRef();
-        String _descriptionValue = _datamartRef_1.getDescriptionValue();
-        boolean _notEquals = (!Objects.equal(_descriptionValue, null));
-        _and = _notEquals;
-      }
-      if (_and) {
+      boolean _isBean = this.isBean(table);
+      if (_isBean) {
         _builder.append("\t");
-        _builder.append("table.setDescription(dslMetadataService.translate(locale.toLanguageTag(), \"");
-        TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
-        DatamartDefinition _datamartRef_2 = ((TableDatamart) _dataMartTable_2).getDatamartRef();
-        String _descriptionValue_1 = _datamartRef_2.getDescriptionValue();
-        _builder.append(_descriptionValue_1, "\t");
-        _builder.append("\"));");
-        _builder.newLineIfNotEmpty();
+        _builder.append("if(table != null) {");
+        _builder.newLine();
+        _builder.append("\t");
+        _builder.append("\t");
+        _builder.append("table.setLocale(locale);");
+        _builder.newLine();
+        _builder.append("\t");
+        _builder.append("}");
+        _builder.newLine();
+      } else {
+        _builder.append("\t");
+        _builder.append("for(CellSetFilterTable table:tables) {");
+        _builder.newLine();
+        _builder.append("\t");
+        _builder.append("\t");
+        _builder.append("table.setLocale(locale);");
+        _builder.newLine();
+        {
+          if (((this.isTable(table) && 
+            ((TableDatamart) this.getDataMartTable(table)).getDatamartRef().isDescription()) && 
+            (((TableDatamart) this.getDataMartTable(table)).getDatamartRef().getDescriptionValue() != null))) {
+            _builder.append("\t");
+            _builder.append("\t");
+            _builder.append("table.setDescription(dslMetadataService.translate(locale.toLanguageTag(), \"");
+            TableDatamart _dataMartTable = this.getDataMartTable(table);
+            String _descriptionValue = ((TableDatamart) _dataMartTable).getDatamartRef().getDescriptionValue();
+            _builder.append(_descriptionValue, "\t\t");
+            _builder.append("\"));");
+            _builder.newLineIfNotEmpty();
+          }
+        }
+        _builder.append("\t");
+        _builder.append("}");
+        _builder.newLine();
       }
     }
-    _builder.append("}");
+    _builder.append("\t");
+    _builder.append("for(String key:attributeLookupMap.keySet()) {");
     _builder.newLine();
-    _builder.append("if(filterGenerator != null) {");
+    _builder.append("\t\t");
+    _builder.append("attributeLookupMap.get(key).setLocale(locale);");
     _builder.newLine();
     _builder.append("\t");
-    _builder.append("filterGenerator.setLocale(locale);");
-    _builder.newLine();
     _builder.append("}");
     _builder.newLine();
+    _builder.append("\t");
+    _builder.append("for(Component tabSheet : tabSheets.keySet()) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("((TabSheet)tabSheet).setCaption(tabSheets.get(tabSheet).stream().map(x->dslMetadataService.translate(locale.toLanguageTag(), x)).collect(Collectors.joining(\"/\")));");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
     _builder.append("if(dataSourceContainer != null) {");
     _builder.newLine();
-    _builder.append("\t");
+    _builder.append("\t\t");
+    {
+      boolean _isBean_1 = this.isBean(table);
+      if (_isBean_1) {
+        _builder.append("//");
+      }
+    }
     _builder.append("dataSourceContainer.setLocale(locale);");
-    _builder.newLine();
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t");
     _builder.append("}");
     _builder.newLine();
-    _builder.append("if(layoutManager != null) {");
-    _builder.newLine();
     _builder.append("\t");
     _builder.append("layoutManager.setLabelValue(dslMetadataService.translate(locale.toLanguageTag(), \"");
-    String _name = table.getName();
-    _builder.append(_name, "\t");
+    {
+      boolean _isDescription = table.isDescription();
+      if (_isDescription) {
+        String _descriptionValue_1 = table.getDescriptionValue();
+        _builder.append(_descriptionValue_1, "\t");
+      } else {
+        String _name = table.getName();
+        _builder.append(_name, "\t");
+      }
+    }
     _builder.append("\"));");
     _builder.newLineIfNotEmpty();
     _builder.append("}");
@@ -6936,86 +6036,83 @@
       LEntity entity = ((LEntity) null);
       String alias = ((String) null);
       String dtoFqn = ((String) null);
+      LDataType keyType = ((LDataType) null);
       TableDatamart _dataMartTable = this.getDataMartTable(table);
       if ((_dataMartTable instanceof TableDatamart)) {
         TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
-        DatamartDefinition _datamartRef = ((TableDatamart) _dataMartTable_1).getDatamartRef();
-        DatamartSource _source = _datamartRef.getSource();
+        DatamartSource _source = ((TableDatamart) _dataMartTable_1).getDatamartRef().getSource();
         boolean _matched = false;
-        if (!_matched) {
-          if (_source instanceof DatamartEntity) {
-            _matched=true;
-            TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
-            DatamartDefinition _datamartRef_1 = ((TableDatamart) _dataMartTable_2).getDatamartRef();
-            DatamartSource _source_1 = _datamartRef_1.getSource();
-            datamartEntity = ((DatamartEntity) _source_1);
-            LEntity _entityRef = datamartEntity.getEntityRef();
-            Resource _eResource = table.eResource();
-            EObject _resolve = EcoreUtil2.resolve(_entityRef, _eResource);
-            entity = ((LEntity) _resolve);
-            String _entityIdAliasName = DatamartDefinitionUtil.getEntityIdAliasName(entity);
-            String _lowerCase = _entityIdAliasName.toLowerCase();
-            alias = _lowerCase;
-            String _dtoFQNForLEntity = EntityUtils.getDtoFQNForLEntity(entity);
-            dtoFqn = _dtoFQNForLEntity;
-          }
+        if (_source instanceof DatamartEntity) {
+          _matched=true;
+          TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
+          DatamartSource _source_1 = ((TableDatamart) _dataMartTable_2).getDatamartRef().getSource();
+          datamartEntity = ((DatamartEntity) _source_1);
+          EObject _resolve = EcoreUtil2.resolve(datamartEntity.getEntityRef(), table.eResource());
+          entity = ((LEntity) _resolve);
+          keyType = this._modelExtensions.getDatatype(entity.getPrimaryKeyAttribute());
+          alias = DatamartDefinitionUtil.getEntityIdAliasName(entity).toLowerCase();
+          dtoFqn = EntityUtils.getDtoFQNForLEntity(entity);
         }
       }
       StringConcatenation _builder = new StringConcatenation();
       _builder.append("IBlipBPMWorkloadModifiableItem task = (IBlipBPMWorkloadModifiableItem)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_START_INFO);");
       _builder.newLine();
-      _builder.append("TaskSummary taskSummary = (TaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);");
+      _builder.append("BPMTaskSummary taskSummary = (BPMTaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);");
       _builder.newLine();
-      _builder.append("IDto workloadDto = taskClient.getWorkloadDto(taskSummary);");
-      _builder.newLine();
-      _builder.append("List<IDto> operativeDtos = task.getOperativeDtos(workloadDto);");
-      _builder.newLine();
-      _builder.append("if\t(operativeDtos != null) {");
+      _builder.append("if(taskClient != null) {");
       _builder.newLine();
       _builder.append("\t");
+      _builder.append("List<Integer> selections = new ArrayList<>();");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("IDto workloadDto = taskClient.getWorkloadDto(taskSummary);");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("List<IDto> operativeDtos = task.getOperativeDtos(workloadDto);");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("if\t(operativeDtos != null) {");
+      _builder.newLine();
+      _builder.append("\t\t");
       _builder.append("Set<String> ids = new TreeSet<String>();");
       _builder.newLine();
-      _builder.append("    ");
+      _builder.append("\t    ");
       _builder.append("for\t(IDto operativeDto : operativeDtos) {");
       _builder.newLine();
-      _builder.append("    \t");
+      _builder.append("\t    \t");
       _builder.append("ids.add(String.valueOf(((");
-      _builder.append(dtoFqn, "    \t");
+      _builder.append(dtoFqn, "\t    \t");
       _builder.append(")operativeDto).getId()));");
       _builder.newLineIfNotEmpty();
-      _builder.append("    ");
+      _builder.append("\t    ");
       _builder.append("}");
       _builder.newLine();
-      _builder.append("    ");
+      _builder.append("\t    ");
       _builder.append("for\t(Object selection : dataSourceContainer.getAllItemIds()) {");
       _builder.newLine();
-      _builder.append("        ");
+      _builder.append("\t        ");
       _builder.append("String idValue = dataSourceContainer.getStringValueByProperty((Integer)selection,\"");
-      _builder.append(alias, "        ");
+      _builder.append(alias, "\t        ");
       _builder.append("\");");
       _builder.newLineIfNotEmpty();
-      _builder.append("        ");
-      _builder.append("if\t(idValue.endsWith(\".0\")) {");
-      _builder.newLine();
-      _builder.append("        \t");
-      _builder.append("idValue = idValue.substring(0, idValue.length()-2);");
-      _builder.newLine();
-      _builder.append("        ");
-      _builder.append("}");
-      _builder.newLine();
-      _builder.append("    \t");
+      _builder.append("\t    \t");
       _builder.append("if\t(ids.contains(idValue)) {");
       _builder.newLine();
-      _builder.append("    \t\t");
-      _builder.append("selectTable.setCheckBox(selection, true);");
+      _builder.append("\t    \t\t");
+      _builder.append("selections.add((Integer)selection);");
       _builder.newLine();
-      _builder.append("    \t");
+      _builder.append("\t    \t");
       _builder.append("}");
       _builder.newLine();
-      _builder.append("    ");
+      _builder.append("\t    ");
       _builder.append("}");
       _builder.newLine();
-      _builder.append("    \t");
+      _builder.append("\t");
+      _builder.append("}");
+      _builder.newLine();
+      _builder.append("\t");
+      _builder.append("selectTable.setValue(selections);");
+      _builder.newLine();
       _builder.append("}");
       _builder.newLine();
       _xblockexpression = _builder;
@@ -7027,54 +6124,61 @@
     StringConcatenation _builder = new StringConcatenation();
     _builder.append("IBlipBPMWorkloadModifiableItem task = (IBlipBPMWorkloadModifiableItem)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_START_INFO);");
     _builder.newLine();
-    _builder.append("TaskSummary taskSummary = (TaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);");
+    _builder.append("BPMTaskSummary taskSummary = (BPMTaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);");
     _builder.newLine();
+    _builder.append("if(taskClient != null) {");
+    _builder.newLine();
+    _builder.append("\t");
     _builder.append("IDto workloadDto = taskClient.getWorkloadDto(taskSummary);");
     _builder.newLine();
+    _builder.append("\t");
     _builder.append("if\t((taskClient != null) && (task != null) && (workloadDto != null)) {");
     _builder.newLine();
-    _builder.append("\t");
+    _builder.append("\t\t");
     _builder.append("Object values = selectTable.getValue();");
     _builder.newLine();
-    _builder.append("\t        ");
+    _builder.append("\t\t");
     _builder.append("for\t(Object selection : dataSourceContainer.getAllItemIds()) {");
     _builder.newLine();
-    _builder.append("\t        \t");
+    _builder.append("\t\t\t");
     _builder.append("boolean selected = false;");
     _builder.newLine();
-    _builder.append("\t        \t");
+    _builder.append("\t\t\t");
     _builder.append("if\t(values instanceof Integer) {");
     _builder.newLine();
-    _builder.append("\t        \t\t");
+    _builder.append("\t\t\t\t");
     _builder.append("selected = (values == selection);");
     _builder.newLine();
-    _builder.append("\t        \t");
+    _builder.append("\t\t\t");
     _builder.append("}");
     _builder.newLine();
-    _builder.append("\t        \t");
+    _builder.append("\t\t\t");
     _builder.append("else {");
     _builder.newLine();
-    _builder.append("\t            \t");
+    _builder.append("\t\t    \t");
     _builder.append("if\t((values instanceof Collection<?>) && !((Collection<?>)values).isEmpty()) {");
     _builder.newLine();
-    _builder.append("\t            \t\t");
+    _builder.append("\t\t    \t\t");
     _builder.append("selected = ((Collection<?>)values).contains(selection);");
     _builder.newLine();
-    _builder.append("\t            \t");
+    _builder.append("\t\t    \t");
     _builder.append("}");
     _builder.newLine();
-    _builder.append("\t        \t");
+    _builder.append("\t\t\t");
     _builder.append("}");
     _builder.newLine();
-    _builder.append("\t    \t\t");
+    _builder.append("\t\t\t");
     _builder.append("addOrRemoveItemToWorkloadDto(task, workloadDto, (Integer)selection, selected);");
     _builder.newLine();
-    _builder.append("\t        ");
+    _builder.append("\t\t");
     _builder.append("}");
     _builder.newLine();
-    _builder.append("\t");
+    _builder.append("\t\t");
     _builder.append("taskClient.setWorkloadDto(taskSummary, workloadDto);");
     _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
     _builder.append("}");
     _builder.newLine();
     return _builder;
@@ -7087,29 +6191,22 @@
       LEntity entity = ((LEntity) null);
       String alias = ((String) null);
       String dtoFqn = ((String) null);
+      LDataType keyType = ((LDataType) null);
       TableDatamart _dataMartTable = this.getDataMartTable(table);
       if ((_dataMartTable instanceof TableDatamart)) {
         TableDatamart _dataMartTable_1 = this.getDataMartTable(table);
-        DatamartDefinition _datamartRef = ((TableDatamart) _dataMartTable_1).getDatamartRef();
-        DatamartSource _source = _datamartRef.getSource();
+        DatamartSource _source = ((TableDatamart) _dataMartTable_1).getDatamartRef().getSource();
         boolean _matched = false;
-        if (!_matched) {
-          if (_source instanceof DatamartEntity) {
-            _matched=true;
-            TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
-            DatamartDefinition _datamartRef_1 = ((TableDatamart) _dataMartTable_2).getDatamartRef();
-            DatamartSource _source_1 = _datamartRef_1.getSource();
-            datamartEntity = ((DatamartEntity) _source_1);
-            LEntity _entityRef = datamartEntity.getEntityRef();
-            Resource _eResource = table.eResource();
-            EObject _resolve = EcoreUtil2.resolve(_entityRef, _eResource);
-            entity = ((LEntity) _resolve);
-            String _entityIdAliasName = DatamartDefinitionUtil.getEntityIdAliasName(entity);
-            String _lowerCase = _entityIdAliasName.toLowerCase();
-            alias = _lowerCase;
-            String _dtoFQNForLEntity = EntityUtils.getDtoFQNForLEntity(entity);
-            dtoFqn = _dtoFQNForLEntity;
-          }
+        if (_source instanceof DatamartEntity) {
+          _matched=true;
+          TableDatamart _dataMartTable_2 = this.getDataMartTable(table);
+          DatamartSource _source_1 = ((TableDatamart) _dataMartTable_2).getDatamartRef().getSource();
+          datamartEntity = ((DatamartEntity) _source_1);
+          EObject _resolve = EcoreUtil2.resolve(datamartEntity.getEntityRef(), table.eResource());
+          entity = ((LEntity) _resolve);
+          alias = DatamartDefinitionUtil.getEntityIdAliasName(entity).toLowerCase();
+          keyType = this._modelExtensions.getDatatype(entity.getPrimaryKeyAttribute());
+          dtoFqn = EntityUtils.getDtoFQNForLEntity(entity);
         }
       }
       StringConcatenation _builder = new StringConcatenation();
@@ -7134,11 +6231,20 @@
       _builder.append("\t\t\t");
       _builder.append(".getService(");
       _builder.append(dtoFqn, "\t\t\t");
-      _builder.append(".class); ");
+      _builder.append(".class);");
       _builder.newLineIfNotEmpty();
-      _builder.append("\t");
-      _builder.append("operativeDto = dtoService.get((int) Double.parseDouble(idValue));");
-      _builder.newLine();
+      {
+        boolean _equals = "int".equals(keyType.getName());
+        if (_equals) {
+          _builder.append("\t");
+          _builder.append("operativeDto = dtoService.get((int) Integer.parseInt(idValue));");
+          _builder.newLine();
+        } else {
+          _builder.append("\t");
+          _builder.append("operativeDto = dtoService.get(idValue);");
+          _builder.newLine();
+        }
+      }
       _builder.append("}");
       _builder.newLine();
       _builder.append("catch (Exception e) {");
@@ -7205,15 +6311,22 @@
     StringConcatenation _builder = new StringConcatenation();
     _builder.append("IBlipBPMWorkloadModifiableItem task = (IBlipBPMWorkloadModifiableItem)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_START_INFO);");
     _builder.newLine();
-    _builder.append("TaskSummary taskSummary = (TaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);");
+    _builder.append("BPMTaskSummary taskSummary = (BPMTaskSummary)getTransientDataVariable(IBlipBPMConstants.VARIABLE_TASK_JBPM_SUMMARY);");
     _builder.newLine();
+    _builder.append("if(taskClient != null) {");
+    _builder.newLine();
+    _builder.append("\t");
     _builder.append("IDto workloadDto = taskClient.getWorkloadDto(taskSummary);");
     _builder.newLine();
+    _builder.append("\t");
     _builder.append("if\t((taskClient != null) && (task != null) && (workloadDto != null)) {");
     _builder.newLine();
-    _builder.append("    ");
+    _builder.append("\t    ");
     _builder.append("task.removeAllOperativeDtos(workloadDto);");
     _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
     _builder.append("}");
     _builder.newLine();
     return _builder;
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/TableModelGenerator.java b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/TableModelGenerator.java
index fbcdc9b..fe5aee5 100644
--- a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/TableModelGenerator.java
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/jvmmodel/TableModelGenerator.java
@@ -38,31 +38,43 @@
 import java.util.UUID;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 import javax.inject.Inject;
-import org.drools.SystemEventListenerFactory;
-import org.drools.event.process.ProcessCompletedEvent;
 import org.eclipse.bpmn2.Task;
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.di.extensions.EventUtils;
 import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.e4.ui.di.Focus;
 import org.eclipse.e4.ui.model.application.MApplication;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.osbp.bpm.api.AbstractBlipBPMFunctionProvider;
+import org.eclipse.osbp.bpm.api.BPMOperation;
+import org.eclipse.osbp.bpm.api.BPMTaskEventType;
+import org.eclipse.osbp.bpm.api.BPMTaskSummary;
+import org.eclipse.osbp.bpm.api.BPMTaskUserEvent;
 import org.eclipse.osbp.bpm.api.IBlipBPMConstants;
+import org.eclipse.osbp.bpm.api.IBlipBPMFunctionProvider;
 import org.eclipse.osbp.bpm.api.IBlipBPMStartInfo;
 import org.eclipse.osbp.bpm.api.IBlipBPMWorkloadModifiableItem;
 import org.eclipse.osbp.dsl.common.datatypes.IDto;
 import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
-import org.eclipse.osbp.dsl.dto.lib.services.IDTOServiceWithMutablePersistence;
 import org.eclipse.osbp.eventbroker.EventBrokerMsg;
 import org.eclipse.osbp.preferences.ProductConfiguration;
+import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent;
+import org.eclipse.osbp.runtime.common.filter.IDTOServiceWithMutablePersistence;
+import org.eclipse.osbp.runtime.web.vaadin.common.data.IBeanSearchServiceFactory;
 import org.eclipse.osbp.ui.api.contextfunction.IViewEmbeddedProvider;
-import org.eclipse.osbp.ui.api.datamart.DerivedOlapException;
+import org.eclipse.osbp.ui.api.customfields.IBlobService;
+import org.eclipse.osbp.ui.api.datamart.DatamartFilter;
+import org.eclipse.osbp.ui.api.datamart.DatamartPrimary;
+import org.eclipse.osbp.ui.api.datamart.IDatamartFilterGenerator;
+import org.eclipse.osbp.ui.api.e4.IE4Table;
 import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
 import org.eclipse.osbp.utils.constants.ExtendedDate;
 import org.eclipse.osbp.utils.vaadin.SelectUserWindow;
 import org.eclipse.osbp.utils.vaadin.ViewLayoutManager;
+import org.eclipse.osbp.vaaclipse.common.ecview.api.IECViewSessionHelper;
+import org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum;
 import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils;
 import org.eclipse.osbp.xtext.blip.BlipItem;
 import org.eclipse.osbp.xtext.datamart.common.AEntityDatamart;
@@ -74,6 +86,7 @@
 import org.eclipse.osbp.xtext.datamart.common.olap.DerivedPosition;
 import org.eclipse.osbp.xtext.datamart.common.sql.OperativeDtoContainer;
 import org.eclipse.osbp.xtext.i18n.I18NModelGenerator;
+import org.eclipse.osbp.xtext.table.common.BeanFilterTable;
 import org.eclipse.osbp.xtext.table.common.CellSetFilterTable;
 import org.eclipse.osbp.xtext.table.common.CellSetIndexedContainer;
 import org.eclipse.osbp.xtext.table.common.CellSetPagedFilterTable;
@@ -81,22 +94,11 @@
 import org.eclipse.osbp.xtext.table.common.TableFilterDecorator;
 import org.eclipse.osbp.xtext.table.common.TableFilterGenerator;
 import org.eclipse.osbp.xtext.table.generator.TableGridSourceGenerator;
-import org.eclipse.xtext.common.types.JvmType;
-import org.eclipse.xtext.common.types.JvmTypeReference;
 import org.eclipse.xtext.generator.IFileSystemAccess;
 import org.eclipse.xtext.xbase.compiler.GeneratorConfig;
 import org.eclipse.xtext.xbase.compiler.ImportManager;
 import org.eclipse.xtext.xbase.compiler.output.TreeAppendable;
-import org.eclipse.xtext.xbase.lib.Exceptions;
 import org.eclipse.xtext.xbase.lib.Extension;
-import org.jbpm.task.Status;
-import org.jbpm.task.event.TaskEventListener;
-import org.jbpm.task.event.entity.TaskUserEvent;
-import org.jbpm.task.query.TaskSummary;
-import org.jbpm.task.service.Operation;
-import org.jbpm.task.service.PermissionDeniedException;
-import org.jbpm.task.service.mina.MinaTaskClientConnector;
-import org.jbpm.task.service.mina.MinaTaskClientHandler;
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventHandler;
 import org.vaadin.hene.popupbutton.PopupButton;
@@ -110,43 +112,108 @@
   @Extension
   private BasicDslGeneratorUtils _basicDslGeneratorUtils;
   
+  @Override
   public TreeAppendable createAppendable(final EObject context, final ImportManager importManager, final GeneratorConfig config) {
     TreeAppendable _xblockexpression = null;
     {
-      Resource _eResource = context.eResource();
-      this.setBuilder(_eResource);
-      JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(String.class);
-      JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(String.class);
-      JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(HashMap.class, _typeRef, _typeRef_1);
-      JvmType _type = _typeRef_2.getType();
-      importManager.addImportFor(_type);
-      JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(String.class);
-      JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(String.class);
-      JvmTypeReference _typeRef_5 = this._typeReferenceBuilder.typeRef(Map.class, _typeRef_3, _typeRef_4);
-      JvmType _type_1 = _typeRef_5.getType();
-      importManager.addImportFor(_type_1);
-      JvmTypeReference _typeRef_6 = this._typeReferenceBuilder.typeRef(String.class);
-      JvmTypeReference _typeRef_7 = this._typeReferenceBuilder.typeRef(Collection.class, _typeRef_6);
-      JvmType _type_2 = _typeRef_7.getType();
-      importManager.addImportFor(_type_2);
-      this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, Property.ValueChangeListener.class, Label.class, List.class, Set.class, TreeSet.class, Iterator.class, ArrayList.class, Page.class, Page.Styles.class, DerivedAxis.class, DerivedPosition.class, DerivedMember.class, HorizontalLayout.class, TabSheet.class, Notification.class, Button.ClickEvent.class, Button.class, Notification.Type.class, CustomTable.Align.class, OperativeDtoContainer.class, DerivedHierarchy.class, DerivedLevel.class, DerivedOlapException.class, IEventBroker.class, PopupButton.class, CellSetFilterTable.class, CellSetPagedFilterTable.class, CheckboxSelectionCellSetFilterTable.class, CustomTable.class, CustomTable.RowHeaderMode.class, Container.class, CellSetIndexedContainer.class, TableFilterDecorator.class, TableFilterGenerator.class, Date.class, ExtendedDate.class, TimeUnit.class, EventHandler.class, Event.class, EventUtils.class, ContentMode.class, EventBrokerMsg.class, Status.class, Operation.class, Executors.class, TaskSummary.class, TaskEventListener.class, TaskUserEvent.class, ProcessCompletedEvent.class, PermissionDeniedException.class, SelectUserWindow.class, MinaTaskClientConnector.class, MinaTaskClientHandler.class, SystemEventListenerFactory.class, UUID.class, ProductConfiguration.class, AEntityDatamart.class, IViewEmbeddedProvider.class, MApplication.class, ContextInjectionFactory.class, UI.class, Locale.class, IThemeResourceService.class, IThemeResourceService.ThemeResourceType.class, AbstractBlipBPMFunctionProvider.class, IBlipBPMConstants.class, IBlipBPMStartInfo.class, IBlipBPMWorkloadModifiableItem.class, IDto.class, Task.class, BlipItem.class, IDTOServiceWithMutablePersistence.class, DtoServiceAccess.class, DatamartFilterGenerator.class, ViewLayoutManager.class);
+      this.setBuilder(context.eResource());
+      this._basicDslGeneratorUtils.addImportFor(this, importManager, 
+        this._typeReferenceBuilder, 
+        HashMap.class, 
+        Map.class, 
+        Collection.class, 
+        Property.ValueChangeListener.class, 
+        Label.class, 
+        List.class, 
+        Set.class, 
+        TreeSet.class, 
+        Iterator.class, 
+        ArrayList.class, 
+        Page.class, 
+        Page.Styles.class, 
+        DerivedAxis.class, 
+        DerivedPosition.class, 
+        DerivedMember.class, 
+        HorizontalLayout.class, 
+        TabSheet.class, 
+        Notification.class, 
+        Button.ClickEvent.class, 
+        Button.class, 
+        Notification.Type.class, 
+        CustomTable.Align.class, 
+        OperativeDtoContainer.class, 
+        DerivedHierarchy.class, 
+        DerivedLevel.class, 
+        IEventBroker.class, 
+        PopupButton.class, 
+        CellSetFilterTable.class, 
+        BeanFilterTable.class, 
+        CellSetPagedFilterTable.class, 
+        CheckboxSelectionCellSetFilterTable.class, 
+        CustomTable.class, 
+        CustomTable.RowHeaderMode.class, 
+        Container.class, 
+        CellSetIndexedContainer.class, 
+        TableFilterDecorator.class, 
+        TableFilterGenerator.class, 
+        Date.class, 
+        ExtendedDate.class, 
+        TimeUnit.class, 
+        EventHandler.class, 
+        Event.class, 
+        EventUtils.class, 
+        ContentMode.class, 
+        EventBrokerMsg.class, 
+        Executors.class, 
+        SelectUserWindow.class, 
+        UUID.class, 
+        ProductConfiguration.class, 
+        AEntityDatamart.class, 
+        IViewEmbeddedProvider.class, 
+        MApplication.class, 
+        ContextInjectionFactory.class, 
+        UI.class, 
+        Locale.class, 
+        IThemeResourceService.class, 
+        IThemeResourceService.ThemeResourceType.class, 
+        IBlipBPMFunctionProvider.class, 
+        IBlipBPMConstants.class, 
+        IBlipBPMStartInfo.class, 
+        IBlipBPMWorkloadModifiableItem.class, 
+        IDto.class, 
+        Task.class, 
+        BlipItem.class, 
+        IDTOServiceWithMutablePersistence.class, 
+        DtoServiceAccess.class, 
+        DatamartFilterGenerator.class, 
+        ViewLayoutManager.class, 
+        IDatamartFilterGenerator.FilterChangeListener.class, 
+        EventDispatcherEvent.class, 
+        EventDispatcherEvent.EventDispatcherDataTag.class, 
+        EventDispatcherEvent.EventDispatcherCommand.class, 
+        DatamartFilter.class, 
+        DatamartPrimary.class, 
+        IE4Table.class, 
+        Focus.class, 
+        Collectors.class, 
+        IBeanSearchServiceFactory.class, 
+        IECViewSessionHelper.class, 
+        IBlobService.class, 
+        BPMTaskSummary.class, 
+        BPMOperation.class, 
+        BPMTaskEventType.class, 
+        BPMTaskUserEvent.class, 
+        SelectWorkloadActionEnum.class);
       _xblockexpression = super.createAppendable(context, importManager, config);
     }
     return _xblockexpression;
   }
   
+  @Override
   public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
-    super.addTranslatables("save,cancel,securityMessage,Page,Items per page,showAll,endDate,startDate,setFilter,clearFilter,lesser_than,greater_than,equal_to,ok,reset,[x]");
-    try {
-      super.doGenerate(resource, fsa);
-    } catch (final Throwable _t) {
-      if (_t instanceof Throwable) {
-        final Throwable e = (Throwable)_t;
-        System.err.println(e);
-      } else {
-        throw Exceptions.sneakyThrow(_t);
-      }
-    }
+    this.addTranslatables(
+      "save,cancel,securityMessage,Page,Items per page,showAll,endDate,startDate,setFilter,clearFilter,lesser_than,greater_than,equal_to,ok,reset,[x]");
+    super.doGenerate(resource, fsa);
     this.delegate.doGenerate(resource, fsa);
   }
 }
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/scoping/.gitignore b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/scoping/.gitignore
new file mode 100644
index 0000000..b4b0dbb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/scoping/.gitignore
@@ -0,0 +1 @@
+/TableDSLScopeProvider.java
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/validation/.gitignore b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/validation/.gitignore
new file mode 100644
index 0000000..2c95fc0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/validation/.gitignore
@@ -0,0 +1 @@
+/TableDSLValidator.java
diff --git a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/validation/TableDSLValidator.java b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/validation/TableDSLValidator.java
index 9e36dc0..47f515b 100644
--- a/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/validation/TableDSLValidator.java
+++ b/org.eclipse.osbp.xtext.table/xtend-gen/org/eclipse/osbp/xtext/table/validation/TableDSLValidator.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * Copyright (c) 2015 - 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
@@ -7,27 +7,14 @@
  *  http://www.eclipse.org/legal/epl-v10.html
  * 
  *  Contributors:
- * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 	   Loetz GmbH&Co.KG - Initial implementation
  * 
  * 
  *  This copyright notice shows up in the generated Java code
  */
 package org.eclipse.osbp.xtext.table.validation;
 
-import com.google.common.base.Objects;
-import java.util.List;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.osbp.xtext.table.TableDSLPackage;
-import org.eclipse.osbp.xtext.table.TableModel;
 import org.eclipse.osbp.xtext.table.validation.AbstractTableDSLValidator;
-import org.eclipse.xtext.common.types.JvmGenericType;
-import org.eclipse.xtext.common.types.JvmType;
-import org.eclipse.xtext.common.types.JvmTypeParameter;
-import org.eclipse.xtext.common.types.util.TypeReferences;
-import org.eclipse.xtext.validation.Check;
-import org.eclipse.xtext.xbase.typesystem.util.CommonTypeComputationServices;
-import org.tepi.filtertable.FilterTable;
-import org.vaadin.hene.popupbutton.PopupButton;
 
 /**
  * Custom validation rules.
@@ -36,64 +23,4 @@
  */
 @SuppressWarnings("all")
 public class TableDSLValidator extends AbstractTableDSLValidator {
-  public final static String CODE__MISSING__L_RUNTIME_COMMON = "0_108";
-  
-  public final static String CODE__MISSING__DATATYPE_LIB = "0_109";
-  
-  public final static String CODE__MISSING__XBASE_LIB = "0_111";
-  
-  public final static String CODE__MISSING__JDK_1_5 = "0_112";
-  
-  @Check
-  public void checkClassPath(final TableModel tableModel) {
-    CommonTypeComputationServices _services = this.getServices();
-    TypeReferences typeReferences = _services.getTypeReferences();
-    JvmType _findDeclaredType = typeReferences.findDeclaredType(List.class, tableModel);
-    final JvmGenericType listType = ((JvmGenericType) _findDeclaredType);
-    boolean _or = false;
-    boolean _equals = Objects.equal(listType, null);
-    if (_equals) {
-      _or = true;
-    } else {
-      EList<JvmTypeParameter> _typeParameters = listType.getTypeParameters();
-      boolean _isEmpty = _typeParameters.isEmpty();
-      _or = _isEmpty;
-    }
-    if (_or) {
-      this.error("Couldn\'t find a JDK 1.5 or higher on the project\'s classpath.", tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES, 
-        TableDSLValidator.CODE__MISSING__JDK_1_5);
-    }
-    JvmType _findDeclaredType_1 = typeReferences.findDeclaredType(PopupButton.class, tableModel);
-    boolean _equals_1 = Objects.equal(_findDeclaredType_1, null);
-    if (_equals_1) {
-      this.error("Couldn\'t find a the mandatory library \'popupbutton.osgi\' on the project\'s classpath.", tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES, 
-        "");
-    }
-    JvmType _findDeclaredType_2 = typeReferences.findDeclaredType(FilterTable.class, tableModel);
-    boolean _equals_2 = Objects.equal(_findDeclaredType_2, null);
-    if (_equals_2) {
-      this.error("Couldn\'t find a the mandatory library \'filteringtable.osgi\' on the project\'s classpath.", tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES, 
-        "");
-    }
-    JvmType _findDeclaredType_3 = typeReferences.findDeclaredType(
-      "org.eclipse.osbp.runtime.common.annotations.Dispose", tableModel);
-    boolean _equals_3 = Objects.equal(_findDeclaredType_3, null);
-    if (_equals_3) {
-      this.error("Couldn\'t find the mandatory library \'org.eclipse.osbp.runtime.common\' on the project\'s classpath.", tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES, 
-        TableDSLValidator.CODE__MISSING__L_RUNTIME_COMMON);
-    }
-    JvmType _findDeclaredType_4 = typeReferences.findDeclaredType(
-      "org.eclipse.osbp.dsl.common.datatypes.IDatatypeConstants", tableModel);
-    boolean _equals_4 = Objects.equal(_findDeclaredType_4, null);
-    if (_equals_4) {
-      this.warning("Couldn\'t find the optional library \'org.eclipse.osbp.dsl.datatype.lib\' on the project\'s classpath. This may cause resolving problems.", tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES, 
-        TableDSLValidator.CODE__MISSING__DATATYPE_LIB);
-    }
-    JvmType _findDeclaredType_5 = typeReferences.findDeclaredType("javax.validation.Valid", tableModel);
-    boolean _equals_5 = Objects.equal(_findDeclaredType_5, null);
-    if (_equals_5) {
-      this.error("Couldn\'t find the library \'javax.validation\' on the project\'s classpath. This may cause resolving problems.", tableModel, TableDSLPackage.Literals.TABLE_MODEL__PACKAGES, 
-        TableDSLValidator.CODE__MISSING__DATATYPE_LIB);
-    }
-  }
 }
diff --git a/pom.xml b/pom.xml
index f77ee9e..712ded2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,6 +44,7 @@
     <modules>
         <module>org.eclipse.osbp.xtext.table</module>
         <module>org.eclipse.osbp.xtext.table.tests</module>
+        <module>org.eclipse.osbp.xtext.table.ide</module>
         <module>org.eclipse.osbp.xtext.table.ui</module>
         <module>org.eclipse.osbp.xtext.table.feature</module>
         <!-- <module>org.eclipse.osbp.xtext.table.p2</module> -->
@@ -93,4 +94,13 @@
             </plugins>
         </pluginManagement>
     </build>
+    <dependencies>
+		<dependency>
+			<groupId>org.eclipse.osbp.dependencies</groupId>
+			<artifactId>
+				org.eclipse.osbp.dependencies.bundle.activemq.all.osgi
+			</artifactId>
+			<version>5.14.5-SNAPSHOT</version>
+		</dependency>
+    </dependencies>
 </project>